超市商品销售管理系统项目设计报告.docx

上传人:b****7 文档编号:11146070 上传时间:2023-02-25 格式:DOCX 页数:39 大小:22.85KB
下载 相关 举报
超市商品销售管理系统项目设计报告.docx_第1页
第1页 / 共39页
超市商品销售管理系统项目设计报告.docx_第2页
第2页 / 共39页
超市商品销售管理系统项目设计报告.docx_第3页
第3页 / 共39页
超市商品销售管理系统项目设计报告.docx_第4页
第4页 / 共39页
超市商品销售管理系统项目设计报告.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

超市商品销售管理系统项目设计报告.docx

《超市商品销售管理系统项目设计报告.docx》由会员分享,可在线阅读,更多相关《超市商品销售管理系统项目设计报告.docx(39页珍藏版)》请在冰豆网上搜索。

超市商品销售管理系统项目设计报告.docx

超市商品销售管理系统项目设计报告

超市商品销售管理系统

所在学院:

光电学院

小组成员:

谢宗恒

罗超

郑佳

1简况

1.1项目背景

超市中商品种类数目庞大,每天需要大量的人力对各类商品进行管理。

上架商品需要分类排序,工作人员需要时常去查询是否有某种商品,每天还要检查某种商品是否需要补货,不仅工作量大,而且耗时耗力。

因此我们组设计了一个软件,可以随时查询浏览商品信息,对商品信息进行删除修改,并且可以添加新的商品,录入商品销量后在货架余量低于特定值时进行商品上架提醒。

在录入每日销量后还可以进行累计销售分析,帮助管理人员确定销售趋势和进货量。

2项目设计

2.1软件功能

此软件面向用户分为两部分,主管和工作人员,主管拥有所有权限,包括商品信息管理,货架管理和商品销售管理。

工作人员只具有商品查询,商品浏览和补货的功能。

在商品信息管理中包括商品添加,商品删除,商品信息修改和商品浏览功能。

货架管理中包括补货功能和商品销量录入功能。

商品销售管理中包括销售额以及销售分析。

此软件还具有商品价格查询,对于录入商品进行分类排序等功能。

2.2结构框图

超市商品销售管理系统结构框图

2.3系统开发运行平台

MicrosoftWord2010

Codeblocks10.05

MicrosoftVisio2010

Windows8

3数据结构设计

3.1储存数据

文件储存:

这是一个商品销售管理系统。

对于goods.txt文件是可读可写,主管有全部修改和查询权限,工作人员仅有对货架剩余量的修改权限和全部查询权限。

文件

界面操作

作用

使用时间

goods.txt

可读可写

用于存放商品编码,类型,名称,价格,货架剩余量,警戒值,累计销量。

系统初始化时以及修改删除及添加商品时。

3.2内部逻辑数据

商品信息节点

structgoods

{

charcode[6];//商品编码

chartype[5];//商品种类

charname[10];//商品名称

floatprice;//商品价格

intnum;//货架余量

intlimited_num;//限定量(低于此值自动提醒补货)

intsale_num;//累计销售量

structgoods*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

#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];//商品编码

chartype[5];//商品种类

charname[10];//商品名称

floatprice;//商品价格

intnum;//货架余量

intlimited_num;//限定量(低于此值自动提醒补货)

intsale_num;//累计销售量

structgoods*next;

}go;

structgoods*create()//创建链表

{

structgoods*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=(structgoods*)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);

returnhead;

}

intlogin();

voidmenu();

voidmenu_();

voidmenu_1();//菜单一:

商品信息管理

voidmenu_2();//菜单二:

货架管理

voidmenu_3();//菜单三:

商品销售管理

voidgoods_research();

voidname_research();//按名称查询

voidcode_research();//按编码查询

voidgoods_add();//商品添加

voiddelete();//商品删除

voidcode_delete();

voidname_delete();

voidmodification();//商品信息修改

voidscan();//商品浏览

voidsales_entry();//商品销量录入

voidadd_number();//货架商品数量添加(补货)

voidsale_reset();//销售量清零

voidsale_good();//单品日销售额

voidsale_goods();//日销售总额

voidanalyse();//同类商品分析

voidmain()

{

system("color3E");

puts("\n");

printf("%s\n\n",line_4);

puts("您好~\t正在初始化系统,请稍等~~");

puts("按任意键继续\n");

printf("%s\n",line_4);

getchar();

fflush(stdin);

system("cls");

inti;

i=login();

if(i==1){system("cls");menu();}

if(i==2){system("cls");menu_();}

}

intlogin()

{

inti=0;//权限判定

charpassword_2[20]="222222";//主管密码

charpassword_1[20]="111111";//工人密码

charpassword[20];

puts("请输入登陆密码:

");

scanf("%s",&password);

if(strcmp(password,password_1)!

=0&&strcmp(password,password_2)!

=0)

{

printf("密码错误,请重新输入!

");

system("cls");

login();

}

elseif(strcmp(password,password_1)==0)

{

i=1;

system("cls");

quanxian=1;

returni;

}

elseif(strcmp(password,password_2)==0)

{

i=2;

system("cls");

quanxian=2;

returni;

}

}

voidmenu()

{

system("color3E");

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);

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("\n%s",line_3);

printf("\n请选择查询方式:

\n\n");

printf("1:

商品名称\n2:

商品编码\n");

printf("0:

返回\n");

intch;

scanf("%d",&ch);

switch(ch)

{

case1:

system("cls");

printf("\n%s\n",line_3);

name_research();break;

case2:

system("cls");

printf("\n%s\n",line_3);

code_research();break;

case0:

if(quanxian==1){system("cls");menu_1();break;}

if(quanxian==2){system("cls");menu_();break;}

}

}

voidname_research()//按名称查询

{

fflush(stdin);

structgoods*p;charname[20];

printf("请输入商品名称:

");

printf("(输入字符‘aaaa’进入商品信息浏览功能)\n");

fflush(stdin);

scanf("%s",name);

charyan[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;

}

elsep=p->next;

}

if(p==NULL)

{

system("cls");

printf("您输入的商品有误,请重新输入:

\n");

returnname_research();

}

returngoods_research();

}

voidcode_research()//按编码查询

{

fflush(stdin);

structgoods*p;charcode[6];

printf("请输入商品编码:

");

printf("(输入字符‘aaaa’进入商品信息浏览功能)\n");

fflush(stdin);

scanf("%s",code);

charyan[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;

}

elsep=p->next;

}

if(p==NULL)

{

system("cls");

printf("您输入的商品有误,请重新输入:

\n");

fflush(stdin);

returncode_research();

}

returngoods_research();

}

voidgoods_add()//商品添加

{

fflush(stdin);

structgoods*p,*q,*p0,*head,*m;chartype[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=(structgoods*)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");

intn;

scanf("%d",&n);

while(n!

=1&&n!

=0)

{

printf("输入错误,请重新输入!

!

!

!

\n");

scanf("%d",&n);

}

switch(n)

{

case1:

system("cls");goods_add();break;

case0:

if(quanxian==1){system("cls");menu_1();break;}

if(quanxian==1){system("cls");menu_();break;}

}

}

voidmodification()//商品修改

{

fflush(stdin);

structgoods*p,*head;charnam

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1