资源描述:
《算法与数据结构课程设计 产品进销存管理系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实习报告题目:编制一个产品进销存管理系统的程序一、需求分析1.针对食品这一行业,对其进行库房的产品进销存管理,选择线性顺序表来存储产品类,选择线性链表来存储属于此产品类的产品,并将产品链挂接到相应的产品类上。其中存储产品时还应将属于此产品的一些信息如产品的进货总量,进货日期,销出数量,销售时间等进行相应存储。2.能够对此库房产品进销存管理系统进行产品类的添加、产品的添加、产品数量的添加。3.能够用一定的查询方法查询库房每种产品的总量、进货日期、销出数量、销售时间等4.本演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入
2、演示程序中规定的操作命令;相应的操作结果显示在其后。二、概要设计1.设定顺序表挂接链表的抽象数据类型定义:ADTsqmountlink{数据对象:D={ai
3、ai∈kindlist,i=1,2,…,n,n≥0}数据关系:R={
4、ai-1,ai∈D,i=2,3,…,n}基本操作:InitMountList(&L)操作结果:构造一个空的顺序表挂接链表L。DestroyMountList(&L)初始条件:顺序表挂接链表L已存在。操作结果:销毁顺序表挂接链表L。CreatMountList(&L)初始条件:顺序表挂接链表L不存在。操作结果:创建一个顺序
5、表挂接链表L,并将L返回。KindInsert(&L,n)初始条件:顺序表挂接链表L已存在。操作结果:向顺序表挂接链表L中添加n个产品类。ProductInsert(&L,i,n)初始条件:顺序表挂接链表L已存在且要将产品插入的产品类i已存在。操作结果:向顺序表挂接链表L中的产品类i中添加n种产品。ProQuantity_add(&L,i,e,n)初始条件:顺序表挂接链表L已存在且需添加数量的产品及产品所属的类也已存在。操作结果:添加顺序表挂接链表L的产品类i中的产品e的总量。Visit(&L,i,e)初始条件:顺序表挂接链表L已存在且待查询产品所属产品类i也已
6、存在。13操作结果:在顺序表挂接链表L中查询产品e的各项信息(其进货总量、进货日期、销出数量、销售时间等)。DisplayList(&L)初始条件:顺序表挂接链表L已存在。操作结果:显示顺序表挂接链表L的内容。}2.本程序包含两个模块:1)主程序模块:voidmain(){初始化一个空的顺序表挂接链表L;创建初始的产品类、产品顺序表挂接链表L;列出要执行的各项操作;Loop:输入各项操作命令;switch(命令){接受命令;处理命令;}}2)顺序表挂接链表单元模块——实现顺序表挂接链表的抽象数据类型;各模块之间的调用关系如下:主程序模块顺序表挂接链表单元模块一、
7、详细设计1.程序设计#include#include#include#defineok1#defineerror0#defineoverflow0#defineSQMOUNTLINK_INIT_SIZE100#defineSQMOUNTLINKINCREMENT10typedefstructdate{intyear;intmonth;intday;}date;//日期13typedefstructproductlnode{charpname[30];//产品名称inttotalquantity;//产品总
8、量dategoodsdate;//进货日期intsalesquantity;//销出数量datesalestime;//销售时间structproductlnode*nextproduct;}productlnode,*plinklist;typedefstructkindlnode{productlnode*firstproduct;charpkindname[30];}kindlnode;typedefstruct{kindlnode*kindelem;intlength;intlistsize;}sqmountlink;intInitMountList(s
9、qmountlink&L){//初始化一个空的顺序表挂接链表Linti;L.kindelem=(kindlnode*)malloc(SQMOUNTLINK_INIT_SIZE*sizeof(kindlnode));if(!L.kindelem)exit(overflow);L.length=0;L.listsize=SQMOUNTLINK_INIT_SIZE;for(i=0;i10、(sqmountlink