C语言课程设计商场商品信息管理系统报告论文.docx
《C语言课程设计商场商品信息管理系统报告论文.docx》由会员分享,可在线阅读,更多相关《C语言课程设计商场商品信息管理系统报告论文.docx(27页珍藏版)》请在冰点文库上搜索。
![C语言课程设计商场商品信息管理系统报告论文.docx](https://file1.bingdoc.com/fileroot1/2023-7/15/46eab494-b315-448f-84ec-0a0a864af136/46eab494-b315-448f-84ec-0a0a864af1361.gif)
C语言课程设计商场商品信息管理系统报告论文
摘要
C语言程序的发展与应用为各个方面均带来了较多的便捷,更为便捷的实现了数据的快捷运算和对数据的处理与应用,而本文主要介绍了商场商品信息管理系统,该程序有非常多的优点和便捷之处,为商场提供了很大的便利。
系统商场商品信息管理系统较好的运用到了商品管理系统中,运用数据管理系统较全面的实现了对商品的各种信息的处理运用,通过C语言程序中队各种函数的运用对商品信息的处理和存储,完成了对商品信息的输入,以及对商品信息数据的处理,如对商品信息的排序,通过各种函数按照商品的编号和种类等方面对其进行排序,对商品新进货量与销售量的存储,处理和更新,以及向管理系统输入添加和删除商品信息,修改以及查询和处理商品信息,还实现了对商品信息的总计统计,较为系统全面的对商品信息的各种处理,运用和更新,以及最后以文件形式完成了对信息的存储以及再次利用。
关键字:
C语言;商场商品信息管理系统;信息处理
课程设计(论文)任务书
学院
理学院
专业
信息显示与光电技术
学生姓名
王晗
学号
1109040132
课程设计
(论文)题目
商场商品信息管理系统
设计要求(技术参数):
进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
设计任务:
商场商品信息管理系统实现了多种功能的对商品信息的处理和存储,实现了对商品信息的输入,按照号码和名称种类对商品排序,新进货量与销售量的存储更新,添加和删除商品,修改以及查询和处理信息,最后对信息的处理和保存,比较全面的实现了商品信息的处理。
进度安排:
第一周查阅资料
第二周第一、二天程序设计;第三、四天程序调试与测试;第五天答辩
成绩:
指导教师(签字):
年月日
专业负责人(签字):
年月日
学院院长(签字):
年月日
1系统分析
1.1课程设计内容
商场商品信息管理系统
1.2系统功能需求分析
本系统应具有以下功能:
1、文件操作功能
文件操作:
可建立、打开、保存、关闭数据文件。
如果是新建的文件,可输入商品信息数据:
数据包括商品编号、商品名、商品类别、商品数量、商品价格等。
2、数据输入功能
输入进货信息:
输入商品编号、数量完成进货操作。
输入销售信息:
输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示。
3、数据添加、修改、删除功能
添加:
添加一种或多种新商品,并能输入其商品信息。
修改:
修改商品信息,可包括商品编号、名称、种类、数量和单价。
删除:
删除一类或多类商品的所有信息。
4、计算功能
可通过查询商品信息功能,自动计算并输出需要进货的商品信息。
5、查询功能
可分别按商品编号、名称、类别和需要进货的商品进行查询。
6、排序功能
可分别按商品编号、名称、类别等进行排序。
1.3数据结构设计
structgoods/*商品结构体*/
{longintnum;/*商品编号*/
charname[20];/*商品名称*/
charsort[20];/*商品类别*/
longintcount;/*商品库存量*/
longintprice;/*商品单价*/
}goods[200];/*最多200个商品*/
2系统设计
2.1总体设计
按系统分析的功能要求将系统划分为以下几个主要功能模块:
一、文件管理
⏹文件打开、关闭:
对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
二、进出货管理
⏹商品进货:
输入数据后商品信息能自动更新进行添加
⏹商品销售:
输入数据后商品信息能自动更新进行减少
三、商品数据管理
⏹增加/删除商品:
添加或删除某条商品的信息
⏹修改商品信息:
对某条商品的信息进行修改
四、浏览商品信息管理
⏹查询商品信息:
可分别按商品编号、名称、类别或需要进货商品查询
⏹排序商品信息:
可按商品编号、名称、类别分别排排序
2.2详细设计
2.2.1界面设计
1、菜单设计
⏹欢迎界面:
⏹系统提示:
⏹菜单设计:
2、输入界面的设计
3、信息显示界面的设计
2.2.2各功能模块的设计
根据划分的功能模块,定义以下函数实现各功能:
(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)
1、主函数main()
定义主函数为空类型(void);利用选择结构(switch)实现在在主函数中的调用各个子函数,利用goto和子函数中的return语句实现返回主菜单的循环。
声明各个子函数
输出欢迎界面
输出菜单
switch(m)
1
输入商品信息
2
排序商品信息
3
输入商品进货信息
4
输入商品销售信息
5
增加/删除商品
6
修改商品信息
7
查询商品信息
8
保存商品信息
清屏幕
2、子函数
(1)voidinput():
<输入函数>
确定新的库存量n,输入商品信息,用for循环语句直到输入商品种类等于n,结束输入;
(2)voidsequence():
<排序函数>
对已有的商品进行排序,可按商品编号、名称、类别进行排序;
(3)voidpurchase():
<进货函数>
进货函数主要是针对已有库存的商品,在原来的商品数量再增加:
(4)voidsale():
<销售函数>
要求用户输入所销售的编号,系统用for循环查询该商品是否存在,不存在要求再进行输入,直到输入正确,输出销售商品:
(5)voidedit():
<添加/删除商品>
因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进行俩者操作的选择:
(6)voidcorrect():
<修改数据函数>
对有错误信息商品进行修改,输入需要修改的商品编号,用for循环与if语句找到此商品,重新输入该商品的新信息,并输出:
(7)voidsearch():
<查询函数>
用switch(k)语句可分别按商品编号、名称、类别或需要进货商品查询;每个case选择中均用for语句查找要查询的商品,并输出查询结果。
(8)voidreserve():
<保存文件>
建立文件FILE*fp;charfile[15]用来存放文件保存路径以及文件名,进行清屏,输入文件路径及文件名,利用fp=fopen("file","w+")实现创建并打开一个文件,并得到该文件的地址的功能,显示fprintf(fp,"商品编号\t商品名\t商品类别\t商品数量\t商品价格\n");最后输出已保存文件,程序中是由PR("商品编号\t商品名\t商品类别\t商品数量\t商品价格\n");语句执行。
3系统编码设计
(这部分将代码列出,注意,每个函数开始处要介绍函数的功能,重要的代码应有注释,代码格式按锯齿式编排)
3.1main函数
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#definePRprintf
#defineSCscanf
structgoods
{longintnum;
charname[20];
charsort[20];
longintcount;
longintprice;
}goods[200];
intk,n,i;
voidmain()
{
voidinput();
voidsequence();
voidpurchase();
voidsell();
voidedit();
voidcorrect();
voidsearch();
voidreserve();
voidexit();
PR("\n******************************************************************\n*\t\t\t\t\t\t\t\t*\n");
PR("*▏▎▍▌▋▊█▇▆▅▄▃▂▁*");
PR("\n*\t\t\t\t\t\t\t\t*\n*Welcome\t\t\t\t\t\t*\n*\t\t\t\t\t\t\t\t*\n");
PR("*\t\ttogointo....\t\t\t\t*");
PR("\n*\t\t\t\t\t\t\t\t*\n");
PR("*-theGoodsInformationManageaentSystem-*\n*\t\t\t\t\t\t\t\t*\n");
PR("*▁▂▃▄▅▆▇█▉▊▋▌▍▏*\n");
PR("*\t\t\t\t\t\t\t\t*\n******************************************************************");
PR("\n\n\tPleasepressanykeytocontinue:
");
getch();
system("cls");
PR("---$-----$--------$----------$-----------$---------$-------$------$-----$---");
PR("\npleasepressanykeytocontinue");
getch();
system("cls");
lp:
for(i=0;i<1;i++)
PR("\n\n——★—☆——★—☆——☆—★——☆—★——☆—☆——★—\n");
PR("\n\t\t\ttheGoodsInformationManageaentsystem\t\n\n");
PR("\t1→inputgoodsinformation\n\n");
PR("\t2→paixugoodsinformation\n\n");
PR("\t3→inputjinhuoinformation\t\t6→xiugaigoodsinformation\n\n");
PR("\t4→inputsellinformation\t\t7→chaxungoodsinformation\n\n");
PR("\t5→zengjia/shanchugoods\t\t8→baocungoodsinformation\n\n");
PR("\t\t——☆—★——☆—★——☆—☆——★—☆——★—☆——★—");
PR("\n\n");
PR("\tqingxuanzechaozuo(xuan(0)tuichu):
");
SC("%d",&k);
system("cls");
switch(k)
{
case1:
input();break;
case2:
sequence();break;
case3:
purchase();break;
case4:
sell();break;
case5:
edit();break;
case6:
correct();break;
case7:
search();break;
case8:
reserve();break;
case0:
PR("\n\n\t/////^_^\\\\\\\\\\\n\n\t…………Thangyou,Welcomeagain,ByeByeO(∩_∩)O…………");exit(0);
default:
puts("shurucuowu,qingfanhuizhucaidan:
\n");break;
}
system("cls");
gotolp;
}
voidinput()
{
PR("\nqingshuruxuyaojianlixinkucundeshangpinzhongleishuliang:
");
SC("%d",&n);
system("cls");
PR("\n…………………………………………………………………………………………………\n");
for(i=0;i{
PR("\n\t*inputgoods.num:
");
SC("%ld",&goods[i].num);
PR("\n\tinputgoods.name:
");
SC("%s",goods[i].name);
PR("\n\tinputgoods.sort:
");
SC("%s",goods[i].sort);
PR("\n\tinputgoods.count:
");
SC("%d",&goods[i].count);
PR("\n\tinputgoods.price:
");
SC("%d",&goods[i].price);
PR("\n…………………………………………………………………………………………………\n");
}
PR("\tPleasepressanykeytocontinue:
");
getch();
return;
}
voidsequence()
{
longtemp;
charp1[30],p2[30];
for(k=0;kfor(i=0;iif(goods[i].num>goods[i+1].num)
{
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
strcpy(p1,goods[i].name);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
strcpy(p2,goods[i].sort);
strcpy(goods[i].sort,goods[i+1].sort);
strcpy(goods[i+1].sort,p2);
}
PR("--------------------------------------------------------------------------------");
PR("\n\t\tanzhaobianhaopaixudeshangpinxinxi\n\n");
PR("\tnumnamesortcountprice\n");
for(i=0;i{
PR("\t%5ld%5s%5s%5ld%5ld\n",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
for(k=0;kfor(i=0;iif(strcmp(goods[i].name,goods[i+1].name)>0)
{
strcpy(p1,goods[i].name);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
strcpy(p2,goods[i].sort);
strcpy(goods[i].sort,goods[i+1].sort);
strcpy(goods[i+1].sort,p2);
}
PR("--------------------------------------------------------------------------------");
PR("\n\t\tanzhaomingzhipaixudexinxi\n");
PR("\n\tnumnamesortcountprice\n");
for(i=0;i{
PR("\t%5s%5ld%5s%5ld%5ld\n",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);
}
for(k=0;kfor(i=0;iif(strcmp(goods[i].sort,goods[i+1].sort)>0)
{
strcpy(p2,goods[i].sort);
strcpy(goods[i].sort,goods[i+1].sort);
strcpy(goods[i+1].sort,p2);
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
strcpy(p1,goods[i].name);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
}
PR("--------------------------------------------------------------------------------");
PR("\n\t\tanzhaoleibiepaixudexinxi\n\n");
PR("\tnumnamesortcountprice\n");
for(i=0;i{
PR("\t%5s%5ld%5s%5ld%5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
}
PR("--------------------------------------------------------------------------------");
PR("pleasepressanykeytocontinue:
");
getch();
return;
}
voidpurchase()
{
longtemp;
intj;
PR("\n\t\5inputnewgoods.num:
");
SC("%ld",&temp);
PR("\n\t\5inputnewgoods.count:
");
SC("%d",&j);
PR("\n\n\n\tpressanykeytocontiue:
");
getch();
system("cls");
PR("\n\tshuchujinhuohoudeshangpinxinxi:
");
for(i=0;iif(temp==goods[i].num)
goods[i].count=goods[i].count+j;
PR("\n\tnumnamesortcountprice");
for(i=0;i{
PR("\n\t%4ld%4s%4s%ld%4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
PR("\n\n\t\tPressanykeytoentermenu:
");
getch();
return;
}
voidsell()
{
longtemp;
intj;
PR("\n\t\5inputsellgoods.num:
");
SC("%ld",&temp);
PR("\n\t\5inputsellgoods.count:
");
SC("%d",&j);
for(i=0;i{
if(temp==goods[i].num)
{
for(;j>goods[i].count;)
{
PR("\n\tshouchushuliangdayuyuanyoushuliang,cuowu,qingchongxinshuru:
");
SC("%d",&j);
}
goods[i].count=goods[i].count-j;
}
}
PR("\n\tpressanykeytocontiue:
");
getch();
system("cls");
PR("\n\n*xiaoshouhoudeshangpinxinxi:
");
PR("\n\tsortnumnamecountprice\n");
for(i=0;i{
PR("\t%4s%4ld%4s%4ld%4ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
}
PR("\n\tPressanykeytoentermenu:
");
getch();
return;
}
voidedit()
{
voidadd();
voiddele();
PR("\n\txuanze:
1.addgoods;2.deledoods;");
PR("\t*input1or2goon:
");
SC("%d",&k);
switch(k)
{
case1:
add();break;
case2:
dele();break;
}
getch();
return;
}
voidadd()
{
PR("\t*inputaddgoods.num:
");
SC("%ld",&goods[n].num);
PR("\n\tinputaddgoods.name:
");
SC("%s",goods[n].name);
PR("\n\tinputaddgoods.sort:
");
S