C++实训报告超市库存管理系统方案.docx
《C++实训报告超市库存管理系统方案.docx》由会员分享,可在线阅读,更多相关《C++实训报告超市库存管理系统方案.docx(26页珍藏版)》请在冰豆网上搜索。
C++实训报告超市库存管理系统方案
实训报告
题目:
超市库存管理
院系:
专业:
姓名:
学号:
指导教师:
日期:
一、课题设计
1.设计目的
2.设计要求
二、需求分析
三、系统设计
1.系统采用的关键技术
2.主要类的说明
3.系统模块图
4.函数清单
5.详细设计
五、测试
六、设计心得
七、附录(源程序)
一.课题设计
1.设计目的:
(1)熟悉C++中类的概念、类的封装、继承的实现方式。
(2)了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程。
(3)深对C++的理解与VisualC++环境的使用。
(4)逐步熟悉程序设计的方法,并养成良好的编程习惯。
2.设计要求:
(1)源程序要有适当的注释,使程序容易阅读。
(2)必须用C++中的类,要求命令行界面用文件保存,不得把用数组保存和文件保存相混淆。
(3)设计系统要求用C++语言。
(4)设计的系统不仅要具备四个基本功能—增、删、改、查,还要具备“货物的有关信息数据存盘”的功能。
因此,货物的有关信息数据既可以保存到磁盘文件,今后也可以从磁盘文件随时读出货物的有关信息。
这样做,不仅方便用户使用,也可以避免数据录入。
同时为了考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:
date.dat。
二、需求分析
随着现代生活水平的提高,超市这种便利的服务逐渐与我们的生活息息相关,如何更便利地对超市进行系统和有序的操作,成为了我们需要考虑的问题。
本程序运用C++程序设计了一个超市库存管理系统。
作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能。
所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品破损”、“退出系统”这5个基本功能,还可以在相应的硬盘上进行存盘以防止部分数据的丢失。
这样一来,就可以用最简洁的方式实现对货物的管理,也就实现了系统的要求。
3、系统设计
1.系统采用的关键技术
a.仓库管理员类
classadmin
{
public:
admin();
private:
stringname;
};
b.仓库货架类
classshelf
{
public:
shelf();
private:
adminmen;//管理员
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
};
2.主要类的说明
(1)使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、商品。
所以系统主要涉及两大类:
仓库类、商品类。
(2)系统框架就是仓库类和商品类的定义。
(3)主函数中定义一个仓库对象,循环显示主菜单并根据用户选择调用仓库类的相应方法(成员函数)。
(4)考虑系统操作的货物信息具有不确定性,所以考虑使用链表保存、处理货物信息。
(5)仓库类包含:
所有货物信息的一个不带头结点的链表及可以对货物信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。
所有货物都具有的公共信息及操作可以使用仓库类进行描述。
(6)仓库类包含:
所有货物信息的一个不带头结点的链表及可以对货物信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。
所有货物都具有的公共信息及操作可以使用仓库类进行描述。
(7)退出系统:
选择该项,自动退出该系统。
3.系统模块图
4.函数清单:
(1)首页函数:
first_face();
(2)入库函数:
in_storage();
(3)出库函数:
out_storage();
(4)查询函数:
voidselect_ele();//查询
A.按商品名称查函数:
voidselect_name();
B.按商品价格查询函数:
select_price();
C.按大类查询函数:
call_break();
(5)商品报损函数:
call_break();
5.详细设计
1、首页函数:
[charfirst_face()……]
2.新购商品入库函数:
[voidin_storage()……]
3.商品信息删除函数:
[voidout_storage()……]
4.商品信息查询函数:
[voidselect_ele()……]
5.商品报损函数:
[voidcall_break()……]
5、测试
1.系统选择界面
2.商品入库:
3.商品信息存盘:
4.商品查询统计:
5.商品破损:
6.商品出库:
7.系统退出:
6、设计心得
在短短几天的时间里,完成了该系统的设计,对自己来说确实是一个不小的挑战。
本系统的主要功能是管理员对超市库存商品的管理,可以进行查询、删除、添加、修改等操作。
在设计这个超市库存管理系统的过程中,认识到自己所学的知识确实少得有点可怜,编写代码的时候有时会连最基本的语句都想不起来,只有通过查找课本还有网上的一些资料才慢慢进入设计状态。
通过本次超市库存管理系统的设计,认识到了自身C++的基础知识并不扎实,不过也让我再次熟悉数据库的设计过程。
同时,我也能够基本掌握C++程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,此外,另外,当我结合C++中字符串函数的编译系统给定的库函数,采用一定的逻辑编译,就可以实现系统设计的各项要求,达到设计目的,进而提高自己的C++语言使用水平。
学习是无止境的,要想有所建树就必须要付出比别人更多的努力,希望在以后的学习中可以有更深的认识,以取得更好的成绩!
七、附录(源程序)
//main.cpp
#include
#include
#include
#include
#include
#include
usingnamespacestd;
//仓库管理员类
classadmin
{
public:
admin();
private:
stringname;
};
//仓库货架类
classshelf
{
public:
shelf();
private:
adminmen;//管理员
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
};
//electricalclass
classele
{
public:
ele();
private:
stringname;//商品名
doubleprice;//介格
shelfsh;//所属货架
longcount;//商品数量
};
//管理(组合类)
classmana
{
public:
mana();
charfirst_face();//首页
voidin_storage();//入库
voidout_storage();//出库
voidselect_ele();//查询
voidselect_name();//按商品名称查询
voidselect_price();//按商品价格查询
voidselect_kind();//按大类查询
voidcall_break();//商品报损
private:
eleaele;
shelfashelf;
adminabs;
};
//电器类默认构造函数
ele:
:
ele():
sh()
{
name="xxx";//商品名
price=0.0;//介格
count=0;//商品数量
}
//仓库货架类默认构造函数
shelf:
:
shelf():
men()
{
storeNo="xxx";//仓库编号
kinds="xxx";//商品大类
shelfNo="xxx";;//货架号
}
//仓库管理员类
admin:
:
admin()
{
name="xxx";
}
//管理类默认构造函数
mana:
:
mana():
aele(),ashelf(),abs()
{
}
charmana:
:
first_face()
{
system("cls");
cout<cout<>>>>>>>>>>>>>>>超市库存货物管理系统<<<<<<<<<<<<<<<<<<<<\t\t"
<<<<<<<<returngetch();
}
//入库
voidmana:
:
in_storage()
{
system("cls");
stringname;//商品名
doubleprice;//介格
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
longcount=0;//商品数量
cout<"<cout<<"\t商品名称:
";
cin>>name;
cout<";
cin>>price;
cout<";
cin>>count;
cout<";
cin>>storeNo;
cout<";
cin>>kinds;
cout<";
cin>>shelfNo;
ofstreamstoreFile("store.txt",ios:
:
app);
storeFile<:
left)<<<<storeFile.close();
cout<system("pause");
}
//出库
voidmana:
:
out_storage()
{
system("cls");
stringname;//商品名
cout<"<cout<<"\t商品名称:
";
cin>>name;
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
ofstreamstoreFile1("store.txt");
storeFile1.close();
cout<!
!
!
"<system("pause");
return;
}
boolflag=false;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringkinds1;//商品大类
stringshelfNo1;//货架号
longcount1=0;//商品数量
ofstreamtempFile("temp.txt");
while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1)
{
if(name1==name)
flag=true;
else
{
tempFile<:
left)<<<<}
}
tempFile.close();
storeFile.close();
if(!
flag)
{
cout<!
!
"<system("pause");
return;
}
ofstreamstoreFile1("store.txt");
ifstreamtempFile1("temp.txt");
storeFile1<storeFile1.close();
tempFile1.close();
cout<!
!
"<system("pause");
}
//查询
voidmana:
:
select_ele()
{
while
(1)
{
system("cls");
cout<cout<<"\t============================================================="<<<"\t||||"<<<"\t||商品查询||"<<<"\t||||"<<<"\t||1.按商品名称查询||"<<<"\t||||"<<<"\t||2.按商品价格查询||"<<<"\t||||"<<<"\t||3.按大类查询||"<<<"\t||||"<<<"\t||4.返回||"<<<"\t||||"<<<"\t============================================================="<charselect=getch();
switch(select)
{
case'1':
select_name();
break;
case'2':
select_price();
break;
case'3':
select_kind();
break;
case'4':
return;
default:
break;
}
}
}
//按商品名称查询
voidmana:
:
select_name()
{
system("cls");
cout<"<cout<<"\t输入商品名:
";
stringname;
cin>>name;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringkinds1;//商品大类
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
cout<!
!
"<system("pause");
return;
}
boolflag=false;
cout<<<"商品大类"<<"货架号"<while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1)
{
if(name1==name)
{
flag=true;
cout<:
left)<<<<}
}
storeFile.close();
if(!
flag)
cout<!
!
";
cout<system("pause");
}
//按商品价格查询
voidmana:
:
select_price()
{
system("cls");
cout<"<cout<<"\t输入价格:
";
doubleprice;
cin>>price;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringkinds1;//商品大类
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
cout<!
!
"<system("pause");
return;
}
boolflag=false;
cout<<<"商品大类"<<"货架号"<while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1)
{
if(price1==price)
{
flag=true;
cout<:
left)<<<<}
}
storeFile.close();
if(!
flag)
cout<!
!
";
cout<system("pause");
}
//按大类查询
voidmana:
:
select_kind()
{
system("cls");
cout<"<cout<<"\t输入大类名:
";
stringkinds;
cin>>kinds;
stringname1;//商品名
doubleprice1;//介格
stringstoreNo1;//仓库编号
stringkinds1;//商品大类
stringshelfNo1;//货架号
longcount1=0;//商品数量
ifstreamstoreFile("store.txt");
if(!
storeFile)
{
cout<!
!
"<system("pause");
return;
}
boolflag=false;
cout<<<"商品大类"<<"货架号"<while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1)
{
if(kinds1==kinds)
{
flag=true;
cout<:
left)<<<<}
}
storeFile.close();
if(!
flag)
cout<<