超市物流管理系统_第1页
超市物流管理系统_第2页
超市物流管理系统_第3页
超市物流管理系统_第4页
超市物流管理系统_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一管理资源网免费管理资料下载基地设计题目(问题)描述和要求某超市需要对物品信息进行保存,包含物品姓名、工号、工龄、工作车间以及工资的各项信息。要求:物品号生产单位物品名称购入时间出售价格2系统分析根据问题描述和要求,系统要求能够编写程序实现输入、输入、查询、增加、删除等功能根据案例需求可以定义一个smarket类,smarket的基本信息有物品号、生产厂家、购入时间、物品名称和出售价格。对物品的管理包含有输入、查询、增加、删除等功能,这些功能需要调用smarket类的成员函数实现。由于需要对物品资料进行读入和存储,在程序中需要文件的输入输出操作。先从相应的文件中读入物品资料,用户可以对资料处理后,在退出系统的时候将已修改资料重新存储到原文件中去。3设计3.1类的设计smarket0类的设计3.1.1数据成员intNum[StrNum];//物品条码charWName[StrNum];//物品名姓名charproduction[StrNum];//生产单位charDate[StrNum];//购入时间floatprice;//出售价格3.1.2函数成员SMarket();//构造函数SMarket(constint*Num,constchar*WName,constchar*production,constchar*Date,constfloat*price);//构造函数char*get_Num();//获取物品条码char*get_WName();//获取物品名char*get_production();char*get_Date();floatget_price();voidchangeNum(constint*newNum);//更改物品条码voidchangeWName(constchar*newWName);//更改物品名voidchangeproduction(constchar*newproduction);//更改生产单位voidchangeDate(constchar*newDate);//更改生产日期voidchangeprice(constfloat*newprice);//更改价格intcmpNum(constint*Num);//比较查询词和物品条码,如果相等返回13.1.3主要函数成员的实现思路int*SMarket::get_Num()//获取物品条码{returnNum;};char*SMarket::get_WName()//获取物品名{returnWName;};char*SMarket::get_production()//获取物品条码{returnproduction;};char*SMarket::get_Date()//获取物品条码{returnDate;};floatSMarket::get_price()//获取物品条码{returnprice;};voidSMarket::changeNum(constint*newNum)//更改物品条码{strcpy(Num,newNum);};voidSMarket::changeWName(constchar*newWName)//更改物品名{strcpy(WName,newWName);};voidSMarket::changeproduction(constint*newproduction)//更改生产单位{strcpy(production,newproduction);};voidSMarket::changeDate(constchar*newDate)//更改购入时间{strcpy(Date,newDate);};intSMarket::cmpNum(constchar*Num)//比较查询词和物品条码,如果相等返回1{returnstrcmp(Num,Num);};3.2主程序设计3.2.1函数设计(1)修改物品信息功能函数修改功能的设计思路是:询问用户要修改物品的姓名:等待用户输入、并获取要修改物品的姓名:查询该物品在物品列表中是否存在若不存在,输出该物品不存在的提示信息若存在,则等待用户输入、并获取要修改物品的姓名,修改物品列表中该物品的相应信息项(2)删除物品信息功能函数删除功能的设计思路是:询问用户要删除物品的姓名:等待用户输入、并获取要删除物品的名称:查询该物品在物品列表中是否存在若不存在,输出该物品不存在的提示信息若存在,则修删除物品列表中该物品的相应信息项删除过程。(3)查找物品信息功能函数设计思路如下:询问查找的物品的名称;等待用户输入;若查找不存在,输出该物品不存在的提示信息;若存在,输出该物品的相关信息;(4)输出一名物品的信息。设计思路如下:询问要输出的物品的姓名;调用该对象的函数,获取物品信息;3.2.2主函数设计在主函数中创建了一个smarket类的对象数组,对物品资料的操作都将通过该类所创建对象的函数成员完成。在主函数中通过调用函数showsmarket()和showsmarket_title()和showAll()实现物品资料的显示功能。主程序调用流程图4调试分析、测试结果4.1.1分析1.设计的时候,会出现中英字符的错误,调试时,出现”0xa1”,空格导致的,重新书写,就可以消除错误。2.在简单地基础上,进行添加数据成员,进而添加相应功能的成员函数,实现设计预期的结果。3.编程就是一个不断完善的过程,先搭建框架、逐步扩充,由简到繁,最后完善。边编程,边调试,边扩充。4.1.2测试结果:执行1:(1)(2)(3)(4)5小结通过对图书馆管理系统的学习,自己进行了对物品信息管理系统的调查,程序的设计及实现。在设计之初,首先要构思分条列出要查看的信息(数据成员),比如物品姓名、工号和薪资等,根据要得到的信息,设计要实现的操作,即对这些信息的使用(成员函数)。准备好之后,根据C++的知识,进行数据的类型选择,根据定义好的类型,选择相应的类型的函数,进行操作。如输入、输出、查找、删除、修改等。在简单地程序之上,逐渐扩充,实现更多的功能。在调试的过程会遇到不少大大小小的问题,书写认真很重要,细心更重要,即便是检查错误,也要细心,经常见到的就是输入法导致的中英字符混用。编程时一个细心的过程,书写的规范,使得查看更方便。6附录//*****************************************************************//*good.h

类声明头文件

//*****************************************************************#include<iostream.h>#include<fstream.h>//进行文件操作需包含此头文件#include<iomanip.h>//进行输出格式化设置需包含此头文件#include"good.h"//用包含命令将类定义头文件包含进来#definemaxGoodNum1000//案例假设存储商品最大不超过1000件voidshowGood(Goodgood)//输出商品名{ cout<<setw(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;}voidshowGood_title()//(Goodgood)//输出商品名{ cout<<setw(15)<<"商品的编码"<<setw(15)<<"商品名"<<setw(15)<<"生产厂家"<<setw(15)<<"生产日期"<<setw(15)<<"单价"<<endl; //cout<<setw(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; //cout<<setiosflags(ios::left)<<setw(20)<<"商品名"<<setw(20)<<"生产厂家"<<endl; //cout<<setiosflags(ios::left)<<setw(20)<<good.get_name()<<setw(20)<<good.get_producer()<<endl;}voidshowAll(Good*good,intNum)//输出所有商品的商品名{showGood_title(); for(inti=0;i<Num;i++)showGood(*(good+i));cout<<"共有商品"<<Num<<"件"<<endl;}voidmain(){GoodgoodList[maxGoodNum];//生成Good类对象数组boolEnd=0;//程序终止信号charTemp[StrNum];//char数组Temp存储临时数据intgoodNum=0,lastNum=0,i=0,x=0,y=0;//goodNum商品数目,lastNum上次文件中的商品数目ifstreaminfile("Goodlist.txt");//定义文件指针infile指向GoodList.txtif(!infile)//打开失败{cerr<<"cannotopenGoodlist.txtforoutput\n";exit(-1);}while((infile>>Temp))//infile读入数据为空,则循环终止{infile>>y;goodList[i].changeCode(y);//更改编码goodList[i].changeName(Temp);//更改商品名 infile>>Temp;goodList[i].changeProducer(Temp);//更改生产厂家 infile>>Temp;goodList[i].changeDate(Temp);//更改生产日期 infile>>x;goodList[i].changePrice(x);//更改价格 i++;}goodNum=i;lastNum=i;cout<<"从GoodList.txt中读出已有商品如下:"<<endl;showAll(goodList,goodNum);//显示所有商品名while(End==0)//显示操作界面{cout<<"\n\n1、输入新商品\n2、查询旧商品\n3、显示所有商品\n4、修改商品生产厂家\n5、删除商品\n6、退出\n\n";cin>>i;if(i==1){ cout<<setw(20)<<"请输入新商品名称:";cin>>Temp;intbiName=0;for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp))biName=1;}if(!biName)//以前没有此商品则加入商品库{goodList[goodNum].changeName(Temp);cout<<setw(20)<<"请输入生产厂家:";cin>>Temp;goodList[goodNum].changeProducer(Temp); cout<<setw(20)<<"请输入新商品编码:"; cin>>y;goodList[goodNum].changeCode(y); cout<<setw(20)<<"请输入新商品生产日期:"; cin>>Temp;goodList[goodNum].changeDate(Temp); cout<<setw(20)<<"请输入新商品单价:"; intx; cin>>x;goodList[goodNum].changePrice(x); goodNum++;}else//操作失败cout<<"重复商品名,操作失败"<<endl;}elseif(i==2)//查询操作{cout<<"请输入所查询商品目名称:"<<endl;cin>>Temp;for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){//cout<<"编号"<<i+1<<endl;//cout<<"生产厂家:"<<goodList[i].get_producer()<<endl; cout<<"查询结果如下:"<<endl; showGood_title(); showGood(goodList[i]); cout<<endl;break;}}if(i==goodNum){cout<<"未找到所需商品目."<<endl;}}elseif(i==6)//终止操作{End=1;}elseif(i==3){//显示所有商品目的操作cout<<"显示所有商品目如下:"<<endl; showAll(goodList,goodNum);} elseif(i==4) //修改商品信息 { cout<<"请输入所修改商品的名称:"<<endl; floatprice;cin>>Temp; for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){cout<<"请输入该商品新的价格:"; cin>>price; goodList[i].changePrice(price); cout<<endl<<"该商品修改后的信息如下:"<<endl; showGood_title();showGood(goodList[i]);break;}}if(i==goodNum){cout<<"未找到所需商品目."<<endl;} } elseif(i==5)//删除商品 { cout<<"请输入所删除商品的名称:"<<endl; cin>>Temp; for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){ cout<<"删除此商品前所有商品目如下:"<<endl; showAll(goodList,goodNum); for(intj=i;j<(goodNum-1);j++) { goodList[j].changeName(goodList[j+1].get_name()); goodList[j].changeProducer(goodList[j+1].get_producer()); }goodNum--; cout<<"删除此商品后所有商品目如下:"<<endl; showAll(goodList,goodNum);break;}}if(i==goodNum){cout<<"未找到所需商品目."<<endl;} }} infile.close();//输入文件关闭 ofstreamoutfile("Goodlist.txt",ios::out);//输出文件打开,添加件尾 if(!outfile)//打开失败 { cerr<<"cannotopenGoodlist.txtforoutput\n"; exit(-1); } for(i=0;i<goodNum;i++)//新商品输出 { //outfile<<goodList[i].get_code()<<endl<<goodList[i].get_name()<<endl<<goodList[i].get_producer()<<endl<<goodList[i].get_date()<<endl<<goodList[i].get_price()<<endl<<endl; outfile<<setw(15)<<goodList[i].get_code()<<setw(15)<<goodList[i].get_name()<<setw(15)<<goodList[i].get_producer()<<setw(15)<<goodList[i].get_date()<<setw(15)<<goodList[i].get_price()<<endl<<endl; } /*ofstreamoutfile("Goodlist.txt",ios::app);//输出文件打开,添加件尾 if(!outfile)//打开失败 { cerr<<"cannotopenGoodlist.txtforoutput\n"; exit(-1); } for(i=lastNum;i<goodNum;i++)//新商品输出 { outfile<<goodList[i].get_name()<<endl<<goodList[i].get_producer()<<endl<<endl; }*/ outfile.close();//输出文件关闭}//**********************************************************//*main.cpp

系统主文件

//**********************************************************#include<iostream.h>#include<fstream.h>//进行文件操作需包含此头文件#include<iomanip.h>//进行输出格式化设置需包含此头文件#include"good.h"//用包含命令将类定义头文件包含进来#definemaxGoodNum1000//案例假设存储商品最大不超过1000件voidshowGood(Goodgood)//输出商品名{ cout<<setw(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;}voidshowGood_title()//(Goodgood)//输出商品名{ cout<<setw(15)<<"商品的编码"<<setw(15)<<"商品名"<<setw(15)<<"生产厂家"<<setw(15)<<"生产日期"<<setw(15)<<"单价"<<endl; //cout<<setw(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; //cout<<setiosflags(ios::left)<<setw(20)<<"商品名"<<setw(20)<<"生产厂家"<<endl; //cout<<setiosflags(ios::left)<<setw(20)<<good.get_name()<<setw(20)<<good.get_producer()<<endl;}voidshowAll(Good*good,intNum)//输出所有商品的商品名{showGood_title(); for(inti=0;i<Num;i++)showGood(*(good+i));cout<<"共有商品"<<Num<<"件"<<endl;}voidmain(){GoodgoodList[maxGoodNum];//生成Good类对象数组boolEnd=0;//程序终止信号charTemp[StrNum];//char数组Temp存储临时数据intgoodNum=0,lastNum=0,i=0,x=0,y=0;//goodNum商品数目,lastNum上次文件中的商品数目ifstreaminfile("Goodlist.txt");//定义文件指针infile指向GoodList.txtif(!infile)//打开失败{cerr<<"cannotopenGoodlist.txtforoutput\n";exit(-1);}while((infile>>Temp))//infile读入数据为空,则循环终止{infile>>y;goodList[i].changeCode(y);//更改编码goodList[i].changeName(Temp);//更改商品名 infile>>Temp;goodList[i].changeProducer(Temp);//更改生产厂家 infile>>Temp;goodList[i].changeDate(Temp);//更改生产日期 infile>>x;goodList[i].changePrice(x);//更改价格 i++;}goodNum=i;lastNum=i;cout<<"从GoodList.txt中读出已有商品如下:"<<endl;showAll(goodList,goodNum);//显示所有商品名while(End==0)//显示操作界面{cout<<"\n\n1、输入新商品\n2、查询旧商品\n3、显示所有商品\n4、修改商品生产厂家\n5、删除商品\n6、退出\n\n";cin>>i;if(i==1){ cout<<setw(20)<<"请输入新商品名称:";cin>>Temp;intbiName=0;for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp))biName=1;}if(!biName)//以前没有此商品则加入商品库{goodList[goodNum].changeName(Temp);cout<<setw(20)<<"请输入生产厂家:";cin>>Temp;goodList[goodNum].changeProducer(Temp); cout<<setw(20)<<"请输入新商品编码:"; cin>>y;goodList[goodNum].changeCode(y); cout<<setw(20)<<"请输入新商品生产日期:"; cin>>Temp;goodList[goodNum].changeDate(Temp); cout<<setw(20)<<"请输入新商品单价:"; intx; cin>>x;goodList[goodNum].changePrice(x); goodNum++;}else//操作失败cout<<"重复商品名,操作失败"<<endl;}elseif(i==2)//查询操作{cout<<"请输入所查询商品目名称:"<<endl;cin>>Temp;for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){//cout<<"编号"<<i+1<<endl;//cout<<"生产厂家:"<<goodList[i].get_producer()<<endl; cout<<"查询结果如下:"<<endl; showGood_title(); showGood(goodList[i]); cout<<endl;break;}}if(i==goodNum){cout<<"未找到所需商品目."<<endl;}}elseif(i==6)//终止操作{End=1;}elseif(i==3){//显示所有商品目的操作cout<<"显示所有商品目如下:"<<endl; showAll(goodList,goodNum);} elseif(i==4) //修改商品信息 { cout<<"请输入所修改商品的名称:"<<endl; floatprice;cin>>Temp; for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){cout<<"请输入该商品新的价格:"; cin>>price; goodList[i].changePrice(price); cout<<endl<<"该商品修改后的信息如下:"<<endl; showGood_title();showGood(goodList[i]);break;}}if(i==goodNum){cout<<"未找到所需商品目."<<endl;} } elseif(i==5)//删除商品 { cout<<"请输入所删除商品的名称:"<<endl; cin>>Temp; for(i=0;i<goodNum;i++){

温馨提示

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

评论

0/150

提交评论