数据结构--家电库存管理系统课程设计报告.doc
《数据结构--家电库存管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《数据结构--家电库存管理系统课程设计报告.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、?数据结构?课程设计报告 摘要随着信息技术的飞速开展,人们对信息管理技术要求也越来越高以适应飞速开展的经济。本次课程设计针对当前的需求,设计一个家电仓库信息的管理系统以方便商家更快捷更有效的对仓库货品的信息进行管理,给商家创造更多的价值!该系统整体运用了数据结构的知识,它是将货品信息按链表形式来储存的。将所有的货品分类储存在数据链表的每一个节点中,每个节点也包含了一种类型家电的所有信息。即是,建一个链表,链表中有许多个节点,节点中储存了不同类型的数据;这样我们就很容易的将货品信息管理起来了!该系统进行了精心的规划,有齐全的信息管理功能。方便用户使用,用户能够很快的找到自己所需要的信息并且有添加
2、、删除、修改、查询、排序、保存等功能提高了用户对信息的管理效率!关键词:信息 数据结构 链表 管理 目录1 系统需求分析说明书11.1系统软件界面介绍11.2系统设计要求11.3系统的设计22 系统分析与设计32.1系统分析32.2系统功能分析43 代码实现73.1链表创立函数代码解释73.2插入节点函数代码解释73.3删除节点函数代码解释883.5货品信息修改函数代码解释93.6信息读取函数代码解释104 系统功能实现114.1 仓库链表建立函数实现11114.3新增货品插入函数实现121213135 系统使用说明书146 总结15参考文献16致谢171 系统需求分析说明书系统软件界面介绍
3、1.1 系统界面 该系统的软件界面就是以在C+编译后生成的一个系统菜单,菜单有八个选项供用户选择即有创立仓库链表,信息查找等功能!在菜单下面有供用户选择系统工程的输入指令,当用户输入0-7中的数字后就会实现相应的功能!如果输入错误后界面会弹出警告让用户重新输入!系统设计要求 第一,该系统的设计对设计者的要求比拟高。想要设计该系统,必须对C语言知识掌握牢固,以及C+、数据结构知识灵活运用。例如:主菜单供客户选择的选择项就需要用到C语言的switch条件语句来实现不同的选择功能。数据结构中的数据封装也是必不可少的。系统的设计 系统设计分为几大模块进行设计的。第一大模块总体规划设计,这局部主要是封装
4、头文件,这里要定义好数据结构体,即要把一类家电信息打包成一个节点类型的数据然后再创立链表数据和指向节点数的节点。该过程就是数据结构中的抽象数据类型ADT,这样将就轻松的把不同类型数据管理起来了!头文件也包含了所有子函数的头。第二大模块是主函数的设计,主函数的功能是要建立一个仓库管理的链表,然后一一实现系统所有的功能即是在不同的情况对子函数的调用。第三大模块是各个函数功能的实现,该局部是系统的核心局部,在写子函数的时候必须考虑周全;否那么就会出现内存出错的情况系统就会崩溃掉,信息就很可能丧失。会给用户带来巨大的损失!该系统设计模块图如图1.2所示:系统总体结构头文件封装子函数设计链表的设计系统主
5、界面设计 图1.2 系统模块设计2 系统分析与设计系统分析系统主要工作流程是从翻开系统后进入功能选择,选择不同的选项进行操作后就返回系统首页。其运行流程图如下图:主菜单Switch1创立链表2信息查找3新增信息4信息删除5信息修改6保存信息7读取文件8结束程序返回系统功能分析 系统功能的实现主要是靠各个子函数来实现的。1仓库链表的创立: 当用户选择功能号1时,就进行仓库链表的建立。仓库建立流程图如图2.2所示:入口建立链表完成链表建立返回 图2.2 仓库链表建立 2仓库货品信息查找:信息查找流程图如图2.3 所示:入口查找方式查询所有名称查询退出查询返回 图2.3 信息查找流程图3新增货品信息
6、插入: 新增货品信息插入流程图如图2.4所示:入口输入信息完成链表插入返回 图2.4 信息插入流程图4删除已卖出的货品信息:删除信息流程图如图2.5所示:入口查找方式编号查询名称查询返回删除 图2.5 删除信息流程图5库存货品信息修改库存货品信息修改流程图如图2.6所示:入口查找方式编号查询名称查询选择修改2修改时间1修改商标8修改型号5修改类别6修改编号7修改单价4修改重量3修改厂家返回首页图2.6 信息修改流程图6信息保存直接选功能号6即可保存到文件。7仓库信息读取:仓库信息读取流程图如图2.7所示:入口读入信息信息显示返回信息读取流程图3 代码实现链表创立函数代码解释NODE *crea
7、tlist()NODE *Head;Head=new NODE;int i; int k; NODE *P1, *Ptr;P1=(NODE*)malloc(sizeof(NODE);P1=Head;cout输入仓库电器种类数:k;printf(请输入电器类别-型号-商标-重量-单价-编号-日期-厂家n);for(i=0;idata.leibie,Ptr-data.xinhao,Ptr-data.brand,&Ptr-data.height,&Ptr-data.price,Ptr-data.no,Ptr-data.date,Ptr-data.factory);P1-link=Ptr;P1=Ptr
8、;P1-link=NULL;return Head;这里使用链表创立函数就可以创立一个链表,并储存货品信息!插入节点函数代码解释void InsertNode(NODE *head,NODE *p) NODE *p1,*p2;p1=head;p2=p1-link;while(p2!=NULL & strcmp(p2-data.no,p-data.no)link; /p2 指向表的下一个结点 p1-link=p; /插入 p 所指向的结点p-link=p2; /连接表中剩余的结点cout插入成功!data;if(pLoc=NULL)printf(没有查到要删除的商品信息!n);return ;i
9、f(pLoc!=NULL) printf(真的要删除该商品吗?y/n:); cinx; if (x=y|x=Y) pPre=head;while(pPre!=NULL)&(pPre-link!=pLoc)pPre=pPre-link;pPre-link=pLoc-link;free(pLoc);printf(delete success!n);该函数实现了对卖出货品信息的删除!NODE *searchList(NODE *head)/货品信息查找 char a; char b= ;while(1)printf(=n); printf( 1. 查询所有家电信息 n);printf( 2. 按商品
10、名称查询 n); printf( 0. 退出查找系统 n);printf(=n); printf( 请 选 择: n); a = getch(); switch(a) case 0:return 0;break; case 1:list0(head);break; case 2:list1(head);break; default:printf(输入错误,请重新输入:n);该函数用switch语句做成一个多种查找方式的查找函数!void modify(NODE *head)/库存货品信息修改int m;NODE *P;P=searchList1(head);cout请输入要修改的商品信息番号!
11、:endl;if (P=NULL) printf(没有查到要修改的商品信息!n); return;if(P!=NULL)coutendl;printf(请输入您选择的功能号:n);cinm; switch(m) case 1:cout请输入新的商标信息P-data.brand;break; case 2:cout请输入新的日期信息 P-data.date;break; case 3:cout请输入新的厂家信息 P-data.factory;break; case 4:cout请输入新的重量信息 P-data.height;break; case 5:cout请输入新的类别信息 P-data.l
12、eibie;break; case 6:cout请输入新的编号信息 P-data.no;break; case 7:cout请输入新的单价信息 P-data.price;break; case 8:cout请输入新的型号信息P-data.xinhao;break; case 0:break; P=P-link;该函数实现了对节点信息的修改!3.6信息读取函数代码解释NODE *read_file(NODE *head)NODE *q,*t;head=Initlist(head);t=head;ifstream fin(家电库存信息.txt);if( !fin )printf(n翻开文件失败!,
13、可能没有记录n);return NULL;printf(类别-型号-商 标-重量-单价-编号-日期-厂家n);while ( !fin.eof() )q=(NODE*)malloc(sizeof(NODE);HOUSEHOLD temp;fintemp.leibie;fintemp.xinhao;fintemp.brand;fintemp.height;fintemp.price;fintemp.no;fintemp.date;fintemp.factory; q-data = temp;q-link=NULL;t-link=q;t=t-link; printf(读取成功!n);fin.clo
14、se();return head;该函数将文本文件的数据读出来并生成一个链表!4 系统功能实现 仓库链表建立函数实现仓库链表建立函数实现 修改信息函数实现新增货品插入函数实现新增货品插入函数实现修改函数的实现插入节点函数实现5 系统使用说明书1.创立仓库链表:在此目录下,用户可以创立一个新的仓库链表。2.查询记录:在此目录下,用户可以查询所有家电记录和按名称查询家电记录1.查询所有家电记录:显示所有的家电记录,如果没有记录那么会提示用户输入记录。2.按类别查询家电记录:输入要查询家电的名称后,显示相应家电的信息。3.按品牌查询家电记录:输入要查询家电的品牌后,显示相应家电的信息。4.按型号查询
15、家电记录:输入要查询家电的型号后,显示相应家电的信息。 0.退出查询系统:退出查询系统并返回主菜单。3. 插入新增货品信息:在此目录下,用户添加新的纪录。添加完后,系统会返回主菜单并提示用户保存,此时你要可以选择。4. 删除信息:在此目录下,用户删除纪录 5. 修改记录:在此目录下,用户在原有的记录上更改记录。更改后,系统会返回主菜单并提示用户保存,此时你要可以选择2保存,如果不选择保存那么不会更改。6.保存记录:在此目录下,系统会对变动的信息保存起来!7.读取记录:在此目录下,系统将储存的信息全部读出来!0. 退出系统:提示按0键键退出系统。6 总结在为期两周的时间终于完成了本次课程设计。在
16、设计初期准备阶段时做好了充分的准备,包括查询资料、知识的温故等。有了充分的准备后,就可以有个好的开始了。课程设计在设计阶段中遇到不少的问题,但是都一一解决了。在开始阶段的数据封装与函数头做起来比拟顺利,第二阶段在总体规划时开始很混乱,但在仔细分析后很快就把总体思路打造好了。最后的也是最困难的问题就是怎样实现各个子函数的功能,由于自己的粗心造成了不少的麻烦!例如,将一个有返回值函数直接调用,而没有进行传值造成了内存错误从而耽误了进度。最后进行仔细调试后才发现这个问题,最后程序就顺利运行了!参考文献1 吴伟民. 结构C语言版.大学出版社,20002 周学毛 李健. 据结构与程序设计.人民邮电出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 家电 库存 管理 系统 课程设计 报告
限制150内