《2022年C语言库存管理课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言库存管理课程设计 .pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学号:0120803490306 课 程 设 计题目库存模型维护学院管理学院专业信息管理与信息系统班级0803姓名黄勇彪指导教师王庆国2010年07 月12 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 24 页 - - - - - - - - - 课程设计任务书学生姓名:黄勇彪专业班级:信管 0803指导教师:王庆国工作单位:管理学院题目:库存模型维护初始条件:以链式结构的有序表表示某商厦家电部的库存模型。当有提货或进货的业务要求时,需要对该有序表及时进行维护。每个
2、工作日结束之后,将链式结构的有序表中的数据以文件的形式保存;每天营业之初需要将文件形式的数据恢复成链式结构的有序表。要求完成的主要任务 :(包括课程设计工作量及其技术要求、说明书撰写等具体要求)链式结构的有序表的结点结构的数据域应包括家电名称、品牌、型号、单价及数量,以结点中单价值的非减序列体现着有序性。日常的维护操作应包括初始化、创建表、插入、删除、更新数据、打印、查询以及链式结构的有序表与文件之间的数据转换。时间安排:序号设计内容所用时间1 问题分析和任务定义0.5 天2 数据类型和系统设计0.5 天3 编码实现和静态检查3 天4 上机准备和上机调试2 天5 总结和整理设计报告1 天合计7
3、 天指导教师签名: 2010 年 07月 02 日系主任(或责任教师)签名: 2010 年 07 月 02 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书1 库存模型维护1. 需求分析1.1背景分析在商场中,各种商品的库存量在每天的销售与进货过程中会发生不断的变化,而由于商场是零售经营,所以每天涉及库存的维护是一个比较麻烦的问题,另一方面,由于受市场和物价,居民消费水品的影响,商品的价
4、格在不同的时间内会发生一定的变化,部分商品也会由于科技的发展,或者消费者的价值取向,审美观等方面的影响,会淘汰掉,这既涉及到库存价格的变化,以及商品的变化,作为一个大型商场,没有好的库存管理方案,将会是一场灾难,所以,库存管理系统是必需的。为此,我用所学的C 语言设计了这样一个实现库存模型维护的程序,从而实现商场家电部门的库存维护,其中包括商品的初始化,商品的录入,淘汰商品的删除,以及商品信息的更新,商品信息的打印,以及库存商品文件与程序中表的转换。1.2 功能分析1.商品信息的输入形式:以手动输入或者从文件中读取。商品结构体中(商品号,商品名,商品品牌,商品单价,商品数量)是要求输入的,其中
5、商品号和商品数量的数据类型是整型,商品名和商品品牌的数据类型是字符串型,商品单价是浮点型。2.输出的形式包括以单行为一商品信息的屏幕输出和输出到文件。包括按商品号的顺序输出和按商品价格高低输出两种。3.商品的初始化,商品的录入,按商品号的排序,按商品号排序输出,按商品价格排序,按商品价格排序输出,指定商品的查询,淘汰商品的删除,以及商品信息的更新,商品信息的打印,以及库存商品文件与程序中表的转换。4.测试数据,如下截图:当库存文件记录为空时,输出库存文件,结果如下:当库存文件记录为空时,删除记录,结果如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
6、 - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书2 当库存文件记录为空时,排序输出记录,结果如下:当库存文件记录为空时,出货操作时,结果如下:当库存文件记录为空时,查询操作时,结果如下:当库存文件记录为空时,修改操作时,结果如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计
7、说明书3 2. 概要设计2.1 商品结构体数据类型如下typedef struct node /定义结构体int no; /产品号char name10; /产品名char kind10; /产品种类float price; /产品单价int num; /产品库存数量int pno; /产品号指针int pnum; /产品库存数量指针int pprice; /产品价格指针EmpType; 2.2 主函数的流程图如下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 24 页
8、- - - - - - - - - 武汉理工大学应用数据结构课程设计说明书4 3. 详细设计3.1 函数天用关系#include #include #define MaxSize 100 typedef struct node /定义结构体int no; /产品号char name10; /产品名char kind10; /产品种类float price; /产品单价int num; /产品库存数量int pno; /产品号指针int pnum; /产品库存数量指针int pprice; /产品价格指针EmpType; void ReadFile(EmpType emp,int &n) /对库
9、存文件读取的函数void Clearup(EmpType emp,int &n) /清空库存文件中的记录的函数void SaveFile(EmpType emp,int &n) /将商品记录保存到商品库库文件的函数void InputEmp(EmpType emp,int &n) /插入新的记录函数void OutputFile(EmpType emp,int n) /输出库存文件中所有记录的函数void Purchase(EmpType emp,int n) /进货记录些如山品库存文件的函数void Shipping(EmpType emp,int n) /出货记录保存到商品文件的函数voi
10、d Dispno(EmpType emp,int n) /按商品号排序输出库存文件的函数void Dispprice(EmpType emp,int n) /按商品价格排序输出的函数void Inquiry(EmpType emp,int n) /查询商品记录的函数void Modify(EmpType emp,int n) /修改商品记录的函数void Delete(EmpType emp,int &n) /删除文件中商品记录的函数int Comparison(char a,char b) /字符串比较void main() double dummy; dummy=sin(0.0); Emp
11、Type empMaxSize; int k, n,t,h; char a10=hyb0; char b10; char c10=hx1230; char d10; printf( 欢迎登陆黄勇彪的库存维护系统!n); printf( 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书5 =n); printf( 请输入您的登录名 :); scanf(%s,b); t=Comparison(
12、a,b); if (t!=0) printf( 对不起,登录名错误! ); else printf( 请输入您的密码: ); scanf(%s,d); h=Comparison(c,d); if (h!=0) printf( 对不起,密码错误! ); else printf( 欢迎使用黄勇彪的库存维护系统! ! n); printf( =n); ReadFile(emp,n); do printf( 1:输入新产品记录2:输出库存信息 n ); printf( 3:清空库存记录4:删除记录 n); printf( 5: 按产品号排序输出6:按价格排序输出n); printf( 7:进货登记8:
13、出货登记 n); printf( 9:查询记录10:修改记录 n); printf( 0:存储退出 n); printf( 请选择操作 0-10:); scanf(%d,&k); switch(k) case 1:InputEmp(emp,n); break; case 2:OutputFile(emp,n); break; case 3:Clearup(emp,n); break; case 4:Delete(emp,n); break; case 5:Dispno(emp,n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
14、- 名师精心整理 - - - - - - - 第 7 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书6 break; case 6:Dispprice(emp,n); break; case 7:Purchase(emp,n); break; case 8:Shipping(emp,n); break; case 9:Inquiry(emp,n); break; case 10:Modify(emp,n); break; case 0:SaveFile(emp,n); break; while(k!=0); 3.2 函数调用关系结构图名师资料总结
15、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书7 4. 调试分析4.1 遇到的问题1,调试的过程中遇到了居多问题, 首先是单价作为浮点数的输出问题,在输出过程中,一直未能正常输出,最后想到了以前也遇到类似问题,查阅资料,发现在函数开始添加库头函数#include ,程序中加入double dummy=sin(0.0); 即可解决该问题,其次是文件和顺序表的转换问题, 即文件的读和写,当然这些在课本上都
16、是能够找到的,输出格式问题, 这个也花了相当长的时间, 由于缺乏经验,在控制输出格式时,再三调试才是文件中的记录合理输出,还有各个函数的编制问题,虽然说起来都是很简单的几句话,但是在实际操作过程中却需要大量的时间去解决这些细碎的问题。2,在设计系统登陆,涉及字符数组的比较,其中用字符数组常量存储用户名,而登录时输入的用户名存储在另一字符数组中,然后调用设计的字符比较函数进行比较,看输入的用户名与字符常量数组中存储的字符串是否一致,是一致, 则进行第二步的密码校验,当然密码校验和用户名校验类似。在这其中,关于字符常量数组应该是什么,一直存在着偏差,例如:开始我以为应该设为char a10=hyb
17、,但是在调试过程中,一直未能正确,后翻看以前教材,查看关于字符数组的知识,才知道,键盘输入的字符数组是以“0”结尾的,后通过调试,完成了这一功能,虽然这是自己额外添加的功能,但是还是收获不少,其次是感觉自己的知识不够牢固,有一种“知识用时方恨少”的感觉。3,在涉及到C 语言编程时,关于使用的环境问题是大家问我问的最多的问题,其实我个人也遇到了同样的麻烦, 因为以前 C 语言的程序设计动用的是TC,总的感觉是TC 编程时, 函数内部调试比较好使,但是涉及多个文件链接时的工程文件时,就显得有些繁琐,没有像VC 和 VS 那样清晰的文件结构,除此之外, TC 的界面单调,但是总的来说TC 的关键字显
18、示对于编程人员来说,有很好的提示作用,而且他也可以结合文本文件编程,而VS 则属于大型工程编辑的,其界面,支持中文等方面就是其强势的一面,以前一直没怎么使用VS,但是这次, 为了提高系统的可阅读性,及良好的人机界面,采用了 VS,从 TC 到 VS,还是存在一些代码的区别,当然修改后的效果是显著的,界面支持中文,是库存管理一目了然。4,算法的分析,在时间复杂度和空间复杂度上,我的程序可能存在一些问题,因为我用的是顺序表结合指针,我个人认为,同样的问题,用简单的方式解决是最高效的,况且我们课程设计的时间有限,顺序表比链表掌握的基础好一些,所以我选择了最适合我的方式,导致了在进行产品信息删除时,时
19、间复杂度稍高,但是这并不存在很大的问题。在时间和空间复杂度上,基本上也得到了很好的控制。4.2 经验和体会编程过程中必须要有明确的思路,只有有明确的思路,才会少走弯路,所谓“磨刀不误砍柴工”,有了明确的路线,你的工作便会事半功倍!其次是编程过程中,要有恒心,要敢于创新,当然,在遇到麻烦时,不要忘了查阅工具书,好比喻C 语言函数速查手册,这样同样会让你事半功倍。最后就是学习的工程中要勇于动手实践,没有实践,再好的理论基础也是空谈,在我们班的很多同学便是这样,考试成绩相当牛,动起手来确实四处碰壁。这也证实了强大的思想并不能支撑一个完美的现实。名师资料总结 - - -精品资料欢迎下载 - - - -
20、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书8 5. 用户使用说明5.1 登陆提示登陆名为: hyb 登录密码为: hx123 登陆界面如下:5.2 成功登陆后操作第一步,选择你要进行的操作(程序会提示你),第二步,按照你选择的操作,进行输入等步骤即可(程序会提示) 。简单,一目了然的操作提示,使整个程序更加和谐化!附加说明:关于生成的hyb.exe 文件,貌似需要安装VS 。具体的还未验证。名师资料总结 - - -精品资料欢迎下载 - -
21、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书9 6. 测试结果6.1 运行测试库存维护系统登陆界面:初始操作界面,如下:插入一组新的商品记录,如下:(插入新产品5 号产品的信息)输出库存文件中的商品记录,如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 24 页 - - - - - - - - - 武汉
22、理工大学应用数据结构课程设计说明书10 将库文件中的商品按商品号排序并输出,如下:将库存文件中的商品按单价排序并输出,如下:进货操作,如下:( 1 号商品进货 5 件)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书11 出货操作,如下:( 1 号商品出货 15 件)按商品号查询某一商品的操作,如下:(查询5 号商品的信息)更新商品信息的操作,如下:( 修改商品 5 的编号,价格,数量
23、) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书12 删除商品信息的操作,如下:(删除2 号产品)6.2 库存信息文件保存商品信息到库存文件good.dat, 如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 24 页 - - - - - - - - -
24、武汉理工大学应用数据结构课程设计说明书13 7. 附录代码如下:#include stdafx.h #includestdio.h #includemath.h #define MaxSize 100 typedef struct node /定义商品记录结构体int no; char name10; char kind10; float price; int num; int pno; /指向下一产品的产品号int pnum; /指向下一产品的数量int pprice; /指向下一产品的单价EmpType; void ReadFile(EmpType emp,int &n) /读取库存文件并
25、存入 emp数组 FILE *fp; /定义文件指针long length; int i; if(fp=fopen(good.dat,rb)=NULL) /判断文件是否可读n=0; return; fseek(fp,0,2); /文件指针移到文件尾length=ftell(fp); /length求出文件长度rewind(fp); /文件位置指针指向文件首n=length/sizeof(EmpType); if(n!=0) n-; else emp0.pno=emp0.pnum=emp0.pprice=-1; /n=0时,初始化指针for(i=0;i 文件不能打开 n); return; em
26、p0.pno=emp0.pnum=emp0.pprice=-1; n=0; fclose(fp); printf( =n); void SaveFile(EmpType emp,int &n) /将emp数组存入库存文件 int i; FILE *fp; if(fp=fopen(good.dat,wb)=NULL) printf( 文件不能打开 n); return; if(n1) for(i=0;i 输入产品号,产品名,品牌,价格,数量:n); n+; scanf(%d%s%s%f%d,&empn.no,&empn.name,&empn.kind,&empn.price,&empn.num)
27、; for(i=0;i=n-2;i+) if(empi.no=empn.no) empi.num=empi.num+empn.num; n=n-1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书15 empn.pno=empn.pnum=empn.pprice=0; printf( =n); void OutputFile(EmpType emp,int n) /输出库存文件的所有记
28、录 int i; if(n 没任何记录 n); return; for(i=1;i%3d%10s%10s %.2f %dn,empi.no,empi.name,empi.kind,empi.price,empi.num); printf( =n); void Purchase(EmpType emp,int n) /库存已有商品的进货 int no,num,i; int flag=0; printf( 请输入进货产品的产品号,数量:n); scanf(%d%d,&no,&num); for(i=1;i=n;i+) if(empi.no=no) empi.num=empi.num+num; fl
29、ag=flag+1; if(flag=0) printf( 该产品是第一次入库,请选择操作,进行产品详细登记!n); /如果输入的是新产品,提示应该进行新品登记操作printf( =n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书16 void Shipping(EmpType emp,int n) /库存已有商品出货 int no,num,i; int flag=0; if(n
30、 没任何记录,无法出货!n); return; printf( 请输入出货产品的产品号,数量:n); scanf(%d%d,&no,&num); for(i=1;i=n;i+) if(empi.no=no) empi.num=empi.num-num; flag=flag+1; if(flag=0) printf(n); printf( =n); void Dispno(EmpType emp,int n) /按商品号排序输出库存商品记录 int i=2,j; int k=emp0.pno; if(n 没有产品记录,不能按产品号排序!n); return; emp0.pno=1;emp1.pn
31、o=-1; while(i=n) j=0; while(empj.pno!=-1 & empempj.pno.no%3d%10s%10s %.2f %dn,empk.no,empk.name,empk.kind,empk.price,empk.num); k=empk.pno; printf( =n); void Dispprice(EmpType emp,int n) /按价格排序输出库存商品记录 int i=2,j; int k=emp0.pprice; if(n 没有产品记录,不能按价格排序!n); return; emp0.pprice=1;emp1.pprice=-1; while(
32、i=n) j=0; while(empj.pprice!=-1 & empempj.pprice.price%3d%10s%10s %.2f %dn,empk.no,empk.name,empk.kind,empk.price,empk.num); k=empk.pprice; printf( =n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书18 void Inquiry(Em
33、pType emp,int n) /查询库存中某一商品记录 int no,i; if(n 没任何记录,不能查询!n); return; printf( 请输入你要查询的产品号:n); scanf(%d,&no); for(i=0;i%3d%10s%10s %.2f %dn,empi.no,empi.name,empi.kind,empi.price,empi.num); printf( =n); void Modify(EmpType emp,int n) /修改商品记录 int NO,no,num,i,j; char name10; char kind10; float price; int
34、 flag=0; if(n 没任何记录,无法修改!n); return; printf( 请输入你要修改的产品的产品号:n); scanf(%d,&NO); for(j=0;j=n;j+) if(empj.no=NO) flag=flag+1; if(flag=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书19 printf( 库存中没有该产品! ); else printf(
35、请输入你修改后的信息产品号,价格,数量:n); scanf(%d%f%d,&no,&price,&num); for(i=0;i=n;i+) if(empi.no=NO) empi.no=no;empi.price=price;empi.num=num; printf( =n); void Delete(EmpType emp,int &n) /删除某一商品记录 int NO,i,j; if(n 没任何记录,不用删除!n); return; printf( 请输入你要删除的产品号:n); scanf(%d,&NO); for(i=0;i=n;i+) if(empi.no=NO) for(j=i
36、;jbi) return 1; else if(aibi) return -1; if(ai=0&bi=0) return 0; if(ai=0) return -1; return 1; void main() double dummy; dummy=sin(0.0); EmpType empMaxSize; int k, n,t,h; char a10=hyb0; char b10; char c10=hx1230; char d10; printf( 欢迎登陆黄勇彪的库存维护系统!n); printf( =n); printf( 请输入您的登录名 :); scanf(%s,b); t=C
37、omparison(a,b); if (t!=0) printf( 对不起,登录名错误! ); else printf( 请输入您的密码: ); scanf(%s,d); h=Comparison(c,d); if (h!=0) printf( 对不起,密码错误! ); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 24 页 - - - - - - - - - 武汉理工大学应用数据结构课程设计说明书21 printf( 欢迎使用黄勇彪的库存维护系统!n);
38、printf( =n); ReadFile(emp,n); do printf( 1:输入新产品记录2:输出库存信息 n ); printf( 3:清空库存记录4:删除记录 n); printf( 5: 按产品号排序输出6:按价格排序输出 n); printf( 7:进货登记8:出货登记 n); printf( 9:查询记录10:修改记录 n); printf( 0:存储退出 n); printf( 请选择操作 0-10:); scanf(%d,&k); switch(k) /根据k的值,调用相应的函数 case 1:InputEmp(emp,n); break; case 2:OutputF
39、ile(emp,n); break; case 3:Clearup(emp,n); break; case 4:Delete(emp,n); break; case 5:Dispno(emp,n); break; case 6:Dispprice(emp,n); break; case 7:Purchase(emp,n); break; case 8:Shipping(emp,n); break; case 9:Inquiry(emp,n); break; case 10:Modify(emp,n); break; case 0:SaveFile(emp,n); break; while(k!
40、=0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 24 页 - - - - - - - - - 本科生课程设计成绩评定表姓名黄勇彪性别男专业班级信息管理与信息系统0803课程设计题目:库存模型维护课程设计答辩或质疑记录:成绩评定依据:评定项目评分成绩1设计原创性达到80%(30 分)2程序执行结果实现指导书中的所有基本要求(20分)3设计结果(软件程序)正确(10分)4设计报告的规范化( 10 分)5. 答辩( 30 分)总分(100 分)备注:成绩等级:优(90 分 100 分) 、良( 80 分 89 分) 、中( 70 分 79 分) 、及格( 60 分 69 分) 、60 分以下为不及格。若第一项低于20 分,或第一项与第五项之和低于35 分,则课程设计成绩不能及格。最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:2010 年 07月 12 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 24 页 - - - - - - - - -