ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:319.21KB ,
资源ID:23750829      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23750829.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(超市物流管理系统21.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

超市物流管理系统21.docx

1、超市物流管理系统21超市物流管理系统分析1设计题目(问题)描述和要求某超市需要对物品信息进行保存,包含物品姓名、工号、工龄、工作车间以及工资的各项信息。要求: (1) 物品号(2) 生产单位 (3) 物品名称(4) 购入时间(5) 出售价格2系统分析根据问题描述和要求,系统要求能够编写程序实现输入、输入、查询、增加、删除等功能根据案例需求可以定义一个smarket类,smarket的基本信息有物品号、生产厂家、购入时间、物品名称和出售价格。对物品的管理包含有输入、查询、增加、删除等功能,这些功能需要调用smarket类的成员函数实现。由于需要对物品资料进行读入和存储,在程序中需要文件的输入输出

2、操作。先从相应的文件中读入物品资料,用户可以对资料处理后,在退出系统的时候将已修改资料重新存储到原文件中去。3设计3.1 类的设计smarket0类的设计3.1.1数据成员int NumStrNum; /物品条码 char WNameStrNum; /物品名姓名 char productionStrNum; /生产单位 char DateStrNum; /购入时间 float price; /出售价格3.1.2函数成员SMarket(); /构造函数 SMarket(const int *Num,const char *WName,const char *production,const ch

3、ar *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); /更改物品名 void changeproduction(const char *newproduction); /更改生产单位 void

4、 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 WName;char *SMarket:get_production() /获取物品条码 return production;

5、 ;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,newWName); ;void SMarket:changeproduction(const int *newproduction

6、) /更改生产单位 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)输出一名物品的信息。设计思路如下:询问要输出的物品的姓名;调用该对象的函数,获取物品信息;3.2.2 主函数设计在主函数中创建

8、了一个smarket类的对象数组,对物品资料的操作都将通过该类所创建对象的函数成员完成。在主函数中通过调用函数showsmarket()和showsmarket_title()和showAll()实现物品资料的显示功能。主程序调用流程图4调试分析、测试结果 4.1.1 分析 1.设计的时候,会出现中英字符的错误,调试时,出现”0xa1”,空格导致的,重新书写,就可以消除错误。 2.在简单地基础上,进行添加数据成员,进而添加相应功能的成员函数,实现设计预期的结果。 3.编程就是一个不断完善的过程,先搭建框架、逐步扩充,由简到繁,最后完善。边编程,边调试,边扩充。4.1.2 测试结果:执行 1:(

9、1)(2)(3)(4)5小结通过对图书馆管理系统的学习,自己进行了对物品信息管理系统的调查,程序的设计及实现。在设计之初,首先要构思分条列出要查看的信息(数据成员),比如物品姓名、工号和薪资等,根据要得到的信息,设计要实现的操作,即对这些信息的使用(成员函数)。准备好之后,根据C+的知识,进行数据的类型选择,根据定义好的类型,选择相应的类型的函数,进行操作。如输入、输出、查找、删除、修改等。在简单地程序之上,逐渐扩充,实现更多的功能。在调试的过程会遇到不少大大小小的问题,书写认真很重要,细心更重要,即便是检查错误,也要细心,经常见到的就是输入法导致的中英字符混用。编程时一个细心的过程,书写的规

10、范,使得查看更方便。6 附录/*/ * good.h 类声明头文件 /*#include#include /进行文件操作需包含此头文件#include /进行输出格式化设置需包含此头文件#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)good.get_date

11、()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; /coutsetiosflags(ios:left)set

12、w(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类对象数组 bool End=0; /程序终止信号 c

13、har 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); /更改商品名 infileTemp;

14、 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) coutsetw(20)Temp; int biName=0; for(i

15、=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; goodListgoodNum.

16、changePrice(x); goodNum+; else /操作失败 cout重复商品名,操作失败endl; else if(i=2) /查询操作 cout请输入所查询商品目名称:Temp; 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; if(i=goodNum) cout未找到所需商

17、品目.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; showGood_title(); showGood(goodLi

18、sti); 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.changeName(goodListj+1.get_name(); goodListj.changeProducer(goodListj+1.g

19、et_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(i=0;igoodNum;i+) /新商品输出

20、/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;

21、 /*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(); /输出文件关闭 / */ * main.cpp 系统主文件 / * #include#inc

22、lude /进行文件操作需包含此头文件#include /进行输出格式化设置需包含此头文件#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)good.get_date()setw(15)good.get_price()endl;void showGood_tit

23、le()/(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; /coutsetiosflags(ios:left)setw(20)商品名setw(20)生产厂家endl; /coutsetiosflags(ios:l

24、eft)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类对象数组 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 Temp) /infile读入数据为空,则循环终止 infiley; goodListi.changeCode(y); /更改编码 goodListi.changeName(Temp); /更改商品名 infileTemp;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1