版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、【题目】:服装销售系统【要求】(1)系统包含三类用户:管理员、店长、销售员。(2)向管理员提供以下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。 商品信息添加、修改、删除、查找、统计。(3) 向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、 商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备 信息。(4)向销售员提供以下功能:商品浏览、查找、出售,查看自己本日报表、本月报表。提示(1)总体设计:整个服装销售系统可设计为管理员模块、店长模块、销售员模块、商品 模块等。(2)数据结构采用结构体。二、结构图根据需求分析,该程序中销售员应
2、实现如下功能:商品浏览、商品查找、出售商品、销售记录、用户注销,具体结构图如下。出售商品销售记录用户注销店长应实现如下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销 售量报表、查找浏览器修改商品储备信息,具体结构图如下。管理员需要实现如下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。具体结构图如下。三、程序中典型的流程图分析(一)添加模块(1)分析:信息添加模块职工的基本信息包括:用户、商品基本信息,对它们 输入后,要存进原文件,流程图如下。(二) 浏览模块(1)分析:浏览功能首先需要查找信
3、息是否存在,在查找时,因为磁盘文件 无序,所以采用直接查找的办法。在容错上有较好的能力,输错时系统会有提示, 也会作出相应的反映。算法和以上的分程序有相同的优点。流程(三)查询模块(1)分析:基本信息的查询按查询方式: 按商品的名称查询,可供选择的方式比较丰富。但本程序只使用了一种。 在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序的缘故。程序在选择结构上采用了if和else的嵌套形式,看起来有点繁杂,没有用switch语句直观明了,这个地方可以改成更好的。开始商品的名称结束输出错误信息(四)删除模块(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中 把要删掉的内
4、容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦 琐。可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入 时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到 很多方面,女口:查询不到时系统该如何处理等。人性化设计有在删除之前询问是 否继续。流程图五)修改模块(1)分析:修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算 法比较合理,但有一点烦琐,可以改进。四、题目分析1、按照系统需要三类用户用它作为主函数:int main()user *use; DRESS *dress;
5、 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)if(first(use,adm,dress)=3) continue;2、三类用户的选择登陆为int *first(user *use,ADMIN *adm,DRESS *dress) int chose;int temp
6、,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 /= 请 选 择 服 务 的 种 类 =/n"
7、);scanf("%d",&chose); if(chose<1|chose>5)printf(" 你的选择出现错误!按任意键重新的进入选择菜单! n"); system("pause");continue;switch(chose)case 1: system("cls");if(userload(use)=1) usermenu(use,dress);system("pause");break;case 2: system("cls");if(monl
8、oad(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、当选择管理员的时候就用如下程序,注明(管理员的初始账号是admin,密码是123456)int regnew(user *use) cha
9、r name21;char pass7=0;int chose;int i,j;int type;while(1)system("cls");printf(" scanf("%s",&name);printf("for(i=0;i<6;i+) passi=getch(); printf("*");printf("nnscanf("%d",&type);while(1) printf("nn输入 n");scanf("%d",
10、&chose); if(chose!=1&&chose!=0) printf(" continue; if(chose=1) for(i=0;i<usernum+1;i+)if(usei.flag=0)用户名: ");密 码: ");请输入用户的类型: 0,销售员 1,店长 ");用户注册信息入完毕,是否确认 ? 1,确认 0,重新你的输入有误,请重新的输入! n");注册成功!请继续使用! n");printf(" strcpy(usei.username,name); strcpy(usei
11、.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;i<200;i+) if(strcmp(usei.username,name)=0) printf("nnn 用户 %s 删除成功! nnnn",name); strcpy(usei.username,&q
12、uot;unknown"); usei.flag=-1; return 1;printf(" 用户 %s 不存在!请查正在次操作! nnnn",name);return 0;int useall(user *use) int i;system("cls");printf(" 销售人员: n");for(i=0;i<200;i+) if(usei.type=0) if(usei.flag=1)%s%sprintf(" 用 户 姓 名 : %s 用 户 密 码 : n",usei.username,us
13、ei.pass);printf(" 店长: n");for(i=0;i<200;i+) if(usei.type=1) if(usei.flag=1)printf(" 用 户 姓 名 : %s 用 户 密 码 : n",usei.username,usei.pass);int adminload(ADMIN *adm) char name21;char pass7=0;int chose,chose2;int i,j;while(1)system("cls");printf(" 管理员账号: "); scan
14、f("%s",&name);printf(" 密 码: ");for(i=0;i<6;i+) passi=getch(); printf("*");while(1)printf("nn 用户登陆信息输入完毕,是否确认 ? 1,确认 0,重 新输入 n");scanf("%d",&chose); if(chose!=1&&chose!=0)printf(" 你的输入有误,请重新的输入! n"); continue; if(chose=1)
15、if(strcmp(adm->name,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) system("cls"); break;else system("cls");
16、 return 0; if(chose=0) break;int adminpass(ADMIN *adm) int i;char pass20=0;char pass220=0;while(1)system("cls");printf(" 请输入新的管理员密码: ");for(i=0;i<6;i+) passi=getch(); printf("*");printf("nnn 请再次输入新的管理员密码: ");for(i=0;i<6;i+)pass2i=getch(); printf("*&
17、quot;);if(strcmp(pass,pass2)!=0) printf("nn 两次输入的新的密码不一样,请重新的输入! nnn"); system("pause");elseprintf("n 密码修改成功!下一次管理员登陆请使用新的密码!nnn");strcpy(adm->pass,pass); system("pause");return 1;int adminout() int chose;while(1) system("cls");printf(" 你确定要注
18、销吗? 1,注销 0,取消 nn"); scanf("%d",&chose);if(chose!=0&&chose!=1) printf(" 你的选项出现了错误,请重新的输入! nnn"); system("pasue");continue;if(chose=1)printf(" system("pause");管理员账户注销完毕! ! nnnn");return 1; else return 0;int out() int chose; system(&quo
19、t;cls");printf(" 真的要退出系统吗?退出后信息会全部的丢失!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("/= _用户功冃能采
20、单/n")printf("/n");printf("/1,添加用户/n");printf("/2,删除用户/n");printf("/3,统计用户/n");printf("/4,添加商品/n");printf("/5,删除商品/n");printf("/6,查找商品/n");printf("/7,商品统计/n");printf("/8,修改密码/n");printf("/9,注销账户/n"
21、;);printf("/0 ,退出系统/n");printf("/_/n")printf("n /= 请 选 择 服 务 的 种 类 =/n");scanf("%d",&chose1); if(chose1<0|chose1>9)printf(" 你的输入有误,请重新的输入! n"); system("pasue");continue;switch(chose1)case 1:system("cls"); regnew(use); sy
22、stem("pause"); break;case 2:system("cls"); deluser(use); system("pause"); break;case 3:system("cls"); useall(use); system("pause"); break;case 4:system("cls"); adddress(dress); system("pasue"); break;case 5:system("cls")
23、; deldress(dress); break;case 6:system("cls"); finddress(dress); break;case 7:system("cls"); dressall(dress);system("pasue");break;case 8:system("cls");if(adminpass(adm)=1) continue;break;case 9:system("cls");if(adminout()=1) return 3;case 0:system(&
24、quot;cls"); if(out()=1) continue; break;default: continue;int userload(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;i<6;i+)passi=getch();printf("*&
25、quot;);while(1)用户登陆信息输入完毕,是否确认 ? 1,确认 0,重printf("nn新输入 n"); scanf("%d",&chose); if(chose!=1&&chose!=0) printf(" 你的输入有误,请重新的输入! n"); continue;if(chose=1) for(i=0;i<200;i+)if(usei.type=0)if(strcmp(usei.username,name)=0) if(strcmp(usei.pass,pass)=0) printf(&
26、quot; 登陆成功! 请继续使用!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;这里面包含了管理员的十个功能选项。4,选择销售员和店长, (注明第一次运行时本来没有销售员和店
27、长,需要管理员添加。)int userout() int chose;while(1) system("cls");printf("n 在线用 户: %snn",usertemp.username);printf(" 你确定要注销吗? 1,注销 0,取消 nn"); scanf("%d",&chose);if(chose!=0&&chose!=1)printf(" 你的选项出现了错误,请重新的输入! nnn"); system("pasue");con
28、tinue; if(chose=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.usernam
29、e);printf(" 请输入要出售的商品的名称: "); scanf("%s",&name);printf("n 请输入出售的数量: "); scanf("%d",&num);for(k=0;k<200;k+) if(strcmp(usek.username,usertemp.username)=0) for(i=0;i<500;i+) if(strcmp(,name)=0) if(dressi.now<num) break; dressi.now=dres
30、si.now-num;printf("nnn 商品 %s 已经销售出了 %d 件 n",name,num); for(j=0;j<100;j+)if(usek.mdbj.flag=0)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,usertemp.u
31、sername);system("cls");printf("n户: %snn",usertemp.username);for(i=0;i<100;i+) if(strcmp(usei.username,name)=0) for(j=0;j<100;j+)if(usei.mdbj.flag=1)printf(" 商 品 名 称 : %s , 出量 : %dn",,usei.mdbj.total);int usermenu(user *use,DRESS *dress) int i;int cho
32、se1;while(1)system("cls");printf("n户: %snn",usertemp.username);在线用售数在线用prin tf(”/=用户功能菜单=/n");printf("/n");printf("/1,商品浏览/n");printf("/2,商品查找/n");printf("/3,出售商品/n");printf("/4,销售记录/n");printf("/5,用户注销/n");printf(&
33、quot;/n");printf("/n");printf("/=/n");printf("n/= 请 选 择服务的种类=/n"); scanf("%d",&chose1); if(chose1<0|chose1>9)printf(" 你的输入有误,请重新的输入! n"); system("pasue");continue; switch(chose1)case 1: system("cls"); dressall(dress
34、); break;case 2: system("cls"); finddress(dress); break;case 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;default:
35、continue;int monpass(user *use) int i;char pass20=0;char pass220=0;while(1) printf(" 请输入新的密码: ");for(i=0;i<6;i+)passi=getch(); printf("*");printf("nnn 请再次输入新的密码: ");for(i=0;i<6;i+)pass2i=getch(); printf("*");if(strcmp(pass,pass2)!=0)nnn");printf(&qu
36、ot;nn 两次输入的新的密码不一样,请重新的输入! system("pause");elsennn");printf("n 密码修改成功!下一次登陆请使用新的密码! for(i=0;i<200;i+)if(strcmp(usei.username,usertemp.username)=0)strcpy(usei.pass,pass); system("pause");return 1;在线用出售数1,确认 0,重你的输入有误,请重新的输入! n");void monsee(user *use) int i;int j
37、;char name20; system("cls");printf("n户: %snn",usertemp.username);for(i=0;i<100;i+) if(usei.flag=1&&usei.type=0)printf(" 销售员姓名: %sn",usei.username); for(j=0;j<100;j+)if(usei.mdbj.flag=1) printf(" 商 品 名 称 : %s 量 : %dn",,usei.mdbj.tota
38、l);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;i<6;i+)passi=getch(); printf("*"); while(1) printf("nn 用户登陆信息输入完毕,是否确认 新输入 n"
39、;);scanf("%d",&chose); if(chose!=1&&chose!=0) printf("continue;if(chose=1)for(i=0;i<200;i+)if(usei.type=1)if(strcmp(usei.username,name)=0) if(strcmp(usei.pass,pass)=0)printf("登陆成功! 请继续使用!n");strcpy(usertemp.username,name);return 1;printf(" 输入的用户名或者密码有误! 1
40、,重新登陆 2,退出登陆! n");scanf("%d",&chose2); if(chose2=1)system("cls"); break;elsesystem("cls"); return 0; if(chose=0) break;int monout()int chose;while(1) system("cls"); printf("n 在线用 户: %snn",usertemp.username);printf("你确定要注销吗? 1,注销 0,取消 nn
41、");scanf("%d",&chose); if(chose!=0&&chose!=1)printf(" 你的选项出现了错误,请重新的输入! system("pasue");continue; if(chose=1)printf(" 店长账户注销完毕! ! nnnn"); strcpy(usertemp.username,"unknown");return 1;else return 0;int fix(DRESS *dress)char name20,name220;
42、int total;int now;int i;system("cls");printf("n户: %snn",usertemp.username);printf(" 请输入需要修改信息的商品的名称: "); scanf("%s",&name) ;for(i=0;i<500;i+) if(strcmp(,name)=0) printf(" 商 品 信 息 : n 名 称 : %s, 现 存 : 共: %dn",,dressi.now,dr
43、essi.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("n
44、n");nnn");在线用%d, 总名称: s,现存: %d,总nprintf(" 修改以后的商品信息:共: %dn",,dressi.now,dressi.total);return 1;printf(" 修改信息失败!请查正以后重新的操作! ! nnn");return 0;int monmenu(user *use,DRESS *dress)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("/=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济南保险内部控制制度
- 乌海职业技术学院《材料科学基础与热加工工艺》2024-2025学年第二学期期末试卷
- 焦作财政内部控制制度
- 煤矿内部监管制度及流程
- 环卫中心内部控制制度
- 甲方内部奖惩制度范本
- 监理协会内部管理制度
- 硅藻泥内部管理制度大全
- 科研单位内部审计制度
- 管理人内部规章制度
- 2025年湖南生物机电职业技术学院单招综合素质考试题库及答案解析
- 2026年乌兰察布职业学院单招职业技能测试题库含答案详解(新)
- 第三方支付外包服务合作相关制度
- 2026年及未来5年市场数据中国电炉钢行业市场全景监测及投资战略咨询报告
- 私宴服务礼仪培训
- 2025-2026学年教科版(新教材)小学科学三年级下册(全册)课时练习(附目录)
- 安全环保检查表(样表)
- 雨课堂学堂在线学堂云商务英语翻译(Business English Translation Interpretation)西北工业大学单元测试考核答案
- 2025年甘肃省平凉市崆峒区上杨回族乡新庄湾村招聘行政村村文书备考题库及答案详解(全优)
- 地调局考试试题及答案
- 医院无菌技术操作规范
评论
0/150
提交评论