




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、include<iostream /數(shù)據(jù)流輸入輸出include<string>/字符串操作includefstream/文件輸入輸出includetime.h/時間庫函數(shù)include<iomanip>/輸入輸出格式符using namespace std;/命名空間int year,month;/*888888888888888888888888888888888888888888888888888888888888888888888888888/class Order_inforstring name; /用戶姓名string sex; /用戶性別strin
2、g addr; /用戶地址string tel; /用戶號碼string mage; /雜志單位float price; /雜志單價int num; /訂閱數(shù)目int y,m; /訂閱限期int g;public:Order_infor* head; /信息類頭指針Order_infor* next; /信息類next域 void input(); /錄入函數(shù) void input(ifstream infile); /讀取函數(shù) void output(); /輸出函數(shù) void output(ofstream & outfile); /寫入函數(shù)float getprice();int
3、 getnum();int getyear(); /獲取期限時間函數(shù)int getmonth();string getname();void order(); /錄入信息void mend(); /修改信息void del_select();void del1(); /刪除信息void del2();void found();Order_inforfind(string n); bool find(int y,int m);void statistic();void show(); /顯示信息bool comp(int y,int m); /判斷當前訂閱狀況函數(shù) void save(); /保
4、存信息 void begin(); /初始信息 void clear(); /清除函數(shù) void setg(int k) g=k; /設(shè)置系統(tǒng)修改標志int getg() return g; /返回系統(tǒng)修改標志d;/*888888888888888888888888888888888888888888888888888888888888888888888888888/float Order_infor:getprice()return price;int Order_infor:getnum()return num;int Order_infor:getyear()return y;int O
5、rder_infor::getmonth()return m;string Order_infor::getname()return name;/888888888888888888888888888888888888888888888888888888888888888888888888/class Menu public:void about(); /關(guān)于 void mainmenu(); /主菜單函數(shù)bool land(); /管理員登陸;/888888888888888888888888888888888888888888888888888888888888888888888888*/
6、void Menu:about()cout<”<endl <<"t1."endl <<”t2。"<endl ”t3."<endl <”t4."<endl; cout<""<<endl;/*88888888888888888888888888888888888888888888888888888888888888888888888888*/bool Menu:land()Menu b; /定義菜單類對象 b。about(); /輸出系統(tǒng)說明strin
7、g s; int i=0; /計數(shù)變量cout<<"請輸入管理員密碼:”<<endl; /輸出提示信息while(1)cin>s;if(s="123456”) /輸入正確return true; /返回正確else /輸錯了 cout<"輸入密碼錯誤,請重新輸入:”; /輸出提示信息 i+; /計數(shù)變量自加 if(i=3) /連輸三次錯誤 break; /跳出循環(huán)cout<"輸入錯誤三次!系統(tǒng)自動退出!”<endl; /提示將退出登錄system(”pause"); /顯示暫停return fal
8、se; /返回錯誤/*888888888888888888888888888888888888888888888888888888888888888888888888888/void Menu::mainmenu() system("cls”);string s; cout<"*”endl; cout<<" 歡迎使用雜志訂閱管理軟件 "endl; cout<<"*"<<endl; cout<<"tt0。退出程序 4.瀏覽訂閱用戶"<endl;cout<
9、;”tt1.增加新訂戶 5.查找用戶信息”<<endl;cout<<"tt2。刪除用戶 6.修改用戶信息"<endl;cout<"tt3.統(tǒng)計本期雜志訂戶數(shù) 7.保存信息 "endl;cout"請輸入功能按鈕:"cin>s;switch(s0)case1':d。order();break;case'2:d.del_select();break;case3':d.statistic();break;case4':d。show();break;case5:d。fou
10、nd();break;case6:d.mend();break;case'7':d。save();break;default:return;/*888888888888888888888888888888888888888888888888888888888888888888888888888/void Order_infor::input()cout<”請輸入姓名: ”; while(1)cin>name; /輸入姓名if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout ”n姓名輸入錯誤,請重新輸入:";cin.clear(); /清除錯誤
11、狀態(tài)cin.get(); /重輸else break; /輸入正確則跳出循環(huán)cout<<"請輸入性別: ”; while(1)cin>sex; /輸入性別if (cin。fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout "n性別輸入錯誤,請重新輸入:"cin.clear(); /清除錯誤狀態(tài)cin。get(); /重輸else break; /輸入正確則跳出循環(huán)cout<”請輸入地址: ”; /設(shè)置地址while(1)cin>addr; /輸入地址if (cin.fail()) /判斷輸入的數(shù)據(jù)類型是否有錯cout <<
12、”n地址輸入錯誤,請重新輸入:”;cin.clear(); /清除錯誤狀態(tài)cin。get(); /重輸else break; /輸入正確則跳出循環(huán)cout<<”請輸入電話號碼: "; /設(shè)置電話號碼while(1)cintel; /輸入電話號碼if (cin。fail()) /判斷輸入的數(shù)據(jù)類型是否有錯cout <<"n號碼輸入錯誤,請重新輸入:"cin。clear(); /清除錯誤狀態(tài)cin。get(); /重輸else break; /輸入正確則跳出循環(huán)cout<<”請輸入雜志單位: ”; /設(shè)置雜志單位while(1)ci
13、n>mage; /輸入雜志單位if (cin。fail()) /判斷輸入的數(shù)據(jù)類型是否有錯cout <<”n雜志單位輸入錯誤,請重新輸入:"cin.clear(); /清除錯誤狀態(tài)cin。get(); /重輸else break; /輸入正確則跳出循環(huán)cout<"請輸入單價: " /設(shè)置單價while(1)cin>>price; /輸入單價if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout "n單價輸入錯誤,請重新輸入:”;cin.clear(); /清除錯誤狀態(tài)cin.get(); /重輸else b
14、reak; /輸入正確則跳出循環(huán)cout<”請輸入訂閱數(shù): ”; /設(shè)置訂閱數(shù)while(1)cinnum; /輸入訂閱數(shù)if (cin。fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout <”n訂閱數(shù)輸入錯誤,請重新輸入:”;cin。clear(); /清除錯誤狀態(tài)cin.get(); /重輸else break; /輸入正確則跳出循環(huán)cout<”請輸入訂閱限期(年 月): ”; /設(shè)置期限while(1)ciny>m; /輸入期限if (cin.fail() /判斷輸入的數(shù)據(jù)類型是否有錯cout <”n訂閱限期輸入錯誤,請重新輸入:";cin.cle
15、ar(); /清除錯誤狀態(tài)cin。get(); /重輸else break; /輸入正確則跳出循環(huán)/888888888888888888888888888888888888888888888888888888888888888888888888888*/void Order_infor:input(ifstream & infile) /帶參錄入函數(shù)向鏈表輸入 infile>name>sexaddr>tel>>magepricenum>ym; /輸入至鏈表/*8888888888888888888888888888888888888888888888
16、88888888888888888888888888888*/void Order_infor:output() /信息輸出函數(shù)向顯示屏輸出cout<setw(8)<namesetw(4)sex<setw(10)<<addr<<setw(13)<<tel<<setw(10)mage<setw(6)<pricesetw(4)<<num<setw(2)<<y<<”/"<m<<endl; /*8888888888888888888888888888888
17、88888888888888888888888888888888888888888888/void Order_infor:output(ofstream & outfile) /向文件輸出信息 outfilesetw(10)<name /setw()設(shè)置輸出寬度 setw(10)sex setw(10)<addr <setw(12)tel <setw(10)mage <setw(10)<price <<setw(10)<num <setw(10)<<y <setw(10)<m <<endl
18、;/888888888888888888888888888888888888888888888888888888888888888888888888888*/bool Order_infor:comp(int y,int m) /判斷是否超期if(yeary|(year=y&monthm))/先比較年,若一樣則比較月return true; /比較當前時間與限期,獲得訂閱的當前狀況,返回表示訂閱超期elsereturn false; /返回表示訂閱未超期/888888888888888888888888888888888888888888888888888888888888888888
19、888888888*/void Order_infor:order() /向鏈表尾部錄入訂閱信息 system("cls”); /清屏 Order_infor *p1,p2=NULL; /定義對象指針p1=head; /將頭指針賦給p1int n=1; /定義循環(huán)控制變量while(p1next) /當頭結(jié)點后有數(shù)據(jù)時執(zhí)行循環(huán),頭結(jié)點為空也不會執(zhí)行循環(huán)p1=p1>next; /使p能夠指向未存放數(shù)據(jù)的內(nèi)存,錄入信息會存放在所有信息之后while(n) /此循環(huán)執(zhí)行在鏈表尾部插入錄入的信息 /通過循環(huán)不斷開辟新空間錄入新的數(shù)據(jù)p2=new Order_infor; /開辟存儲空間
20、,返回地址給p2p2input(); /調(diào)用錄入函數(shù),為p2所指結(jié)點數(shù)據(jù)賦值p1->next=p2; /p1的next指向新開辟空間,連接了p1和p2p2next=NULL; /p2的next變?yōu)榭罩羔榩1=p1-next; /p1指向新開辟的空間,p1緊隨p2之后 Order_infor::setg(1); /標記為修改cout<"ttt按1繼續(xù),按0返回: "; /控制變量控制循環(huán)cin>n; /輸入n/*88888888888888888888888888888888888888888888888888888888888888888888888888
21、8/void Order_infor:show()system(”cls"); /清屏cout。setf(ios::left);cout<”訂閱基本信息如下:”<endl /顯示所有訂閱信息<setw(8)<"姓名"setw(8)<”性別”setw(8)”地址"<setw(13)”電話"<setw(8)"單位"<setw(8)<”單價"<<setw(8)<<”定閱數(shù)"<setw(8)”期限"endl;Order_
22、infor p; /定義訂閱信息類對象指針p=head; /指向鏈表頭部,啟用鏈表信息while(p->next) /只要下一結(jié)點不為空則執(zhí)行循環(huán) /此循環(huán)功能在于輸出所有訂閱信息p=p-next; /P指向下一節(jié)點 coutsetw(8)<<p-name<setw(8)<<p->sex<setw(8)p->addrsetw(13)<p->tel<setw(8)pmage<setw(8)<p->price<setw(8)<p-num<<setw(4)p>y<”/”<
23、;p->m<endl; /調(diào)用next所指對象的輸出信息函數(shù),頭結(jié)點未存放數(shù)據(jù)只是初始化了next/888888888888888888888888888888888888888888888888888888888888888888888888888/void Order_infor::found() system(”cls”); /清屏string n; /定義輔助變量cout"輸入姓名: " /輸出提示信息cin>>n; /輸入選擇if(!find(n) /調(diào)用find函數(shù)查找cout<"tt找不到你要查找的內(nèi)容!"&l
24、t;endl; /找不到的話輸出相應(yīng)提示信息return; /函數(shù)調(diào)用結(jié)束/*888888888888888888888888888888888888888888888888888888888888888888888888888*/Order_infor Order_infor:find(string n)system("cls"); /清屏Order_infor p; /定義輔助指針p=head; /指向鏈表頭結(jié)點while(p->next) /當鏈表未至尾部時執(zhí)行循環(huán)if( (pnext)-getname()=n ) /班次匹配上則輸出所查到的訂閱信息cout。s
25、etf(ios::left);cout”訂閱基本信息如下:"<endl /輸出信息 "姓名 性別 地址 電話 單位 單價 定閱數(shù) 期限”<endl; (p>next)->output(); /調(diào)用輸出函數(shù)return p; /表示找到,返回的是目標結(jié)點的前一結(jié)點p=p->next; /指向下一節(jié)點return NULL;/*888888888888888888888888888888888888888888888888888888888888888888888888888*/void Order_infor::mend() /修改函數(shù) syst
26、em(”cls”); /清屏Order_infor *p; /定義信息類指針變量string n;cout<”ttt輸入姓名方便查找: "; /輸出提示信息cin>n;p=find(n); /調(diào)用查找函數(shù)if(!p) /判斷是否找到cout<”tt找不到你要修改的內(nèi)容!請利用程序查詢功能確認!”<<endl; /輸出提示信息return; /函數(shù)調(diào)用結(jié)束(pnext)>input(); /調(diào)用錄入函數(shù)對目標結(jié)點數(shù)據(jù)再錄入 Order_infor:setg(1);/8888888888888888888888888888888888888888888
27、88888888888888888888888888888888/void Order_infor::del_select()cout<"請選擇刪除選項:"endl;cout"1。刪除過期用戶;2。刪除指定用戶"<<endl;int c;cin>c;switch(c)case 1:d。del2();break;case 2:d。del1();break;default:cout"輸入錯誤!”;/*888888888888888888888888888888888888888888888888888888888888888
28、888888888888*/void Order_infor:del1() /刪除車輛信息函數(shù) system(”cls”); /清屏Order_infor *p1,p2,p3; /定義兩對象指針用于鏈表操作string n; cout<<”ttt輸入姓名: "; /輸出提示信息cinn;p1=find(n); /調(diào)用查找函數(shù)if(!p1) /判斷函數(shù)返回值是否為NULL cout<”tt找不到你要刪除的內(nèi)容!"<endl; /輸出沒找到的提示return; /函數(shù)調(diào)用結(jié)束cout"nttt確定刪除(y/n)?"; /顯示將要刪除數(shù)
29、據(jù)信息供用戶核對char a;cin>a; /輸入指示if(a=ya='Y') /因為頭結(jié)點為空僅有next域所以只要考慮被刪結(jié)點是中間結(jié)點和尾結(jié)點情況if(p1->next)->next=NULL) /目標結(jié)點為尾結(jié)點時 p2=p1->next; /p2指向目標結(jié)點p1-next=NULL; /p1連接目標結(jié)點的next域重新賦值為空指針delete p2; /釋放目標空間else /目標結(jié)點為中間節(jié)點時p2=p1-next; /p2指向目標結(jié)點p3=(p1->next)->next; /p3指向目標結(jié)點下一結(jié)點 p1-next=p3; /
30、連接目標結(jié)點前后結(jié)點delete p2; /釋放目標結(jié)點Order_infor::setg(1); /標記為修改/*888888888888888888888888888888888888888888888888888888888888888888888888888/void Order_infor:del2() system(”cls”); /清屏Order_infor p1,p2,p3; /定義兩對象指針用于鏈表操作int n;char c; p1=head;while(p1-next)n=p(p1-next)>y,(p1->next)-m);if(n) system(&quo
31、t;cls”);cout<"訂閱基本信息如下:"<<endl /輸出信息 << "姓名 性別 地址 電話 單位 單價 定閱數(shù) 期限"<<endl;(p1>next)>output(); cout”是否刪除(y/n)”; cinc;if(c='y'|c=Y) /因為頭結(jié)點為空僅有next域所以只要考慮被刪結(jié)點是中間結(jié)點和尾結(jié)點情況 if((p1>next)>next=NULL) /目標結(jié)點為尾結(jié)點時 p2=p1>next; /p2指向目標結(jié)點 p1>next=NU
32、LL; /p1連接目標結(jié)點的next域重新賦值為空指針 delete p2; /釋放目標空間return; else /目標結(jié)點為中間節(jié)點時 p2=p1-next; /p2指向目標結(jié)點 p3=(p1->next)-next; /p3指向目標結(jié)點下一結(jié)點 p1next=p3; /連接目標結(jié)點前后結(jié)點 delete p2; /釋放目標結(jié)點 Order_infor:setg(1); /標記為修改 p1=p1>next;/888888888888888888888888888888888888888888888888888888888888888888888888888/void Order_infor:statistic()Order_infor p;int n=0;int sum=0; p=head;cout<<"本期訂閱信息”<endl;cout<”用戶名 訂閱數(shù) 單價 全額"<<endl;while(p->next)cout<<(p-nex
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位工會知識課件
- 河南17年數(shù)學試卷
- 中國智慧商城建設(shè)市場競爭格局及投資戰(zhàn)略規(guī)劃報告
- 中國硅能蓄電池行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃建議報告
- 健康科普知識培訓課件
- 中國建材機械行業(yè)發(fā)展趨勢及投資前景預(yù)測報告
- 年產(chǎn)400臺套礦山機械設(shè)備項目可行性研究報告模版
- 2025年中國超聲波流量計行業(yè)市場調(diào)查研究及投資潛力預(yù)測報告
- 營運車輛gps管理辦法
- 蔡甸區(qū)個人債務(wù)管理辦法
- 2025-2030中國高流量呼吸濕化治療儀行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 代謝性疾病的風險評估與健康管理
- 2025年氫溴酸行業(yè)市場需求分析報告及未來五至十年行業(yè)預(yù)測報告
- 藥學技師考試題及答案
- 2025春季學期國開電大??啤豆芾韺W基礎(chǔ)》期末紙質(zhì)考試總題庫
- 2025年浙江寧波華生國際家居廣場有限公司招聘筆試參考題庫含答案解析
- 自由搏擊培訓方案
- 防火門安裝工程操作管理規(guī)程
- (2025)全國交管12123學法減分考試題庫附答案
- 虛擬現(xiàn)實行業(yè)標準-深度研究
- 旋挖鉆機勞務(wù)合同范本
評論
0/150
提交評論