1、C语言课程设计服装销售系统C语言课程设计-服装销售系统服装销售系统一.【要求】(1)系统包含三类用户:管理员、店长、销售员。(2)向管理员提供以下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。(3)向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息。(4)向销售员提供以下功能:商品浏览、查找、出售,查看自己本日报表、本月报表。(5)提示(1)总体设计:整个服装销售系统可设计为管理员模块、店长模块、销售员模块、商品模块等。(2)数据结构采用结构体。
2、(1)分析:信息添加模块职工的基本信息包括:用户、商品基本信息,对它们输入后,要存进原文件,流程图如下。文件打开否 输入信息是否继续将信息输出到磁盘调用printf_back()函数结束开始输出错误信息(二)浏览模块(1)分析:浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采用直接查找的办法。在容错上有较好的能力,输错时系统会有提示,也会作出相应的反映。算法和以上的分程序有相同的优点。流程开始打开文件否输出错误信息查找商品信息是否查找到输出商品信息操作存盘是否继续结束(三)查询模块(1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。但本程序只使用
3、了一种。在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无序的缘故。程序在选择结构上采用了if和else的嵌套形式,看起来有点繁杂。开始文件打开查询方式是否继续结束输出错误信息商品的名称(四)删除模块(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要删掉的内容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到很多方面,如:查询不到时系统该如何处理等。人性化设计有在删除之前询问是否继续。流程图开始文件打开查找商品信息是否查
4、找到输入信息是否继续结束输出错误信息删除操作五)修改模块(1)分析:修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐,可以改进。开始文件打开查找职工信息是否查找到输入信息是否继续结束输出错误信息修改操作四、题目分析1、按照系统需要三类用户用它作为主函数:int main() user *use; DRESS *dress; ADMIN *adm; use=(user *)malloc(200*sizeof(user); userIntiate(use); adm=(ADMIN *)malloc
5、(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);
6、printf( / 1,销售员登陆 /n); printf( / 2,店长登陆 /n); printf( / 3,管理员登陆 /n); printf( / /n); printf( /=/n); printf(n /=请选择服务的种类=/n); scanf(%d,&chose); if(chose5) printf( 你的选择出现错误!按任意键重新的进入选择菜单!n); system(pause); continue; switch(chose) case 1: system(cls); if(userload(use)=1) usermenu(use,dress); system(pause
7、); 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)int regnew(user *use) char
8、 name21; char pass7=0; int chose; int i,j; int type; while(1) system(cls); printf( 用户名:); scanf(%s,&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!=
9、0) printf( 你的输入有误,请重新的输入!n); continue; if(chose=1) for(i=0;iusernum+1;i+) if(usei.flag=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( 请输入你想要删除的用户的用户名:); sca
10、nf(%s,name); for(i=0;i200;i+) 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); printf( 销售人员:n); for(i=0;i200;i+) if(usei.type=0) if(usei.f
11、lag=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 pass7=0; int chose,chose2; int i,j; while(1) system(cls); printf( 管理员账号:); sc
12、anf(%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) 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) system(cls); printf( 请输入新的管理员密码:);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1