(店铺管理)超市库存货品信息管理系统设计
(店铺管理)超市库存货品信息管理系统
设计
课程设计报告课程名称《C语言程序设计》课题超市库存货品信息管理
系统
系别机电工程系
专业班级计控1101 学生姓名孙方瑞
学号11306013 指导老师顾建华
任务书下达日期2013 年1月7日
任务完成日期2013年 1 月11 日
课程设计目的和要求
1、目的:
a)巩固和加深学生对C语言课程的基本知识的理
解和掌握;
b)掌握C语言编程和程序调试的基本技能;
c)利用C语言进行基本的软件设计;
d)掌握书写程序设计说明文档的能力;
e)提高运用C语言解决实际问题的能力。
2、要求:
a)课程设计期间,同学之间可以讨论算法的实现和
编程的思路和方法,但每个人必须自己动手编写
程序,不得抄袭;
b)写出详细设计说明(程序实现的基本算法思想及
流程图);
c)编写程序代码,调试程序使其能正确运行;
d)设计完成后提交课程设计报告;
(对于程序中未能实现的部分需要加以解释说明;
对于程序中所参考的部分代码需要加以声明,并说明
出处。)
目录
一,问题定义………………………………………..
1.1问题背景…………………………………….
1.2 用户目标……………………………………二,概要设计………………………………………
2.1 方案确定…………………………………….
2.2 软件结构……………………………………
2.3 模块功能说明………………………………三,详细设计………………………………………
3.1 数据设计…………………………………..
3.2 流程图……………………………………. 四,编码………………………………………….
4.1 各功能模块编码…………………………. 4.2 主程序编码………………………………五,调试分析………………………………….. 六,总结………………………………………..
C语言课程设计内容:
课题:超市库存货品信息管理系统设计
一,问题定义
1.1问题背景
对于超市库存货品信息管理系统,其数据不仅复杂,量大而且还经常变化,要是采用传统的手工方式采集,不仅工作效率低,容易出错,而且管理也不够规范。由于计算机技术在管理应用领域中的开展,开发此数据库管理系统是十分必要的,并且具有可行性。当然目前超市的数据库系统不是采用C语言,而是采用一些数据库语言开发的,但为了说明C语言也同样可编写数据库软件,故本系统选用C语言作为开发工具。
1.2用户目标
由计算机来完成超市库存货品信息的管理,要求实现如下功能:建立超市库存货品表列,且可对此表列进行输出,插入,删除,查找,修改,保存等操作。
二,概要设计
2.1 方案确定
超市库存货品信息管理系统要求实现许多功能,可遵循前面所学的结构化程序设计思想来进行本系统的设计-----自顶向下,逐步细化,也就是将系统软件设计任务分成许多容易解决的小的任务,即分解出许多子功能模块进行设计。
2.2 软件结构
本实例中超市库存货品信息管理系统的软件结构如图所示
2.3 模块功能说明
对本系统的功能进行分析后可作如下的模块化设计
输入模块实现功能:能把用户逐一输入的数据添加进表中。
载入模块实现功能:能把磁盘上数据文件载入表中。
输出模块实现功能:能逐一把数据按指定格式输出到屏幕。
查找模块实现功能:能搜索到符合用户指定条件的数据,并将数据输出到屏幕。
插入模块实现功能:能把用户再次输入的数据插入表中。
删除模块实现功能:能把符合用户指定条件的数据从表中删除。
修改模块实现功能:能让用户修改制定的表中数据。
排序模块实现功能:能按照指定的关键字进行排序。
保存模块实现功能:能将数据保存为文件形式,长期保存。
主程序模块实现功能:完成主菜单的显示,及对各模块的调用。
三,详细设计
3.1 数据设计
1 数据结构的选择
a,对于各个超市,其规模各不相同,在建立某个超市库存货品的目录时无法预知期货品品种的多少,那么在用数组完成这一设计时,由于数组是在编译时分配内存的,所以其分配的空间大小是不可改变的,当数组的空间定义过小而货品种类很多时,就可能会出现数组很快用完的情况,使得数据量难以扩充,从而就限制了程序的应用能力;若数组的空间定义过大而当下又未被使用时,势必又会造成内存浪费。
b,对于某一个固定的超市,它每天需要进行的货品品种可能不同,因而一定会有新旧货品需要进行增加或删除。在有数组完成数据设计时,在数组中插入,删除一个元素需要移动数组中的大量数据元素,因此操作费时费事。
2数据类型的选择
由于本系统是完成本系统超市货品信息系统,货品数据有多个数据项,采用前面学习的结构体类型是最合适不过的。因为一个结构体可包含若干成员,而这些成员可以是数值类型,字符类型,数组类型,指针类型等,因此本系统在数据类型选择上选取结构体类型。设计如下:
Typedef struct goods_stype
{ int num; /* 货品号*/
char name[20]; /* 货品名*/
int amount; /* 货品量*/
}GOODS;
3.2 流程图
1,输入模块
输入模块实际上是完成一个用来存储超市货品信息的结构体类型数组的建立。
假设要求如表中的3个货品建立一个表,那么要建立数组来存储货品信息其算法流程图如下。
表1 –3个货品信息单列表
输入模块流程图:
2,载入模块
载入模块将已存入文件中的货品数据信息导出,创建成数组,之后可进行数组的插入,删除,修改,查找,排序等操作。
载入模块算法描述的流程图如下:
载入
3,输出模块就是依次输出数组中各货品元素,这个问题比较容易处理。输出数组中第一个元素直至最后一个元素即可。
输出模块算法描述的流程图如下:
输出模块流程图
4,查找模块
查找模块是指在已知数组中查找值为某指定值的货品元素,查找过程是从数组的第一个元素开始,顺序查找,当发现有指定值得货品元素时,输出查找结果,或查找至数组最后一个元素都没被发现有指定值得货品元素,输出“未找到”,表示数组中每有指定值得货品。查找是常用的一种操作,它常与插入,删除,修改等操作配合使用。
本系统在设计时采用两种查找依据,即可以按“货品号”或“货
品名”来分别查找某货品,而在插入模块,删除模块,修改模块和排序模块中,处理方法是相同的,有两种依据。
查找模块算法描述的流程图如下:
查找模块流程图
5,插入模块
插入模块要完成的是货品表的插入操作,即将一个新货品信息插入到一个已有存储货品信息的数组中。假设对刚刚建立的数组,现有一个新货品(货品号:10301,货品名:童帽,数量:300个)要求插入其中,并要求插入到数组中货品号为“10201”之前,如何完成?
首先新设一个结构体变量ins_goods,输入预插入货品信息,即新货品有关数据,接下来在数组中查找货品号为“10201”的货品,找到后只需移动此货品元素及其之后的所有数组元素即可,
数组中的此货品元素及其以后的元素要依次向后移动,虽然效率不高但实现起来简单方便。插入模块也可以设计成插入某货品之后,读者可自己设计。
插入模块算法描述的流程图如下
插入模块流程图
6,删除模块
删除模块要完成的是货品的删除操作,此操作也容易,只需删除数组中指定货品即可。接上例,假设现又要求在刚完成插入操作的数组中再删除一个货品,货品号为“10201”。在数组中查找货品号为“10201”的货品,找到后只需要移动此货品元素之后的所有数组元素即可,数组中的此货品元素之后的元素要依次向前移动。
删除模块算法的流程图如下:
删除模块的流程图