超市物流管理系統(tǒng)_第1頁
超市物流管理系統(tǒng)_第2頁
超市物流管理系統(tǒng)_第3頁
超市物流管理系統(tǒng)_第4頁
超市物流管理系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一管理資源網(wǎng)免費(fèi)管理資料下載基地設(shè)計(jì)題目(問題)描述和要求某超市需要對物品信息進(jìn)行保存,包含物品姓名、工號、工齡、工作車間以及工資的各項(xiàng)信息。要求:物品號生產(chǎn)單位物品名稱購入時(shí)間出售價(jià)格2系統(tǒng)分析根據(jù)問題描述和要求,系統(tǒng)要求能夠編寫程序?qū)崿F(xiàn)輸入、輸入、查詢、增加、刪除等功能根據(jù)案例需求可以定義一個(gè)smarket類,smarket的基本信息有物品號、生產(chǎn)廠家、購入時(shí)間、物品名稱和出售價(jià)格。對物品的管理包含有輸入、查詢、增加、刪除等功能,這些功能需要調(diào)用smarket類的成員函數(shù)實(shí)現(xiàn)。由于需要對物品資料進(jìn)行讀入和存儲,在程序中需要文件的輸入輸出操作。先從相應(yīng)的文件中讀入物品資料,用戶可以對資料處理后,在退出系統(tǒng)的時(shí)候?qū)⒁研薷馁Y料重新存儲到原文件中去。3設(shè)計(jì)3.1類的設(shè)計(jì)smarket0類的設(shè)計(jì)3.1.1數(shù)據(jù)成員intNum[StrNum];//物品條碼charWName[StrNum];//物品名姓名charproduction[StrNum];//生產(chǎn)單位charDate[StrNum];//購入時(shí)間floatprice;//出售價(jià)格3.1.2函數(shù)成員SMarket();//構(gòu)造函數(shù)SMarket(constint*Num,constchar*WName,constchar*production,constchar*Date,constfloat*price);//構(gòu)造函數(shù)char*get_Num();//獲取物品條碼char*get_WName();//獲取物品名char*get_production();char*get_Date();floatget_price();voidchangeNum(constint*newNum);//更改物品條碼voidchangeWName(constchar*newWName);//更改物品名voidchangeproduction(constchar*newproduction);//更改生產(chǎn)單位voidchangeDate(constchar*newDate);//更改生產(chǎn)日期voidchangeprice(constfloat*newprice);//更改價(jià)格intcmpNum(constint*Num);//比較查詢詞和物品條碼,如果相等返回13.1.3主要函數(shù)成員的實(shí)現(xiàn)思路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)//更改生產(chǎn)單位{strcpy(production,newproduction);};voidSMarket::changeDate(constchar*newDate)//更改購入時(shí)間{strcpy(Date,newDate);};intSMarket::cmpNum(constchar*Num)//比較查詢詞和物品條碼,如果相等返回1{returnstrcmp(Num,Num);};3.2主程序設(shè)計(jì)3.2.1函數(shù)設(shè)計(jì)(1)修改物品信息功能函數(shù)修改功能的設(shè)計(jì)思路是:詢問用戶要修改物品的姓名:等待用戶輸入、并獲取要修改物品的姓名:查詢該物品在物品列表中是否存在若不存在,輸出該物品不存在的提示信息若存在,則等待用戶輸入、并獲取要修改物品的姓名,修改物品列表中該物品的相應(yīng)信息項(xiàng)(2)刪除物品信息功能函數(shù)刪除功能的設(shè)計(jì)思路是:詢問用戶要刪除物品的姓名:等待用戶輸入、并獲取要刪除物品的名稱:查詢該物品在物品列表中是否存在若不存在,輸出該物品不存在的提示信息若存在,則修刪除物品列表中該物品的相應(yīng)信息項(xiàng)刪除過程。(3)查找物品信息功能函數(shù)設(shè)計(jì)思路如下:詢問查找的物品的名稱;等待用戶輸入;若查找不存在,輸出該物品不存在的提示信息;若存在,輸出該物品的相關(guān)信息;(4)輸出一名物品的信息。設(shè)計(jì)思路如下:詢問要輸出的物品的姓名;調(diào)用該對象的函數(shù),獲取物品信息;3.2.2主函數(shù)設(shè)計(jì)在主函數(shù)中創(chuàng)建了一個(gè)smarket類的對象數(shù)組,對物品資料的操作都將通過該類所創(chuàng)建對象的函數(shù)成員完成。在主函數(shù)中通過調(diào)用函數(shù)showsmarket()和showsmarket_title()和showAll()實(shí)現(xiàn)物品資料的顯示功能。主程序調(diào)用流程圖4調(diào)試分析、測試結(jié)果4.1.1分析1.設(shè)計(jì)的時(shí)候,會出現(xiàn)中英字符的錯誤,調(diào)試時(shí),出現(xiàn)”0xa1”,空格導(dǎo)致的,重新書寫,就可以消除錯誤。2.在簡單地基礎(chǔ)上,進(jìn)行添加數(shù)據(jù)成員,進(jìn)而添加相應(yīng)功能的成員函數(shù),實(shí)現(xiàn)設(shè)計(jì)預(yù)期的結(jié)果。3.編程就是一個(gè)不斷完善的過程,先搭建框架、逐步擴(kuò)充,由簡到繁,最后完善。邊編程,邊調(diào)試,邊擴(kuò)充。4.1.2測試結(jié)果:執(zhí)行1:(1)(2)(3)(4)5小結(jié)通過對圖書館管理系統(tǒng)的學(xué)習(xí),自己進(jìn)行了對物品信息管理系統(tǒng)的調(diào)查,程序的設(shè)計(jì)及實(shí)現(xiàn)。在設(shè)計(jì)之初,首先要構(gòu)思分條列出要查看的信息(數(shù)據(jù)成員),比如物品姓名、工號和薪資等,根據(jù)要得到的信息,設(shè)計(jì)要實(shí)現(xiàn)的操作,即對這些信息的使用(成員函數(shù))。準(zhǔn)備好之后,根據(jù)C++的知識,進(jìn)行數(shù)據(jù)的類型選擇,根據(jù)定義好的類型,選擇相應(yīng)的類型的函數(shù),進(jìn)行操作。如輸入、輸出、查找、刪除、修改等。在簡單地程序之上,逐漸擴(kuò)充,實(shí)現(xiàn)更多的功能。在調(diào)試的過程會遇到不少大大小小的問題,書寫認(rèn)真很重要,細(xì)心更重要,即便是檢查錯誤,也要細(xì)心,經(jīng)常見到的就是輸入法導(dǎo)致的中英字符混用。編程時(shí)一個(gè)細(xì)心的過程,書寫的規(guī)范,使得查看更方便。6附錄//*****************************************************************//*good.h

類聲明頭文件

//*****************************************************************#include<iostream.h>#include<fstream.h>//進(jìn)行文件操作需包含此頭文件#include<iomanip.h>//進(jìn)行輸出格式化設(shè)置需包含此頭文件#include"good.h"http://用包含命令將類定義頭文件包含進(jìn)來#definemaxGoodNum1000//案例假設(shè)存儲商品最大不超過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)<<"生產(chǎn)廠家"<<setw(15)<<"生產(chǎn)日期"<<setw(15)<<"單價(jià)"<<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)<<"生產(chǎn)廠家"<<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類對象數(shù)組boolEnd=0;//程序終止信號charTemp[StrNum];//char數(shù)組Temp存儲臨時(shí)數(shù)據(jù)intgoodNum=0,lastNum=0,i=0,x=0,y=0;//goodNum商品數(shù)目,lastNum上次文件中的商品數(shù)目ifstreaminfile("Goodlist.txt");//定義文件指針infile指向GoodList.txtif(!infile)//打開失敗{cerr<<"cannotopenGoodlist.txtforoutput\n";exit(-1);}while((infile>>Temp))//infile讀入數(shù)據(jù)為空,則循環(huán)終止{infile>>y;goodList[i].changeCode(y);//更改編碼goodList[i].changeName(Temp);//更改商品名 infile>>Temp;goodList[i].changeProducer(Temp);//更改生產(chǎn)廠家 infile>>Temp;goodList[i].changeDate(Temp);//更改生產(chǎn)日期 infile>>x;goodList[i].changePrice(x);//更改價(jià)格 i++;}goodNum=i;lastNum=i;cout<<"從GoodList.txt中讀出已有商品如下:"<<endl;showAll(goodList,goodNum);//顯示所有商品名while(End==0)//顯示操作界面{cout<<"\n\n1、輸入新商品\n2、查詢舊商品\n3、顯示所有商品\n4、修改商品生產(chǎn)廠家\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)<<"請輸入生產(chǎn)廠家:";cin>>Temp;goodList[goodNum].changeProducer(Temp); cout<<setw(20)<<"請輸入新商品編碼:"; cin>>y;goodList[goodNum].changeCode(y); cout<<setw(20)<<"請輸入新商品生產(chǎn)日期:"; cin>>Temp;goodList[goodNum].changeDate(Temp); cout<<setw(20)<<"請輸入新商品單價(jià):"; intx; cin>>x;goodList[goodNum].changePrice(x); goodNum++;}else//操作失敗cout<<"重復(fù)商品名,操作失敗"<<endl;}elseif(i==2)//查詢操作{cout<<"請輸入所查詢商品目名稱:"<<endl;cin>>Temp;for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){//cout<<"編號"<<i+1<<endl;//cout<<"生產(chǎn)廠家:"<<goodList[i].get_producer()<<endl; cout<<"查詢結(jié)果如下:"<<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<<"請輸入該商品新的價(jià)格:"; 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();//輸入文件關(guān)閉 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();//輸出文件關(guān)閉}//**********************************************************//*main.cpp

系統(tǒng)主文件

//**********************************************************#include<iostream.h>#include<fstream.h>//進(jìn)行文件操作需包含此頭文件#include<iomanip.h>//進(jìn)行輸出格式化設(shè)置需包含此頭文件#include"good.h"http://用包含命令將類定義頭文件包含進(jìn)來#definemaxGoodNum1000//案例假設(shè)存儲商品最大不超過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)<<"生產(chǎn)廠家"<<setw(15)<<"生產(chǎn)日期"<<setw(15)<<"單價(jià)"<<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)<<"生產(chǎn)廠家"<<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類對象數(shù)組boolEnd=0;//程序終止信號charTemp[StrNum];//char數(shù)組Temp存儲臨時(shí)數(shù)據(jù)intgoodNum=0,lastNum=0,i=0,x=0,y=0;//goodNum商品數(shù)目,lastNum上次文件中的商品數(shù)目ifstreaminfile("Goodlist.txt");//定義文件指針infile指向GoodList.txtif(!infile)//打開失敗{cerr<<"cannotopenGoodlist.txtforoutput\n";exit(-1);}while((infile>>Temp))//infile讀入數(shù)據(jù)為空,則循環(huán)終止{infile>>y;goodList[i].changeCode(y);//更改編碼goodList[i].changeName(Temp);//更改商品名 infile>>Temp;goodList[i].changeProducer(Temp);//更改生產(chǎn)廠家 infile>>Temp;goodList[i].changeDate(Temp);//更改生產(chǎn)日期 infile>>x;goodList[i].changePrice(x);//更改價(jià)格 i++;}goodNum=i;lastNum=i;cout<<"從GoodList.txt中讀出已有商品如下:"<<endl;showAll(goodList,goodNum);//顯示所有商品名while(End==0)//顯示操作界面{cout<<"\n\n1、輸入新商品\n2、查詢舊商品\n3、顯示所有商品\n4、修改商品生產(chǎn)廠家\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)<<"請輸入生產(chǎn)廠家:";cin>>Temp;goodList[goodNum].changeProducer(Temp); cout<<setw(20)<<"請輸入新商品編碼:"; cin>>y;goodList[goodNum].changeCode(y); cout<<setw(20)<<"請輸入新商品生產(chǎn)日期:"; cin>>Temp;goodList[goodNum].changeDate(Temp); cout<<setw(20)<<"請輸入新商品單價(jià):"; intx; cin>>x;goodList[goodNum].changePrice(x); goodNum++;}else//操作失敗cout<<"重復(fù)商品名,操作失敗"<<endl;}elseif(i==2)//查詢操作{cout<<"請輸入所查詢商品目名稱:"<<endl;cin>>Temp;for(i=0;i<goodNum;i++){if(!goodList[i].cmpName(Temp)){//cout<<"編號"<<i+1<<endl;//cout<<"生產(chǎn)廠家:"<<goodList[i].get_producer()<<endl; cout<<"查詢結(jié)果如下:"<<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<<"請輸入該商品新的價(jià)格:"; 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論