超市购物系统-C语言课程设计.doc
《超市购物系统-C语言课程设计.doc》由会员分享,可在线阅读,更多相关《超市购物系统-C语言课程设计.doc(22页珍藏版)》请在冰豆网上搜索。
沈阳航空航天大学
课程设计
学号2010041102037
班级04110201
姓名张俊峰
指导教师郭建新
2012年6月21日
沈阳航空工业学院
课程设计任务书
院系:
材料科学与工程学院专业:
材料成型及控制工程班级:
04110201
学号:
2010041102037题目:
超市购物系统
一、课程设计时间
2011~2012第2学期第16周,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
1超市的商品保存在file37中;
2进货:
可以添加商品信息;
3卖出商品;该商品数量减少:
4统计一天的销售额:
三、课程设计要求
1.程序质量:
²贯彻结构化的程序设计思想。
²用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括显示商品信息、购物、统计等项。
²代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、说明书成绩
六、教师评语
沈阳航空航天大学设计用纸
目录
一、需求分析 1
二、程序流程图 2
二、程序流程图 6
四、技术要点 8
五、个人总结 13
六、参考文献 13
七、源程序 14
19
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,其中每一个模块对应一个函数,他们的功能分别是:
录入并保存超市商品信息函数(add),添加商品信息函数(putin),顾客购买商品函数(que),超市商品信息查询函数(show),商品销售额的统计函数(sum)。
1、录入并保存超市商品信息函数主要实现程序最初运行时商品信息的录入;
2、添加商品信息函数主要实现程序运行中商品信息的添加;
3、顾客购买商品函数实现的功能是按照商品号码对商品的数据记录进行删除;
4、超市商品信息查询函数允许按照商品号对超市的各种商品信息进行查询;
5、商品销售额查询可以直接查看当日的销售额:
每一个商品记录都包含号码,名称,数量,价格。
在程序当中,将商品记录类型定义为结构体类型,添加以及追加的商品信息直接写入D盘的file37.dat文件中,其他函数每次对商品记录的访问,其数据来源都是file37.dat文件,这样做不但可以保证商品数据的一致性,而且可以对商品数据进行永久保存,保证每次运行程序都可以采用原来的数据,用一个数据库来存储所有数据,保证数据不会丢失。
二、程序流程图
1、程序总体结构图
n=5?
统计(sum)退出
真n=4?
购买商品
函数(que)
n=3?
真
添加商品函
数voidputin(
)假
n=2?
真假
显示函数
voidshow()
输入值n=1?
真假
录入信息
函数
voidadd()
当
(1)
地时间
图1程序总体结构图
2、具体功能框图
(1)录入商品数据信息函数add
真读写方式打开文件file37.dat不成功?
假
写方式打开文件file37.dat输入增加的商品数量n
真不成功?
假从文件中读出商品数量赋给j
输入商品数量
输出文件打开失败文件位置指针重回开头rewind
将n写入文件商品记录总数n+j写入文件
Return循环变量i=1文件位置指针定义在结尾fseek
当i<=n时
循环变量i=1
输入号码名称数量当i<=1时
信息写入文件i++输入商品信息写入文件i++
关闭文件
图2录入商品数据函数
(2)读取商品信息数据reads
读写方式打开file37.dat不成功?
真假
读出记录总数赋给*n
循环变量i=0
Return当i<=n时
读出一条商品信息数据给形参数
数组stu[i]
商品信息写入文件i++
图3读取商品信息数据
(3)顾客买商品函数que
Read(stu,&n)
循环变量i=0,输入待购买的商品号码
当i<=n-1时
真Stu[i]与number相等?
假
Breaki++
i>=n?
真假
j=i+1
当j数组元素信息依次前移j++
输入该商品信息不存在写方式打开文件file37.dat
假不成功?
真
i=0显示打开文件失败
当i<=n-2
记录写回文件
i++return
关闭文件
图4顾客买商品函数
二、程序流程图
录入并保存超市商品信息
添加商品信息
购买商品
显示
统计商品销售额
四、技术要点
本程序主要由五个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。
在这些函数当中,录入超市商品信息函数,添加信息函数,购买商品函数是程序中较为核心的部分,下面分别进行说明。
1、录入并保存超市商品信息函数
添加数据分为两种情况,其一是在创建文件(file37.dat)不存在的情况下,首先由程序创建一个新文件,并将录入的商品信息写入该文件当中;其二是在创建文件(file37.dat)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。
具体的程序段如下:
voidadd()/*添加商品信息*/
{FILE*fp;
intn,i,j;
structtextsup;
if((fp=fopen("e:
\\file37.dat","rb+"))!
=NULL)
{j=getw(fp);
rewind(fp);
printf("请输入要添加的商品种数,按回车键确认:
");
scanf("%d",&n);
putw(j,fp);
putw(i,fp);
fseek(fp,0L,2);
for(i=1;i<=n;i++)
{printf("\n请输入第%d个商品的号码,名称,数量用空格分开,并按回车键确认:
\n",i);
scanf("%s%s%d",sup.num,sup.name,&sup.n1);
}
}
else
{
if((fp=fopen("e:
\\text.dat","wb"))!
=NULL)
{
printf("请输入要添加的商品数量,按