超市商品销售管理系统项目设计报告.docx
《超市商品销售管理系统项目设计报告.docx》由会员分享,可在线阅读,更多相关《超市商品销售管理系统项目设计报告.docx(70页珍藏版)》请在咨信网上搜索。
超市商品销售管理系统 所在学院:光电学院 小组成员:谢宗恒 罗 超 郑 佳 目录 1 简况 3 1.1项目背景 3 2 项目设计 4 2.1 软件功能 4 2.2 结构框图 5 2.3 系统开发运行平台 6 3 数据结构设计 7 3.1储存数据 7 3.2内部逻辑数据 7 3.3 系统特色: 8 4 系统功能演示 12 4.1 关于界面设计 12 4.2 系统功能演示 12 5 小组分工 23 6 总结 24 7 完整源代码 25 1 简况 1.1项目背景 超市中商品种类数目庞大,每天需要大量的人力对各类商品进行管理。上架商品需要分类排序,工作人员需要时常去查询是否有某种商品,每天还要检查某种商品是否需要补货,不仅工作量大,而且耗时耗力。因此我们组设计了一个软件,可以随时查询浏览商品信息,对商品信息进行删除修改,并且可以添加新的商品,录入商品销量后在货架余量低于特定值时进行商品上架提醒。在录入每日销量后还可以进行累计销售分析,帮助管理人员确定销售趋势和进货量。 2 项目设计 2.1 软件功能 此软件面向用户分为两部分,主管和工作人员,主管拥有所有权限,包括商品信息管理,货架管理和商品销售管理。工作人员只具有商品查询,商品浏览和补货的功能。在商品信息管理中包括商品添加,商品删除,商品信息修改和商品浏览功能。货架管理中包括补货功能和商品销量录入功能。商品销售管理中包括销售额以及销售分析。此软件还具有商品价格查询,对于录入商品进行分类排序等功能。 2.2 结构框图 超市商品销售管理系统结构框图 2.3 系统开发运行平台 Microsoft Word2010 Codeblocks10.05 Microsoft Visio2010 Windows8 3 数据结构设计 3.1储存数据 文件储存:这是一个商品销售管理系统。 对于goods.txt文件是可读可写,主管有全部修改和查询权限,工作人员仅有对货架剩余量的修改权限和全部查询权限。 文件 界面操作 作用 使用时间 goods.txt 可读可写 用于存放商品编码,类型,名称,价格,货架剩余量,警戒值,累计销量。 系统初始化时以及修改删除及添加商品时。 3.2内部逻辑数据 商品信息节点 struct goods { char code[6]; //商品编码 char type[5]; //商品种类 char name[10]; //商品名称 float price; //商品价格 int num; //货架余量 int limited_num; //限定量(低于此值自动提醒补货) int sale_num; //累计销售量 struct goods *next; }go; ————>存放商品信息节点的结构体 系统初始化后,所有对商品信息的操作都是先对链表进行操作,若有改动,则将改动后的链表重新写入文件。 【系统初始化后,菜单读到链表中】 3.3 系统特色 1.商品添加:添加商品时自动定位到该类商品末尾。通过添加类型的输入,由一个指针直接指向该类最后一个商品,直接在该类商品后进行添加。避免了添加商品后各种不同类型商品混杂的情况。 2.补货功能:在进行商品销量录入时,当商品数量低于限定值时,系统会自动提示货架剩余量过低,请及时补货。在补货功能界面输入商品编码,会显示现在商品余量,添加补货数量即可。 3.同类商品销售分析:根据每日录入的销量,可以自动对销量进行累加,可以查询同类商品的累计销售额及销售量,由此可以轻易得出同类商品哪些比较受欢迎,确定销售进货侧重商品种类。 4 系统功能演示 4.1 关于界面设计 追求简约清晰的界面。 4.2 系统功能演示 开始进入初始化界面 登陆界面 工作人员界面 (密码:222222) 主管登陆界面 (密码:111111) 菜单一:商品信息管理界面 商品添加界面 商品删除界面 按名称删除 按编码删除 商品信息修改界面 商品浏览界面 货架管理界面 商品销量录入(依次录入) 补货功能界面 商品销量清零 商品销售管理界面 单品日销售额查询 累计销售总额查询界面 同类商品销量分析 (需手动录入商品销售额) 5 小组分工 学号 姓名 职责 占百分比重 1412440112 谢宗恒 编写代码及程序调试 35% 1412120132 罗超 编写代码及程序调试 35% 1412480306 郑佳 文档文件编写及程序调试 30% 6 总结 通过这次C语言短学期的项目开发,我们充分认识到了团队的重要性,人无完人,每个人都有不足之处,一人不足之处其他人补,方能高效的完成任务。C语言是一门严谨的科学,一处不起眼的错误就可能导致全盘的崩溃,而且系统软件的架构安排,数据结构的选择,以及多种功能的实现使得我们必须小心编写,一遍一遍查漏补缺,从而使系统功能可以正常使用,编码无错误后,会小心改动,优化系统。 这次短学期项目锻炼了我们的团队协作能力,也使得我们的思维更加严谨,对于结构有更好的理解,但由于时间匆忙,所以只是列了超市一小部分用于测试功能是否实现,逻辑是否正确,要想做成完整的超市销售管理系统,我们还需多加努力。 7 完整源代码 /*******************************/ /* Name: 超市商品管理 */ /* Author: 罗超 */ /* 郑佳 */ /* 谢宗恒 */ /* Version: 3.0 */ /*******************************/ #include<stdio.h> #include<stdlib.h> #include<malloc.h> #define line_1 "--------------------" #define 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 number[100]; struct goods { char code[6]; //商品编码 char type[5]; //商品种类 char name[10]; //商品名称 float price; //商品价格 int num; //货架余量 int limited_num; //限定量(低于此值自动提醒补货) 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->limited_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_(); 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(); //商品销量录入 void add_number(); //货架商品数量添加(补货) void sale_reset(); //销售量清零 void sale_good(); //单品日销售额 void sale_goods(); //日销售总额 void analyse(); //同类商品分析 void main() { system("color 3E"); puts("\n"); printf("%s\n\n",line_4); puts("您好 ~\t正在初始化系统,请稍等~~"); puts("按任意键继续\n"); printf("%s\n",line_4); getchar(); fflush(stdin); system("cls"); int i; i=login(); if(i==1){system("cls");menu();} if(i==2){system("cls");menu_();} } int login() { int i=0;//权限判定 char password_2[20]="222222";//主管密码 char password_1[20]="111111";//工人密码 char password[20]; puts("请输入登陆密码:"); scanf("%s",&password); if(strcmp(password,password_1)!=0&&strcmp(password,password_2)!=0) { printf("密码错误,请重新输入!!!!"); system("cls"); 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 \n\n",line_3); printf(" 欢迎进入超市商品管理系统\n\n"); printf(" %s \n\n",line_3); printf("请选择你要进入的管理界面:\n"); printf("%s \n\n",line_2); printf("1.商品信息管理\n"); printf("2.货架管理\n"); printf("3.商品销售管理\n"); printf("0.退出\n\n"); printf("%s \n\n",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 \n\n",line_3); printf("\t欢迎进入工作人员界面\n\n"); printf("%s \n\n",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); } } void menu_1() { int i=1; printf(" \n\n\t 商品信息管理\n"); printf(" %s \n",line_1); printf("%s \n\n",line_2); printf("1.商品添加\n"); printf("2.商品删除\n"); printf("3.商品信息修改\n"); printf("4.浏览\n"); printf("0.返回\n\n"); 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:modification();break; case 4:scan();break; case 0:return menu(); } } void menu_2() { printf("\n \t 货架管理\n"); printf(" \t%s \n",line_1); printf("%s \n\n",line_2); printf("1.商品销量录入\n"); printf("2.补货\n"); printf("3.商品销量清零\n"); printf("0.返回\n\n"); printf("%s \n",line_2); int n; scanf("%d",&n); system("cls"); switch(n) { case 1:sales_entry();break; case 2:add_number();break; case 3:sale_reset();break; case 0:return menu(); } } void menu_3() { printf("\n\t 商品销售管理\n"); printf(" %s \n",line_1); printf("%s \n\n",line_2); printf("1.单品累计销售额查询\n"); printf("2.累计销售总额查询\n"); printf("3.同类商品销售分析\n"); printf("0.返回\n\n"); printf("%s \n",line_2); int n; scanf("%d",&n); switch(n) { case 1:sale_good();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请选择查询方式:\n\n"); printf("1:商品名称\n2:商品编码\n"); printf("0:返回\n"); int ch; scanf("%d",&ch); switch(ch) { case 1:system("cls"); printf("\n%s\n",line_3); name_research();break; case 2:system("cls"); printf("\n%s\n",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 name[20] ; printf("请输入商品名称:"); printf("(输入字符‘aaaa’进入商品信息浏览功能)\n"); fflush(stdin); scanf("%s",name); char yan[20]="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("%s\t%s\t%s\t%f\t%d",p->code,p->type,p->name,p->price,p->num); break; } else p=p->next; } if(p==NULL) { system("cls"); printf("您输入的商品有误,请重新输入:\n"); return name_research(); } return goods_research(); } void code_research() //按编码查询 { fflush(stdin); struct goods *p; char code[6] ; printf("请输入商品编码:"); printf("(输入字符‘aaaa’进入商品信息浏览功能)\n"); fflush(stdin); scanf("%s",code); char yan[20]="aaaa";//用于验证跳转 if(strcmp(yan,code)==0) { system("cls"); scan(); } p=create(); while(p!=NULL) { if(strcmp(p->code,code)==0) { printf("您所查的商品信息为:\n") ; printf("编码 种类 名称 价格 货架余量\n"); printf("%s\t%s\t%s\t%f\t%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() //商品添加 { fflush(stdin); struct goods *p,*q,*p0,*head,*m; char type[6] ; printf("\n%s\n",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("%s\t%s\t%s\t%f\t%d\t%d\t%d\n",p->code,p->type,p->name,p->price,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!=NULL) { fprintf(fp,"%s\t%s\t%s\t%f\t%d\t%d\t%d\n",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");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 name[20] ;char ch; printf("\n%s\n",line_3); printf("请输入您想修改商品的名称:"); printf("(输入字符‘aaaa’进入商品信息浏览功能)\n"); fflush(stdin); scanf("%s",name); char yan[20]="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("%s\t%s\t%s\t%f\t%d\t%d\t%d",p->code,p->type,p->name,p->price,p->num,p->limited_num,p->sale_num); break; } else p=p->next; } if(p==NULL) { system("cls"); printf("您输入的商品有误,请重新输入:\n"); return modification(); } printf("\n请选择:\n"); printf("1:修改信息\n2:返回\n"); fflush(stdin); ch=getchar(); switch(ch) { case'1':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->sale_num)); FILE *fp; fp=fopen("goods.txt","w"); while(head!=NULL) { fprintf(fp,"%s\t%s\t%s\t%f\t%d\t%d\t%d\n",head->code,head->type,head->name,head->price,head->num,head->limited_num,head->sale_num); head=head->next; } fclose(fp);break; case'2': system("cls"); menu_1();break; } printf("请选择:\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");modification();break; case 0:system("cls");menu_1();break; } } void delete() //商品删除 { fflush(stdin); printf("\n%s\n",line_3); printf("请选择:\n"); printf("1:按名称查找删除\n2:按编码查找删除\n"); printf("0:返回\n"); int n; scanf("%d",&n); switch(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 name[20] ; printf("\n%s\n",line_3); printf("请输入商品名称:"); head=create(),p1=head,p2=p1; scanf("%s",name); while(p1!=NULL) {- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 商品 销售 管理 系统 项目 设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文