C语言超市商品管理系统Word格式文档下载.docx
《C语言超市商品管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言超市商品管理系统Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
3.1.2主函数main()……….………………………………………………………5
3.1.3主菜单界面………….………………………………………………………6
3.1.4商品信息建立…….………………………………………………………….7
3.1.5商品信息查看………….………………………………………………………9
3.1.6商品信息增加……….………………………………………………………..11
3.1.7商品信息删除………….………………………………………………………12
3.1.8商品信息修改………….………………………………………………………14
3.1.9商品数目统计………….………………………………………………………16
3.2测试与调试………………………………………………………………………22
3.2.1概述………….……………………………………………………………22
3.2.2程序测试………….……………………………………………………………22
4系统维护………………………………………………………………………25
5归纳总结………………………………………………………………………25
5.1开发经验………………………………………………………………………25
5.2实训中遇到的问题及解决方法………………………………………………25
5.3设计中的不足之处……………………………………………………………………25
5.4感想和心得体会……………………………………………………………………25
6参考资料………………………………………………………………………25
超市商品管理系统
本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的单链表的各种基本操作。
本程序中涉及结构体、单链表、文件保存等方面的知识。
通过本程序的训练,使学生能对C语言的链表的操作有一个更深刻的了解,掌握利用单链表存储结构实现对超市信息管理系统的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。
1、问题定义
创建一个超市管理系统。
该程序具有保存商品信息、查询商品信息、修改商品信息、删除商品信息、统计商品信息并具有自动判断商品价格、库存等的功能。
超市管理系统主界面
2、系统设计
2.1总体设计
本程序采用模块化设计方法,即将一个大任务分成一个个小任务,然后分别设计个小任务。
划分出来的模块相对独立而又相互关联,容易理解。
本程序由5大模块组成:
1.输入信息模块
2.增加信息模块
3.修改信息模块
4.删除信息模块
5.统计信息模块
2.2详细设计
定义结构体
structgood
{
intnum;
/*商品编号*/
charname[20];
/*商品名称*/
charkind[40];
/*商品类型*/
floatprice;
/*商品价格*/
charunit[10];
/*商品单位*/
intquantity;
/*商品数量*/
structgood*next;
/*定义结构体指针类型*/
}*head,*p1,*p2;
单链表good结构体
structgood/*定义结构体*/
2.2.2主控main()函数执行流程
Intmain()
structgood*p1,*p2;
while
(1)
if(m==1)
printf("
********************************商品信息的查看*******************************\n"
);
if(m==2)
{
********************************商品信息的输入*******************************\n"
}
if(m==3)
********************************商品信息的统计*******************************\n"
if(m==4)
********************************退出*******************************\n"
break;
return0;
}
本商品管理系统执行主流程。
它先以可读写的方式打开数据文件,此文件默认为“C:
\goodslist.txt”,若该文件不存在,则新建此文件。
当打开文件操作成功后,从文件中一次读出一条记录,然后执行显示主菜单和进入主循环操作,进行按键判断。
2.2.3输入信息模块
记录可以从以文件形式存储的数据文件中读入,也可从键盘逐个输入商品记录。
商品记录由商品的基本信息和成绩信息字段构成。
当从数据文件中读入记录时,也就是把在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。
2.2.4增加信息模块增加信息模块主要实现信息增加
2.2.5修改信息模块修改信息模块主要实现信息修改
2.2.6删除信息模块删除信息模块主要实现信息删除
2.2.7查看信息模块查看信息模块主要实现信息查看
2.2.8统计信息模块统计信息模块主要实现信息统计
2.2.9函数功能描述
shuchu()
shuchu()函数用于输出商品信息。
●structgood*paixu(structgood*head2)
此函数用于给链表排序。
●jisuan()
jisuan()函数用于判断商品的类别。
●printf0(structgood*p)
printf0(structgood*p)函数用于遍历链表并打印电器类商品。
●printf1(structgood*p)
printf1(structgood*p)函数用于遍历链表并打印日用品类商品。
●printf2(structgood*p)
printf2()函数用于遍历链表并打印办公用品类商品。
●printf3(structgood*p)
printf3structgood*p()函数用于遍历链表并打印食品类商品。
●shunxudayin()
shunxudayin()函数用于给商品排序并打印。
●tongji1()
tongji1()函数用于统计给库存量低于100的货名和类别。
●tongji2()
tongji2()函数用于统计商品库存量有2种以上(含两种)低于100的商品类别。
完成在上述系统设计后,即可着手进行系统实现的工作,开始程序代码的编写。
3、系统实现
3.1编码
3.1.1程序预处理
包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。
#include"
stdio.h"
/*输入,输出头文件*/
stdlib.h"
/*申请空间头文件*/
string.h"
/*对字符串加工头文件*/
conio.h"
/*清屏头文件*/
FILE*fp;
intn=0;
/*定义文件指针类型*/
inti,j,a[4],m;
/*定义整数类型*/
floataver[4],sum[4],g[4],h;
/*定义浮点类型*/
3.1.2主函数main()
main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。
3.1.3主菜单界面
用户进入商品管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。
桂林电子科技大学信息科技学院超市管理系统\n"
***********************************************\n"
1----------输出查看或者修改已存信息-----------\n"
-----------------------------------------------\n"
2-----重新输入新信息(并且删除原有信息)------\n"
3统计商品信息(如果您还没有查看过信息请先按1)\n"
4-------------------退出---------------------\n"
scanf("
%d"
&
m);
3.1.4商品信息建立
用户进入商品管理系统时,对某个商品的信息进行处理。
structgood*createlist()/*创建链表函数*/
structgood*head1,*p1,*p2;
if((fp=fopen("
goodsmessage.txt"
"
w"
))==NULL)/*判断能否打开文件*/
cannotopenthefile"
exit(0);
/*结束程序*/
head1=(structgood*)malloc(sizeof(structgood));
/*申请头结点空间*/
p1=head1;
p2=head1;
*********************************************\n"
请输入信息:
编号,名称,类型,价格,单位,数目\n"
(以输入“-1”表示结束输入)\n"
____________________\n"
%d%s%s%f%s%d"
p1->
num,p1->
name,p1->
kind,&
price,p1->
unit,&
quantity);
/*输入商品信息*/
p1->
next=NULL;
fprintf(fp,"
%d%s%s%f%s%d"
p1->
kind,p1->
unit,p1->
/*将商品信息写入文件*/
while
(1)
p1=(structgood*)malloc(sizeof(structgood));
/*申请新空间*/
num);
if(p1->
num==-1)/*申请空间结束条件*/
____________________\n\n"
-1);
fclose(fp);
returnhead1;
/*返回头指针*/
%s%s%f%s%d"
/*输入商品信息*/
________________\n"
p2->
next=p1;
p2=p1;
3.1.5商品信息查看
voidshuchu()/*输出商品信息函数*/
{
do
structgood*p3,*p4,*p5;
intn=0,p=0,q=0,r=0;
所有商品信息:
\n"
**********************************\n"
rb+"
head=(structgood*)malloc(sizeof(structgood));
p3=head;
fscanf(fp,"
p3->
num,p3->
name,p3->
price,p3->
/*从文件中写到链表*/
p4=(structgood*)malloc(sizeof(structgood));
%d"
p4->
if(p4->
num!
=-1)/*判断循环结束条件*/
%s%s%f%s%d"
p4->
name,p4->
price,p4->
p4->
p3->
next=p4;
p3=p4;
else
/*关闭文件*/
while(p3!
=NULL)
{
%d%s%s%0.1f%s%d\n\n"
p3->
kind,p3->
unit,p3->
__________________________________\n"
p3=p3->
next;
//////////////////////////////////\n"
while(n!
=4)
1添加商品信息\n"
2删除某商品信息\n"
3修改某商品信息\n"
4返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)\n"
n);
3.1.6商品信息增加
if(n==1)/*添加商品信息*/
请输入商品编号名称类型价格单位数目\n"
/*申请空间*/
num,p4->
while(p3->
next!
=NULL)/*判断循环结束条件*/
/*关闭文件*/
------------请按4返回-------------\n"
3.1.7商品信息删除
if(n==2)/*删除商品*/
请输入需要删除的商品编号\n"
p);
**********\n"
1确认删除\n2取消删除\n"
r);
if(r==1)
if((head->
num)==p)
head=head->
free(p3);
/*释放空间*/
p4=head;
p3=p4->
=NULL)/*判断循环结束条件