《C语言商店商品管理系统设计报告及源代码》由会员分享,可在线阅读,更多相关《C语言商店商品管理系统设计报告及源代码(36页珍藏版)》请在金锄头文库上搜索。
1、目 录1 系统分析21.1 课程设计容21.2 系统功能需求分析21.3 数据构造设计32 系统设计32.1 总体设计32.2 详细设计42.2.1 界面设计42.2.2 各功能模块的设计63 系统编码设计93.1 main函数94 系统运行225 总结26z1 系统分析1.1 课程设计容商场商品信息管理系统1.2 系统功能需求分析本系统应具有以下功能:1、 文件操作功能 文件操作:可建立、翻开、保存、关闭数据文件。如果是新建的文件,可输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。2、数据输入功能输入进货信息:输入商品编号、数量完成进货操作。输入销售信息:输入商品
2、编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示。3、 数据添加、修改、删除功能添加:添加一种或多种新商品,并能输入其商品信息。修改:修改商品信息,可包括商品编号、名称、种类、数量和单价。删除:删除一类或多类商品的所有信息。4、 计算功能 可通过查询商品信息功能,自动计算并输出需要进货的商品信息。5、 查询功能 可分别按商品编号、名称、类别和需要进货的商品进展查询。6、 排序功能 可分别按商品编号、名称、类别等进展排序。7、 数据显示功能 可分别浏览输入、查询和排序后的商品信息。1.3 数据构造设计struct goods /*商品构造体*/ long int num; /
3、*商品编号*/ char name20; /*商品名称*/ char sort20; /*商品类别*/ long int count; /*商品库存量*/ long int price; /*商品单价*/ goods200; /*最多200个商品*/2 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:一、 文件管理n 文件翻开、关闭:对于刚输入或进展操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进展翻开和关闭操作。二、 进出货管理n 商品进货: 输入数据后商品信息能自动更新进展添加n 商品销售: 输入数据后商品信息能自动更新进展减
4、少三、商品数据管理n 增加/删除商品: 添加或删除*条商品的信息n 修改商品信息: 对*条商品的信息进展修改四、浏览商品信息管理n 查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询n 排序商品信息: 可按商品编号、名称、类别分别排排序n 浏览商品信息:可浏览输入、查询或排序后的数据。此处可用图形描述功能模块划分,类似下列图商场商品信息管理系统商品数据管理浏信览息商管品理文件管理进出货管理翻开关闭保存查询数据输入数据排序数据修改添加出货进货删除2.2 详细设计 界面设计1、 菜单设计n 欢送界面:n 系统提示:n 菜单设计:2、 输入界面的设计3、 信息显示界面的设计 各功能模块的设
5、计根据划分的功能模块,定义以下函数实现各功能:这局部应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述1、 主函数main()定义主函数为空类型(void);利用选择构造(switch)实现在在主函数中的调用各个子函数,利用goto 和子函数中的return语句实现返回主菜单的循环。声明各个子函数输出欢送界面输出菜单switch(m)1输入商品信息2排序商品信息3输入商品进货信息4输入商品销售信息5增加/删除商品6修改商品信息7查询商品信息8浏览商品信息9保存商品信息清屏幕2、 子函数(1) void input():确定新的库存量n,输入商品信息,用for循环语句直到输入商品种类等
6、于n,完毕输入;scanf(n)for(i=0;i=n;i+) 将数据存入构造体成员return(2) void sequence():对已有的商品进展排序,可按商品编号、名称、类别进展排序;long temp; char p130,p230;按编号排序for(k=0;kn-1;k+);for(i=0;igoodsi+1.num) 是 排序输出排序后结果按名称排序for(k=0;kn-1;k+)for(i=0;i0) 是 排序输出排序后结果按类别排序for(k=0;kn-1;k+) for(i=0;i0) 是 排序输出排序后结果(3) void purchase():进货函数主要是针对已有库存
7、的商品,在原来的商品数量再增加: for(i=0;in;i+)if(temp=goodsi.num); 是 输入数量 Return (4) void sale():要求用户输入所销售的编号,系统用for 循环查询该商品是否存在,不存在要求再进展输入,直到输入正确,输出销售商品: for(i=0;igoodsi.count) 出现输入错误提示;重新输入scanf; for(i=0;in;i+) 输出销售商品(5) void edit():因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进展俩者
8、操作的选择:定义变量long temp; 声明函数void add();void dele();switch(k) k=1 k=2 add(); dele(); break; break;(6) void correct():对有错误信息商品进展修改,输入需要修改的商品编号,用for 循环与if语句找到此商品,重新输入该商品的新信息,并输出:long temp; scanf(temp); for(i=0;in;i+)if(temp=goodsi.num)输入新信息 for(i=0;in;i+) 输出修改后商品信息(7) void search():用switch(k)语句可分别按商品编号、名称
9、、类别或需要进货商品查询;每个case选择中均用for语句查找要查询的商品,并输出查询结果。 long temp1;char temp220,temp320; switch(k) casek) 输出查询商品信息(8) void scan():可分别进展浏览输入的商品信息、查询的商品信息、排序后商品信息,用switch 进展这三种方式的选择。 saf ( ) switch(k) case for(i=0;in;i+) 输出所要浏览信息; break;(9) void reserve():建立文件FILE *fp;char file15用来存放文件保存路径以及文件名,进展清屏,输入文件路径及文件名
10、,利用fp=fopen(file,w+)实现创立并翻开一个文件,并得到该文件的地址的功能,显示fprintf(fp,商品编号t商品名 t商品类别t商品数量t商品价格n); 最后输出已保存文件,程序中是由PR(商品编号t商品名 t商品类别t商品数量t商品价格n);语句执行。scanf(n)for(i=0;i=n;i+) 将数据存入构造体成员return3 系统编码设计这局部将代码列出,注意,每个函数开场处要介绍函数的功能,重要的代码应有注释,代码格式按锯齿式编排3.1 main函数*includestdio.h*includestring.h*includestdlib.h*define PR
11、printf*define SC scanfstruct goodslongint num;char name20;char sort20;longint count;longint price;goods200;int k,n,i;void main ()void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();void e*it(); PR(n *n *tttttttt *n);PR( * *);PR(n *tttttttt *n * Weletttttt *n *tttttttt *n);PR( *tt to go into .tttt * );PR(n *tttttttt *n);PR( * -the Goods Inform