当前位置:文档之家› 服装销售系统

服装销售系统

服装销售系统一、【题目】:服装销售系统【要求】(1)系统包含三类用户:管理员、店长、销售员。

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

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

(3)向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息。

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

[提示](1)总体设计:整个服装销售系统可设计为管理员模块、店长模块、销售员模块、商品模块等。

(2)数据结构采用结构体。

二、结构图根据需求分析,该程序中销售员应实现如下功能:商品浏览、用户信息修改、统计。

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

具体结构图如下。

三、程序中典型的流程图分析(一)添加模块(1)分析:信息添加模块职工的基本信息包括:用户、商品基本信息,对它们输入后,要存进原文件,流程图如下。

(二)浏览模块(1)分析:浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采用直接查找的办法。

在容错上有较好的能力,输错时系统会有提示,也会作出相应的反映。

算法和以上的分程序有相同的优点。

[流程(三)查询模块(1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。

但本程序只使用了一种。

在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序的缘故。

程序在选择结构上采用了if和else的嵌套形式,看起来有点繁杂,没有用switch语句直观明了,这个地方可以改成更好的。

(四)删除模块(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要删掉的内容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。

可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。

在对文件进行删除时,考虑到很多方面,如:查询不到时系统该如何处理等。

人性化设计有在删除之前询问是否继续。

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

四、题目分析1、按照系统需要三类用户用它作为主函数:int main(){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){if(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/=============================请选择服务的种类========================/\n");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(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、当选择管理员的时候就用如下程序,注明(管理员的初始账号是admin,密码是123456)int regnew(user *use){ char name[21];char pass[7]={0};int chose;int i,j;int type;while(1){system("cls");printf("用户名:");scanf("%s",&name);printf("密码:");for(i=0;i<6;i++){ pass[i]=getch();printf("*");}printf("\n\n请输入用户的类型:0,销售员1,店长");scanf("%d",&type);while(1){ printf("\n\n 用户注册信息入完毕,是否确认? 1,确认0,重新输入\n");scanf("%d",&chose);if(chose!=1&&chose!=0){ printf(" 你的输入有误,请重新的输入!\n");continue;}if(chose==1){ for(i=0;i<usernum+1;i++)if(use[i].flag==0){printf("注册成功!请继续使用!\n");strcpy(use[i].username,name);strcpy(use[i].pass,pass);usernum++;use[i].flag=1;use[i].type=type;return 1;}}else break;}}}int deluser(user *use){ int i;char name[20];printf(" 请输入你想要删除的用户的用户名:");scanf("%s",name);for(i=0;i<200;i++){ if(strcmp(use[i].username,name)==0){ printf("\n\n\n 用户%s 删除成功!\n\n\n\n",name);strcpy(use[i].username,"unknown");use[i].flag=-1;return 1;}}printf(" 用户%s 不存在!请查正在次操作!\n\n\n\n",name);return 0;}int useall(user *use){ int i;system("cls");printf(" 销售人员:\n");for(i=0;i<200;i++){ if(use[i].type==0){ if(use[i].flag==1)printf(" 用户姓名:%s 用户密码:%s \n",use[i].username,use[i].pass);}}printf(" 店长:\n");for(i=0;i<200;i++){ if(use[i].type==1){ if(use[i].flag==1)printf(" 用户姓名:%s 用户密码:%s\n",use[i].username,use[i].pass);}}}int adminload(ADMIN *adm) { char name[21];char pass[7]={0};int chose,chose2;int i,j;while(1){system("cls");printf("管理员账号:");scanf("%s",&name);printf("密码:");for(i=0;i<6;i++){pass[i]=getch();printf("*");}while(1){printf("\n\n 用户登陆信息输入完毕,是否确认? 1,确认0,重新输入\n");scanf("%d",&chose);if(chose!=1&&chose!=0){printf("你的输入有误,请重新的输入!\n");continue;}if(chose==1){if(strcmp(adm->name,name)==0)if(strcmp(adm->pass,pass)==0){printf("登陆成功!请继续使用!\n");strcpy(ername,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 adminpass(ADMIN *adm){ int i;char pass[20]={0};char pass2[20]={0};while(1){system("cls");printf(" 请输入新的管理员密码:");for(i=0;i<6;i++){ pass[i]=getch();printf("*");}printf("\n\n\n 请再次输入新的管理员密码:");for(i=0;i<6;i++){pass2[i]=getch();printf("*");}if(strcmp(pass,pass2)!=0){ printf("\n\n 两次输入的新的密码不一样,请重新的输入!\n\n\n");system("pause");}else{printf("\n 密码修改成功!下一次管理员登陆请使用新的密码!\n\n\n");strcpy(adm->pass,pass);system("pause");return 1;}}}int adminout(){ int chose;while(1){ system("cls");printf(" 你确定要注销吗?1,注销0,取消\n\n");scanf("%d",&chose);if(chose!=0&&chose!=1){ printf(" 你的选项出现了错误,请重新的输入!\n\n\n");system("pasue");continue;}if(chose==1){printf("管理员账户注销完毕!!\n\n\n\n");system("pause");return 1;}else return 0;}}int out(){ int chose;system("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在线用户:%s\n\n",ername);printf("//=======用户功能菜单=====//\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");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);system("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");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("cls");if(out()==1) continue;break;}default: continue;}}}int userload(user *use){ char name[21];char pass[7]={0};int chose,chose2;int i,j;while(1){system("cls");printf("用户名:");scanf("%s",&name);printf("密码:");for(i=0;i<6;i++){pass[i]=getch();printf("*");}while(1){printf("\n\n 用户登陆信息输入完毕,是否确认? 1,确认0,重新输入\n");scanf("%d",&chose);if(chose!=1&&chose!=0){printf("你的输入有误,请重新的输入!\n");continue;}if(chose==1){ for(i=0;i<200;i++){if(use[i].type==0)if(strcmp(use[i].username,name)==0)if(strcmp(use[i].pass,pass)==0){printf("登陆成功!请继续使用!\n");strcpy(ername,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;}}}这里面包含了管理员的十个功能选项。

相关主题