杂货店管理系统.docx
《杂货店管理系统.docx》由会员分享,可在线阅读,更多相关《杂货店管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
杂货店管理系统
电子科技大学成都学院微电子技术系
C语言课程设计
实验报告册
题目:
杂货店库存销售管理系统
指导教师:
设计者(组长):
赵同学
设计者(组员1):
李同学
所属院系:
微电子技术系
微电子技术系制
2016年6月1日
一、课程设计的目的
1、进一步掌握和利用C语言进行程设计的能力;
2、进一步理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程序设计开发文档的能力。
二、课程设计的任务内容
(一)系统需求分析
1.输入记录:
将每一个商品的商品名称、商品ID号以及商品类型、商品单价、商品数量的数据作为一个记录。
该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2.显示记录:
根据用户提供的记录或者根据商品名称显示一个或几个商品的各项详细记录。
3.修改记录:
可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:
可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5.删除记录:
可删除数据文件中的任一记录。
6.排序:
按货号排序。
7.统计:
(A)统计有多少种商品类型,并计算各项商品类型下的商品数量和总金额,。
(B)统计符合指定条件(如商品单价在50元以下、50~100元、100元以上)以内的商品数量以及占总商品数量的百分比。
(C)按货号或者单价排序形式打印全部商品信息表。
8.保存数据文件以及打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
三.模块设计分析
(一)系统功能模块图
(二)各个模块详细功能描述
1.欢迎界面:
有背景音乐和配图,配图颜色会随机变化。
2.登陆界面:
可以进行背景色的设置,浏览关于我们的技术支持信息,可以修改登陆密码等。
3.客户管理:
实现客户信息的增删查改。
4.商品管理:
实现了商品基本信息录入的增删查改,还能查看库存量,此处的库存量会由于销售系统部分售出商品而及时更改库存信息。
5.购物结算:
可帮助售货员进行销售,具有结算功能,可实现收银台的作用。
6.销售结算:
对销售量,库存量,客户购买需求等进行统计排名,帮助店家进货时能选择热销商品,同时可以查询各个月份生日的顾客。
(三)功能函数的调用关系图
四.系统详细设计(请按照功能模块的划分,抓图并搭配相应的实现代码来描述具体的实现。
代码中可以添加必要的注释)
1.欢迎界面:
有背景轻音乐,有动态动画展示,动画颜色随机变化。
#ifndef_user_def_H陆界面:
登陆账号,改变背景色,修改密码,查看关于我们的技术支持,退出系统
voidmain(){
charchoice='5';av"),NULL,SND_ASYNC|SND_NODEFAULT);录账号\n");
printf("\t\t2.修改密码\n");
printf("\t\t3.更改系统颜色\n");
printf("\t\t4.关于我们\n");
printf("\t\t5.退出系统\n");
printf("\n\n************************************************************\n\n");
printf("\n请输入您的选项(1,2,3,4,5):
");
choice=getch();
switch(choice){
case'1':
if(userlogin()==1){showMymenue();}
break;
case'2':
changepw();
break;
case'3':
Color();
break;
case'4':
aboutUs();
break;
case'5':
printf("\n\n系统安全退出\n\n");
exit(0);
break;}
}while
(1);
}
voidColor()
{
system("cls");
printf("1.蓝白色\n");
printf("2.紫白色\n");
printf("3.黑绿色\n");
switch(getch())
{
case'1':
system("color1f");
break;
case'2':
system("color5f");
break;
case'3':
system("color02");
break;
}
}
voidaboutUs()
{
system("cls");
printf("\n\n********************欢迎进入赵&李超市管理系统*******************|\n\n");
printf("\t\t\t\t\t\t\t\t|\n");
printf("----------------------------------------------------------------|\n");
printf("\t\t版权所有@电子科技大学成都学院电科一班\t\t|\n\n");
printf("\t\t\t赵&李专属,翻版必究\t\t\t|\n\n");
printf("****************************技术扶持****************************|\n");
printf("\t\t赵先生:
Tell:
\t|\n");
printf("----------------------------------------------------------------\n");
printf("\t\t李先生:
Tell:
\t|\n");
printf("----------------------------------------------------------------\n");
pcontinue();
}
intuserlogin()
{
structuserinfo;
charpw[100]={0},pw_confirm[100]={0};
intwt=0;
memset(&info,0,sizeofinfo);
read_data(&info);
system("cls");
printf("welcome!
pleaselogin\n");
while
(1)
{
printf("请输入用户名:
");
scanf("%s",pw);
if(strcmp(pw,!
=0)
{
printf("无用户名\n");
continue;
}
printf("请输入密码:
");
scanf("%s",pw);
if(strcmp(pw,!
=0)
{
printf("密码错误*******");
printf("您还有%d次输入机会!
\n\n",2-wt);
}
else
break;
wt++;
if(wt>=3)
{
printf("3次密码错误!
\n");
printf("请稍后再次登录\n\n");
printf("请按任意键退出");
getch();
return-1;
}
}
return1;
}
voidchangepw()
{
structuserinfo;
charpw[100]={0},pw_confirm[100]={0};
read_data(&info);
system("cls");
while
(1)
{
inti;
printf("按1改密码\n按0退出\n");
scanf("%d",&i);
if(i==0)
break;
if(i==1)
{
while
(1)
{
printf("请输入原始密码\n");
scanf("%s",pw);
if(strcmp(pw,!
=0)
{
printf("原始密码错误\n");
continue;
}
printf("请输入新密码\n");
scanf("%s",pw);
printf("请再输一次\n");
scanf("%s",pw_confirm);
if(strcmp(pw,pw_confirm)!
=0)
{
intj;
printf("两次密码不一致!
\n");
while
(1)
{
printf("按1再一次改密码\n按2返回上一步\n按0退出\n");
scanf("%d",&j);
if(j==0)return-2;
if(j==1||j==2)break;
printf("unknowninput\n");
}
if(j==2)break;
continue;
}
strcpy,pw);
write_data(&info);
break;
}
}
else
printf("unknowninput,shouldbe0/1\n");
}
}
3.主菜单
voidshowMymenue()
{
charchoice='5';
while
(1)
{
system("cls");
BreakLine;
printf("\t\t1.商品管理\n");
printf("\t\t2.客户管理\n");
printf("\t\t3.购物预算\n");
printf("\t\t4.销售预算\n");
printf("\t\t5.退出系统\n");
BreakLine;
printf("\n\n请输入您的选择(1,2,3,4,5):
");
choice=getch();
switch(choice)
{
case'1':
showGoodsmenue();break;
case'2':
showCustmenue();break;
case'3':
showSell();break;
case'4':
showSales();break;
case'5':
printf("\n\n系统安全退出\n\n");
exit(0);
break;
default:
printf("\n您的输入有误,请检查后重新输入\n");
pcontinue();
}
}
}
4.商品管理:
包括添加商品,修改商品,删除商品,查询商品
#include<>
#include<>
#include<>
#include<>
#include""
#include""
#include""
#include""
structdate{
intyear;
intmonth;
intday;
};
structgoods{
intno;o==0)
{
break;
}
else
{
i++;
}
}
fclose(fp);
returni;
}
voidsaveall()
{
FILE*fp;
inti;
if((fp=fopen("","wb"))==NULL)
{
printf("\n无法打开文件\n");
return;
}
for(i=0;i{
fwrite(&goods[i],sizeof(structgoods),1,fp);
}
fclose(fp);
}
voidaddgoods()
{
structgoodsnewgoods;o)
{
break;
}
}o)
{
break;
}
}品编码\n");
printf("2.商品名称\n");
printf("3.商品生产期\n");
printf("4.商品原价\n");
printf("5.商品单价\n");
品出售量\n");
printf("6.商品库存量\n");
printf("7.返回上级\n");
BreakLine;
while
(1){
printf("请输入选择项目:
");
scanf("%d",&r);
switch(r)
{
case1:
printf("\n请输入商品编码:
");
scanf("%d",&goods[i].no);
break;
case2:
printf("\n请输入商品名称:
");
scanf("%s",&goods[i].name);
break;
case3:
printf("\n请输入商品生产期:
(格式如下:
1999-9-9):
");
scanf("%d-%d-%d",&goods[i].,&goods[i].,&goods[i].;
break;
case4:
printf("\n请输入商品原价:
");
scanf("%f",&goods[i].expenda);
break;
case5:
printf("\n请输入商品单价:
");
scanf("%f",&goods[i].expendb);
break;
ell);
ave);
break;
default:
showGoodsmenue();}
BreakLine;
printf("亲爱的管理员,您确定要修改吗?
(y/n)");
choice=getch();
if(choice=='n')
{
printf("\n放弃修改,返回上一级\n");
printf("\n按任意键继续\n");
getch();
return;
}
f\t%.2f\t%d\t%d\t\n",,,}
BreakLine;
}
else
{
printf("\n**********系统中暂无任何商品信息*******\n");
}
printf("\n按任意键继续\n");
getch();
}
5.客户管理:
包括客户信息的增添,删除,修改,与查询
#include<>
#include<>
#include<>
#include<>
#include""
#include""
#include""
#include""
intread_message();
structdata{
intyear;
intmonth;
intday;
};
structcust{
intno;o==0){
break;
}
else{
i++;
}
}f\t\t%s\t\t%d-%d-%d\t\t\n",,,,,;
printf("\n");}
}
else
{
printf("\n********系统中暂无任何客户信息**********");}
pcontinue();
}
voidupdatecust(){
inti,q;
inttoupdateno;o){
break;}
}户姓名\n");
printf("2.客户电话\n");
printf("3.客户生日\n");
printf("4.返回上级\n");
BreakLine;
while
(1){
printf("请输入选择项目:
");
scanf("%d",&q);
switch(q)
{
case1:
printf("请输入客户姓名:
");
scanf("%s",cust[i].name);
break;
/*printf("请输入客户消费:
");
scanf("%d",&cust[i].expenditure);*/
case2:
printf("请输客户电话:
");
scanf("%s",cust[i].tel);
break;
case3:
printf("请输入客户的生日(格式:
1999-9-9):
");
scanf("%d-%d-%d",&cust[i].,&cust[i].,&cust[i].;
break;
default:
showCustmenue();
}
BreakLine;
saveAll();
printf("\n更新客户信息成功,按任意键继续\n");
getch();
}
}
voiddelcust(){
inti;
inttodelno;o){
break;}
}
if(i==total){
printf("\n没有找到您要删除的客户\n");
pcontinue();
getch();
return;
}
printf("亲爱的管理员,删除后无法恢复,您确定要删除吗?
(yorn)");
choice=getch();
if(choice=='n'){
printf("\n放弃删除,返回上一级\n");
printf("\n按任意键继续\n");
getch();
return;
}物预算:
可协助进行收银
#include<>
#include<>
#include<>
#include<>
#include<>
#include""
#include""
#include""
#include""
structdata{
intyear;
intmonth;
intday;
};
structgoods{
intno;o)
{
break;
}
}
if(i==number)
{
printf("\n没有找到您想购买的商品\n");
printf("\n按任意键继续\n");
getch();
return;
}
shopping=goods[i];
if==0)f\t%d",,,printf("\n请输入客户需要购买的商品数量:
");
scanf("\t%d",&quality);
money+=*quality;
printf("\n是否继续购买?
(y/n):
");
if(getch()=='y')
pcontinue();
else
break;
printf("\n*************您应收现金¥:
%.2f元\n",money);
printf("\n*******************实收现金:
\n");
scanf("%f",&x);
=quality;
+=quality;
y=x-money;
printf("\n*****************找回现金:
%.2f\n",y);
goods[i]=shopping;
Saveall();
pcontinue();
}
}
}
7.销售预算:
可对:
商品销量,库存量,客户消费额进行排行,并能查询某月生日客户名单
voidshowSales()
{
charchoice='5';
while
(1){
system("cls");
BreakLine;
printf("\t\t1.显示最具有贡献精神VIP客户排行榜\n");
printf("\t\t2.显示最具有影响力的商品排行榜\n");
printf("\t\t3.显示库存商品量排行榜\n");
printf("\t\t4.当月生日的客户\n");
printf("\t\t5.返回上一级\n");
BreakLine;
printf("\n\t\t请输入您的选择(1,2,3,4,5):
");
choice=getch();
switch(choice){
case'1':
showVIP();break;
case'2':
Goodseffect();break;
case'3':
Goodssave();break;
case'4':
Birthdayperson();break;
case'5':
showMymenue();break;
default:
printf("\n\t\t您的输入有误,请确认重新输入.\n");
pcontinue();}
}
}
#include<>
#include<>
#include<>
#include""
#include""
#include""
#include""
intread_message();
intread_Message();
structdata{
intyear;
intmonth;
intday;
};
structcust{
intno;泡2.选择
C语言程序设计[M].北京:
北京邮电大学出版社。
[2]严蔚敏吴伟民.数据结构(C语言版)[M].北京:
清华大学出版社。