商店管理系统课程设计报告.docx
- 文档编号:7753573
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:490.95KB
商店管理系统课程设计报告.docx
《商店管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《商店管理系统课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
商店管理系统课程设计报告
黄淮学院信息工程学院2011级
程序设计基础课程设计报告
题目:
商店销售管理系统
姓名:
班级:
软件工程1101B
学号:
指导教师:
杨锋英
完成地点:
机房606
完成时间:
2012-6-6
目录
一.设计目的……………………………………..3
二.设计要求…………………………………….3
三.模块设计……………………………………….3
四.主要数据结构………………………………….4
五.流程图…………………………………………4
六.源代码………………………………..............5
七.测试结果及分析……………………………..8
八.小结……………………………………………10
九.参考文献………………………………………..10
一、设计目的
随着现代生活质量的提高,超市这种便利的服务开始走进我们的生活,同时随着超市涌入我们的生活,如何更便利的对超市进行系统和有序的操作,成为了我们需要考虑的问题,本程序运用C语言程序设计了一个超市管理系统。
关系系统的的功能主要有新购物品入库、物品信息删除、物品信息修改、物品信息查询、物品信息浏览功能,
二、设计要求
1、用C语言实现程序的设计;
2、利用结构体数组和指针实现信息的数据结构设计;
3、系统的各个功能模块:
新购商品入库、物品查询、不需要信息的删除、物品修改、浏览等等都可以用函数的形式实现;
4、界面友好(良好的人机交互)。
三、模块设计
系统功能模块结构图
四、主要数据结构
/*定义存储单元基本信息的结构*/
structthing
{
charname[10];//商品名字
intnum;//商品编号
intkucun;//商品库存
floatdanjia;//商品单价
structthing*next;//指向下一个商品信息的链
};
五、流程图
六、源代码
//**************************************************************
//*程序名:
商店管理管理系统*
//*作者:
孙太明汪腾飞张红福陈红彪胡培鑫巩持烁*
//*时间:
2012-6-6*
//*功能:
实现对商品的输入、输出、增加、减少、库存等*
//**************************************************************
/*用链表实现学生成绩信息的管理*/
//商店商品信息管理系统
#include
#include
//#include
//defineSPstructthing
structthing
{
charname[10];
intnum;
intkucun;
floatdanjia;
structthing*next;
};
structthing*creat(void);
voidproduct(structthing*p);
structthing*del(structthing*p);
//structthing*p;
structthing*sell(structthing*head);
//structthing*head;
structthing*insert(structthing*head,intn);
//structthing*head;
structthing*review(structthing*head);
//structthing*head;
//intn=0;
structthing*duqu();
voidbaocun(structthing*head);
//主函数
voidmain()
{
system("color3a");
intn=0,b;
structthing*head;
intchoose;
do{
printf("\n\n\n\t\t请选择:
1菜单,任意数结束\n");
scanf("%d",&b);
if(b!
=1)
exit(0);
system("cls");
printf("\t\t◤☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◥");
printf("\t\t\t*\t\t*欢迎使用商店管理系统**\n");
printf("\t\t**\n");
printf("\t\t**\n");
printf("\t\t*【1】:
商品列表*\n");
printf("\t\t*【2】:
商品买卖*\n");
printf("\t\t*【3】:
库存商品增新*\n");
printf("\t\t*【4】:
库存商品删除*\n");
printf("\t\t*【5】:
商品详细修改*\n");
printf("\t\t*【6】:
建立库存*\n");
printf("\t\t*【7】:
提取信息*\n");
printf("\t\t*【0】:
退出管理系统*\n");
printf("\t\t◣☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◢");
printf("请输入要选择的功能:
");
scanf("%d",&choose);
if(choose>=0&&choose<=7)
{
switch(choose)
{
case1:
product(head);break;
case2:
product(head);head=sell(head);break;
case3:
head=insert(head,n);n++;break;
case4:
head=del(head),n--;break;
case5:
head=review(head);break;
case6:
head=creat();n=n+4;break;
case7:
head=duqu();break;
case0:
baocun(head);printf("欢迎使用商店管理系统!
\n");exit(0);
}
}
elseprintf("输入错误!
\n");
}while
(1);
}
//原始创建
structthing*creat()
{
structthing*head,*p,*q;
inti;
printf("请输入四种商品\n");
for(i=1;i<5;i++)
{
if(i==1)head=p;
elseq->next=p;
q=p;
printf("请输入商品名字、编号、数量、单价\n");
p=(structthing*)malloc(sizeof(structthing));
scanf("%s%d%d%f",p->name,&p->num,&p->kucun,&p->danjia);
if(i==1)
{
head=p;
q=p;
}
else
{
q->next=p;
q=p;
}
}
p->next=NULL;
returnhead;
}
//显示商品信息
voidproduct(structthing*p)
{
if(p==NULL)
gotoend;
printf("\t\t商品详细信息\n");
printf("\t产品编号\t产品名字\t库存\t单价\n");
do
{
printf("\t%d\t\t%s\t\t%d\t%.2f\n",p->num,p->name,p->kucun,p->danjia);
p=p->next;
}
while(p!
=NULL);
end:
;
}
//商品出售
structthing*sell(structthing*head)
{
intnum,n;
floatsum;
structthing*p;
p=head;
printf("请输入购买商品的编号:
\n");
scanf("%d",&num);
printf("请输入购买的数量:
\n");
scanf("%d",&n);
while(p->num!
=num&&p->next!
=NULL)
{
p=p->next;
}
if(p->kucun { printf("商品库存不足! \n\n\n\n"); gotoend; } if(p->num==num) p->kucun=p->kucun-n; else { printf("对不起,没有此商品! \n\n\n"); gotoend; } sum=p->danjia*n; printf("\t\t购买清单\n\n"); printf("\t商品名: \t%s\n",p->name); printf("\t商品单价: \t%.2f\n",p->danjia); printf("\t数量: \t%d\n",n); printf("\t总金额: \t%.2f\n\n\n",sum); end: returnhead; } /*删除商品信息*/ structthing*del(structthing*p) { structthing*head,*q; intnum; if(p==NULL) { printf("无库存! \n"); gotoend; } head=p; q=p; printf("请输入商品的编号: \n"); scanf("%d",&num); while(p->num! =num&&p->next! =NULL) { q=p;p=p->next; } if(p->num==num) { if(p==head) head=p->next; elseq->next=p->next; printf("%d号商品已删除! \n"); //n=n-1; } else printf("无此商品! \n"); end: returnhead; } //商品插入 structthing*insert(structthing*head,intn) { structthingfood; structthing*p0,*p1; p0=&food; p1=head; food.num=n+1; printf("物品的名称: "); scanf("%s",food.name); printf("物品的数量: "); scanf("%d",&food.kucun); printf("物品的单价: "); scanf("%f",&food.danjia); if(head==NULL) { head=p0; p0->next=NULL; } else { while(p1->next! =NULL) { p1=p1->next; } p1->next=p0; p0->next=NULL; } return(head); } //商品修改 structthing*review(structthing*head) { intnum,kucun; floatdanjia; printf("请输入要修改的编号: \n"); scanf("%d",&num); printf("请输入修改后的价格和库存: \n"); scanf("%f%d",&danjia,&kucun); structthing*p1; if(head==NULL) { printf("\nthelistisNULL! \n"); gotoend; } p1=head; while(p1->num! =num&&p1->next! =NULL) { p1=p1->next; } if(p1->num==num) { p1->danjia=danjia; p1->kucun=kucun; } elseprintf("找不到该编号\n"); end: return(head); } //文件保存 voidbaocun(structthing*head) { structthing*p; p=head; FILE*p1; if((p1=fopen("file","w"))==NULL) { printf("不能打开文件! \n"); gotoend; } while(p->next! =NULL) { fwrite(p,sizeof(structthing),1,p1); p=p->next; } fclose(p1); end: ; } //文件读取 structthing*duqu() { intn=0; structthing*head,*p,*q; FILE*p1; if((p1=fopen("file","rb"))==NULL) { printf("不能打开文件! "); gotoend; } p=(structthing*)malloc(sizeof(structthing)); fread(p,sizeof(structthing),1,p1); n++; while(! feof(p1)) { n++; if(n==1) { head=p; q=p; } else { q->next=p; q=p; } p=(structthing*)malloc(sizeof(structthing)); fread(p,sizeof(structthing),1,p1); } p->next=NULL; fclose(p1); end: returnhead; } 七、测试结果及分析 1、欢迎界面: 2、商品输入: 3、显示商品列表操作: 4、商品买卖: 5、商品新增操作: 6、商品删除操作: 7、商品修改操作: 8、提取操作: 9、退出: 八、小结 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。 我的题目是商店商品信息管理系统,对于我们这些新手来说,这是很大的考验,怎么才能找到课堂所学与实际应用的最佳结合点? 怎么才能让我们的程序在篇幅上简单,在使用价值上丰富? 怎样让自己的计划更具有序性,而不会忙无一用? 我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。 回顾起此次课程设计,至今我仍感慨颇多,的确,从确定题目到完成整个编程,从理论到实践,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体、链表、文件……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在我们的坚持不懈的努力下,终于游逆而解。 在课程设计过程中,我们学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。 没有了柳暗花明的一天,那么我怎么能说经受住了考验? 不得不说这是精神的胜利,是永不言败的精神让我们的程序重见天日。 九、参考文献 C程序设计(第三版)谭浩强著清华大学出版社 程序设计基础(第三版)吴文虎著清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商店 管理 系统 课程设计 报告