数据结构 课程设计 库存管理系统Word格式.docx
- 文档编号:398794
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:18
- 大小:187.80KB
数据结构 课程设计 库存管理系统Word格式.docx
《数据结构 课程设计 库存管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构 课程设计 库存管理系统Word格式.docx(18页珍藏版)》请在冰点文库上搜索。
1)问题描述
试设计一库存管理系统,产品信息包括产品编号、名称、价格、数量等(产品编号不重复)。
2)基本要求
该系统应具有以下功能:
1、产品信息录入功能(产品信息用文件保存)--输入?
2、产品信息浏览功能--输出?
3、产品入库
4、产品出库
5、查询和排序功能:
1)按价格从大到小排序
2)按名称查询
6、产品信息删除、修改功能。
一、设计目的
二、设计要求
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;
凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。
凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;
(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
(4)认真编写课程设计报告。
三、设计内容
(1)需求分析
程序的功能、输入输出的要求
1、从文件中加载数据;
2、增加一个产品的信息;
3、保存数据;
4、显示所有产品的信息;
5、删除某个产品的信息;
6、用名称查找某个产品的信息;
7、用编号查找某个产品的信息;
8、退出。
(2)问题求解
首先,定义一个包含产品的编号、名称、价格、数量等的输入产品信息类(classProvider),紧接着,定义一个输入产品信息函数(voidinput()),输入定义好的类中的数据成员。
接着定义产品输出的函数(voidoutput())。
这部分是产品输入输出。
定义节点类(classNode),节点类中包含一个指向节点(Node)的指针变量(next)和节点成员函数。
定义产品信息的目录类(classList),有成员函数两个,一个List成员函数、一个增加产品信息的成员函数(voidaddNode())。
定义一个显示产品的信息的函数(voidXSNode()),用它来输入产品的信息。
定义查询函数(voidqueryNode1(char*TName)、voidqueryNode2(char*TID))
分别用指向编号和名称的地址来查询。
还有定义删除和储存产品信息的函数(voiddelNode(char*TName)和voidsaveList())。
(3)总体设计
程序设计组成框图(如下):
流程图(如下):
(4)详细设计
函数功能
1、voidinput()通过函数输入产品信息
2、voidoutput()通过函数输出产品信息
3、Node()通过函数使指针指向下个地址
4、List()通过函数使指针指向首地址
5、voidaddNode()通过函数添加产品信息
6、voidXSNode()通过函数显示产品所有信息
7、voidqueryNode1(char*TName)通过函数查询产品信息
8、voidqueryNode2(char*TName)同上
9、voiddelNode(char*TName)通过函数删除产品信息
10、voidsaveList()通过函数储存产品信息
11、ofs.open("
data.txt"
);
通过函数输出文本文件
12、ifs.open("
通过函数输入文本文件
13、~List()通数过定义析构函数,释放空间
14、intmain()通过主函数调用其他函数;
(5)关键源程序清单
清单中应有足够的注释问题描述和功能设计。
源程序:
#include<
iostream>
fstream>
string>
#defineNULL0
usingnamespacestd;
classProvider//定义输入产品的信息的类
{
public:
charID[10];
//定义编号
charName[10];
charValues[10];
charNum[10];
voidinput()//定义输入产品信息函数
{
cout<
<
"
请输入产品的信息:
endl;
ID号:
;
cin>
>
ID;
名称:
Name;
价格:
Values;
数量:
Num;
}
voidoutput()//定函数义输出信息
产品的信息显示如下:
ID号:
ID<
名称:
Name<
价格:
Values<
数量:
Num<
};
//*******************************************************************
classNode//定义节点
Providerdata;
Node*next;
//定义next为指向Node类对象的指针变量
Node()
{next=NULL;
}
classList//定义产品信息目录类
Node*start;
List()
{start=NULL;
voidaddNode()//添加一个产品的信息
Node*p;
p=newNode();
//链表
p->
data.input();
next=start;
start=p;
voidXSNode()//显示所有产品的信息
for(p=start;
p!
=NULL;
p=p->
next)
p->
data.output();
//********************************************************************
voidqueryNode1(char*TName)//利用名称查询产品信息
{
if(strcmp(p->
data.Name,TName)==0)
{
cout<
p->
data.ID<
data.Name<
价格"
data.Values<
data.Num<
return;
}
}
没找到你要的产品"
//*****************************************************************
voidqueryNode2(char*TID)//利用编号查询产品信息
data.ID,TID)==0)
voiddelNode(char*TName)//删除产品信息
Node*p,*c;
for(p=start,c=start;
c!
c=c->
if(strcmp(TName,c->
data.Name)==0)
p->
next=c->
next;
if(start==c)
{
start=c->
}
deletec;
删除已成功!
!
p=c;
没找到你要删除的产品"
voidsaveList()//储存产品信息
ofstreamofs;
ofs.open("
ofs<
"
ofs.close();
voidinitList()
ifstreamifs;
ifs.open("
while(!
ifs.eof())
Node*p;
p=newNode();
ifs>
data.ID;
data.Name;
data.Values;
data.Num;
start=p;
ifs.close();
p=start;
start=start->
deletep;
~List()//定义析构函数,释放空间
Node*c;
for(c=start;
)
c=c->
deletep;
//*************************************************************8
intmain()
Listp1;
charch;
chartmpstr[50];
while(true)
***********************************"
1、产品入库信息;
2、保存产品信息;
3、显示产品信息;
4、产品出库信息;
5、用名称查找产品信息;
6、用编号查找产品信息;
0、退出;
请选择:
ch;
switch(ch)
case'
1'
:
p1.addNode();
break;
2'
p1.saveList();
3'
p1.XSNode();
4'
cout<
请输入出库产品的名称:
cin>
tmpstr;
p1.delNode(tmpstr);
5'
请输入你要查找的产品的名称:
p1.queryNode1(tmpstr);
6'
请输入你要查找的产品的编号:
p1.queryNode2(tmpstr);
0'
return0;
default:
选择错误,请再次选择"
return0;
(6)执行结果:
四、参考文献
[1]《数据结构》.王红梅.清华大学出版社
[2]《数据结构学习辅导与实验指导》.王红梅.清华大学出版社
[3]《C++程序设计》.钱能.清华大学出版社
[4]《C++程序设计试验指导》.钱能.清华大学出版社
[5]《C++程序设计》.谭浩强.清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 库存管理系统 库存 管理 系统