文档介绍:中北大学
数据结构
课程设计说明书
 
 
 
学生姓名:
宋立群
学号:
1021011803
学院:
软件学院
专业:
 软件开发与测试
题目:
产品进销存管理系统
指导教师
何志英
 
 
 
 2011年12月20日
(一)设计任务概述
针对某一种行业的库房的产品进销存情况进行管理。
1、采用一定的存储结构对库房的货品及其数量进行分类管理;
运用链表进行存储,同时用到指针变量,运用循环存储,对存储产品的信息要用到日期结构体和产品结构体,对存储要用到文件指针以及文件的一些方法的使用。
2、可以进行产品类的添加、产品的添加、产品数量的添加;
首先要找到链表的指针变量,对指针变量进行修改,然后再进行产品的出入。
3、能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;
首先要定义一个查询函数,对产品类的指针变量进行循环查询,再对产品的指针变量进行循环查询,找到产品时,在调用显示产品信息函数,显示查询到的产品的各项信息。
(二)本设计所采用的数据
运用链表进行存储,同时用到指针变量,循环存储
(三)功能模块详细设计
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已存在。
操作结果:向顺序表挂接链表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已存在
操作结果:现实顺序表挂接链表L的内容
#include<>
#include<>
#include<>
#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;
=(kindlnode*)malloc(SQMOUNTLINK_INIT_SIZE*sizeof(kindlnode));
if(!) exit(overflow);
=0;
=SQMOUNTLINK_INIT_SIZE;
for(i=0;i<;i++){
([i]).first