超市商品销售管理系统教材DOCX 70页.docx
《超市商品销售管理系统教材DOCX 70页.docx》由会员分享,可在线阅读,更多相关《超市商品销售管理系统教材DOCX 70页.docx(16页珍藏版)》请在冰豆网上搜索。
超市商品销售管理系统教材DOCX70页
超市商品销售管理系统
所在学院:
光电学院
小组成员:
谢宗恒
罗超
郑佳
1简况
项目背景
超市中商品种类数目庞大,每天需要大量的人力对各类商品进行管理。
上架商品需要分类排序,工作人员需要时常去查询是否有某种商品,每天还要检查某种商品是否需要补货,不仅工作量大,而且耗时耗力。
因此我们组设计了一个软件,可以随时查询浏览商品信息,对商品信息进行删除修改,并且可以添加新的商品,录入商品销量后在货架余量低于特定值时进行商品上架提醒。
在录入每日销量后还可以进行累计销售分析,帮助管理人员确定销售趋势和进货量。
2项目设计
软件功能
此软件面向用户分为两部分,主管和工作人员,主管拥有所有权限,包括商品信息管理,货架管理和商品销售管理。
工作人员只具有商品查询,商品浏览和补货的功能。
在商品信息管理中包括商品添加,商品删除,商品信息修改和商品浏览功能。
货架管理中包括补货功能和商品销量录入功能。
商品销售管理中包括销售额以及销售分析。
此软件还具有商品价格查询,对于录入商品进行分类排序等功能。
结构框图
超市商品销售管理系统结构框图
系统开发运行平台
MicrosoftWord2010
MicrosoftVisio2010
Windows8
3数据结构设计
储存数据
文件储存:
这是一个商品销售管理系统。
对于文件是可读可写,主管有全部修改和查询权限,工作人员仅有对货架剩余量的修改权限和全部查询权限。
文件
界面操作
作用
使用时间
可读可写
用于存放商品编码,类型,名称,价格,货架剩余量,警戒值,累计销量。
系统初始化时以及修改删除及添加商品时。
内部逻辑数据
商品信息节点
structgoods
{
charcode[6];品添加:
添加商品时自动定位到该类商品末尾。
通过添加类型的输入,由一个指针直接指向该类最后一个商品,直接在该类商品后进行添加。
避免了添加商品后各种不同类型商品混杂的情况。
2.补货功能:
在进行商品销量录入时,当商品数量低于限定值时,系统会自动提示货架剩余量过低,请及时补货。
在补货功能界面输入商品编码,会显示现在商品余量,添加补货数量即可。
3.同类商品销售分析:
根据每日录入的销量,可以自动对销量进行累加,可以查询同类商品的累计销售额及销售量,由此可以轻易得出同类商品哪些比较受欢迎,确定销售进货侧重商品种类。
4系统功能演示
关于界面设计
追求简约清晰的界面。
系统功能演示
开始进入初始化界面
登陆界面
工作人员界面
(密码:
222222)
主管登陆界面
(密码:
111111)
菜单一:
商品信息管理界面
商品添加界面
商品删除界面
按名称删除
按编码删除
商品信息修改界面
商品浏览界面
货架管理界面
商品销量录入(依次录入)
补货功能界面
商品销量清零
商品销售管理界面
单品日销售额查询
累计销售总额查询界面
同类商品销量分析
(需手动录入商品销售额)
5小组分工
学号
姓名
职责
占百分比重
12
谢宗恒
编写代码及程序调试
35%
32
罗超
编写代码及程序调试
35%
06
郑佳
文档文件编写及程序调试
30%
6总结
通过这次C语言短学期的项目开发,我们充分认识到了团队的重要性,人无完人,每个人都有不足之处,一人不足之处其他人补,方能高效的完成任务。
C语言是一门严谨的科学,一处不起眼的错误就可能导致全盘的崩溃,而且系统软件的架构安排,数据结构的选择,以及多种功能的实现使得我们必须小心编写,一遍一遍查漏补缺,从而使系统功能可以正常使用,编码无错误后,会小心改动,优化系统。
这次短学期项目锻炼了我们的团队协作能力,也使得我们的思维更加严谨,对于结构有更好的理解,但由于时间匆忙,所以只是列了超市一小部分用于测试功能是否实现,逻辑是否正确,要想做成完整的超市销售管理系统,我们还需多加努力。
7完整源代码
/*******************************/
/*Name:
超市商品管理*/
/*Author:
罗超*/
/*郑佳*/
/*谢宗恒*/
/*Version:
*/
/*******************************/
#include<>
#include<>
#include<>
#defineline_1"--------------------"
#defineline_2"————————————————————"
#defineline_3"*-/-*-/-*-/-*-/-*-/-*-/-*-/-*-/-*"
#defineline_4"(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)"
#defineNULL((void*)0)
#defineLENsizeof(structgoods)
intquanxian;
intnumber[100];
structgoods
{
charcode[6];品信息管理\n");
printf("2.货架管理\n");
printf("3.商品销售管理\n");
printf("0.退出\n\n");
printf("%s\n\n",line_2);
intn;
scanf("%d",&n);
system("cls");
switch(n)
{
case1:
menu_1();break;
case2:
menu_2();break;
case3:
menu_3();break;
case0:
exit(0);
}
}
voidmenu_()
{
inti=2;
system("color3E");
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");
intn;
scanf("%d",&n);
intj=2;
switch(n)
{
case1:
system("cls");goods_research();break;
case2:
system("cls");scan();break;
case3:
system("cls");add_number();break;
case0:
exit(0);
}
}
voidmenu_1()
{
inti=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);
intn;
scanf("%d",&n);
system("cls");
switch(n)
{
case1:
goods_add();break;
case2:
delete();break;
case3:
modification();break;
case4:
scan();break;
case0:
returnmenu();
}
}
voidmenu_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);
intn;
scanf("%d",&n);
system("cls");
switch(n)
{
case1:
sales_entry();break;
case2:
add_number();break;
case3:
sale_reset();break;
case0:
returnmenu();
}
}
voidmenu_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);
intn;
scanf("%d",&n);
switch(n)
{
case1:
sale_good();break;
case2:
sale_goods();break;
case3:
analyse();break;
case0:
system("cls");returnmenu();
}
}
voidgoods_research()续删除");
printf("\n0.返回");
intn;
scanf("%d",&n);
while(n!
=1&&n!
=0)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&n);
}
switch(n)
{
case0:
system("cls");menu_1();break;
case1:
system("cls");delete();break;
}
}
voidcode_delete()
{
fflush(stdin);
structgoods*p1,*p2,*head;charcode[20];
printf("\n%s\n",line_3);
printf("请输入商品编码:
");
head=create(),p1=head,p2=p1;
scanf("%s",code);
while(p1!
=NULL)
{if(strcmp(p1->code,code)==0)
{
if(p1==head)head=p1->next;
elsep2->next=p1->next;
printf("您删除的商品信息为:
\n");
printf("编码种类名称价格货架余量\n");
printf("%s\t%s\t%s\t%f\t%d\t%d\t%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");
returncode_research();
}
FILE*fp;
fp=fopen("","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("\n1.继续删除");
printf("\n0.返回");
intn;
scanf("%d",&n);
while(n!
=1&&n!
=0)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&n);
}
switch(n)
{
case0:
system("cls");menu_1();break;
case1:
system("cls");delete();break;
}
}
voidscan()
{
fflush(stdin);
charch;
FILE*fp;
printf("\n%s\n",line_3);
printf("编码种类名称价格货架余量限定量销售量\n");
if((fp=fopen("","r"))==NULL)
{
fprintf(stderr,"无法打开文件");
exit(0);
}
ch=fgetc(fp);
while(ch!
=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
printf("按任意键返回上一级菜单\n");
fflush(stdin);
charchee;
chee=getchar();
system("cls");
switch(quanxian)
{
case1:
menu_1();break;
case2:
menu_();break;
}
}
voidsales_entry()续选择添加");
printf("\n0.返回\n");
inti;
scanf("%d",&i);
while(i!
=1&&i!
=0)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&i);
}
switch(i)
{
case1:
add_number();
case0:
if(quanxian==1){system("cls");menu_2();break;}
if(quanxian==2){system("cls");menu_();break;}
}
}
voidsale_good()行商品销量录入\n");
printf("0.返回\n");
inti;
scanf("%d",&i);
while(i!
=1&&i!
=0)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&i);
}
switch(i)
{
case1:
system("cls");returnsales_entry();
case0:
system("cls");returnmenu();
}
}
structgoods*p;
inti=0;floatsum;
charcode[6];
printf("\n%s\n",line_3);
printf("请输入你要查询的商品编码:
\n");
p=create();
scanf("%s",code);
while(p!
=NULL)
{if(strcmp(p->code,code)==0)
{
printf("您所查询的商品为:
%s\n",p->name);
printf("商品累计的销售额为:
");
sum=p->price*p->sale_num;
printf("%f",sum);
break;
}
elsep=p->next;
i++;
}
if(p==NULL)
{
system("cls");
printf("您查询的的商品有误,请重新输入!
!
!
!
!
!
\n");
system("cls");
returnsale_good();
}
printf("\n1.返回\n2.继续查询\n0.退出\n");
intn;
scanf("%d",&n);
while(n!
=1&&n!
=0&&n!
=2)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&n);
}
switch(n)
{
case1:
system("cls");returnmenu_3();
case2:
system("cls");returnsale_good();
case0:
exit(0);
}
}
voidsale_goods()行商品销量录入\n");
printf("0.返回\n");
inti;
scanf("%d",&i);
while(i!
=1&&i!
=0)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&i);
}
switch(i)
{
case1:
system("cls");returnsales_entry();
case0:
system("cls");returnmenu();
}
}
floatsum=0;inti=0;
structgoods*head,*p;
head=create();
while(head!
=NULL)
{
sum+=head->price*head->sale_num;
head=head->next;
}
printf("\n累计总销售额为:
%f",sum);
printf("\n1.返回\n0.退出\n");
intn;
scanf("%d",&n);
while(n!
=1&&n!
=0)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&n);
}
switch(n)
{
case1:
system("cls");returnmenu_3();
case0:
exit(0);
}
}
voidanalyse()回\n2.继续查询\n0.退出\n");
intn;
scanf("%d",&n);
while(n!
=1&&n!
=0&&n!
=2)
{
printf("输入错误,请重新输入!
!
!
!
\n");
scanf("%d",&n);
}
switch(n)
{
case1:
system("cls");returnmenu_3();
case2:
system("cls");returnanalyse();
case0:
exit(0);
}
}
voidsale_reset()
{fflush(stdin);
structgoods*p,*head;
printf("\n%s\n",line_3);
p=head=create();
while(p!
=NULL)
{p->sale_num=0;
p=p->next;
}
FILE*fp;
fp=fopen("","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");
fflush(stdin);
charchee;
chee=getchar();
system("cls");
menu_2();
}