完整word版c语言程序设计 超 市 管 理 系 统.docx
《完整word版c语言程序设计 超 市 管 理 系 统.docx》由会员分享,可在线阅读,更多相关《完整word版c语言程序设计 超 市 管 理 系 统.docx(29页珍藏版)》请在冰豆网上搜索。
完整word版c语言程序设计超市管理系统
实验题目:
超市管理系统
一、实验目的
1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、do-while.、for的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容
1.编写程序并进行调试运行。
2.输入商品资料,并保存于文件。
每件商品包含信息如:
商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。
3.对已存入的商品信息进行更新操作,包括添加一件商品信息、删除某件商品信息和修改商品信息。
4.通过按商品名、商品种类、商品进货量的方式查询商品信息。
5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。
6对商品的库存量和利润进行排序。
7.最后输出商品信息,供需要时打印。
二、需求分析
1.该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。
2.其中更新功能包括:
添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。
以便随时更新商品信息。
3.程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,并且可根据三种不同的方法查询:
按商品名查询、按商品种类查询和按商品进货量查询。
以满足不同的需要。
四、概要设计
1、方案设计
对系统进行分析,给出结构图
分析:
系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计
结构图如下:
2.功能模块说明:
对各个模块进行功能的描
述
(1).输入模块:
录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
(2).添加模块:
可添加一件或多件商品信息,并将所添加商品信息保存,方便查找。
(3).删除模块:
可对过期的商品做删除处理。
(4).修改模块:
可根据需要对多件商品信息进行修改,也可随时对个别项进行修改。
(5).查询模块:
可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品种类查询或按商品进货量查询。
(6).保存模块:
用于对信息进行保存。
(7).输出模块:
将所有商品信息或想要查询的商品信息显示于屏幕,用于打印商品信息或查找某些商品信息。
(8)排序模块:
根据商品的利润和进货量进行排序。
(9)统计模块:
统计商品的利润和对进货价格相同的商品进行统计。
(10).退出系统:
选择该项,自动退出该系统。
五、详细设计及运行结果
流程图,函数之间相互调用的图示,程序设计及编码,运行结果。
六.调试情况及运行结果
1、
对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,于是就按课本上的例子编了超市管理系统,先把界面弄好然后再添加各模块,而且各模块也出现了不少问题,在同学们和老师的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。
可结果还不是太理想。
由于时间很短,在选题报告中设想到的好多功能都没有实现。
已有的那些功能虽已能基本上满足管理者和消费者的需要,但如果还有更多的功能程序就会更加完美。
如:
进入系统时没有设制密码,保护性不够强;在输入商品号时没有出错提示,如果商品号输入负值
2、在设计过程中的感受。
本次C语言的实习课让我对C语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。
本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。
在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。
七.参考文献
《C语言程序设计》王曙燕曹锰科学出版社
八。
附录:
#include
#include
#defineMAX3
#defineN3
#definePAGE2
#definePRINTF1printf("---------------------------------------------------------------------\n")
#definePRINTF2printf("num----name----kind----out_price----pro_time(year-month-day)----save_time\n");
#definePRINTF3printf("%d%8s%7s%8d%5d-%2d-%2d%10d\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].out_price,goods[i].pro_time.year,goods[i].pro_time.month,goods[i].pro_time.day,goods[i].save_day);
intsum;
/*datastructkind*/
structdata
{
intyear;
intmonth;
intday;
};
/*goodsstructkind*/
structgoods
{
intnum;
charname[10];
charkind[10];
intamount;
intgoods_up;
intgoods_down;
intin_price;
intout_price;
intin_num;
structdatain_time;
structdatapro_time;
charfactory[10];
intsave_day;
floatprofit;
}goods[MAX];
/*savemessage*/
save_message(intsum)
{
FILE*fp;
inti;
if((fp=fopen("goods.txt","wb"))==NULL)
{
printf("readthefileerror!
\n");
return;
}
for(i=0;iif(fwrite(&goods[i],sizeof(structgoods),1,fp)!
=1)
printf("writethefileerror!
\n");
fclose(fp);
}
/*inputmessage*/
input_message()
{
inti=0,s=MAX;
system("cls");
printf("\n\ninputgoodsmessagethemost%d\n\n",s);
do
{
printf("\ndi%dgoods",i+1);
printf("\nnum:
");
scanf("%d",&goods[i].num);
if(goods[i].num==0)
break;
printf("\nname:
");
scanf("%s",goods[i].name);
printf("\nkind:
");
scanf("%s",goods[i].kind);
printf("\namount:
");
scanf("%d",&goods[i].amount);
printf("\ngoods_up:
");
scanf("%d",&goods[i].goods_up);
printf("\ngoods_down:
");
scanf("%d",&goods[i].goods_down);
printf("\nin_price:
");
scanf("%d",&goods[i].in_price);
printf("\nout_price:
");
fflush(stdin);
scanf("%d",&goods[i].out_price);
printf("\nin_num:
");
scanf("%d",&goods[i].in_num);
printf("\nin_time:
");
scanf("%d-%d-%d",&goods[i].in_time.year,&goods[i].in_time.month,
&goods[i].in_time.day);
printf("\npro_time:
");
scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,
&goods[i].pro_time.day);
printf("\nfactory:
");
scanf("%s",goods[i].factory);
printf("\nsave_time:
");
scanf("%d",&goods[i].save_day);
i++;
}while(iprintf("\n*****%dgoodsmessageinputover!
--\n",i);
sum=i;
printf("\npressanykeytoreturn!
");
bioskey(0);
}
/*readmessage*/
intread_message()
{
FILE*fp;
inti=0;
if((fp=fopen("goods.txt","rb"))==NULL)
{
printf("\n\n******thereisnoanymessage,pressanykeytoreturn!
******\n");
return;
}
while(feof(fp)!
=1)
{
fread(&goods[i],sizeof(structgoods),1,fp);
if(goods[i].num==0)
break;
else
i++;
}
fclose(fp);
return(i);
}
/*outputmessage*/
output_message()
{
inti=0,j=0,count,page=1;
system("cls");
printf("\n\n--goodsmessage,di%dpage\n\n",page);
PRINTF2;
PRINTF1;
do
{
if(goods[i].num!
=0)
{
j++;
if(j%PAGE!
=0)
{
PRINTF3;
PRINTF1;
}
else
{
PRINTF3;
PRINTF1;