《大学毕设论文--服装销售系统c语言课程设计.doc》由会员分享,可在线阅读,更多相关《大学毕设论文--服装销售系统c语言课程设计.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、服装管理系统目 录1题目要求-42需求分析-43总体设计-44详细设计-85上机操作-306总结-337致谢-33 参考文献-341.题目要求(1) 系统包含三类用户:管理员、店长、销售员。(2) 向管理员提供以下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。(3) 向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息。(4) 向销售员提供以下功能:商品浏览、查找、出售,查看自己本日报表、本月报表。2. 需求分析用户与商品信息要采用文件存储,因而要
2、提供文件的输入、输出功能,要实现用户的添加、修改、删除,商品信息的添加、修改、删除、查找等,需要提供相应的信息添加、删除、修改与查找功能;要实现商品浏览功能,需要提供显示操作;另外,还要提供键盘式选择菜单以实现功能选择。3.总体设计1.【整体E-R图3-1】服装管理系统管理员模块店长模块销售员模块退出用户添加用户删除显示所有用户退出自身信息修改商品信息浏览营业员业绩报表商品浏览商品查找出售密码修改查看本月报表 图3-12.【程序中典型的流程图】(一)添加模块(1)分析:信息添加模块职工的基本信息包括:用户、商品基本信息,对它们输入后,要存进原文件,流程图(图3-2)如下。文件打开否 输入信息是
3、否继续将信息输出到磁盘调用printf_back()函数结束开始输出错误信息 图3-2(二)浏览模块(1)分析:浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采用直接查找的办法。在容错上有较好的能力,输错时系统会有提示,也会作出相应的反映。算法和以上的分程序有相同的优点。流程图如下(图3-3)。开始打开文件否输出错误信息查找商品信息是否查找到输出商品信息操作存盘是否继续结束 图3-3(三)查询模块(1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。但本程序只使用了一种。在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序的缘故。程序在选择
4、结构上采用了if和else的嵌套形式,看起来有点繁杂(图3-4)开始文件打开查询方式是否继续结束输出错误信息商品的名称 图3-4(四)删除模块(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要删掉的内容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到很多方面,如:查询不到时系统该如何处理等。人性化设计有在删除之前询问是否继续。流程图(图3-5)如下:开始文件打开查找商品信息是否查找到输入信息是否继续结束输出错误信息删除操作 图
5、 3-5五)修改模块(1)分析:修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐,可以改进(图2-6)。开始文件打开查找职工信息是否查找到输入信息是否继续结束输出错误信息修改操作 图3-64.详细设计1.欢迎界面void WelcomeMenu() void WelcomeMenu() printf(-服装销售系统-n); printf(系统功能说明:n); printf( 管理员功能:n); printf( (1)自身密码修改n); printf( (2)用户信息管理:添加,修改,删除,查询
6、n); printf( (3)商品信息管理:添加,修改,查询,删除n); printf( (4)退出登陆系统n); printf( 店长功能:n); printf( (1)自身密码修改n); printf( (2)商品信息管理:添加,修改,查询,删除n); printf( (3)销售报表显示:日销售报表,月销售报表,销售员销售报表n); printf( (4)退出登陆系统n); printf( 销售员功能:n); printf( (1)商品浏览,查询,商品销售n); printf( (2)自己商品销售报表显示:日销售报表,月销售报表n); printf( (3)退出登陆系统n); printf
7、(-谢谢使用-n);printf((注:管理员,店长,用户登陆的账号分别是admin,boss,sell初始密码和账号一致)n);欢迎界面运行如下(图4-1): 图4-1 2.登陆模块 void SystemLogin()函数void SystemLogin() /所有用户身份调用的登陆函数 char userName20,password20; int isLogin = 0; SystemUser *tmpUser; printf(请输入你的系统用户帐号:); scanf(%s,userName); printf(n请输入你的系统用户密码:); scanf(%s,password); tm
8、pUser = pSystemUserHead; while(NULL != tmpUser) if(0 = strcmp(tmpUser-userName,userName) if(0 = strcmp(tmpUser-password,password) isLogin = 1; strcpy(currentUser,tmpUser-userName); currentUserType = tmpUser-userType; switch(currentUserType) case ADMIN_USER_TYPE: AdminOperationMenu(); break; case BOS
9、S_USER_TYPE: BossOperationMenu(); break; case SELL_USER_TYPE: SellOperationMenu(); break; default: break; else printf(对不起,你输入的密码错误!n); SystemLogin(); /用户名正确,密码错误 tmpUser = tmpUser-next; if(isLogin != 1) printf(对不起,该用户不存在n); /遍历了所有用户都没有找到用户 SystemLogin(); 运算显示如下(图4-2): 图4-23.管理员功能模块 管理员模块1.自身密码修改自身密码
10、修改2. 用户信息管理:添加,修改,删除,查询3.商品信息管理:添加,修改,查询,删除4.销售报表显示(1)管理员欢迎界面void AdminOperationMenu()函数void AdminOperationMenu() int select; while(1) printf(亲爱的管理员%s同志,欢迎使用本系统,你拥有下面所有功能:n,currentUser); printf( (1)自身密码修改n); printf( (2)用户信息管理:添加,修改,查询,删除n); printf( (3)商品信息管理:添加,修改,查询,删除n); printf( (4)退出系统n); printf(
11、请输入上面功能对应的序号进行功能选择:); scanf(%d,&select); switch(select) case 1: ChangePassword(); continue; case 2: UserManage(); continue; case 3: ProductsManage(); Continue; case 4: ExitSystem(); break; default: break; ;运算显示如下(图4-3): 图4-3(2)自身密码修改(调用密码修改函数ChangePassword();)/密码修改函数void ChangePassword() char newPas
12、sword120,newPassword220; SystemUser *tmpUser; printf(请输入你的新密码:); scanf(%s,newPassword1); printf(请再次输入你的新密码:); scanf(%s,newPassword2); if(0 != strcmp(newPassword1,newPassword2) printf(对不起,你两次输入的密码不一致,修改失败!n); return ; tmpUser = pSystemUserHead; while(NULL != tmpUser) if(0 = strcmp(tmpUser-userName,cu
13、rrentUser) strcpy(tmpUser-password,newPassword1); printf(密码修改成功!n); break; tmpUser = tmpUser-next; ;运算显示如下(图4-4): 图4-4(2) 用户信息管理:添加,修改,删除,查询/用户信息管理:添加,修改,删除,查询/void UserManage() /用户信息函数/ int select;/管理员显示模块/ while(1) printf(亲爱的管理员%s同志,你目前进入的是用户信息管理功能:n,currentUser); printf( (1)用户信息查看n); printf( (2)用
14、户信息添加n); printf( (3)用户信息修改n); printf( (4)用户信息删除n); printf( (5)返回上级菜单n); printf( (6)退出登陆系统n); printf(请输入上面功能对应的序号进行功能选择:); scanf(%d,&select); switch(select) case 1: UserInfoView(); /调用用户信息查看的函数/ continue; case 2: UserInfoAdd(); /调用用户信息添加函数/ continue; case 3: UserInfoModify(); /调用用户信息修改函数/ continue; c
15、ase 4: UserInfoDelete(); /调用用户信息删除函数/ continue; case 5: AdminOperationMenu(); /返回上级系统/ break; case 6: ExitSystem(); /退出登陆/ break; default: break; ;运算显示如下(图4-5): 图4-5/用户信息查看函数/void UserInfoView() SystemUser *tmpUser; tmpUser = pSystemUserHead; printf(亲爱的管理员%s,你好,你查看的所有用户信息如下:n,currentUser); printf(用户
16、名t密码t用户类型(1代表管理员,2代表店长,3代表销售员)n); while(NULL != tmpUser) printf(%st%st%dn,tmpUser-userName,tmpUser-password,tmpUser-userType); tmpUser = tmpUser-next; ;运算显示如下(图4-6):/用户信息添加函数/void UserInfoAdd() SystemUser tmpUser; printf(亲爱的管理员%s,请依次输入用户信息:n,currentUser); printf(用户名:); scanf(%s,tmpUser.userName); pr
17、intf(用户密码:); scanf(%s,tmpUser.password); printf(用户类型(1代表管理员,2代表店长,3代表销售员):); scanf(%d,&tmpUser.userType); tmpUser.next = NULL; if(FUNCTION_SUCCESS = AddUser(&tmpUser) printf(用户信息添加成功!n);运算显示如下(图4-7): 图4-7/用户信息修改函数/void UserInfoModify() char userName20; SystemUser *pUser; printf(亲爱的管理员%s,请输入要修改的用户帐号:
18、n,currentUser); scanf(%s,userName); pUser = pSystemUserHead; while(NULL != pUser) if(0 = strcmp(pUser-userName,userName) printf(请输入新的帐号:); scanf(%s,pUser-userName); printf(请输入新的密码:); scanf(%s,pUser-password); printf(请输入新的用户类型(1代表管理员,2代表店长,3代表销售员):); scanf(%d,&pUser-userType); printf(用户信息修改成功n); retu
19、rn ; pUser = pUser-next; printf(对不起,没有你查找的用户信息!n);运算显示如下(图4-8): 图4-8/用户信息删除函数/void UserInfoDelete() SystemUser *pUserA,*pUserB; char userName20; printf(亲爱的管理员%s朋友,你好,你现在进入的用户信息删除功能:n,currentUser); printf(请输入你要删除的用户名:n); scanf(%s,userName); pUserA = pUserB = pSystemUserHead; /pUserB指向要删除的记录,pUserA指向前
20、一条记录 if(NULL = pUserB) return ; while(NULL != pUserB) if(0 = strcmp(userName,pUserB-userName) if(pUserB = pSystemUserHead & pUserB-next = NULL) /如果系统只有一条商品信息 free(pSystemUserHead); pSystemUserHead = NULL; printf(用户信息删除成功!n); return ; pUserA-next = pUserB-next; if(pSystemUserHead = pUserB) pSystemUse
21、rHead = pUserB-next; free(pUserB); printf(用户信息删除成功!n); return ; else pUserA = pUserB; pUserB = pUserB-next; printf(对不起,不存在该帐号的用户信息!);运算显示如下(图4-9): 图4-9(3)商品信息管理:添加,修改,查询,删除/商品管理模块/void ProductsManage() int select; while(1) printf(亲爱的%s朋友,你好,你现在进入的是商品管理功能,你可以选择以下功能:n,currentUser); printf( (1)商品信息查看n)
22、; printf( (2)商品信息查找n); printf( (3)商品信息添加n); printf( (4)商品信息修改n); printf( (5)商品信息删除n); printf( (6)返回上一级菜单n); printf( (7)退出登陆系统n); printf(请选择应的操作编号:); scanf(%d,&select); switch(select) case 1: ProductsView(); /调用商品查看函数/ continue; case 2: ProductFind(); /调用商品信息查找函数/ continue; case 3: InputAndAddProduct
23、(); /调用商品添加函数/ continue; case 4: ModifyProduct(); /调用商品修改函数/ continue; case 5: DeleteProduct(); /调用删除商品信息函数/ continue; case 6: switch(currentUserType) /返回上一级/ case ADMIN_USER_TYPE: AdminOperationMenu(); break; case BOSS_USER_TYPE: BossOperationMenu(); break; case SELL_USER_TYPE: SellOperationMenu();
24、 break; default: break; break; case 7: ExitSystem(); break; default: break; ; 运算显示如下(图4-10): 图4-10/商品的查看函数/void ProductsView() Products *tmpProduct; int i; i = 1; tmpProduct = pProductHead; if(NULL = tmpProduct) printf(对不起,目前还没有商品信息); else while(NULL != tmpProduct) printf(第%d件商品信息如下:n,i); printf(商品编
25、号: %dn,tmpProduct-productId); printf(商品名称: %sn,tmpProduct-productName); printf(商品型号: %sn,tmpProduct-productType); printf(商品厂家: %sn,tmpProduct-productCompany); printf(商品价格: %fn,tmpProduct-productPrice); printf(商品数量: %dn,tmpProduct-productCount); printf(商品附加信息: %sn,tmpProduct-memo); tmpProduct = tmpPr
26、oduct-next; i+; ;运算显示如下(图4-11): 图4-11/商品查找函数/void ProductFind() Products *tmpProduct; int findWay,productId; char productName20; printf(亲爱的%s朋友,你好,你现在进入的商品查询功能:n,currentUser); printf(请选择查询方式: 1-按商品编号查询 2-按商品名称查询n); scanf(%d,&findWay); tmpProduct = pProductHead; switch(findWay) case 1: printf(请输入查询的商
27、品编号:); scanf(%d,&productId); while(NULL != tmpProduct) if(productId = tmpProduct-productId) printf(你查询的商品编号为%d的商品信息如下:n,productId); printf( 商品名称: %sn,tmpProduct-productName); printf( 商品型号: %sn,tmpProduct-productType); printf( 商品厂家: %sn,tmpProduct-productCompany); printf( 商品价格: %fn,tmpProduct-product
28、Price); printf( 商品数量: %dn,tmpProduct-productCount); printf( 商品附加信息: %sn,tmpProduct-memo); return ; tmpProduct = tmpProduct-next; printf(对不起,不存在该商品编号的商品!n); break; case 2: printf(请输入查询的商品名称:); scanf(%s,productName); while(NULL != tmpProduct) if(0 = strcmp(tmpProduct-productName,productName) printf(你要
29、查询的商品名称为%s的商品信息如下:n,productName); printf( 商品名称: %sn,tmpProduct-productName); printf( 商品型号: %sn,tmpProduct-productType); printf( 商品厂家: %sn,tmpProduct-productCompany); printf( 商品价格: %fn,tmpProduct-productPrice); printf( 商品数量: %dn,tmpProduct-productCount); printf( 商品附加信息: %sn,tmpProduct-memo); return ; tmpProduct = tmpProduct-next; printf(对不起,不存在该商品编号的商品!n); break; default: break; 运算显示如下(图4-12):