- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
产品进销存管理系统_课程设计报告书书
内蒙古科技大学
数 据 结 构
课 程 设 计 说 明 书
?
?
?
学生姓名: 白天磊 学 号: 1267159204 学 院: 软件学院 专 业: ?软件工程 题 目: 产品进销存管理系统 指导教师 康懿
?
?
?
?
(一)设计任务概述
针对某一种行业的库房的产品进销存情况进行管理。
1、采用一定的存储结构对库房的货品及其数量进行分类管理;
运用链表进行存储,同时用到指针变量,运用循环存储,对存储产品的信息要用到日期结构体和产品结构体,对存储要用到文件指针以及文件的一些方法的使用。
2、可以进行产品类的添加、产品的添加、产品数量的添加;
首先要找到链表的指针变量,对指针变量进行修改,然后再进行产品的出入。
3、能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;
首先要定义一个查询函数,对产品类的指针变量进行循环查询,再对产品的指针变量进行循环查询,找到产品时,在调用显示产品信息函数,显示查询到的产品的各项信息。
(二)本设计所采用的数据
运用链表进行存储,同时用到指针变量,循环存储
(三)功能模块详细设计
3.1详细设计思想
1、顺序表挂接链表的抽象定义类型:
ADT sqmountlink{
数据对象:D={ai|ai∈kindlist,i=1,2,…,n,n=0}
数据关系:R={ai-1,ai|ai-1,ai∈D,i=1,2,3,…,n}
基本操作:
InitMountLisr(L)
操作结果:构造一个空的顺序表挂接链表L。
KindInsert(L,n)
初始条件:顺序表挂接链表L已存在。
操作结果:向顺序表挂接链表LI,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已存在
操作结果:现实顺序表挂接链表L的内容
3.2核心代码
#includestdio.h
#includestdlib.h
#includestring.h
#define ok 1
#define error 0
#define overflow 0
#define SQMOUNTLINK_INIT_SIZE 100
#define SQMOUNTLINKINCREMENT 10
typedef struct date{
int year;
int month;
int day;
}date; //日期
typedef struct productlnode{
char pname[30]; //产品名称
int totalquantity; //产品总量
date goodsdate; //进货日期
int salesquantity; //消除数量
date salestime; //销售时间
struct productlnode *nextproduct;
}productlnode,*plinklist;
typedef struct kindlnode{
productlnode *firstproduct;
char pkindname[30];
}kindlnode;
typedef struct{
kindlnode *kindelem;
int length;
int listsize;
}sqmountlink;
int InitMountList(sqmountlink 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;iL.listsiz
文档评论(0)