资源描述:
《产品进销存管理系统_课程设计报告书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、内蒙古科技大学数据结构课程设计说明书 学生姓名:白天磊学号:1267159204学院:软件学院专业: 软件工程题目:产品进销存管理系统指导教师康懿 15(一)设计任务概述针对某一种行业的库房的产品进销存情况进行管理。1、采用一定的存储结构对库房的货品及其数量进行分类管理;运用链表进行存储,同时用到指针变量,运用循环存储,对存储产品的信息要用到日期结构体和产品结构体,对存储要用到文件指针以及文件的一些方法的使用。2、可以进行产品类的添加、产品的添加、产品数量的添加;首先要找到链表的指针变量,对指针变量进行修改,然后再进行产品的出入。3、能够查询库房
2、每种产品的总量、进货日期、销出数量、销售时间等;首先要定义一个查询函数,对产品类的指针变量进行循环查询,再对产品的指针变量进行循环查询,找到产品时,在调用显示产品信息函数,显示查询到的产品的各项信息。(二)本设计所采用的数据运用链表进行存储,同时用到指针变量,循环存储(三)功能模块详细设计3.1详细设计思想1、顺序表挂接链表的抽象定义类型:ADTsqmountlink{数据对象:D={ai
3、ai∈kindlist,i=1,2,…,n,n>=0}数据关系:R={
4、ai-1,ai∈D,i=1,2,3,…,n}基本操作:InitMountLis
5、r(&L)操作结果:构造一个空的顺序表挂接链表L。KindInsert(&L,n)初始条件:顺序表挂接链表L已存在。操作结果:向顺序表挂接链表L中添加N类产品ProductInsert(&L,I,n)15初始条件:顺序表挂接链表L已存在且要将产品插入的产品类i已存在操作结果:向顺序表挂接链表L中的产品类i中添加N种产品ProQuantity_add(&L,I,e,n)初始条件:顺序表挂接链表L已存在且需要添加的产品及产品所属的类也存在操作结果:添加顺序表挂接链表L的产品类i中的产品e的数量Visit(&L,i,e)初始条件:顺序表挂接链表L已存在且待查询的
6、产品所属产品类i也存在操作结果:在顺序表挂接链表L中查询产品e的各项信息DisplayList(&L)初始条件:顺序表挂接链表L已存在操作结果:现实顺序表挂接链表L的内容3.2核心代码#include#include#include#defineok1#defineerror0#defineoverflow0#defineSQMOUNTLINK_INIT_SIZE100#defineSQMOUNTLINKINCREMENT10typedefstructdate{intyear;intmonth;in
7、tday;}date;//日期typedefstructproductlnode{15charpname[30];//产品名称inttotalquantity;//产品总量dategoodsdate;//进货日期intsalesquantity;//消除数量datesalestime;//销售时间structproductlnode*nextproduct;}productlnode,*plinklist;typedefstructkindlnode{productlnode*firstproduct;charpkindname[30];}kindlnod
8、e;typedefstruct{kindlnode*kindelem;intlength;intlistsize;}sqmountlink;intInitMountList(sqmountlink&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;i9、listsize;i++){(L.kindelem[i]).firstproduct=NULL;}returnok;15}//InitMountListintKindInsert(sqmountlink&L,intn){//向顺序表挂接链表L中添加N类产品inti;kindlnode*newbase;if(L.length+n>=L.listsize){newbase=(kindlnode*)realloc(L.kindelem,(L.listsize+n)*sizeof(kindlnode));if(!newbase)exit(overflow);L.k
10、indelem=newbase;L.listsize+=n;}pr