产品进销存管理系统_课程设计报告书.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《产品进销存管理系统_课程设计报告书.doc》由会员分享,可在线阅读,更多相关《产品进销存管理系统_课程设计报告书.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .科技大学数 据 结 构课 程 设 计 说 明 书学生XX:白天磊学 号:1267159204学院:软件学院专业:软件工程题目:产品进销存管理系统指导教师康懿一设计任务概述针对某一种行业的库房的产品进销存情况进展管理。1、采用一定的存储构造对库房的货品及其数量进展分类管理;运用链表进展存储,同时用到指针变量,运用循环存储,对存储产品的信息要用到日期构造体和产品构造体,对存储要用到文件指针以及文件的一些方法的使用。2、可以进展产品类的添加、产品的添加、产品数量的添加; 首先要找到链表的指针变量,对指针变量进展修改,然后再进展产品的出入。3、能够查询库房每种产品的总量、进货日期、销出数量、销售
2、时间等; 首先要定义一个查询函数,对产品类的指针变量进展循环查询,再对产品的指针变量进展循环查询,找到产品时,在调用显示产品信息函数,显示查询到的产品的各项信息。二本设计所采用的数据运用链表进展存储,同时用到指针变量,循环存储(三)功能模块详细设计3.1详细设计思想1、顺序表挂接链表的抽象定义类型:ADT sqmountlink 数据对象:D=ai|aikindlist,i=1,2,n,n=0 数据关系:R=|ai-1,aiD,i=1,2,3,n 根本操作: InitMountLisr(&L) 操作结果:构造一个空的顺序表挂接链表L。 KindInsert(&L,n) 初始条件:顺序表挂接链表
3、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也存在 操作结果:在顺序表挂接链表L中查询产品e的各项信息DisplayList(&L) 初始条件:顺序表挂接链表L已存
4、在 操作结果:现实顺序表挂接链表L的容3.2核心代码#include#include#include#define ok 1#define error 0#define overflow 0#define SQMOUNTLINK_INIT_SIZE 100#define SQMOUNTLINKINCREMENT 10typedef struct date int year; int month; int day;date; /日期typedef struct productlnode char pname30; /产品名称 int totalquantity; /产品总量 date goods
5、date; /进货日期 int salesquantity; /消除数量 date salestime; /销售时间 struct productlnode *nextproduct;productlnode,*plinklist;typedef struct kindlnode productlnode *firstproduct; char pkindname30;kindlnode;typedef struct kindlnode *kindelem; int length; int listsize;sqmountlink;int InitMountList(sqmountlink &
6、L) /初始化一个空的顺序表挂接链表L int i; 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;i=L.listsize) newbase=(kindlnode*)realloc(L.kindelem,(L.listsize+n)*sizeof(kindlnode); if(!newbase) exit(overflow);
7、L.kindelem=newbase; L.listsize+=n; printf(需添加的产品类名称:n); for(i=0;in;i+) scanf(%s,&L.kindelemL.length.pkindname); L.kindelemL.length.firstproduct=NULL; L.length+; return ok;/KindInsertint ProductInsert(sqmountlink &L,char pkindname2,int n) /向顺序表挂接链表L的某产品类中添加N个产品 plinklist p,q; int k,j; for(k=0;kpname)
8、,&(q-totalquantity),&(q-goodsdate).year),&(q-goodsdate).month),&(q-goodsdate).day),&(q-salesquantity),&(q-salestime).year),&(q-salestime).month),&(q-salestime).day); q-nextproduct=NULL; (L.kindelemk).firstproduct=q; for(j=1;jpname),&(p-totalquantity),&(p-goodsdate).year),&(p-goodsdate).month),&(p-go
9、odsdate).day),&(p-salesquantity),&(p-salestime).year),&(p-salestime).month),&(p-salestime).day); p-nextproduct=q-nextproduct; q-nextproduct=p; q=p; else for(q=L.kindelemk.firstproduct; ;q=q-nextproduct) if(!(q-nextproduct) break; printf(需添加产品的名称、总量、进货日期、销售数量、销售时间:n); for(j=0;jpname),&(p-totalquantit
10、y),&(p-goodsdate).year),&(p-goodsdate).month),&(p-goodsdate).day),&(p-salesquantity),&(p-salestime).year),&(p-salestime).month),&(p-salestime).day); p-nextproduct=q-nextproduct; q-nextproduct=p; q=p; return ok;/ProductInsertvoid ProQuantity_add(sqmountlink &L,char pkindname1,char pname1,int n) /添加顺序
11、表挂接链表L的某产品类中的某产品的总量,且需添加的产品总量为n int i,k; plinklist p; for(i=0;iL.length;i+) if(strcmp(L.kindelemi).pkindname,pkindname1)!=0) continue; else break; if(inextproduct) k=strcmp(p-pname,pname1); if(k=0) p-totalquantity=p-totalquantity+n; printf(查看添加后产品的各项输出:%s %d %d,%d,%d %d %d,%d,%dn,p-pname,p-totalquan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 产品 进销存 管理 系统 课程设计 报告书
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内