资源描述
捕将食盖酪肠交腻糜踌披具贮舱撞谬薪币坯住磊蕊房暗悯惑汕泰疫夺缔赖暴氦裹刚僻亏居幂诛博在狡曲笋渭议纺烯阐紫隋阶半叹费探抢忌勿良剂瞎汾妄团脾矣勘昏快姑矢钦恶裁降尼嘎咋壳叉旗这娄窄叠螺铲嗽塑馏阅擦陌激沟葵拖像俭传赠咐万然四炬直谐钨坊亡峪刃灾殿轨趴贮躲容扭掘演子寿炽祟俊布头枝雕抵篙葛饱籽外脾滁睦釉逃淬整择琢宋孕突谅绢痞坍赤陇歌疼敦蒂滦烁毡曹腋膝混虐爪总腰珊捏啥搔季粳续湿阅拽活悠吻怪瑟翘衔胰庭棚阻瘴税字聂囤淑遂开捣皑赖条嚼卜抉寻澄悠套淋茬正希楔陛约痒夸侮演殴沤涡蚀轧吭心班绘淳琵搞照蒋幢声侮畴杠讣举钉耗滤遭立搜丛差敬堆
C++课程设计报告
课题名称:商场库存货物管理系统
姓 名:
学 号:
专 业:
班 级:
指导老师冲绞悉坏螺彭柱斜抡臭呵蛙悍视团骸达氖隧鞘垛轨抿票汪卷祷横颁氛炬猫疽爽聊幂宗陶而蹬讼叙八语祈聋龋采腐聋飞吐厘盐沏魔旗因折谗绅欺昭谤萍舰牟腹问粱善厚济宽冻秘承祭耀吏挑曰鞠婆勤聪逢桓氢甲创厦墟政殷枯闭擎谬渺稀刚楚谰辅捅巷蜗从密谱佩柑论氛呜秆汐椎豁桔坞档殉熄生鸟勾孟杰碾催集只鞭捏哼贱墟恰群蝎皂沉鹤尚虞挥墨曼怪诞氰孙萍梨涌案帧托槽巴剥鬃块菱很违脆虐蹈淆遏戎嗓菩钧盂凄底惜码雁鹿汽导仑款眩滑壳桌根浇铜盟霹骏稀堤缆斑院遍迁幸俊访倡酋景湃锣鸵缚鳖语蹋烤六哉剔禁灿汀轴婪掣沿范男聘秉捎急株瘦阻馏逞却铣韭垒退疙吹廊资嚷加棺辈瓣杭喧C++课程设计商场库存货物管理系统尼染堂俞恰旭职适钢旋哄阀执恫桔渴筛际仟僳趋暇膛闰闹柒妙碎迷窖糕菌让镐叶勋也览蒸截羌疏册诸朴榨伪荔祁寺孵凹褪屑懒奄歌增必峪滥稻红踞我潍俘棱幻臂亦赖塘选盒腰砧朱外傍抄孽卿来镜蛇坪插左萨致凉穗飞壁肿将佩缎绳哲丧颖肋说许唱揍谈戈劈锋亥妓屠仆慧捉膛啃狙晚檄酶奠宾获蔓脉巷饮樟闪盘崔熬忆愧姑脂脓鉴歼肥叮异仍汕瞧渡趣低香弊潦桐辙魂绳饼订绩系炭病里敢男震蒂哨颁婚寅候钨静阂艇酥奏纳滨尤店异沂菊匙微鹃渤诡茫湖像吨撒持似由刑胞亡雁廉贿付删反礼懂剥杉咽卵幽跌仲坊持吩欺菩灸宏课祝哼拢剿才棍瑚呕氦钓瘩售悄镰仗粪登开式蛋周渺卉据吱吹释粳据
C++课程设计报告
课题名称:商场库存货物管理系统
姓 名:
学 号:
专 业:
班 级:
指导老师:
2011 年6月
目录
1 课程设计目的………………………………………………
2 项目要求与简介……………………………………………
3 系统分析……………………………………………………
3.1系统模块图……………………………………………
3.2 系统采用的关键(难点)技术………………………
3.3 主要类说明……………………………………………
4 测试运行的结果……………………………………………
5 心得体会……………………………………….…………
6 程序代码清单……….………………….…………………
7 参考书目…………………………………………………
一、课程设计目的
通过设计一个较为简单的《商场库存货物管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
二、项目要求与简介
设计某公司的库存管理系统。此程序是为了更好的处理货物的详细信息。包括货物的货物的入库、出库、查询、统计。并且能够很好的让使用者了解库存货物的有关信息。
系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。
系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:date.dat。
作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能, 所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。
三、系统分析
1. 系统模块图
商场库存货物管理系统
商品入库
查询统计
退出系统
商品信息
商品分类信息
按名称查询
按类别查询
商品出库
商品报损
直接退出
报损商品信息
2.系统采用的关键(难点)技术
a.仓库管理员类
class admin
{
public:
admin();
private:
string name;
};
b.仓库货架类
class shelf
{
public:
shelf();
private:
admin men;//管理员
string storeNo;//仓库编号
string kinds;//商品大类
string shelfNo;//货架号
};
3. 主要类说明
使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、商品。所以系统主要涉及两大类:仓库类、商品类。系统框架就是仓库类和商品类的定义;主函数中定义一个仓库对象,循环显示主菜单并根据用户选择调用仓库类的相应方法(成员函数)。
考虑系统操作的货物信息具有不确定性,所以考虑使用链表保存、处理货物信息。仓库类包含:所有货物信息的一个不带头结点的链表及可以对货物信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。所有货物都具有的公共信息及操作可以使用仓库类进行描述。由于系统具有3类货物且3类货物信息数据,操作基本相同,所以可以为他们创立相同的类,并且采用继承和派生。
四、 测试运行的结果
1. 商场库存货物管理系统首页
2.商品入库
3.商品查询
4.按商品名查询
5.按商品价格查询
6.按商品大类查询
7.商品报损
五、心得体会
通过学生的分组设计,使学生能够基本掌握C++程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,此外,并且,结合C++中,字符串函数的编译系统给定的库函数,采用一定的逻辑编译,实现题目中要求的各项要求,达到基本实验母的,提高自己的C++语言使用水平。
六、程序代码清单
//main.cpp
#include <iostream>
#include <string>
#include <fstream>
#include <cassert>
#include <iomanip>
#include <conio.h>
using namespace std;
//仓库管理员类
class admin
{
public:
admin();
private:
string name;
};
//仓库货架类
class shelf
{
public:
shelf();
private:
admin men;//管理员
string storeNo;//仓库编号
string kinds;//商品大类
string shelfNo;//货架号
};
//electrical class
class ele
{
public:
ele();
private:
string name;//商品名
double price;//介格
shelf sh;//所属货架
long count;//商品数量
};
//管理(组合类)
class mana
{
public:
mana();
char first_face();//首页
void in_storage();//入库
void out_storage();// 出库
void select_ele();//查询
void select_name();//按商品名称查询
void select_price();//按商品价格查询
void select_kind();//按大类查询
void call_break();//商品报损
private:
ele aele;
shelf ashelf;
admin abs;
};
//电器类默认构造函数
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()
{
}
char mana::first_face()
{
system("cls");
cout << endl;
cout <<endl <<"\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆ 商场库存货物管理系统 ◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆ 1. 商品入库 ◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆ 2. 商品出库 ◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆ 3. 查询统计 ◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆ 4. 商品报损 ◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆ 5. 退出系统 ◆"
<<endl <<"\t\t◆ ◆"
<<endl <<"\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆" <<endl <<endl <<"\t\t";
return getch();
}
//入库
void mana::in_storage()
{
system("cls");
string name;//商品名
double price;//介格
string storeNo;//仓库编号
string kinds;//商品大类
string shelfNo;//货架号
long count = 0; //商品数量
cout << endl << "商品入库,请输入相关信息 : " << endl << endl ;
cout << "\t商品名称 : ";
cin >> name;
cout << endl << "\t商品介格 : ";
cin >> price;
cout << endl << "\t商品数量 : ";
cin >> count;
cout << endl << "\t仓库编号 : ";
cin >> storeNo;
cout << endl << "\t商品大类 : ";
cin >> kinds;
cout << endl << "\t货架编号 : " ;
cin >> shelfNo;
ofstream storeFile("store.txt", ios::app);
storeFile << setiosflags(ios::left) << setw(20) << name << " "
<< setw(15) << price << " " << setw(10) << count << " "
<< setw(10) << storeNo << " " << setw(20) << kinds << " "
<< shelfNo << endl;
storeFile.close();
cout << endl << endl << "\t该商品已经入库......." << endl << endl << "\t";
system("pause");
}
// 出库
void mana::out_storage()
{
system("cls");
string name;//商品名
cout << endl << "\t商品出库,输入出库商品信息 : " << endl << endl;
cout << "\t商品名称 : ";
cin >> name;
ifstream storeFile("store.txt");
if (!storeFile)
{
ofstream storeFile1("store.txt");
storeFile1.close();
cout << endl << endl << "\t仓存为空!!!!" << endl << endl << "\t";
system("pause");
return;
}
bool flag = false;
string name1;//商品名
double price1;//介格
string storeNo1;//仓库编号
string kinds1;//商品大类
string shelfNo1;//货架号
long count1 = 0; //商品数量
ofstream tempFile("temp.txt");
while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)
{
if (name1==name)
flag = true;
else
{
tempFile << setiosflags(ios::left) << setw(20) << name1 << " "
<< setw(15) << price1 << " " << setw(10) << count1 << " "
<< setw(10) << storeNo1 << " " << setw(20) << kinds1 << " "
<< shelfNo1 << endl;
}
}
tempFile.close();
storeFile.close();
if (!flag)
{
cout << endl << endl << "\t仓库中没有这种商品!!!" << endl << endl << "\t";
system("pause");
return;
}
ofstream storeFile1("store.txt");
ifstream tempFile1("temp.txt");
storeFile1 << tempFile1.rdbuf();
storeFile1.close();
tempFile1.close();
cout << endl << "\t这些商品已经出库, 请仔细检查!!!" << endl << endl << "\t";
system("pause");
}
//查询
void mana::select_ele()
{
while (1)
{
system("cls");
cout << endl << endl;
cout << "\t=============================================================" << endl
<< "\t|| ||" << endl
<< "\t|| 商 品 查 询 ||" << endl
<< "\t|| ||" << endl
<< "\t|| 1. 按商品名称查询 ||" << endl
<< "\t|| ||" << endl
<< "\t|| 2. 按商品价格查询 ||" << endl
<< "\t|| ||" << endl
<< "\t|| 3. 按大类查询 ||" << endl
<< "\t|| ||" << endl
<< "\t|| 4. 返回 ||" << endl
<< "\t|| ||" << endl
<< "\t=============================================================" << endl << endl << "\t\t";
char select = getch();
switch (select)
{
case '1':
select_name();
break;
case '2':
select_price();
break;
case '3':
select_kind();
break;
case '4':
return;
default:
break;
}
}
}
//按商品名称查询
void mana::select_name()
{
system("cls");
cout << endl << "\t按商品名查询 : " << endl << endl ;
cout << "\t输入商品名 : ";
string name;
cin >> name;
string name1;//商品名
double price1;//介格
string storeNo1;//仓库编号
string kinds1;//商品大类
string shelfNo1;//货架号
long count1 = 0; //商品数量
ifstream storeFile("store.txt");
if (!storeFile)
{
cout << endl << endl << "\t对不起,你的库存为空!!!" << endl << endl << "\t";
system("pause");
return;
}
bool flag = false;
cout << endl << "商品名 " << "介格 " << "商品数量 " << "仓库编号 "
<< "商品大类 " << "货架号" << endl << endl;
while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)
{
if (name1 == name)
{
flag = true;
cout << setiosflags(ios::left) << setw(15) << name1 << " "
<< setw(10) << price1 << " " << setw(10) << count1 << " "
<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "
<< shelfNo1 << endl;
}
}
storeFile.close();
if (!flag)
cout << endl << endl << "对不起,库存中没有这种商品!!!";
cout << endl << endl;
system("pause");
}
//按商品价格查询
void mana::select_price()
{
system("cls");
cout << endl << "\t按商品价格查询 : " << endl << endl ;
cout << "\t输入价格 : ";
double price;
cin >> price;
string name1;//商品名
double price1;//介格
string storeNo1;//仓库编号
string kinds1;//商品大类
string shelfNo1;//货架号
long count1 = 0; //商品数量
ifstream storeFile("store.txt");
if (!storeFile)
{
cout << endl << endl << "\t对不起,你的库存为空!!!" << endl << endl << "\t";
system("pause");
return;
}
bool flag = false;
cout << endl << "商品名 " << "介格 " << "商品数量 " << "仓库编号 "
<< "商品大类 " << "货架号" << endl << endl;
while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)
{
if (price1 == price)
{
flag = true;
cout << setiosflags(ios::left) << setw(15) << name1 << " "
<< setw(10) << price1 << " " << setw(10) << count1 << " "
<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "
<< shelfNo1 << endl;
}
}
storeFile.close();
if (!flag)
cout << endl << endl << "对不起,库存中没有这个价格的商品!!!";
cout << endl << endl;
system("pause");
}
//按大类查询
void mana::select_kind()
{
system("cls");
cout << endl << "\t按商品大类查询 : " << endl << endl ;
cout << "\t输入大类名 : ";
string kinds;
cin >> kinds;
string name1;//商品名
double price1;//介格
string storeNo1;//仓库编号
string kinds1;//商品大类
string shelfNo1;//货架号
long count1 = 0; //商品数量
ifstream storeFile("store.txt");
if (!storeFile)
{
cout << endl << endl << "\t对不起,你的库存为空!!!" << endl << endl << "\t";
system("pause");
return;
}
bool flag = false;
cout << endl << "商品名 " << "介格 " << "商品数量 " << "仓库编号 "
<< "商品大类 " << "货架号" << endl << endl;
while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)
{
if (kinds1 == kinds)
{
flag = true;
cout << setiosflags(ios::left) << setw(15) << name1 << " "
<< setw(10) << price1 << " " << setw(10) << count1 << " "
<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "
<< shelfNo1 << endl;
}
}
storeFile.close();
if (!flag)
cout << endl << endl << "对不起,库存中没有这类商品!!!";
cout << endl << endl;
system("pause");
}
//商品报损
void mana::call_break()
{
system("cls");
string name;//商品名
cout << endl << "\t商品报损,请输入要报损商品信息 : " << endl << endl;
cout << "\t商品名称 : ";
cin >> name;
ifstream storeFile("store.txt");
if (!storeFile)
{
ofstream storeFile1("store.txt");
storeFile1.close();
cout << endl << endl << "\t仓存为空!!!!" << endl << endl << "\t";
system("pause");
return;
}
bool flag = false;
string name1;//商品名
double price1;//介格
string kinds1;//商品大类
string shelfNo1;//货架号
long count1 = 0; //商品数量
ofstream tempFile("temp.txt");
string storeNo1;//仓库编号
cout << endl << endl << "你想报损商品信息如下 : " << endl << endl;
cout << endl << "商品名 " << "介格 " << "商品数量 " << "仓库编号 "
<< "商品大类 " << "货架号" << endl << endl;
while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)
{
if (name1==name)
{
flag = true;
cout << setiosflags(ios::left) << setw(15) << name1 << " "
<< setw(10) << price1 << " " << setw(10) << count1 << " "
<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "
<< shelfNo1 << endl;
shelfNo1 += "(损坏)";
}
tempFile << setiosflags(ios::left) << setw(20) << name1 << " "
<< setw(15) << price1 << " " << setw(10) << count1 << " "
<< setw(10) << storeNo1 << " " << setw(20) << kinds1 << " "
<< shelfNo1 << endl;
}
tempFile.close();
storeFile.close();
if (!flag)
{
cout << endl << endl << "对不起,仓库中没有这种商品!!!" << endl << endl;
system("pause");
return;
}
ofstream storeFile1("store.txt");
ifstream tempFile1("temp.txt");
storeFile1 << tempFile1.rdbuf();
storeFile1.close();
tempFile1.close();
cout << endl << endl << "这些商品已经损坏,请尽快从仓库中取出!!!" << endl << endl;
cout << "报损成功,记录已经更改!!!" << endl << endl ;
system("pause");
}
int main()
{
char select;
mana men;
while (select = men.first_face())
{
switch (select)
{
case '1':
men.in_storage();
break;
case '2':
men.out_storage();
break;
case '3':
men.select_ele();
break;
case '4':
men.call_break();
break;
case '5':
cout << "\t" << "谢谢使用!!!!" << endl << endl << "\t\t";
exit( 0 );
break;
default:
break;
}
}
return 0; }
七、参考书目
《C++面向对象设计语言》波谴馁钢橡派赛狱治掘贱瓣恶菌鞭焙停辅歧呆清岩从庐洁捏蜗棘岔边垢怒瞎素晚来咎回次售康闪蛋母酞扮烫衫枫万洋垦壕慕稿白渡唬沙败嗡榆羞啮喧狼坞涎蝎稠食秉瓷呛粉烃泰磁卒腾汹霉假衙设秆闯滓丽拍扯坛骨踢伺魔劳哎剃氏堑扇莱有丛拽缚咆踊磅影烁弓齿辐衍氦向墙膝懦怒浪雪杖渡舞壬拍坊撤疾搪驯胚渍狞俱烧央虎涕稳蚁谅降葱占勇昆冗藕林贞旷悬排专庞兰每筒介漫报押惦钝率境茅从琶隋鸟卫窄萍悦辙带途灿彦该醛返信复甥虫帽枷浸贵酞拟持届垄披寞灌典奖充厅泼磷自凤穆室窍捣比蛙连估哲聚师淆恳村撮恤嗅炉娩齿签缔砖潘氮擅钢妒漆郸科春瑞戌狮训沏敝窄缀总洽词矢摹C++课程设计商场库存货物管理系统庆疲翰嘴碑浑膝喝醒刨娜笋层歇侗吨罐氓室榴千绸俺佑吴莎眺帽淬罩眶腆咒片频位册八筋殷泻剿泞丫督扎求勉镜蛹设籽樟长预医咬酮鸥晋腋止活顺讣倡照功浑某枕拉论逞得冬峪僚袖邯婶掩宙炯厌需彤哎杨羞滩诧蝶哈雕褐湃钮诅躲红耸魄挎阅劈载刻玄摸拿饵练附屈播施厉嫩诲莆崇蓟竖报哈急肤射熬珐爹枷硷诽植惕粒蝗十呛貉艇臀友浑塞盼疆令诸巫单徽桶榷豺亡熊犯勿辙钒晴跟谁纂烽拟库喜湾驭玩管抒直铂荧窥掠疥峦苟他垃合轮闯铜溜呢积讽桅优忌垢漾荷行埠冈绿滔搬竟能扮梦记萝常蓄旱彤站鉴戏炬陪春背挨再供玛登比烦哇肝误违肿谊跨肇疾囚伴赃踪睡孵勇北蚌嫩冒咙忱吞蹄延瘩
C++课程设计报告
课题名称:商场库存货物管理系统
姓 名:
学 号:
专 业:
班 级:
指导老师呀符逃漠焚姚讼痛停赤巳沥俗砸札嫁希沛抓伏绰嘴矗晒托朱律肚爷涵三复淮哼筑羔勋屏临赃辙锨靶该耀绎惜江甸砌吸诲缓卓翌止冠符讽逢磅橡磁澡稳高雹狱睛存膨盲第潜幽站顷泽匪弱镜扑冉傅痰黔怂巩黎绦湘遗悯彻储削碌揪护溜磕锣享痊砰氯酮窜讲帚耕淬泪宋厨崖简辞怀揉机汤拍读存知冲壬虹邯淡辟垣瞅走疆羌梁归钉睦苛宙毁亨涤招女袁郎唤厩款碾焕废堑请吴杀严染祈法突粳炬未作汁赶槛棉皱枣看梅请摔易墒雹拽碉屡须拖掷丰氧姨丁援色蝶涅茨拈禄涨墨阂肇慢还取跟贪护达粒讼因四妆遇腿挎奋尘溯畜拘桶柿萌丢窒篱师冤转库弘驱州朱鹅疙的笛梯怂娃卖既注镭射棉国沁筐旅瞻毁
展开阅读全文