超市商品销售管理系统教材

上传人:无*** 文档编号:92195183 上传时间:2022-05-18 格式:DOCX 页数:70 大小:476.43KB
收藏 版权申诉 举报 下载
超市商品销售管理系统教材_第1页
第1页 / 共70页
超市商品销售管理系统教材_第2页
第2页 / 共70页
超市商品销售管理系统教材_第3页
第3页 / 共70页
资源描述:

《超市商品销售管理系统教材》由会员分享,可在线阅读,更多相关《超市商品销售管理系统教材(70页珍藏版)》请在装配图网上搜索。

1、超市商品销售管理系统 所在学院:光电学院 小组成员:宗恒 罗 超 佳目录1 简况31.1项目背景32 项目设计42.1 软件功能42.2 结构框图52.3 系统开发运行平台63 数据结构设计73.1储存数据73.2部逻辑数据73.3 系统特色:84 系统功能演示124.1 关于界面设计124.2 系统功能演示125 小组分工236 总结247 完整源代码251 简况1.1项目背景超市中商品种类数目庞大,每天需要大量的人力对各类商品进行管理。上架商品需要分类排序,工作人员需要时常去查询是否有某种商品,每天还要检查某种商品是否需要补货,不仅工作量大,而且耗时耗力。因此我们组设计了一个软件,可以随时

2、查询浏览商品信息,对商品信息进行删除修改,并且可以添加新的商品,录入商品销量后在货架余量低于特定值时进行商品上架提醒。在录入每日销量后还可以进行累计销售分析,帮助管理人员确定销售趋势和进货量。2 项目设计2.1 软件功能此软件面向用户分为两部分,主管和工作人员,主管拥有所有权限,包括商品信息管理,货架管理和商品销售管理。工作人员只具有商品查询,商品浏览和补货的功能。在商品信息管理中包括商品添加,商品删除,商品信息修改和商品浏览功能。货架管理中包括补货功能和商品销量录入功能。商品销售管理中包括销售额以与销售分析。此软件还具有商品价格查询,对于录入商品进行分类排序等功能。2.2 结构框图超市商品销

3、售管理系统结构框图2.3 系统开发运行平台Microsoft Word2010Codeblocks10.05Microsoft Visio2010Windows83 数据结构设计3.1储存数据文件储存:这是一个商品销售管理系统。对于goods.txt文件是可读可写,主管有全部修改和查询权限,工作人员仅有对货架剩余量的修改权限和全部查询权限。文件界面操作作用使用时间goods.txt可读可写用于存放商品编码,类型,名称,价格,货架剩余量,警戒值,累计销量。系统初始化时以与修改删除与添加商品时。3.2部逻辑数据商品信息节点struct goods char code6; /商品编码 char ty

4、pe5; /商品种类 char name10; /商品名称 float price; /商品价格 int num; /货架余量 int limited_num; /限定量(低于此值自动提醒补货) int sale_num; /累计销售量 struct goods *next;go;存放商品信息节点的结构体系统初始化后,所有对商品信息的操作都是先对链表进行操作,若有改动,则将改动后的链表重新写入文件。系统初始化后,菜单读到链表中3.3 系统特色1.商品添加:添加商品时自动定位到该类商品末尾。通过添加类型的输入,由一个指针直接指向该类最后一个商品,直接在该类商品后进行添加。避免了添加商品后各种不同

5、类型商品混杂的情况。2.补货功能:在进行商品销量录入时,当商品数量低于限定值时,系统会自动提示货架剩余量过低,请与时补货。在补货功能界面输入商品编码,会显示现在商品余量,添加补货数量即可。3.同类商品销售分析:根据每日录入的销量,可以自动对销量进行累加,可以查询同类商品的累计销售额与销售量,由此可以轻易得出同类商品哪些比较受欢迎,确定销售进货侧重商品种类。4 系统功能演示4.1 关于界面设计追求简约清晰的界面。4.2 系统功能演示开始进入初始化界面 登陆界面 工作人员界面 (密码:222222)主管登陆界面(密码:111111)菜单一:商品信息管理界面 商品添加界面商品删除界面 按名称删除按编

6、码删除 商品信息修改界面 商品浏览界面 货架管理界面 商品销量录入(依次录入) 补货功能界面 商品销量清零 商品销售管理界面 单品日销售额查询 累计销售总额查询界面 同类商品销量分析 (需手动录入商品销售额)5 小组分工学号职责占百分比重1412440112宗恒编写代码与程序调试35%1412120132罗超编写代码与程序调试35%1412480306佳文档文件编写与程序调试30%6 总结通过这次C语言短学期的项目开发,我们充分认识到了团队的重要性,人无完人,每个人都有不足之处,一人不足之处其他人补,方能高效的完成任务。C语言是一门严谨的科学,一处不起眼的错误就可能导致全盘的崩溃,而且系统软件

7、的架构安排,数据结构的选择,以与多种功能的实现使得我们必须小心编写,一遍一遍查漏补缺,从而使系统功能可以正常使用,编码无错误后,会小心改动,优化系统。这次短学期项目锻炼了我们的团队协作能力,也使得我们的思维更加严谨,对于结构有更好的理解,但由于时间匆忙,所以只是列了超市一小部分用于测试功能是否实现,逻辑是否正确,要想做成完整的超市销售管理系统,我们还需多加努力。7 完整源代码/*/* Name: 超市商品管理 */* Author: 罗超 */* 佳 */* 宗恒 */* Version: 3.0 */*/#include#include#include#define line_1 -#def

8、ine line_2 #define line_3 *-/-*-/-*-/-*-/-*-/-*-/-*-/-*-/-*#define line_4 (o)(o)(o)(o)(o)(o)#define NULL (void *)0)#define LEN sizeof(struct goods)int quanxian;int number100;struct goods char code6; /商品编码 char type5; /商品种类 char name10; /商品名称 float price; /商品价格 int num; /货架余量 int limited_num; /限定量(低于

9、此值自动提醒补货) int sale_num; /累计销售量 struct goods *next;go;struct goods *create() /创建链表 struct goods *p,*q,*head; p=head=&go;q=p; FILE *fp; if(fp = fopen(goods.txt, r) = NULL)fprintf(stderr,无法打开文件);exit(0); fscanf(fp,%s%s%s%f%d%d%d,(head-code),(head-type),(head-name),&(head-price),&(head-num),&(head-limit

10、ed_num),&(head-sale_num); head-next=p;while (!feof(fp) q=(struct goods *)malloc(LEN); fscanf(fp,%s%s%s%f%d%d%d,(q-code),(q-type),(q-name),&(q-price),&(q-num),&(q-limited_num),&(q-sale_num); if (feof(fp) break; p-next=q; p=p-next; p-next=NULL;fclose(fp); return head;int login();void menu();void menu_

11、();void menu_1(); /菜单一:商品信息管理void menu_2(); /菜单二:货架管理void menu_3(); /菜单三:商品销售管理void goods_research();void name_research(); /按名称查询void code_research(); /按编码查询void goods_add(); /商品添加void delete(); /商品删除void code_delete();void name_delete();void modification(); /商品信息修改void scan(); /商品浏览void sales_entry

12、(); /商品销量录入void add_number(); /货架商品数量添加(补货)void sale_reset(); /销售量清零void sale_good(); /单品日销售额void sale_goods(); /日销售总额void analyse(); /同类商品分析void main() system(color 3E); puts(n); printf(%snn,line_4);puts(您好 t正在初始化系统,请稍等);puts(按任意键继续n);printf(%sn,line_4);getchar();fflush(stdin);system(cls);int i; i=

13、login(); if(i=1)system(cls);menu(); if(i=2)system(cls);menu_();int login() int i=0;/权限判定 char password_220=222222;/主管密码 char password_120=111111;/工人密码 char password20; puts(请输入登陆密码:); scanf(%s,&password); if(strcmp(password,password_1)!=0&strcmp(password,password_2)!=0) printf(密码错误,请重新输入!); system(c

14、ls); login(); else if(strcmp(password,password_1)=0) i=1; system(cls); quanxian=1; return i; else if(strcmp(password,password_2)=0) i=2; system(cls); quanxian=2; return i; void menu() system(color 3E); printf(%s nn,line_3); printf( 欢迎进入超市商品管理系统nn); printf( %s nn,line_3); printf(请选择你要进入的管理界面:n); prin

15、tf(%s nn,line_2); printf(1.商品信息管理n); printf(2.货架管理n); printf(3.商品销售管理n); printf(0.退出nn); printf(%s nn,line_2); int n; scanf(%d,&n); system(cls); switch(n) case 1:menu_1();break; case 2:menu_2();break; case 3:menu_3();break; case 0:exit(0); void menu_() int i=2; system(color 3E); printf(%s nn,line_3)

16、; printf(t欢迎进入工作人员界面nn); printf(%s nn,line_2); printf(请选择:n); printf(1.商品查询n); printf(2.商品信息浏览n); printf(3.补货n); printf(0.退出n); int n; scanf(%d,&n); int j=2; switch(n) case 1:system(cls);goods_research();break; case 2:system(cls);scan();break; case 3:system(cls);add_number();break; case 0:exit(0); v

17、oid menu_1() int i=1; printf( nnt 商品信息管理n); printf( %s n,line_1); printf(%s nn,line_2); printf(1.商品添加n); printf(2.商品删除n); printf(3.商品信息修改n); printf(4.浏览n); printf(0.返回nn); printf(%s n,line_2); int n; scanf(%d,&n); system(cls); switch(n) case 1:goods_add();break; case 2:delete();break; case 3:modific

18、ation();break; case 4:scan();break; case 0:return menu(); void menu_2() printf(n t 货架管理n); printf( t%s n,line_1); printf(%s nn,line_2); printf(1.商品销量录入n); printf(2.补货n); printf(3.商品销量清零n); printf(0.返回nn); printf(%s n,line_2); int n; scanf(%d,&n); system(cls); switch(n) case 1:sales_entry();break; ca

19、se 2:add_number();break; case 3:sale_reset();break; case 0:return menu(); void menu_3() printf(nt 商品销售管理n); printf( %s n,line_1); printf(%s nn,line_2); printf(1.单品累计销售额查询n); printf(2.累计销售总额查询n); printf(3.同类商品销售分析n); printf(0.返回nn); printf(%s n,line_2); int n; scanf(%d,&n); switch(n) case 1:sale_good

20、();break; case 2:sale_goods();break; case 3:analyse();break; case 0:system(cls);return menu(); void goods_research() /商品查询 printf(n%s,line_3); printf(n请选择查询方式:nn); printf(1:商品名称n2:商品编码n); printf(0:返回n); int ch; scanf(%d,&ch); switch(ch) case 1:system(cls); printf(n%sn,line_3); name_research();break;

21、 case 2:system(cls); printf(n%sn,line_3); code_research();break; case 0: if(quanxian=1)system(cls);menu_1();break; if(quanxian=2)system(cls);menu_();break; void name_research() /按名称查询 fflush(stdin); struct goods *p; char name20 ; printf(请输入商品名称:); printf(输入字符aaaa进入商品信息浏览功能)n); fflush(stdin); scanf(%

22、s,name); char yan20=aaaa;/用于验证跳转 if(strcmp(yan,name)=0) system(cls); scan(); p=create(); while(p!=NULL) if(strcmp(p-name,name)=0) printf(您所查的商品信息为:n) ; printf(编码 种类 名称 价格 货架余量n); printf(%st%st%st%ft%d,p-code,p-type,p-name,p-price,p-num); break; else p=p-next; if(p=NULL) system(cls); printf(您输入的商品有误,

23、请重新输入:n); return name_research(); return goods_research();void code_research() /按编码查询 fflush(stdin); struct goods *p; char code6 ; printf(请输入商品编码:); printf(输入字符aaaa进入商品信息浏览功能)n); fflush(stdin); scanf(%s,code); char yan20=aaaa;/用于验证跳转 if(strcmp(yan,code)=0) system(cls); scan(); p=create(); while(p!=N

24、ULL) if(strcmp(p-code,code)=0) printf(您所查的商品信息为:n) ; printf(编码 种类 名称 价格 货架余量n); printf(%st%st%st%ft%d,p-code,p-type,p-name,p-price,p-num); break; else p=p-next; if(p=NULL) system(cls); printf(您输入的商品有误,请重新输入:n); fflush(stdin); return code_research(); return goods_research();void goods_add() /商品添加 ffl

25、ush(stdin); struct goods *p,*q,*p0,*head,*m; char type6 ; printf(n%sn,line_3); printf(请输入添加商品种类:n); scanf(%s,type); head=q=p=create(); while(p!=NULL) if(strcmp(p-type,type)=0) if(p-next=NULL|(strcmp(p-next-type,type)!=0) break; p=p-next;q=p-next; printf(%st%st%st%ft%dt%dt%dn,p-code,p-type,p-name,p-p

26、rice,p-num,p-limited_num,p-sale_num); p0=(struct goods *)malloc(LEN); p-next=p0;p0-next=q; printf(请在该组数据后添加:n); printf(编码 种类 名称 价格 货架余量 限定量 销售量n); scanf(%s%s%s%f%d%d%d,(p0-code),(p0-type),(p0-name),&(p0-price),&(p0-num),&(p0-limited_num),&(p0-sale_num); FILE *fp; fp=fopen(goods.txt,w); while(head!=N

27、ULL) fprintf(fp,%st%st%st%ft%dt%dt%dn,head-code,head-type,head-name,head-price,head-num,head-limited_num,head-sale_num); head=head-next; fclose(fp); printf(n请选择:n); printf(1:继续添加n); printf(0:返回n); int n; scanf(%d,&n); while(n!=1&n!=0) printf(输入错误,请重新输入!n); scanf(%d,&n); switch(n) case 1:system(cls);

28、goods_add();break; case 0: if(quanxian=1)system(cls);menu_1();break; if(quanxian=1)system(cls);menu_();break; void modification() /商品修改 fflush(stdin); struct goods *p,*head; char name20 ;char ch; printf(n%sn,line_3); printf(请输入您想修改商品的名称:); printf(输入字符aaaa进入商品信息浏览功能)n); fflush(stdin); scanf(%s,name);

29、 char yan20=aaaa;/用于验证跳转 if(strcmp(yan,name)=0) system(cls); scan(); p=head=create(); while(p!=NULL) if(strcmp(p-name,name)=0) printf(您所将要修改的商品信息为:n) ; printf(编码 种类 名称 价格 货架余量 限定量 销售量n); printf(%st%st%st%ft%dt%dt%d,p-code,p-type,p-name,p-price,p-num,p-limited_num,p-sale_num); break; else p=p-next; i

30、f(p=NULL) system(cls); printf(您输入的商品有误,请重新输入:n); return modification(); printf(n请选择:n); printf(1:修改信息n2:返回n); fflush(stdin); ch=getchar(); switch(ch) case1:printf(请输入修改后的信息:n); printf(编码 种类 名称 价格 货架余量 限定量 销售量n); scanf(%s%s%s%f%d%d%d,(p-code),(p-type),(p-name),&(p-price),&(p-num),&(p-limited_num),&(p

31、-sale_num); FILE *fp; fp=fopen(goods.txt,w); while(head!=NULL) fprintf(fp,%st%st%st%ft%dt%dt%dn,head-code,head-type,head-name,head-price,head-num,head-limited_num,head-sale_num); head=head-next; fclose(fp);break; case2: system(cls); menu_1();break; printf(请选择:n); printf(1:继续修改n); printf(0:返回n); int

32、n; scanf(%d,&n); while(n!=1&n!=0) printf(输入错误,请重新输入!n); scanf(%d,&n); switch(n) case 1:system(cls);modification();break; case 0:system(cls);menu_1();break; void delete() /商品删除 fflush(stdin); printf(n%sn,line_3); printf(请选择:n); printf(1:按名称查找删除n2:按编码查找删除n); printf(0:返回n); int n; scanf(%d,&n); switch(

33、n) case 1:system(cls); name_delete();break; case 2:system(cls); code_delete();break; case 0: system(cls);menu_1();break; void name_delete() fflush(stdin); struct goods *p1,*p2,*head; char name20 ; printf(n%sn,line_3); printf(请输入商品名称:); head=create(),p1=head,p2=p1; scanf(%s,name); while(p1!=NULL) if(

34、strcmp(p1-name,name)=0) if(p1=head) head=p1-next; else p2-next=p1-next; printf(您删除的商品信息为:n) ; printf(编码 种类 名称 价格 货架余量n); printf(%st%st%st%ft%dt%dt%d,p1-code,p1-type,p1-name,p1-price,p1-num,p1-limited_num,p1-sale_num); break; else p2=p1; p1=p1-next; if(p1=NULL) system(cls); printf(您输入的商品有误,请重新输入:n);

35、return name_research(); FILE *fp; fp=fopen(goods.txt,w); while(head!=NULL) fprintf(fp,%st%st%st%ft%dt%dt%dn,head-code,head-type,head-name,head-price,head-num,head-limited_num,head-sale_num); head=head-next; fclose(fp); printf(n请选择:n); printf(n 1.继续删除); printf(n 0.返回); int n; scanf(%d,&n); while(n!=1

36、&n!=0) printf(输入错误,请重新输入!n); scanf(%d,&n); switch(n) case 0:system(cls);menu_1();break; case 1:system(cls);delete();break; void code_delete() fflush(stdin); struct goods *p1,*p2,*head; char code20 ; printf(n%sn,line_3); printf(请输入商品编码:); head=create(),p1=head,p2=p1; scanf(%s,code); while(p1!=NULL) i

37、f(strcmp(p1-code,code)=0) if(p1=head) head=p1-next; else p2-next=p1-next; printf(您删除的商品信息为:n); printf(编码 种类 名称 价格 货架余量n); printf(%st%st%st%ft%dt%dt%d,p1-code,p1-type,p1-name,p1-price,p1-num,p1-limited_num,p1-sale_num); break; else p2=p1; p1=p1-next; if(p1=NULL) system(cls); printf(您输入的编码有误,请重新输入:n);

38、 return code_research(); FILE *fp; fp=fopen(goods.txt,w); while(head!=NULL) fprintf(fp,%st%st%st%ft%dt%dt%dn,head-code,head-type,head-name,head-price,head-num,head-limited_num,head-sale_num); head=head-next; fclose(fp); printf(n请选择:n); printf(n 1.继续删除); printf(n 0.返回); int n; scanf(%d,&n); while(n!=

39、1&n!=0) printf(输入错误,请重新输入!n); scanf(%d,&n); switch(n) case 0:system(cls);menu_1();break; case 1:system(cls);delete();break; void scan() fflush(stdin); char ch; FILE *fp; printf(n%sn,line_3); printf(编码 种类 名称 价格 货架余量 限定量 销售量n); if (fp = fopen(goods.txt, r) = NULL)fprintf(stderr,无法打开文件);exit(0);ch=fget

40、c(fp);while(ch!=EOF) putchar(ch); ch=fgetc(fp);fclose(fp);printf(按任意键返回上一级菜单n);fflush(stdin);char chee; chee=getchar();system(cls); switch(quanxian) case 1:menu_1();break; case 2:menu_();break; void sales_entry() /商品销量录入 fflush(stdin); printf(n%sn,line_3); struct goods *p,*head; p=head=create(); int

41、 n=0,i=0; while(p!=NULL) printf(nn昨天%s的剩余量为:%d,p-name,p-num); printf(n请输入今天的销量:); scanf(%d,&numbern); while(p-num-numbernsale_num=numbern+p-sale_num; p-num=p-num-numbern; n=n+1; printf(剩余量为:%d,p-num); if(p-numlimited_num) printf(n 商品货架存量偏少,请与时补充货架); p=p-next; FILE *fp; fp=fopen(goods.txt,w); while(h

42、ead!=NULL) fprintf(fp,%st%st%st%ft%dt%dt%dn,head-code,head-type,head-name,head-price,head-num,head-limited_num,head-sale_num); head=head-next; fclose(fp); printf(nn); system(cls); return menu_2();void add_number() /货架商品数量添加(补货) fflush(stdin); printf(n%sn,line_3); struct goods *p; char code6 ;struct

43、goods *head; printf(请输入你要添加货物的商品编码:); printf(输入字符aaaa进入商品信息浏览功能)n); fflush(stdin); scanf(%s,code); char yan20=aaaa;/用于验证跳转 if(strcmp(yan,code)=0) system(cls); scan(); head=p=create(); while(p!=NULL) if(strcmp(p-code,code)=0) printf(n你所添加的商品剩余量为:%d,p-num); int n; printf(n请输入你所要添加的商品数量:n); scanf(%d,&n

44、); p-num=p-num+n; printf(n现在商品剩余量为:%d,p-num); break; else p=p-next; /struct goods *head; FILE *fp; fp=fopen(goods.txt,w); /head=create(); while(head!=NULL) fprintf(fp,%st%st%st%ft%dn,head-code,head-type,head-name,head-price,head-num); head=head-next; fclose(fp); if(p=NULL) system(cls); printf(您输入的商品有误,请重新输入:n); return add_number(); printf(n1.继续选择添加); printf(n0.返回n); int i ; scanf(%d,&i); while(i!=1&i!=0) printf(输入错误,请重新输入!n); scanf(%d,&i); switch(i) case 1:add_number(); case 0: if(

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!