C语言课程设计-服装销售系统

更新时间:2024-05-11 22:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

服装管理系统

目 录

1.题目要求-------------------------------------------------------------------4 2.需求分析-------------------------------------------------------------------4 3.总体设计-------------------------------------------------------------------4 4.详细设计-------------------------------------------------------------------8 5.上机操作------------------------------------------------------------------30 6.总结----------------------------------------------------------------------33 7.致谢----------------------------------------------------------------------33 参考文献-------------------------------------------------------------------34

1

服装管理系统

1.题目要求

(1) 系统包含三类用户:管理员、店长、销售员。

(2) 向管理员提供以下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。

商品信息添加、修改、删除、查找、统计。

(3) 向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、

商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息。

(4) 向销售员提供以下功能:商品浏览、查找、出售,查看自己本日报表、本月报表。

2. 需求分析

用户与商品信息要采用文件存储,因而要提供文件的输入、输出功能,要实现用户的添加、修改、删除,商品信息的添加、修改、删除、查找等,需要提供相应的信息添加、删除、修改与查找功能;要实现商品浏览功能,需要提供显示操作;另外,还要提供键盘式选择菜单以实现功能选择。

3.总体设计

1.【整体E-R图3-1】

服装管理系统 管理员模块 店长模块 销售员模块 退出 退出 用户用户显示所添加 删除 有用户 自身信息修改 商品信息浏览 营业员业绩报表 密码修改 商品浏览 商品查找 出售 查看本月报表 图3-1

2.【程序中典型的流程图】

(一)添加模块

(1)分析:信息添加模块职工的基本信息包括:用户、商品基本信息,对它们输入后,要

2

服装管理系统

存进原文件,流程图(图3-2)如下。

开始 文件打开否 输入信息 将信息输出到磁盘 输出错误信息 是否继续 调用printf_back()函数 结束

图3-2 (二)浏览模块

(1)分析:浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采用直接查找的办法。在容错上有较好的能力,输错时系统会有提示,也会作出相应的反映。算法和以上的分程序有相同的优点。 流程图如下(图3-3)。

开始 打开文件否 输出错误信息 查找商品信息 是否查找到 输出商品信息 操作存盘 是否继续 结束

3

服装管理系统

图3-3 (三)查询模块

(1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。但本程序只使用了一种。在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序的缘故。程序在选择结构上采用了if和else的嵌套形式,看起来有点繁杂(图3-4)

开始 文件打开 输出错误信息 查询方式 商品的名称 是否继续 结束

图3-4

(四)删除模块

(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要删掉的内容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到很多方面,如:查询不到时系统该如何处理等。人性化设计有在删除之前询问是否继续。 流程图(图3-5)如下:

4

服装管理系统

开始 文件打开 输出错误信息 查找商品信息 是否查找到 删除操作 输入信息 是否继续 结束 图 3-5 五)修改模块

(1)分析:修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐,可以改进(图2-6)。

开始 文件打开

输出错误信息 查找职工信息 是否查找到 修改操作 输入信息 是否继续 结束 图3-6

5

服装管理系统

while(NULL != tmpProduct) {

printf(\第%d件商品信息如下:\\n\

printf(\商品编号: %d\\n\ printf(\商品名称: %s\\n\ printf(\商品型号: %s\\n\ printf(\商品厂家: %s\\n\ printf(\商品价格: %f\\n\ printf(\商品数量: %d\\n\ printf(\商品附加信息: %s\\n\

tmpProduct = tmpProduct->next; i++; } } };

运算显示如下(图4-11):

图4-11 //商品查找函数// void ProductFind() {

Products *tmpProduct; int findWay,productId; char productName[20];

printf(\亲爱的%s朋友,你好,你现在进入的商品查询功能:\\n\ printf(\请选择查询方式: 1--按商品编号查询 2--按商品名称查询\\n\ scanf(\ tmpProduct = pProductHead; switch(findWay) { case 1:

printf(\请输入查询的商品编号:\ scanf(\ while(NULL != tmpProduct) {

if(productId == tmpProduct->productId) {

printf(\你查询的商品编号为%d的商品信息如下:\\n\

16

服装管理系统

printf(\ 商品名称: %s\\n\ printf(\ 商品型号: %s\\n\ printf(\ 商品厂家: %s\\n\ printf(\ 商品价格: %f\\n\ printf(\ 商品数量: %d\\n\ printf(\ 商品附加信息: %s\\n\ return ; }

tmpProduct = tmpProduct->next; }

printf(\对不起,不存在该商品编号的商品!\\n\ break; case 2:

printf(\请输入查询的商品名称:\ scanf(\ while(NULL != tmpProduct) {

if(0 == strcmp(tmpProduct->productName,productName)) {

printf(\你要查询的商品名称为%s的商品信息如下:\\n\ printf(\ 商品名称: %s\\n\ printf(\ 商品型号: %s\\n\ printf(\ 商品厂家: %s\\n\ printf(\ 商品价格: %f\\n\ printf(\ 商品数量: %d\\n\ printf(\ 商品附加信息: %s\\n\ return ; }

tmpProduct = tmpProduct->next; }

printf(\对不起,不存在该商品编号的商品!\\n\ break; default: break; }

}运算显示如下(图4-12):

图4-12

17

服装管理系统

//商品添加函数//

void InputAndAddProduct() { Products product;

printf(\亲爱的%s朋友,你好,请依次输入新商品的信息:\\n\ printf(\商品名称:\

scanf(\ printf(\商品型号:\

scanf(\ printf(\商品制造商:\

scanf(\ printf(\商品价格:\

scanf(\ printf(\商品数量:\

scanf(\ printf(\商品附加信息:\ scanf(\ product.next = NULL;

if(FUNCTION_SUCCESS == AddProduct(&product)) printf(\商品信息添加成功!\\n\};

运算显示如下(图4-15):

图4-15 //商品修改函数// void ModifyProduct() {

int productId; //待修改的商品编号 Products *tmpProduct;

printf(\亲爱的%s朋友,你好,你现在进入的商品信息修改功能:\\n\ printf(\请输入要修改的商品编号:\ scanf(\ tmpProduct = pProductHead; if(NULL == tmpProduct) return ; while(NULL != tmpProduct) {

18

服装管理系统

if(productId == tmpProduct->productId){

printf(\商品编号%d的商品信息如下:\\n\ printf(\ 商品名称: %s\\n\ printf(\ 商品型号: %s\\n\ printf(\ 商品厂家: %s\\n\ printf(\ 商品价格: %f\\n\ printf(\ 商品数量: %d\\n\ printf(\ 商品附加信息: %s\\n\

printf(\下面请对照修改该商品的相应信息:\\n\ printf(\新的商品名称: \

scanf(\ printf(\新的商品型号: \

scanf(\ printf(\新的商品厂家: \

scanf(\ printf(\新的商品价格: \

scanf(\ printf(\新的商品数量: \

scanf(\ printf(\新的商品附加信息: \ scanf(\

printf(\商品信息修改成功!\\n\

break; }

tmpProduct = tmpProduct->next; } };

//商品删除函数// void DeleteProduct() { int productId = 0;

Products *tmpProductA,*tmpProductB;

printf(\亲爱的%s朋友,你好,你现在进入的商品删除功能:\\n\ printf(\请输入你要删除的商品编号:\\n\ scanf(\

tmpProductA = tmpProductB = pProductHead; //tmpProductB指向要删除的记录,tmpProductA指向前一条记录

if(NULL == tmpProductB) return ;

19

服装管理系统

while(NULL != tmpProductB){

if(tmpProductB->productId == productId) {

if(tmpProductB == pProductHead && tmpProductB->next == NULL){ //如果系统只有一条商品信息

free(pProductHead); pProductHead = NULL; printf(\商品信息删除成功!\\n\ return ; }

tmpProductA->next = tmpProductB->next; if(pProductHead == tmpProductB) pProductHead = tmpProductB->next; free(tmpProductB);

printf(\商品信息删除成功!\\n\ return ; } else {

tmpProductA = tmpProductB; tmpProductB = tmpProductB->next; } }

printf(\对不起,不存在该商品编号的信息!\};

4.

店长功能模块(图4-16)

店长模块 1.自身密码修改 2.商品信息管理:添加,修改,查询,删除 3.销售报表显示:日销售报表,月销售报表,销售员销售报表 4.退出系统 5.

图4-16

20

服装管理系统

printf(\产品名称:%s\\n\

onePrice = getPriceById(tmpSellInfo->productId); printf(\商品单价:%f\\n\

printf(\销售数量:%d\\n\ printf(\销售员:%s\\n\ printf(\

:%d

%d

%d

\\n\ totalPrice += onePrice*tmpSellInfo->sellCount; }

tmpSellInfo = tmpSellInfo->next; }

printf(\总共有%d条符合条件的记录,销售总价%f元\\n\};

//显示所有销售员的业绩// void ShowAllSellReport() { int rsCount = 0;

float totalPrice = 0.0,onePrice; char productName[20]; SellInfoRecord *tmpSellInfo;

printf(\你好%s:当前功能将进行所有销售报表显示\\n\ tmpSellInfo = pSellInfoHead; if(NULL == tmpSellInfo) return ; while(NULL != tmpSellInfo) { rsCount++;

printf(\第%d条商品销售记录信息如下:\\n\ printf(\销售编号:%d\\n\ printf(\产品编号:%d\\n\ getProductNameById(tmpSellInfo->productId,productName); printf(\产品名称:%s\\n\

onePrice = getPriceById(tmpSellInfo->productId); printf(\商品单价:%f\\n\

printf(\销售数量:%d\\n\ printf(\销售员:%s\\n\

printf(\销售时间:%d年%d月%d日\\n\ totalPrice += onePrice*tmpSellInfo->sellCount;

tmpSellInfo = tmpSellInfo->next; }

printf(\总共有%d条符合条件的记录,销售总价%f元\\n\ };

26

服装管理系统

5.销售员功能模块(图4-17)

销售员模块 1.商品浏览 2.商品信息查询 3.商品销售 4.报表查看

图4-17

(1)销售员欢迎界面

//销售员管理模块// void SellOperationMenu() { int select; while(1) {

printf(\亲爱的销售员%s同志,欢迎使用本系统,你拥有下面所有功能:\\n\ printf(\商品浏览\\n\ printf(\商品查询\\n\ printf(\商品销售\\n\ printf(\报表查看\\n\ printf(\退出登陆系统\\n\

printf(\请输入上面功能对应的序号进行功能选择:\ scanf(\ switch(select) { case 1:

ProductsView(); continue; case 2:

ProductFind(); continue; case 3:

ProductsSell();

27

服装管理系统

continue; case 4:

ReportPrint(); continue; case 5:

ExitSystem();; break; default: break; } } };

(2)其它功能和管理员店长对应功能的函数的调用一致

(即调用ProductsView() ProductFind() ProductsSell() ReportPrint() 函数 )

5.上机操作

1.开始登陆欢迎界面(图5-1)

本程序自动识别所有用户(包括管理员,店长,销售人员)身份,直接登陆即可,无需选择那种登陆方式,身份为用户注册身份。

(注:本程序设置了管理员,店长,销售人员的初始账号为admin boss Sell 初始密码和账号一致,可以用初始账号登陆使用此程序)

图 5-1 2. 管理员功能界面(图5-2)

根据自己的需要选择功能前编号按 ENTER 健即可进入对应功能,例如选择用户信息管理 (选2 按ENTER)

28

服装管理系统

图5-2

3.店长功能界面(图5-3)

假如你的账号身份是店长登陆后显示店长的功能界面

图5-3

如果你需要的显示销售报表 输入3 按enter就进入了(图5-4)

图5-4 4.销售人员功能界面(图5-5)

29

服装管理系统

图5-5

6.总结

在编程过程中遇到很多问题,之后请教同学和老师,细心的把问题一一解决。这次课程设计让我掌握了许多的有用知识。首先通过不断地学习和锻炼更加熟练地掌握应用软件Microsoft Visual C++了。设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的建立设计模块,不会修改出现的错误等等,然后我向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。不可避免地,程序中肯定依然存在者某些问题,我希望在以后的学习和应用中不断提高自己的能力,攻克遇到的困难。这次实习让我感觉C语言在生活学习和生产中的应用性很强,所以好好的学习编程很有必要。

7.致谢

感谢各位孔春芳老师,给我这个难得的机会在机房中尝试设计程序,在C语言学习中教会我了许多专业的基础知识。感谢学长们在我遇到问题时虚心教导,并在问题的细节方面进行指点。感谢身边C语言高手们在程序设计时的一些帮助,让我克服难关。

30

服装管理系统

参考文献

[1] 谭浩强. C程序设计(第三版)[M]. 北京: 清华大学出版社, 2005.

[2] 张冬梅, 刘远兴, 陈晶, 等. 基于PBL的C语言课程设计及学习指导[M]. 北京: 清华

大学出版社, 2011.

31

本文来源:https://www.bwwdw.com/article/z06g.html

Top