超市物流管理系统

上传人:痛*** 文档编号:140110872 上传时间:2022-08-23 格式:DOC 页数:17 大小:57.04KB
收藏 版权申诉 举报 下载
超市物流管理系统_第1页
第1页 / 共17页
超市物流管理系统_第2页
第2页 / 共17页
超市物流管理系统_第3页
第3页 / 共17页
资源描述:

《超市物流管理系统》由会员分享,可在线阅读,更多相关《超市物流管理系统(17页珍藏版)》请在装配图网上搜索。

1、面向对象技术实训课程实训报告超市物品管理系统姓 名:崔召杰班 级:物联网一班学 号:121210216指导教师:王小辉成 绩:完成时间:2013年12月完成地点:数据库实验室61设计题目(问题)描述和要求某超市需要对物品信息进行保存,包含物品姓名、工号、工龄、工作车间以及工资的各项信息。要求: (1) 物品号(2) 生产单位 (3) 物品名称(4) 购入时间(5) 出售价格2系统分析根据问题描述和要求,系统要求能够编写程序实现输入、输入、查询、增加、删除等功能根据案例需求可以定义一个smarket类,smarket的基本信息有物品号、生产厂家、购入时间、物品名称和出售价格。对物品的管理包含有输

2、入、查询、增加、删除等功能,这些功能需要调用smarket类的成员函数实现。由于需要对物品资料进行读入和存储,在程序中需要文件的输入输出操作。先从相应的文件中读入物品资料,用户可以对资料处理后,在退出系统的时候将已修改资料重新存储到原文件中去.3设计3。1 类的设计smarket0类的设计3.1.1数据成员int NumStrNum; /物品条码 char WNameStrNum; /物品名姓名 char productionStrNum; /生产单位 char DateStrNum; /购入时间 float price; /出售价格3。1。2函数成员SMarket(); /构造函数 SMar

3、ket(const int Num,const char WName,const char production,const char *Date, const float *price );/构造函数 char get_Num(); /获取物品条码 char get_WName();/获取物品名 char get_production(); char get_Date(); float get_price(); void changeNum(const int newNum); /更改物品条码 void changeWName(const char *newWName); /更改物品名 vo

4、id changeproduction(const char newproduction); /更改生产单位 void changeDate(const char *newDate); /更改生产日期 void changeprice(const float *newprice); /更改价格 int cmpNum(const int Num); /比较查询词和物品条码,如果相等返回1 3.1.3主要函数成员的实现思路int *SMarket::get_Num() /获取物品条码 return Num; ;char *SMarket:get_WName() /获取物品名 return WNam

5、e;char SMarket:get_production() /获取物品条码 return production; ;char *SMarket:get_Date() /获取物品条码 return Date; ;float SMarket:get_price() /获取物品条码 return price; ;void SMarket::changeNum(const int *newNum) /更改物品条码 strcpy(Num,newNum);void SMarket:changeWName(const char *newWName) /更改物品名 strcpy(WName,newWNam

6、e); ;void SMarket::changeproduction(const int *newproduction) /更改生产单位 strcpy(production,newproduction);void SMarket:changeDate(const char newDate) /更改购入时间 strcpy(Date,newDate);;int SMarket::cmpNum(const char Num) /比较查询词和物品条码,如果相等返回1 return strcmp(Num,Num);3.2主程序设计3.2。1 函数设计(1)修改物品信息功能函数 修改功能的设计思路是:询

7、问用户要修改物品的姓名:等待用户输入、并获取要修改物品的姓名:查询该物品在物品列表中是否存在若不存在,输出该物品不存在的提示信息若存在,则等待用户输入、并获取要修改物品的姓名,修改物品列表中该物品的相应信息项(2)删除物品信息功能函数删除功能的设计思路是:询问用户要删除物品的姓名:等待用户输入、并获取要删除物品的名称:查询该物品在物品列表中是否存在若不存在,输出该物品不存在的提示信息若存在,则修删除物品列表中该物品的相应信息项删除过程。(3)查找物品信息功能函数设计思路如下:询问查找的物品的名称;等待用户输入;若查找不存在,输出该物品不存在的提示信息;若存在,输出该物品的相关信息;(4)输出一

8、名物品的信息。设计思路如下:询问要输出的物品的姓名;调用该对象的函数,获取物品信息;3.2。2 主函数设计在主函数中创建了一个smarket类的对象数组,对物品资料的操作都将通过该类所创建对象的函数成员完成。在主函数中通过调用函数showsmarket()和showsmarket_title()和showAll()实现物品资料的显示功能。主程序调用流程图4调试分析、测试结果 4。1。1 分析 1。设计的时候,会出现中英字符的错误,调试时,出现”0xa1,空格导致的,重新书写,就可以消除错误。 2。在简单地基础上,进行添加数据成员,进而添加相应功能的成员函数,实现设计预期的结果。 3。编程就是一

9、个不断完善的过程,先搭建框架、逐步扩充,由简到繁,最后完善。边编程,边调试,边扩充。4。1.2 测试结果:执行 1:(1)(2)(3)(4)5小结通过对图书馆管理系统的学习,自己进行了对物品信息管理系统的调查,程序的设计及实现。在设计之初,首先要构思分条列出要查看的信息(数据成员),比如物品姓名、工号和薪资等,根据要得到的信息,设计要实现的操作,即对这些信息的使用(成员函数)。准备好之后,根据C+的知识,进行数据的类型选择,根据定义好的类型,选择相应的类型的函数,进行操作。如输入、输出、查找、删除、修改等。在简单地程序之上,逐渐扩充,实现更多的功能。在调试的过程会遇到不少大大小小的问题,书写认

10、真很重要,细心更重要,即便是检查错误,也要细心,经常见到的就是输入法导致的中英字符混用。编程时一个细心的过程,书写的规范,使得查看更方便.6 附录/*/ good.h 类声明头文件 /*include#includefstream.h /进行文件操作需包含此头文件#includeiomanip。h /进行输出格式化设置需包含此头文件#include good。h /用包含命令将类定义头文件包含进来# define maxGoodNum 1000 /案例假设存储商品最大不超过1000件void showGood(Good good) /输出商品名 coutsetw(15)good.get_cod

11、e()setw(15)good.get_name()setw(15)good.get_producer()setw(15)good.get_date()setw(15)good。get_price()endl;void showGood_title()/(Good good) /输出商品名 coutsetw(15)”商品的编码setw(15)商品名”setw(15)生产厂家setw(15)生产日期”setw(15)单价”endl;/coutsetw(15)good.get_code()setw(15)good。get_name()setw(15)good。get_producer()setw(

12、15)good.get_date()setw(15)good。get_price()endl;/coutsetiosflags(ios::left)setw(20)商品名”setw(20)”生产厂家”endl;/coutsetiosflags(ios:left)setw(20)good。get_name()setw(20)good。get_producer()endl;void showAll(Good good,int Num) /输出所有商品的商品名 showGood_title();for (int i=0;iNum;i+) showGood(good+i)); cout共有商品”Num

13、件”endl;void main() Good goodListmaxGoodNum; /生成Good类对象数组 bool End=0; /程序终止信号 char TempStrNum; /char数组Temp存储临时数据 int goodNum=0,lastNum=0,i=0,x=0,y=0;/goodNum商品数目,lastNum上次文件中的商品数目 ifstream infile(Goodlist。txt”); /定义文件指针infile指向GoodList.txt if ( ! infile ) / 打开失败 cerr y; goodListi。changeCode(y); /更改编码

14、 goodListi。changeName(Temp); /更改商品名 infileTemp; goodListi.changeProducer(Temp); /更改生产厂家 infileTemp; goodListi.changeDate(Temp); /更改生产日期 infilex; goodListi。changePrice(x); /更改价格 i+; goodNum=i; lastNum=i; cout从GoodList.txt中读出已有商品如下:”endl; showAll(goodList,goodNum); /显示所有商品名 while (End=0) /显示操作界面 couti

15、; if (i=1) coutsetw(20)请输入新商品名称:”; cinTemp; int biName=0; for(i=0;igoodNum;i+) if(!goodListi。cmpName(Temp) biName=1; if(!biName) /以前没有此商品则加入商品库 goodListgoodNum.changeName(Temp); coutsetw(20)Temp; goodListgoodNum.changeProducer(Temp);coutsetw(20)y; goodListgoodNum.changeCode(y);coutsetw(20)Temp; good

16、ListgoodNum.changeDate(Temp);coutsetw(20)x; goodListgoodNum。changePrice(x);goodNum+; else /操作失败 cout”重复商品名,操作失败endl; else if(i=2) /查询操作 coutTemp; for(i=0;igoodNum;i+) if(!goodListi。cmpName(Temp)) /cout编号i+1endl; /cout”生产厂家:”goodListi。get_producer()endl; cout查询结果如下:endl; showGood_title(); showGood(go

17、odListi); coutendl; break; if(i=goodNum) cout未找到所需商品目.endl; else if(i=6) /终止操作 End=1; else if(i=3) /显示所有商品目的操作 cout”显示所有商品目如下:endl; showAll(goodList,goodNum); else if (i=4)/修改商品信息 cout”请输入所修改商品的名称:Temp; for(i=0;igoodNum;i+) if(!goodListi。cmpName(Temp)) cout”请输入该商品新的价格:”;cinprice;goodListi.changePric

18、e(price);coutendl该商品修改后的信息如下:endl;showGood_title(); showGood(goodListi); break; if(i=goodNum) cout未找到所需商品目.endl; else if (i=5) /删除商品 cout”请输入所删除商品的名称:”Temp; for(i=0;igoodNum;i+) if(!goodListi.cmpName(Temp) cout”删除此商品前所有商品目如下:endl;showAll(goodList,goodNum);for(int j=i;j(goodNum-1);j+)goodListj.change

19、Name(goodListj+1.get_name();goodListj.changeProducer(goodListj+1。get_producer(); goodNum-;cout”删除此商品后所有商品目如下:endl;showAll(goodList,goodNum); break; if(i=goodNum) cout未找到所需商品目.”endl; infile。close(); /输入文件关闭ofstream outfile(”Goodlist。txt”,ios::out); /输出文件打开,添加件尾if ( ! outfile ) / 打开失败 cerr ”cannot ope

20、n Goodlist.txt for outputn”;exit( 1 );for(i=0;igoodNum;i+) /新商品输出 /outfilegoodListi.get_code()endlgoodListi.get_name()endlgoodListi.get_producer()endlgoodListi。get_date()endlgoodListi.get_price()endlendl;outfilesetw(15)goodListi.get_code()setw(15)goodListi.get_name()setw(15)goodListi.get_producer()s

21、etw(15)goodListi.get_date()setw(15)goodListi.get_price()endlendl;/*ofstream outfile(”Goodlist.txt,ios:app); /输出文件打开,添加件尾if ( ! outfile ) / 打开失败 cerr ”cannot open Goodlist。txt for outputn”;exit( 1 );for(i=lastNum;igoodNum;i+) /新商品输出 outfilegoodListi。get_name()endlgoodListi.get_producer()endlendl;/ ou

22、tfile.close(); /输出文件关闭 / */ * main。cpp 系统主文件 / * #include /进行文件操作需包含此头文件#includeiomanip.h /进行输出格式化设置需包含此头文件#include good。h /用包含命令将类定义头文件包含进来# define maxGoodNum 1000 /案例假设存储商品最大不超过1000件void showGood(Good good) /输出商品名 coutsetw(15)good.get_code()setw(15)good.get_name()setw(15)good.get_producer()setw(15

23、)good。get_date()setw(15)good。get_price()endl;void showGood_title()/(Good good) /输出商品名 coutsetw(15)商品的编码setw(15)商品名”setw(15)生产厂家setw(15)生产日期”setw(15)单价”endl;/coutsetw(15)good。get_code()setw(15)good.get_name()setw(15)good。get_producer()setw(15)good.get_date()setw(15)good.get_price()endl;/coutsetiosfla

24、gs(ios::left)setw(20)商品名”setw(20)生产厂家”endl;/coutsetiosflags(ios::left)setw(20)good.get_name()setw(20)good.get_producer()endl;void showAll(Good good,int Num) /输出所有商品的商品名 showGood_title();for (int i=0;iNum;i+) showGood(*(good+i); cout”共有商品Num”件”endl;void main() Good goodListmaxGoodNum; /生成Good类对象数组 bo

25、ol End=0; /程序终止信号 char TempStrNum; /char数组Temp存储临时数据 int goodNum=0,lastNum=0,i=0,x=0,y=0;/goodNum商品数目,lastNum上次文件中的商品数目 ifstream infile(Goodlist.txt”); /定义文件指针infile指向GoodList。txt if ( ! infile ) / 打开失败 cerr Temp)) /infile读入数据为空,则循环终止 infiley; goodListi。changeCode(y); /更改编码 goodListi。changeName(Temp

26、); /更改商品名 infileTemp; goodListi.changeProducer(Temp); /更改生产厂家 infileTemp; goodListi.changeDate(Temp); /更改生产日期 infilex; goodListi。changePrice(x); /更改价格 i+; goodNum=i; lastNum=i; cout从GoodList。txt中读出已有商品如下:”endl; showAll(goodList,goodNum); /显示所有商品名 while (End=0) /显示操作界面 couti; if (i=1) coutTemp; int b

27、iName=0; for(i=0;igoodNum;i+) if(!goodListi。cmpName(Temp) biName=1; if(!biName) /以前没有此商品则加入商品库 goodListgoodNum。changeName(Temp); coutsetw(20)Temp; goodListgoodNum.changeProducer(Temp);coutsetw(20)y; goodListgoodNum.changeCode(y);coutsetw(20)Temp; goodListgoodNum.changeDate(Temp);coutsetw(20)x; goodL

28、istgoodNum.changePrice(x);goodNum+; else /操作失败 cout”重复商品名,操作失败endl; else if(i=2) /查询操作 cout请输入所查询商品目名称:endl; cinTemp; for(i=0;igoodNum;i+) if(!goodListi。cmpName(Temp) /cout”编号”i+1endl; /cout”生产厂家:”goodListi。get_producer()endl; cout查询结果如下:”endl; showGood_title(); showGood(goodListi); coutendl; break;

29、 if(i=goodNum) cout”未找到所需商品目.endl; else if(i=6) /终止操作 End=1; else if(i=3) /显示所有商品目的操作 cout”显示所有商品目如下:”endl; showAll(goodList,goodNum); else if (i=4)/修改商品信息 cout”请输入所修改商品的名称:Temp; for(i=0;igoodNum;i+) if(!goodListi.cmpName(Temp)) coutprice;goodListi.changePrice(price);coutendl该商品修改后的信息如下:endl;showGoo

30、d_title(); showGood(goodListi); break; if(i=goodNum) cout未找到所需商品目.endl; else if (i=5) /删除商品 cout请输入所删除商品的名称:”Temp; for(i=0;igoodNum;i+) if(!goodListi.cmpName(Temp)) cout”删除此商品前所有商品目如下:”endl;showAll(goodList,goodNum);for(int j=i;j(goodNum1);j+)goodListj。changeName(goodListj+1.get_name());goodListj。ch

31、angeProducer(goodListj+1。get_producer(); goodNum;cout”删除此商品后所有商品目如下:”endl;showAll(goodList,goodNum); break; if(i=goodNum) cout未找到所需商品目.”endl; infile.close(); /输入文件关闭ofstream outfile(Goodlist。txt,ios::out); /输出文件打开,添加件尾if ( ! outfile ) / 打开失败 cerr ”cannot open Goodlist.txt for outputn”;exit( 1 );for(

32、i=0;igoodNum;i+) /新商品输出 /outfilegoodListi.get_code()endlgoodListi。get_name()endlgoodListi。get_producer()endlgoodListi.get_date()endlgoodListi。get_price()endlendl;outfilesetw(15)goodListi.get_code()setw(15)goodListi.get_name()setw(15)goodListi.get_producer()setw(15)goodListi.get_date()setw(15)goodListi.get_price()endlendl;/*ofstream outfile(”Goodlist.txt,ios:app); /输出文件打开,添加件尾if ( ! outfile ) / 打开失败 cerr cannot open Goodlist.txt for outputn”;exit( 1 );for(i=lastNum;igoodNum;i+) /新商品输出 outfilegoodListi。get_name()endlgoodListi.get_producer()endlendl;*/ outfile。close(); /输出文件关闭 15

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!