《数据结构课程设计报告 家电库存管理系统的设计.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告 家电库存管理系统的设计.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、重庆科技学院数据结构课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科 学生姓名: 学 号: 设计地点(单位)_ _ 计算机基础自主学习中心 _ _ _设计题目:_ _家电库存管理系统的设计 _ 完成日期:2012年 7 月 6 日 指导教师评语: _ _ 成绩(五级记分制):_ 指导教师(签字):_ 重庆科技学院课程设计任务书设计题目:家电库存管理系统的设计 学生姓名 课程名称数据结构课程设计专业班级计科地 点计算机基础自主学习中心起止时间2012.6.25-2012.7.6设计内容及要求以链表结构的有序表表示某商场家电部的库存模型。当有提货或进货时需要对该数据及时进行维护。每次
2、退出程序时,将该链表中的数据以文件形式保存在磁盘上,每次启动程序时,需将以文件形式保存的数据恢复成链表结构的有序表。链表结点的数据域包括:类别、型号、品牌、重量、单价、数量、生产日期、厂家名称,默认按类别、品牌升序排好序。程序功能包括:创建链表、插入、删除、修改、查询、排序(库存、类型、生产日期)等。设计参数测试数据要求:家电类别(如:电视机,空调,冰箱等)不少于5种,记录数量不少于500。数据示例:电视机 CH215 长虹 25KG 2500 20 2012-6-15 长虹公司进度要求2012.6.25 完成任务的讲解、并接受课程设计任务,选定课程设计的题目2012.6.26 了解任务的算法
3、、并画出算法的程序流程图,对任务的关键技术进行验证、并确定解决办法2012.6.27-2012.6.29 程序设计及编码,上机调试2012.7.02 对程序进行调试,设计测试用例进行测试2012.7.03 整理课程设计的过程、并进行总结,完善程序功能2012.7.04 编写课程设计报告初稿2012.7.05 完善课程设计报告、并准备答辨2012.7.06 提交课程设计报告和程序,进行答辨参考资料1严蔚敏 吴伟民, 数据结构,清华大学出版社,2007.32程杰 ,大话数据结构,清华大学出版社,2011.63(美)Stephen Prata, C Primer Plus中文版(第五版),人民邮电出
4、版社,2005.2其它说明1.本表应在每次实施前一周由负责教师填写二份,学院审批后交学院教务办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。系主任: 雷亮 指导教师:黄永文/王双明/熊茜/彭军/王成敏2012年 6月 20日摘要在经济飞速发展今天,商品流通日益发达。家电产品消费产生的利润已近成为各商家不可忽略的一部分。各种商品的库存量在每天的销售与进货过程中会发生不断的变化,因而对于商品的管理越发显得重要。简洁便利的管理系统不仅节省了时间,而且解决了人力资源上的浪费。可以这样说,拥有好的管理系统是企业和商家抢占先机的必胜
5、法宝。论文对商品库存管理系统的介绍,使用链表的方式来实现。把商品信息都存入链表中。创建商品信息、插入商品信息、删除商品信息、修改商品信息、查询商品信息、商品信息的排序和保存都在链表中实现。关键词:商品流通 商品库存管理系统 链表目 录1 设计内容和要求11.1 主要设计内容11.2 设计的基本要求12 算法设计的思想22.1数据初始化22.2插入信息22.3删除信息22.4统计信息22.5查询信息22.6更新信息32.7退出并保存信息33 算法的实现43.1数据初始化43.2插入信息43.3删除信息43.4统计信息43.5查询信息43.6退出并保存信息54主要功能设计流程65 程序的测试75.
6、1数据初始化75.2 插入信息85.3删除信息95.4 查询信息105.5 更新信息105.6 退出116 总结13参考文献15致谢161 设计内容和要求1.1 主要设计内容采用链表结构的有序表表示某商场家电部的库存模型。当有提货或进货时需要对该数据及时进行维护。每次退出程序时,将该链表中的数据以文件形式保存在磁盘上,每次启动程序时,需将以文件形式保存的数据恢复成链表结构的有序表。1.2 设计的基本要求 链表结点的数据域包括:商品类别、商品型号、商品品牌、商品重量、商品单价、商品数量、商品生产日期、厂家名称,默认按单价升序排好序。程序功能应包括:创建商品链表、商品信息插入、商品信息删除、商品信
7、息修改、商品信息查询、商品信息排序等。当输入错误时提示出错,并提示重新输入。避免出现页面数据过多要使用清屏。当选择使用的功能完毕后,按任意键返回主菜单。 设计的思路明确。2 算法设计的思想2.1数据初始化在一天的销售开始时,商家应首先判断今天所卖的商品中在前一天的是否有记录存在,若有可以进行其他操作,如新的商品信息的插入和删除等。也可以初始化,从新输入所需要入库的商品信息。当输入完毕后,可按任意键返回主菜单。进行其它操作。2.2插入信息 有新的商品需要入库时,在库存中划出一点新的空间,在新的空间里,把商品的信息依次存进去。当然添加的信息根据商家的需要,可以的话想添几种都可以,任用户选择。把新产
8、品入库后,就可以对外销售了。也可以进行维护等其他操作。2.3删除信息商品过期了就要下架销毁,商人要保证信誉第一。(当然也包括不流行了,下架处理)明确过期的是那一种商品(看好名称、型号、品牌以免错杀无辜),然后销毁。腾出的地方可以放其它的商品。2.4统计信息对于那些大型商家来说,有序的管理商品很重要。每天要做好商品统计,但统计要讲究方法,一股脑的全统计了太麻烦,一个个统计又显得太没有效率了。所以选择一种简单点的方法:按单价升序排列,再依次输出商品的信息。这样一目了然。2.5查询信息商家肯定会面临消费者的咨询,想要了解某种产品的具体信息。按照消费者提供的信息,输入商品名称、型号、品牌,然后点击确定
9、,产品信息就出来了。2.6更新信息当商品卖出、买入、更换等等时,不可避免的要对商品进行更新。输入名称、型号、品牌明确你要更新的产品,输入更新的值,点击确定一切OK。2.7退出并保存信息 商店打烊了,把一天结束后的商品信息全部存到文档中,以供第2天使用。3 算法的实现3.1数据初始化当用户选择使用int InitJD()函数时对链表进行初始化,定义一个新的链表j,为j申请空间 j = (jd)malloc(sizeof(JD); j-next = NULL; P = (jd)malloc(sizeof(JD)每输入一个商品信息时,新申请一个节点来存储商品信息。 p -next = j -next
10、; /将新节点的下一个指为空j -next = p; /加入到链表末端3.2插入信息当用户选择使用 int insertJD()函数时,传递进初始化后的链表j进入函数,申请一个新的节点p0来存放新的商品的信息。 jd p0; /定义一个新的JD型的指针p0p0-next=j-next; /将新节点的下一个指为空 j-next=p0 /加入到链表j的末端3.3删除信息当用户选择使用 int deletJD(jd &j,Jiadian &e)时进行删除操做。先判断链表j是否为空。在输入商品的类别,型号,品牌进行比较,明确商品信息。if(strcmp(e.Leibie,p1-data.Leibie)
11、=0 & strcmp(e.Xinghao,p1-data.Xinghao)=0 & strcmp(e.Pinpai,p1-data.Pinpai)=0) e = p1 -data; /指针e做记录,为输出做准备p2 -next = p1-next; /将删除节点前节点指向删除节点的下一个节点3.4统计信息当用户选择使用 int totalJD(jd &j)函数时进行商品信息统计,首先调用排序sortJD(j),在链表不为空的时候,使商品按单价升序重新排列if(p-data.Danjia data;p-data=q-data;q-data=min;再遍历链表输出所有商品信息。while(p!=
12、NULL) /输出整个链表信息 printf(“输出商品信息”); p=p-next;3.5查询信息当用户选择int searchJD(jd &j,Jiadian &e,int &flag) 函数时进行商品查询在链表不为空的情况下while(p!=NULL)if(p=NULL | strcmp(e.Leibie,p-data.Leibie)=0 & strcmp(e.Xinghao,p-data.Xinghao)=0 & strcmp(e.Pinpai,p-data.Pinpai)=0)g=1;break; p=p-next;if(g = 1)printf(“输出商品信息”);3.6 更新商品
13、信息 当用户选择int gengxinJD(jd &j,int &flag)函数时进行更新操作;首先判断链表是否为空。在不为空的情况下输入选择更改的方面。 searchJD(j,e,flag); /再次调用查询函数确定要更新的商品if(flag =0) return 0;p=j -next;while(p!=NULL)if(p=NULL | strcmp(p-data.Leibie,e.Leibie)=0) /找到要更该的信息break;p=p-next;printf(把产品的类别更新为n);scanf(%s,e1.Leibie);strcpy(p-data.Leibie,e1.Leibie)
14、; /调用函数,进行互换printf(“输出更新后的商品信息:”);3.6退出并保存信息int fpIn(jd &j) /写入信息到文件if(!(fp=fopen(joeq7.txt,w) /写到文件中printf(can not open filen);return 0;p = j -next;while(p != NULL) /将信息写入文件 fscanf(“把信息写入文本中”); p=p-next;4主要功能设计流程开始输入choice 的值进行选择 0退出并保存1 初始化信息2插入商品信息3删除商品信息 4统计商品信息5查询商品信息6更新商品信息 退出系统图4.1 整体流程图 进入主界
15、面,将会出现一系列的提示,有许多选择供用户选择。通过输入choice的值来进行选择。当输入错误时系统会提醒你重新输入选择。当用户选择1系统将初始化商品信息,用户输入2时插入新的商品信息,用户输入3时删除商品信息,用户输入4时系统统计所有商品信息并且输出到屏幕,用户输入5时将查询其想要的商品信息并输出到屏幕,用户输入6将更新商品的部分信息并输出到屏幕,用户输入0退出商品库存管理系统并且系统将保存商品信息于文件中,以供下次使用5 程序的测试5.1数据初始化图5.1 主界面图5.2 商品信息初始化图5.3 初始化后统计信息5.2 插入信息图5.4 插入商品信息图5.5 插入后统计信息5.3删除信息图5.6 删除信息图5.7 删除后统计信息5.4 查询信息图5.8 查询信息5.5 更新信息图5.9 更新产品信息5.6 退出图5.10 退出系统图5.11 存储文档6 总结参考文献1 严蔚敏 吴伟民 数据结构(C语言版)清华大学出版社,20002 文益民 周学毛 李健 数据结构与程序设计 人民邮电出版社 2008