电器商场仓库管理.docx
《电器商场仓库管理.docx》由会员分享,可在线阅读,更多相关《电器商场仓库管理.docx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计报告班 级:_计算机121班_姓 名:_周一苇_指导教师:_董跃华_成 绩:_ 信息工程学院 年 月 日目录1. 需求分析32. 概要设计43. 详细设计114. 调试分析125. 测试结果136. 参考文献177. 附录17第一章 需求分析 问题题目: 家电商场仓库管理 问题描述: 仓库管理系统是一个典型的信息管理系统,主要是对实际的库存商品信息加以分类管理,以便及时的为商品的交易提供货品库存信息.类似的问题有图书馆管理系统,通讯录,学生信息管理系统.本题目使用线性表的链式存储结构完成。主要需实现功能有:创建管理表,向表中添加记录,查询商品种类数,输出所有商品信息,追加新商品
2、记录,已有商品库存量的增减,将商品信息写入文件并可以从文件中读出等.问题要求: 由问题描述我们可知仓库管理所涉及到的功能有如上几种,这就要求我们逐个实现,同时为了可以和用户进行很好的信息交换我们需要编写菜单函数.下面以链表结构的有序表表示某商场家电部的库存模型。当有提货或进货时需要对该链表及时进行维护。每个工作日结束之后,将该链表中的数据以文件形式保存,每日开始营业之前,需将以文件形式保存的数据恢复成链表结构的有序表. 链表结点的数据域,包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。程序功能包括:初始化、创建表、插入、删除、更新数据,查询及链表数据与文件之间的转换等。第二章 概
3、要设计 (1)思路确定:拿到此问题进行分析知道此题目是要对大量的货品信息进行管理,因此要将所需要的功能进行逐个实现,也就是函数的分块实现。首先明确系统所需的功能有:创建管理表,向表中添加记录,查询商品种类数,输出所有商品信息,追加新商品记录,已有商品库存量的进货或提货,将商品信息写入文件并可以从文件中读出等。对应的程序中需要的函数模块有:初始化链表,输入、插入、删除、更新数据,查询、链表数据与文件之间的转换以及一些辅助函数。同时,为了更好的和用户进行信息交换,我们要构建菜单函数。最后我们要用主函数调用以上函数模块。(2)系统功能设计图(3)数据结构定义:typedef struct snode
4、char kind20; char brand20;int model;int price;int number;store;typedef store ElemType;typedef struct SNodeElemType data;struct SNode *next;SNode, *LinkedList;使用到的头文件:#include#include#include#include(4)函数模块功能说明: 对本系统的功能进行分析后对主要函数可作如下的模块化设计:输入模块实现功能:按需添加货品数目将货品型号、种类、名称、价格、数量依次输入,并建立链表将其连接。插入模块实现功能:向已有
5、数据中再次添加新货品的记录,包括货品型号、种类、名称、价格、数量。以结点的方式链接到链表中。删除模块实现功能:在已有的数据中删除某种停产后无库存货品信息,并释放内存空间。删除按货品关键码型号进行。查找模块实现功能:在已有的数据中查找指定的货品信息。按照查找货品编号进行。输出模块实现功能:将已有的数据中按单价的升序进行遍历,输出该管理表中所包含的全部货品信息。保存模块实现功能:在每日工作结束时都要将数据进行保存操作,链表中的信息以文件形式被长期保存。载入模块实现功能:将文件中的数据信息载入链表。主序模块实现功能:完成系统的界面处理,包括开始界面和主菜单界面。具体函数有:int menu();/*
6、主菜单函数*/LinkedList LinkedListInit();/* 初始化单链表 */LinkedList LinkedListAppend();/* 添加数据信息 */int LinkedListLength(LinkedList L);/*查询货品的种类数*/void LinkedListTraverse(LinkedList L);/*遍历链表显示货品信息*/int LinkedListInsert(LinkedList L, int i, ElemType x);/*插入信息*/int LinkedListDelete(LinkedList L,int i);/*删除信息*/i
7、nt search(LinkedList L);/*查询某货品的库存*/LinkedList px(LinkedList L);/*由单价排序*/int LinkedListLocal(LinkedList L);/*定位进出货的位置*/LinkedList Appends(LinkedList L);/*记录进货量*/ LinkedList sells(LinkedList L);/*记录出货量*/int save (LinkedList L); /*保存信息到文件*/LinkedList load(LinkedList L);/*从文件中读取*/输入模块实现功能:LinkedList Li
8、nkedListAppend();/* 添加数据信息 */in开始申请一个结点空间,p指向它向p指向结点输入货品的信息NY NY是否为第一个数据(i=0)Nr-next=p;r=r-next; r=r-next; r=r-next; Yp=Lip-nextNULL=p-next 返回L结束 图 4-1插入模块实现功能:int LinkedListInsert(LinkedList L, int i, ElemType x);/*插入信息*/开始调入载入模块L=NULL p=L;申请一个结点空间,使P指向它给T指向结点输入预插入货品的信息Yp-next!=NULL &jnext;j+; t-ne
9、xt=p-next;p-next=t;返回L结束图 4-2删除模块实现功能:int LinkedListDelete(LinkedList L,int i);/*删除信息*/ 开始调用载入模块L-next=null Y N从键盘读入i值p=L;p-next != NULL & jnext=headq=p-next; p-next=p-next-next;p-next=p-next-next;返回L 结束 图 4-3 保存模块实现功能int save (LinkedList L); /*保存信息到文件*/开始输入预保存文件的文件名创建文件成功 N L!=NULL N Y将指向结点的数据写入文件L
10、=L-next;结束 图 4-4读取模块实现功能LinkedList load(LinkedList L);/*从文件中读取*/开始调用载入模块fp= =NULL Y N为结点申请空间输出p1指向结点的货品信息p2=p1-next;p2=p1; Y N结束 图 4-5第三章 详细设计见附录第四章 调试分析通过这次课程设计专周实验我认识到,在进行程序设计前要进行系统的问题分析,确定问提的解决流程,问题所需要解决的具体功能要求,明确设计对象的要求。在专周实验中还是遇到了不少的问题,总结有如下几条: 1 对函数指针的应用以及结点之间的后移关系掌握不牢固由于之前发现第一遍的插入数据函数缺少对极端数据的
11、判断,因此重新另外写了一个插入数据函数,可是这个函数在存储上和原本系统中的其他函数不配适,因为原本的函数实现头指针为空,而此函数头指针有存数据而且必须用到,所以使得系统无运行。一次我改变思路,再第一遍的基础上对原有的插入函数进行修改,起到对极端数据的判断作用。不配适的函数实现:/* 添加数据信息 */2对单链表的排序首先想到的是两两比较结点关键码大小,然后交换两个结点,可是在实验过程中不断出现指向错误使得系统无法正常运行。之后,改进其他方法,两两比较,仅交换结点的数据信息,实现对单链表的排序。3文件的读写由于平时对文件的使用较少,因此本次实验中文件算是一处难点,通过查阅书籍编写出代码,知道了,
12、文件首先要定义文件指针,FILE *fp;而文件的读写函数有fprintf, fscan fread fwrite等。输入文件名时,可以控制文件类型,如:data.txt第五章 测试结果(1) 模拟数据: 种类 品牌 型号 单价 数量 电视 康佳 1 6000 140 手机 TCL 7 1400 40 电脑 惠普 2 5800 160 冰箱 海尔 3 4800 80 数码相机 索尼 4 2200 170 数码相机 佳能 5 1700 180 手机 诺基亚 6 1800 260(2)界面(3)添加信息(4)查询货品种类数(5)显示货品信息(6)插入新货品信息(7)删除货品信息(8)进货(9)提货
13、(10)查询特定商品 (11)文件(12)读出第六章 参考文献1严慰敏,吴伟民 数据结构(C语言版) , 清华大学出版社2谭浩强 ,C语言程序设计(第四版), 清华大学出版社 附录#include#include#include#include#define N 5typedef struct snodechar kind20;/各种数据的名称种类与其编号对应char brand20;int model;int price;int number;store;typedef store ElemType;typedef struct SNodeElemType data;struct SNode
14、 *next;SNode, *LinkedList;int menu();LinkedList LinkedListInit();/* 初始化单链表 */LinkedList LinkedListAppend();/* 添加数据信息 */void LinkedListClear(LinkedList L);/* 清空单链表 */int LinkedListLength(LinkedList L);/*查询货品的种类数*/void LinkedListTraverse(LinkedList L);/*遍历链表显示货品信息*/int LinkedListInsert(LinkedList L, i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电器 商场 仓库 管理
限制150内