商店管理系统课程设计报告.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程序设计(第三版)谭浩强著清华大学出版社
程序设计基础(第三版)吴文虎著清华大学出版社