2022年C语言课程设计-服装销售系统_第1页
2022年C语言课程设计-服装销售系统_第2页
2022年C语言课程设计-服装销售系统_第3页
2022年C语言课程设计-服装销售系统_第4页
2022年C语言课程设计-服装销售系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 服装销售系统一.【要求】(1)系统包含三类用户:管理员、店长、销售员。(2)向管理员提供以下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。(3)向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息。(4)向销售员提供以下功能:商品浏览、查找、出售,查看自己本日报表、本月报表。(5)提示 (1)总体设计:整个服装销售系统可设计为管理员模块、店长模块、销售员模块、商品模块等。(2)数据结构采用结构体。二、结构图根据需求分析,该程序中销售员应实现如下

2、功能:商品浏览、商品查找、出售商品、销售记录、 用户注销, 具体结构图如下。店长应实现如下功能:登录、 注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息,具体结构图如下。销售员商品浏览商品查找出售商品销售记录用户注销精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 26 页 - - - - - - - - -2 管理员需

3、要实现如下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。具体结构图如下。三、程序中典型的流程图分析(一)添加模块(1)分析: 信息添加模块职工的基本信息包括:用户、商品基本信息,对它们输入后,要存进原文件,流程图如下。店长商品浏览商品查找销售员业绩商品信息修改密码修改用户注销管理员删除用户退出系统注销账户修改密码商品统计查找商品删除商品添加商品统计用户添加用户精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - -

4、- - - - - - - - - - - - 第 2 页,共 26 页 - - - - - - - - -3 (二)浏览模块(1)分析: 浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采用直接查找的办法。在容错上有较好的能力,输错时系统会有提示,也会作出相应的反映。算法和以上的分程序有相同的优点。 流程(三)查询模块开始打开文件否输出错误信息查找商品信息是否查找到输出商品信息操作存盘是否继续结束文件打开否输入信息是否继续将信息输出到磁盘调用 printf_back() 函数结束开始输出错误信息精品学习资料 可选择p d f - - - - - - - - - - - -

5、- - 第 3 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 26 页 - - - - - - - - -4 (1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。但本程序只使用了一种。在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序 的 缘 故 。 程 序 在 选 择 结 构 上 采 用 了if和else 的 嵌 套 形 式 , 看 起 来 有 点 繁 杂 。(四)删除模块(1)分析: 商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要

6、删掉的内容除去, 然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。 可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到很多方面,如:查询不到时系统该如何处理等。人性化设计有在删除之前询问是否继续。 流程图 开始文件打开查询方式是否继续结束输出错误信息商品的名称精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,

7、共 26 页 - - - - - - - - -5 五)修改模块(1)分析: 修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算法比较合理, 但有一点烦琐,可以改进。四、题目分析1、按照系统需要三类用户用它作为主函数:int main() 开始文件打开查找职工信息是否查找到输入信息是否继续结束输出错误信息修改操作开始文件打开查找商品信息是否查找到输入信息是否继续结束输出错误信息删除操作精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 26 页 - - - - - -

8、 - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 26 页 - - - - - - - - -6 user *use; dress *dress; admin *adm; use=(user *)malloc(200*sizeof(user); userintiate(use); adm=(admin *)malloc(sizeof(admin); adminintiate(adm); dress=(dress *)malloc(500*sizeof(dress); dressintiate(dress); while(1) i

9、f(first(use,adm,dress)=3) continue; 2、三类用户的选择登陆为int *first(user *use,admin *adm,dress *dress) int chose; int temp,temp2; while(1) system(cls); printf( /= 功能菜单 =/n); printf( / /n); printf( / /n); printf( / 1,销售员登陆/n); printf( / 2,店长登陆/n); printf( / 3,管理员登陆/n); printf( / /n); printf( /=/n); printf(n /

10、=请选择服务的种类=/n); scanf(%d,&chose); if(chose5) printf( 你的选择出现错误!按任意键重新的进入选择菜单!n); system(pause); continue; switch(chose) case 1: 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 26 页 - - - - - - - - -7 system(cls); if(user

11、load(use)=1) usermenu(use,dress); system(pause); break; case 2: system(cls); if(monload(use)=1) monmenu(use,dress); break; case 3: system(cls); temp=adminload(adm); if(temp=1) system(pause); temp2=adminmenu(adm,use,dress); return 3; system(pause); continue; default: exit(0); /while() 3、当选择管理员的时候就用如下

12、程序,注明(管理员的初始账号是admin) int regnew(user *use) char name21; char pass7=0; int chose; int i,j; int type; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 26 页 - - - - - - - - -8 while(1) system(cls); printf( 用户名: ); scanf(%s,&a

13、mp;name); printf( 密码: ); for(i=0;i6;i+) passi=getch(); printf(*); printf(nn 请输入用户的类型:0,销售员1,店长); scanf(%d,&type); while(1) printf(nn 用户注册信息入完毕,是否确认? 1,确认0,重新输入 n); scanf(%d,&chose); if(chose!=1&chose!=0) printf( 你的输入有误,请重新的输入!n); continue; if(chose=1) for(i=0;iusernum+1;i+) if(usei.flag=

14、0) printf( 注册成功!请继续使用!n); strcpy(usei.username,name); strcpy(usei.pass,pass); usernum+; usei.flag=1; usei.type=type; return 1; else break; int deluser(user *use) int i; char name20; printf( 请输入你想要删除的用户的用户名:); scanf(%s,name); for(i=0;i200;i+) 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 26 页 -

15、 - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 26 页 - - - - - - - - -9 if(strcmp(usei.username,name)=0) printf(nnn 用户%s 删除成功! nnnn,name); strcpy(usei.username,unknown); usei.flag=-1; return 1; printf( 用户%s 不存在!请查正在次操作!nnnn,name); return 0; int useall(user *use) int i; system(cls

16、); printf( 销售人员: n); for(i=0;i200;i+) if(usei.type=0) if(usei.flag=1) printf( 用 户 姓 名 :%s 用 户 密 码 :%s n,usei.username,usei.pass); printf( 店长: n); for(i=0;i200;i+) if(usei.type=1) if(usei.flag=1) printf( 用 户 姓 名 :%s 用 户 密 码 :%s n,usei.username,usei.pass); int adminload(admin *adm) char name21; char p

17、ass7=0; int chose,chose2; int i,j; while(1) system(cls); printf( 管理员账号:); scanf(%s,&name); printf( 密码: ); for(i=0;iname,name)=0) if(strcmp(adm-pass,pass)=0) printf( 登陆成功!请继续使用!n); strcpy(usertemp.username,name); return 1; printf( 输入的用户名或者密码有误!1,重新登陆2,退出登陆! n); scanf(%d,&chose2); if(chose2=1)

18、 system(cls); break; else system(cls); return 0; if(chose=0) break; int adminpass(admin *adm) int i; char pass20=0; char pass220=0; while(1) 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 10 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 10 页,共 26 页 - - - - - - - - -11 system

19、(cls); printf( 请输入新的管理员密码:); for(i=0;i6;i+) passi=getch(); printf(*); printf(nnn 请再次输入新的管理员密码:); for(i=0;ipass,pass); system(pause); return 1; int adminout() int chose; while(1) system(cls); printf( 你确定要注销吗?1,注销0,取消 nn); scanf(%d,&chose); if(chose!=0&chose!=1) printf( 你的选项出现了错误,请重新的输入!nnn);

20、system(pasue); continue; if(chose=1) printf( 管理员账户注销完毕! ! nnnn); system(pause); return 1; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 11 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 11 页,共 26 页 - - - - - - - - -12 else return 0; int out() int chose; system(cls); printf(

21、真的要退出系统吗?退出后信息会全部的丢失!1,退出0,取消 ); scanf(%d,&chose); if(chose=1)exit(0); else return 1; int adminmenu(admin *adm,user *use,dress *dress) int chose1; while(1) system(cls); printf(n 在线用户:%snn,usertemp.username); printf( /= =用户功能菜单 =/n); printf( / /n); printf( / 1,添加用户/n); printf( / 2,删除用户/n); printf

22、( / 3,统计用户/n); printf( / 4,添加商品/n); printf( / 5,删除商品/n); printf( / 6,查找商品/n); printf( / 7,商品统计/n); printf( / 8,修改密码/n); printf( / 9,注销账户/n); printf( / 0,退出系统/n); printf( /=/n); printf(n /=请 选择服务的种类=/n); scanf(%d,&chose1); if(chose19) printf( 你的输入有误,请重新的输入!n); system(pasue); continue; switch(chos

23、e1) case 1: 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 12 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 12 页,共 26 页 - - - - - - - - -13 system(cls); regnew(use); system(pause); break; case 2: system(cls); deluser(use); system(pause); break; case 3: system(cls); useall(us

24、e); system(pause); break; case 4: system(cls); adddress(dress); system(pasue); break; case 5: system(cls); deldress(dress); break; case 6: system(cls); finddress(dress); break; case 7: system(cls); dressall(dress); system(pasue); break; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 13 页,共 26 页 - - -

25、 - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 13 页,共 26 页 - - - - - - - - -14 case 8: system(cls); if(adminpass(adm)=1) continue; break; case 9: system(cls); if(adminout()=1) return 3; case 0: system(cls); if(out()=1) continue; break; default: continue; int userload(user *use) char name2

26、1; char pass7=0; int chose,chose2; int i,j; while(1) system(cls); printf( 用户名: ); scanf(%s,&name); printf( 密码: ); for(i=0;i6;i+) passi=getchar(); printf(*); while(1) printf(nn 用户登陆信息输入完毕,是否确认? 1,确认0,重新输入 n); scanf(%d,&chose); if(chose!=1&chose!=0) 精品学习资料 可选择p d f - - - - - - - - - - - -

27、- - 第 14 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 14 页,共 26 页 - - - - - - - - -15 printf( 你的输入有误,请重新的输入!n); continue; if(chose=1) for(i=0;i200;i+) if(usei.type=1) if(strcmp(usei.username,name)=0) if(strcmp(usei.pass,pass)=0) printf( 登陆成功!请继续使用!n); strcpy(usertemp.usern

28、ame,name); return 1; printf( 输入的用户名或者密码有误!1,重新登陆2,退出登陆! n); scanf(%d,&chose2); if(chose2=1) system(cls); break; else system(cls); return 0; if(chose=0) break; 这里面包含了管理员的十个功能选项。4,选择销售员和店长, (注明第一次运行时本来没有销售员和店长,需要管理员添加。)int userout() int chose; while(1) system(cls); printf(n 在线用户:%snn,usertemp.user

29、name); printf( 你确定要注销吗?1,注销0,取消 nn); scanf(%d,&chose); 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 15 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 15 页,共 26 页 - - - - - - - - -16 if(chose!=0&chose!=1) printf( 你的选项出现了错误,请重新的输入!nnn); system(pasue); continue; if(cho

30、se=1) printf( 销售员账户注销完毕! ! nnnn); strcpy(usertemp.username,unknown); / system(pause); return 1; else return 0; int sold(user *use,dress *dress) char name20; int num; int i; int j; int k; system(cls); printf(n 在线用户:%snn,usertemp.username); printf( 请输入要出售的商品的名称:); scanf(%s,&name); printf(n 请输入出售的数

31、量:); scanf(%d,&num); for(k=0;k200;k+) if(strcmp(usek.username,usertemp.username)=0) for(i=0;i500;i+) if(strcmp(,name)=0) if(dressi.nownum) break; dressi.now=dressi.now-num; printf(nnn 商品%s 已经销售出了%d 件 n,name,num); for(j=0;j100;j+) if(usek.mdbj.flag=0) 精品学习资料 可选择p d f - - - - - - - - -

32、- - - - - 第 16 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 16 页,共 26 页 - - - - - - - - -17 strcpy(,name); usek.mdbj.flag=1; usek.mdbj.total=num; return 1; printf( 商品出售出现错误! !请重新操作!nnn); return 0; void mounth(user *use) int i; int j; char name20; strcpy(name,

33、usertemp.username); system(cls); printf(n 在线用户:%snn,usertemp.username); for(i=0;i100;i+) if(strcmp(usei.username,name)=0) for(j=0;j100;j+) if(usei.mdbj.flag=1) printf( 商品名称:%s ,出售数量: %dn,,usei.mdbj.total); int usermenu(user *use,dress *dress) int i; int chose1; while(1) system(cls); pr

34、intf(n 在线用户:%snn,usertemp.username); printf( /= =用户功能菜单 =/n); printf( / /n); printf( / 1,商品浏览/n); 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 17 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 17 页,共 26 页 - - - - - - - - -18 printf( / 2,商品查找/n); printf( / 3,出售商品/n); printf(

35、 / 4,销售记录/n); printf( / 5,用户注销/n); printf( / /n); printf( / /n); printf( /=/n); printf(n /=请 选择服务的种类=/n); scanf(%d,&chose1); if(chose19) printf( 你的输入有误,请重新的输入!n); system(pasue); continue; switch(chose1) case 1: system(cls); dressall(dress); break; case 2: system(cls); finddress(dress); break; ca

36、se 3: system(cls); sold(use,dress); system(pause); break; case 4: system(cls); mounth(use); system(pause); break; case 5: system(cls); if(userout()=1) return 3; break; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 18 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 18 页,共 26 页

37、 - - - - - - - - -19 default: continue; int monpass(user *use) int i; char pass20=0; char pass220=0; while(1) printf( 请输入新的密码:); for(i=0;i6;i+) passi=getch(); printf(*); printf(nnn 请再次输入新的密码:); for(i=0;i6;i+) pass2i=getch(); printf(*); if(strcmp(pass,pass2)!=0) printf(nn 两次输入的新的密码不一样,请重新的输入!nnn); sy

38、stem(pause); else printf(n 密码修改成功!下一次登陆请使用新的密码!nnn); for(i=0;i200;i+) if(strcmp(usei.username,usertemp.username)=0) strcpy(usei.pass,pass); system(pause); return 1; void monsee(user *use) int i; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 19 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - -

39、- - - - - - - 第 19 页,共 26 页 - - - - - - - - -20 int j; char name20; system(cls); printf(n 在线用户:%snn,usertemp.username); for(i=0;i100;i+) if(usei.flag=1&usei.type=0) printf( 销售员姓名:%sn,usei.username); for(j=0;j100;j+) if(usei.mdbj.flag=1) printf( 商品名称:%s ,出售数量: %dn,,usei.mdbj.total);

40、 int monload(user *use) char name21; char pass7=0; int chose,chose2; int i,j; while(1) system(cls); printf( 用户名: ); scanf(%s,&name); printf( 密码: ); for(i=0;i6;i+) passi=getch(); printf(*); while(1) printf(nn 用户登陆信息输入完毕,是否确认? 1,确认0,重新输入 n); scanf(%d,&chose); if(chose!=1&chose!=0) printf(

41、你的输入有误,请重新的输入!n); continue; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 20 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 20 页,共 26 页 - - - - - - - - -21 if(chose=1) for(i=0;i200;i+) if(usei.type=1) if(strcmp(usei.username,name)=0) if(strcmp(usei.pass,pass)=0) printf( 登陆成功

42、!请继续使用!n); strcpy(usertemp.username,name); return 1; printf( 输入的用户名或者密码有误!1,重新登陆2,退出登陆! n); scanf(%d,&chose2); if(chose2=1) system(cls); break; else system(cls); return 0; if(chose=0) break; int monout() int chose; while(1) system(cls); printf(n 在线用户:%snn,usertemp.username); printf( 你确定要注销吗?1,注销

43、0,取消 nn); scanf(%d,&chose); if(chose!=0&chose!=1) 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 21 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 21 页,共 26 页 - - - - - - - - -22 printf( 你的选项出现了错误,请重新的输入!nnn); system(pasue); continue; if(chose=1) printf( 店长账户注销完毕! ! n

44、nnn); strcpy(usertemp.username,unknown); return 1; else return 0; int fix(dress *dress) char name20,name220; int total; int now; int i; system(cls); printf(n 在线用户:%snn,usertemp.username); printf( 请输入需要修改信息的商品的名称:); scanf(%s,&name) ; for(i=0;i500;i+) if(strcmp(,name)=0) printf(商 品 信 息

45、: n 名 称 :%s, 现 存 :%d, 总共:%dn,,dressi.now,dressi.total); printf(nn 请输入修改以后的商品的名称:); scanf(%s,&name2); printf(nn 请输入修改以后的商品的现存:); scanf(%d,&now); printf(nn 请输入修改以后的商品的总共:); scanf(%d,&total); strcpy(,name2); dressi.now=now; dressi.total=total; printf(nn); printf( 修改以后的

46、商品信息:n 名称:%s,现存:%d, 总共:%dn,,dressi.now,dressi.total); return 1; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 22 页,共 26 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 22 页,共 26 页 - - - - - - - - -23 printf( 修改信息失败!请查正以后重新的操作!nnn); return 0; int monmenu(user *use,dress *d

47、ress) int i; int chose1; while(1) system(cls); printf(n 在线用户:%snn,usertemp.username); printf( /= =用户功能菜单 =/n); printf( / /n); printf( / 1,商品浏览/n); printf( / 2,商品查找/n); printf( / 3,销售员业绩/n); printf( / 4,商品信息修改/n); printf( / 5,密码修改/n); printf( / 6,用户注销/n); printf( / /n); printf( /=/n); printf(n /=请 选择服务的种类=/n); scanf(%d,&chose1); if(chose18) printf( 你的输入有误,请重新的输入!n); system(pasue); continue; switch(chose1) case 1: system(cls); dress

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论