《数据结构家电库存管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据结构家电库存管理系统课程设计报告.docx(36页珍藏版)》请在优知文库上搜索。
1、数据结构家电库存管理系统课程设计报告重庆科技学院数据结构课程设计报告学院:电气与信息工程学院专业班级:计科2010-01学生姓名:阳勇学号:2010441798设计地点(单位)计算机基础自主学习中心设计题目:家电库存管理系统的设计完成日期:2012年1月13日指导教师评语:成绩(五级记分制):指导教师(签字):置庆科技学院课程设计任务书设计题目:家电库存管理系统的设计学生姓名阳勇课程名称数据结构课程设计专业班级计科2010-01,02,03,04!1点计算机基础自主学习中心起止时间2011.12.31-2012.1.13设计内容及要求以链表结构的有序表表示某商场家电部的库存模型。当有提货或者进
2、货时需要对该链表及时进行保护。每次退出程序时,将该链表中的数据以文件形式储存在磁盘上,每次启动程序时,需将以文件形式储存的数据恢复成链表结构的有序表。链表结点的数据域包含:类别、型号、品牌、重量、单价、数量、生产日期、厂家名称,默认按类别、品牌升序排好序。程序功能包含:创建链表、插入、删除、修改、查询、排序等。设计参数测试数据要求:家电类别(如:电视机,空调,冰箱等)很多于5种,记录数量很多于500。进度要求2011.12.31完成任务的讲解、并同意课程设计任务,选定课程设计的题目2012.01.04熟悉任务的算法、并画出算法的程序流程图,对任务的关键技术进行验证、并确定解决办法2012.01
3、.05-2012.01.06编制程序2012.01.09对程序进行调试,设计测试用例进行测试2012.01.10整理课程设计的过程、并进行总结,完善程序功能2012.01.11编写课程设计报告初稿2012.01.12完善课程设计报告、并准备答辨2012.01.13提交课程设计报告与程序,进行答辨参考资料1 .严蔚敏吴伟民,数据结构,清华大学出版社,2007.32 .李春葆,数据结构教程,清华大学出版社,2005.13 .(美)StephenPrata,CPrilnCrPlUS中文版(第五版),人民邮电出版社,2005.2其它说明L本表应在每次实施前一周由负责教师填写二份,学院审批后交学院教务办
4、备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。指导教师:向毅/彭军/王双明/龙冯文/黄永文系主任:雷亮2011年12月260摘要随着信息技术的飞速进展,人们对信息管理技术要求也越来越高以习惯飞速进展的经济。本次课程设计针对当前的需求,设计一个家电仓库信息的管理系统以方便商家更快捷更有效的对仓库货品的信息进行管理,给商家制造更多的价值!该系统整体运用了数据结构的知识,它是将货品信息按链表形式来储存的。将所有的货品分类储存在数据链表的每一个节点中,每个节点也包含了一种类型家电的所有信息。即是,建一个链表,链表中有许多个节点,
5、节点中储存了不一致类型的数据;这样我们就很容易的将货品信息管理起来了!该系统进行了精心的规划,有齐全的信息管理功能。方便用户使用,用户能够很快的找到自己所需要的信息同时有添加、删除、修改、查询、排序、储存等功能提高了用户对信息的管理效率!关键词:信息数据结构链表管理目录1系统需求分析说明书11系统软件界面介绍11.2系统设计要求11.3系统的设计22系统分析与设计32.1 系统分析31. 2系统功能分析43代码实现72. 1链表创建函数代码解释73. 2插入节点函数代码解释73.3删除节点函数代码解释83.4查找函数代码解释83. 5货品信息修改函数代码解释93. 6信息读取函数代码解释104
6、系统功能实现114. 1仓库链表建立函数实现114. 2修改信息函数实现114. 3新增货品插入函数实现124. 4删除函数实现124. 5修改函数的实现134. 6插入节点函数实现135系统使用说明书146总结15参考文献16致谢171系统需求分析说明书1.1系统软件界面介绍I CUsersAdministratorDesktop仓库 3Debug 仓库.exe=入禺插删一 息息息 一链查信信信 一唐少品品品息息序 一仓隽SSEKS1 一建口 SgW存存累 一创化库塞结1.1系统界面该系统的软件界面就是以在C+编译后生成的一个系统菜单,菜单有八个选项供用户选择即有创建仓库链表,信息查找等功能
7、!在菜单下面有供用户选择系统项目的输入指令,当用户输入0-7中的数字后就会实现相应的功能!假如输入错误后界面会弹出警告让用户重新输入!1.2 系统设计要求第一,该系统的设计对设计者的要求比较高。想要设计该系统,务必对C语言知识掌握牢固,与c+、数据结构知识灵活运用。比如:主菜单供客户选择的选择项就需要用到C语言的switch条件语句来实现不一致的选择功能。数据结构中的数据封装也是必不可少的。1.3 系统的设计系统设计分为几大模块进行设计的。第一大模块总体规划设计,这部分要紧是封装头文件,这里要定义好数据结构体,即要把一类家电信息打包成一个节点类型的数据然后再创建链表数据与指向节点数的节点。该过
8、程就是数据结构中的抽象数据类型ADT,这样将就轻松的把不一致类型数据管理起来了!头文件也包含了所有子函数的头。第二大模块是主函数的设计,主函数的功能是要建立一个仓库管理的链表,然后一一实现系统所有的功能即是在不一致的情况对子函数的调用。第三大模块是各个函数功能的实现,该部分是系统的核心部分,在写子函数的时候务必考虑周全;否则就会出现内存出错的情况系统就会崩溃掉,信息就很可能丢失。会给用户带来巨大的缺失!该系统设计模块图如图1.2所示:2系统分析与设计2.1系统分析系统要紧工作流程是从打开系统后进入功能选择,选择不一致的选项进行操作后就返回系统首页。其运行流程图如图2.1所示:2 .2系统功能分
9、析系统功能的实现要紧是靠各个子函数来实现的。1)仓库链表的创建:当用户选择功能号1时,就进行仓库链表的建立。仓库建立流程图如图2.2所示:图2.2仓库链表建立2)仓库货品信息查找:信息查找流程图如图2.3所示:图2.3信息查找流程图3)新增货品信息插入:新增货品信息插入流程图如图2.4所示:图2.4信息插入流程图4)删除已卖出的货品信息:删除信息流程图如图2.5所示:图2.5删除信息流程图5)库存货品信息修改库存货品信息修改流程图如图2.6所示:图2.6信息修改流程图6)信息储存直接选功能号6即可储存到文件。7)仓库信息读取:仓库信息读取流程图如图2.7所示:3代码实现2.1 链表创建函数代码
10、解释NODE*creatlist()(NODE*Head;Head=newNODE;inti;intk;NODE*PI,*Ptr;Pl=(NODE*)malloc(sizeof(NODE);Pl=Head;CoUt输入仓库电器种类数:k;Printf(“请输入电器类别-型号-商标-重量-单价-编号-日期-厂家n);for(i=0;idata.leibie,Ptr-data.xinhao,Ptr-data.brand,&Ptr-data.height,tfePtr-data.price,Ptr-data.no,Ptr-data.date,Ptr-data.factory);Pl-link=Ptr
11、;Pl=Ptr;Pl-link=NULL;)returnHead;)这里使用链表创建函数就能够创建一个链表,并储存货品信息!3 .2插入节点函数代码解释voidInsertNode(NODE*head,NODE*p)(NODE*pl,*p2;pl=head;p2=pl-link;while(p2!=NULL&strcmp(p2-data.no,p-data.no)link;/p2指向表的下一个结点pl-link=p;插入P所指向的结点p-link=p2;连接表中剩余的结点COUt”插入成功!,data;if(pLoc=NULL)Printf(”没有查到要删除的商品信息!n”);return;i
12、f(pLoc!=NULL)Printf(确实要删除该商品吗?(yn)cinx;if(x=yx=Y)pPre=head;while(pPre!=NULL)&(pPre-link!=pLoc)pPre=pPre-link;pPre-link=pLoc-link;free(pLoc);printf(deletesuccess!n);)该函数实现了对卖出货品信息的删除!5 .4查找函数代码解释NODE*searchList(NODE*head)货品信息查找chara;charb-,;while(l)(printf(,=n);printf(,1.查询所有家电信息n,t);printf(,2.按商品名称查
13、询n);printfC,0.退出查找系统n);printf(,=n);printf(请选择:n);a=getch();switch(a)(caseO:returnO;break;case1:listO(head);break;case,2list1(head);break;default:Prinlfr输入错误,请重新输入:n);)该函数用switch语句做成一个多种查找方式的查找函数!6 .5货品信息修改函数代码解释voidmodify(NODE*head)库存货品信息修改(intm;NODE*P;P=SearchList1(head);CoUt请输入要修改的商品信息番号!:endl;if(P=NULL)Printf(没有查到要修改的商品信息!n”);return;if(P!=NULL)coutn);cinm;switch(m)(case1:CoUtVV请输入新的商标信息data.brand;break;case2:CoUtVV请输入新的