版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實驗報告課程名稱程序設(shè)計實踐(C++)實驗題目高校水電費(fèi)管理系統(tǒng)實驗儀器計算機(jī)系別計算機(jī)學(xué)院專業(yè)計算機(jī)科學(xué)與技術(shù)班級/學(xué)號學(xué)生姓名實驗日期2015-6-15成績指導(dǎo)教師共59頁第58頁實驗題目高校水電費(fèi)管理系統(tǒng)一
、實驗?zāi)康模?0分)面向?qū)ο蟪绦蛟O(shè)計實踐課程設(shè)計是該課程集中實踐性環(huán)節(jié)之一,是學(xué)習(xí)完《面向?qū)ο蟪绦蛟O(shè)計》課程后進(jìn)行的一次全面的綜合練習(xí)和實踐。要求學(xué)生能夠熟練掌握C++語言的基本知識和技能;基本掌握面向?qū)ο蟪绦蛟O(shè)計的思想和方法;能夠利用所學(xué)的基礎(chǔ)知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題,從而提高動手編程解決實際問題的能力,達(dá)到課程學(xué)習(xí)的目的和要求。
需求分析(20分)2.1 環(huán)境分析隨著科學(xué)技術(shù)的發(fā)展,不斷提高,計算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻的認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。而面對現(xiàn)今社會的發(fā)展,水電費(fèi)管理系統(tǒng)是每一個高校管理機(jī)構(gòu)對學(xué)校資源進(jìn)行有效管理的不可或缺的一個管理信息系統(tǒng),它的內(nèi)容對于學(xué)校資源管理機(jī)構(gòu)的管理者來說是至關(guān)重要的,該系統(tǒng)應(yīng)該能夠為資源管理機(jī)構(gòu)的管理者提供有效的幫助,使之能夠?qū)τ行畔⑦M(jìn)行快捷的整理和查詢,大大的方便了管理機(jī)構(gòu)的管理者的合理有效管理。2.2 要求具體要求:(1)添加功能:程序能夠添加不同學(xué)生和教工的記錄,提供選擇界面供用戶選擇所要添加的類別,要求編號號要唯一,如果添加了重復(fù)編號的記錄時,則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)姓名、用水量、用電量信息對已添加的學(xué)生或教工記錄進(jìn)行查詢?nèi)绻凑业?,給出相應(yīng)的提示信息;如果找到,則顯示相應(yīng)的記錄信息。(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有學(xué)生或教工的記錄,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進(jìn)行修改,修改時注意編號的唯一性。(5)刪除功能:主要實現(xiàn)對已添加的學(xué)生或教工記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的記錄則提示“記錄為空”并返回操作。(6)統(tǒng)計功能:能統(tǒng)計學(xué)生和教工的用水用電量、所要交納的電費(fèi)和水費(fèi)信息等。(7)保存功能:可將當(dāng)前系統(tǒng)中各類記錄存入文件中,存入方式位“學(xué)生.txt”和“教師.txt”。(8)讀取功能:可將保存在文件中的信息讀入到當(dāng)前系統(tǒng)中,供用戶進(jìn)行使用。2.3運(yùn)行環(huán)境(1)WindowsXP/Windows7/Windows8等系統(tǒng)(2)VisualC++6.0編譯環(huán)境或VS2013編譯環(huán)境等2.4 開發(fā)工具C++語言三、實驗課時 24課時實驗步驟(20分)4.1系統(tǒng)功能分析:系統(tǒng)通過調(diào)用函數(shù)來實現(xiàn)教師、學(xué)生信息地錄入、修改、刪除、查詢以及數(shù)據(jù)保存文件等功能。input()函數(shù)用于錄入信息;output()函數(shù)用來輸出信息;statistics()函數(shù)用來統(tǒng)計信息;compile()函數(shù)用來修改教師和學(xué)生的信息;add()函數(shù)用來添加新增信息;reading()函數(shù)用來讀取已有的文件;show()函數(shù)用于顯示所有已有的記錄;deletes()函數(shù)用來刪除教師和學(xué)生的信息;search()函數(shù)用來查詢信息;saving()函數(shù)用于將輸入的信息存入文件內(nèi);主函數(shù)main()用于調(diào)用這些函數(shù)。4.2系統(tǒng)功能模塊劃分與設(shè)計:本系統(tǒng)定義了College類、Teacher類、Student類、Student_message類以及Teacher_message這五個類,定義了input()、output()、statistics()、compile()、add()、reading()、show()、deletes()、search()、saving()等函數(shù)來實現(xiàn)系統(tǒng)所需功能。4.3詳細(xì)設(shè)計1.基類College的設(shè)計:classCollege//聲明基類大學(xué)類{public://公有數(shù)據(jù)成員 College(stringnam="",strings="",inta=0,intnum=0,doublewat=0.0, doubleele=0.0,doublepowerf=0.0,doublewaterf=0.0): name(nam),sex(s),age(a),number(num),water(wat), electric(ele),powerfare(powerf),waterfee(waterf){};//定義構(gòu)造函數(shù) voidinput();//聲明輸入函數(shù) voidoutput();//聲明輸出函數(shù) stringgetname(){returnname;} //獲取姓名 intgetage(){returnage;} //獲取年齡 doublegetwater(){returnwater;} //獲取用水量 doublegeteletric(){returnelectric;} //獲取用電量 doublegetpowerfare(){returnpowerfare;} //獲取電費(fèi) doublegetwaterfee(){returnwaterfee;} //獲取水費(fèi) intgetnumber(){returnnumber;} //獲取編號public://公有類數(shù)據(jù)成員 stringname;//姓名 stringsex;//性別 intage;//年齡 intnumber;//編號 doublewater;//用水量 doubleelectric;//用電量 doublepowerfare;//電費(fèi) doublewaterfee;//水費(fèi)};派生類Student類的設(shè)計classStudent:publicCollege//公有繼承基類{public: //公有數(shù)據(jù)成員 Student(stringnam="",strings="",inta=0,intnum=0, doublewat=0.0,doubleele=0.0,doublepowerf=0.0,doublewaterf=0.0,stringgrad=""): College(nam,s,a,num,wat,ele,powerf,waterf),grade(grad){} //定義學(xué)生類構(gòu)造函數(shù) voidinput(); //聲明學(xué)生類輸入函數(shù) voidoutput(); //聲明學(xué)生類輸出函數(shù)public: //公有數(shù)據(jù)成員 stringgrade;};派生類Teacher類的設(shè)計classTeacher:publicCollege//公有繼承基類{public: //公用數(shù)據(jù)成員 Teacher(stringnam="",strings="",inta=0, intnum=0,doublewat=0.0,doubleele=0.0, doublepowerf=0.0,doublewaterf=0.0,stringdepart=""): College(nam,s,a,num,wat,ele,powerf,waterf),department(depart){} //定義教師類構(gòu)造函數(shù) voidinput(); //聲明教師類輸入函數(shù) voidoutput(); //聲明教師類輸出函數(shù)public: stringdepartment;};4.Student_message類的設(shè)計classStudent_message //聲明學(xué)生信息類{ Studentstu[capacity]; //學(xué)生數(shù)組 intamount; //當(dāng)前的數(shù)據(jù)量public: Student_message(){amount=0;} //定義當(dāng)前學(xué)生信息容量為0 voidadd(); //聲明學(xué)生信息添加函數(shù) voidsearch(); //聲明學(xué)生信息查詢函數(shù) voidshow(); //聲明學(xué)生信息顯示函數(shù) voidcompile(); //聲明學(xué)生信息編輯函數(shù) voiddeletes(); //聲明學(xué)生信息刪除函數(shù) voidstatistics(); //聲明學(xué)生信息統(tǒng)計函數(shù) voidsaving(); //聲明學(xué)生信息保存函數(shù) voidreading(); //聲明學(xué)生信息讀取函數(shù)};Teacher_message類的設(shè)計classTeacher_message //聲明教師信息類{ Teacherteach[capacity]; intamount;//定義當(dāng)前數(shù)據(jù)數(shù)public: Teacher_message(){amount=0;} //初始記錄數(shù)據(jù)數(shù)為0 voidadd(); //聲明教師信息添加函數(shù) voidsearch(); //聲明教師信息查詢函數(shù) voidshow(); //聲明教師信息顯示函數(shù) voidcompile(); //聲明教師信息編輯函數(shù) voiddeletes(); //聲明教師信息刪除函數(shù) voidstatistics(); //聲明統(tǒng)計函數(shù) voidsaving(); //聲明教師信息保存函數(shù) voidreading(); //聲明教師信息讀取函數(shù)};五、實驗心得(10分)在課程設(shè)計剛開始時,我不清楚到底需要做什么,無從下手,因為這不是平時的實驗,平時的實驗都是有目的,有內(nèi)容的,而此次的設(shè)計是需要自己去設(shè)計去實踐的,沒有什么東西,需要自己去一步一步實現(xiàn),一步一步的寫。后來,回想老師所講的方法和技巧,開始有了目的,也有了思路。首先,在確定我的設(shè)計題目之后,并且在對本題目進(jìn)行分析的時候,我懂得了一個很重要的道理,那就是說一個程序的產(chǎn)生需要一個對題目要求有一個正確全面的分析。其次,就該考慮程序算法的問題了,一個好的算法是一個好程序的靈魂,也決定了一個程序的質(zhì)量。經(jīng)過三個星期的設(shè)計和實踐,雖然有些疲勞和困倦,但帶給我很多的收獲。C++已經(jīng)學(xué)了一個學(xué)期了,有許多知識都存在似懂非懂的現(xiàn)象,后來這種現(xiàn)象通過實際的上機(jī)操作和實驗,以及老師的講解,同學(xué)的幫助,已經(jīng)減少了許多。對這些知識也有了更深的理解和很好的掌握。同時也有很多理論上可以說得過去的代碼,但到了實際操作的時候,卻是行不通的。這種困惑,有許多已經(jīng)通過實際地操作解決了,并能夠深刻地認(rèn)識,但也有很多不是很清楚。后來,只能避過這些方法,轉(zhuǎn)換策略實現(xiàn)。在課程設(shè)計之前,因為有了多次的綜合實驗的經(jīng)驗與教訓(xùn),明白了寫代碼這一步是非常重要的,因為當(dāng)你把代碼輸入電腦,并用編譯器將其運(yùn)行,發(fā)現(xiàn)通過不了,再來檢查找出問題,這是一件非常辛苦的事情,也很浪費(fèi)時間。于是在課程設(shè)計的時候,我先花了幾天的時間來規(guī)劃要寫的代碼,將要實現(xiàn)的內(nèi)容分析清楚,才把代碼輸入電腦。這樣就能夠有效地降低了錯誤的幾率,提高了寫代碼的效率,并且也減少了設(shè)計時的盲目性,無序性。同時,這次的課程設(shè)計,讓我充分的感覺到了自己要設(shè)計一個好的程序是多么的難和不容易,以及學(xué)習(xí)好C++是多么的重要。在這個程序的設(shè)計過程中,我清楚的意識到了自己的編程水平有多么的薄弱,課程的知識學(xué)得有多么的不扎實。在程序調(diào)試的時候系統(tǒng)總是在報錯,還有很多警告,每增加一個函數(shù)就要調(diào)試好久,有時候因為少了一個大括號或是分號,要找很久很久。在完成課程設(shè)計的過程中,我發(fā)現(xiàn)運(yùn)行后的界面非常的不好看,效果不是很好,有些數(shù)據(jù)之間沒有分開,格式較擁擠,分辨不清各個數(shù)據(jù)所代表的含義。后來,對程序進(jìn)行了修改和添補(bǔ),有了一定的好轉(zhuǎn),加了一些必要的空格和符號,以及一些標(biāo)識,使得程序的界面更加的友好、美觀,更佳的適用。盡管系統(tǒng)后來可以正常地運(yùn)行,也具有了一些基本的功能,但我還是意識到了自己有太多的不足。但是呢,好在以后還會有很多的課程設(shè)計,我則一定要吸取這次的教訓(xùn),把知識學(xué)懂學(xué)透學(xué)精,真正的為我所用,這樣走上社會我才能真正的發(fā)揮所長。程序運(yùn)行結(jié)果截圖以及C++程序源代碼(40分)程序運(yùn)行結(jié)果截圖1.開始運(yùn)行界面截圖:2.退出主界面:3.進(jìn)入教師水電費(fèi)管理系統(tǒng):4.添加功能:5.查找功能:6.修改功能:7.讀取顯示功能:8.添加、保存功能:9.統(tǒng)計功能:10.刪除功能:11.退出教師水電費(fèi)管理系統(tǒng):注:學(xué)生水電費(fèi)管理系統(tǒng)運(yùn)行原理與教師水電費(fèi)管理系統(tǒng)運(yùn)行與原理一樣。程序源代碼:#include<iostream>#include<string>#include<fstream>#include<iomanip>constintcapacity=1500;//定義常變量數(shù)據(jù)容量為1500usingnamespacestd;classCollege//聲明基類大學(xué)類{public://公有數(shù)據(jù)成員 College(stringnam="",strings="",inta=0,intnum=0,doublewat=0.0, doubleele=0.0,doublepowerf=0.0,doublewaterf=0.0): name(nam),sex(s),age(a),number(num),water(wat), electric(ele),powerfare(powerf),waterfee(waterf){};//定義構(gòu)造函數(shù) voidinput();//聲明輸入函數(shù) voidoutput();//聲明輸出函數(shù) stringgetname(){returnname;} //獲取姓名 intgetage(){returnage;} //獲取年齡 doublegetwater(){returnwater;} //獲取用水量 doublegeteletric(){returnelectric;} //獲取用電量 doublegetpowerfare(){returnpowerfare;} //獲取電費(fèi) doublegetwaterfee(){returnwaterfee;} //獲取水費(fèi) intgetnumber(){returnnumber;} //獲取編號public://公有類數(shù)據(jù)成員 stringname;//姓名 stringsex;//性別 intage;//年齡 intnumber;//編號 doublewater;//用水量 doubleelectric;//用電量 doublepowerfare;//電費(fèi) doublewaterfee;//水費(fèi)};////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////classStudent:publicCollege//公有繼承基類{public: //公有數(shù)據(jù)成員 Student(stringnam="",strings="",inta=0,intnum=0, doublewat=0.0,doubleele=0.0,doublepowerf=0.0,doublewaterf=0.0,stringgrad=""): College(nam,s,a,num,wat,ele,powerf,waterf),grade(grad){} //定義學(xué)生類構(gòu)造函數(shù) voidinput(); //聲明學(xué)生類輸入函數(shù) voidoutput(); //聲明學(xué)生類輸出函數(shù)public: //公有數(shù)據(jù)成員 stringgrade;};classStudent_message //聲明學(xué)生信息類{ Studentstu[capacity]; //學(xué)生數(shù)組 intamount; //當(dāng)前的數(shù)據(jù)量public: Student_message(){amount=0;} //定義當(dāng)前學(xué)生信息容量為0 voidadd(); //聲明學(xué)生信息添加函數(shù) voidsearch(); //聲明學(xué)生信息查詢函數(shù) voidshow(); //聲明學(xué)生信息顯示函數(shù) voidcompile(); //聲明學(xué)生信息編輯函數(shù) voiddeletes(); //聲明學(xué)生信息刪除函數(shù) voidstatistics(); //聲明學(xué)生信息統(tǒng)計函數(shù) voidsaving(); //聲明學(xué)生信息保存函數(shù) voidreading(); //聲明學(xué)生信息讀取函數(shù)};////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////voidStudent::input() //學(xué)生信息輸入函數(shù){ cout<<"請輸入姓名:"<<endl; cin>>name; intchoice; cout<<"請選擇性別(1.男,2.女):"<<endl; cin>>choice; switch(choice) { case1:sex="男";break; case2:sex="女";break; default:cout<<"輸入錯誤!"<<endl;break; } cout<<"請輸入年齡:"<<endl; cin>>age; cout<<"請輸入班級:"<<endl; cin>>grade; cout<<"請輸入學(xué)號:"<<endl; cin>>number; cout<<"請輸入本月用水量:"<<endl; cin>>water; cout<<"請輸入本月用電量:"<<endl; cin>>electric; cout<<"請輸入水費(fèi):"<<endl; cin>>waterfee; cout<<"請輸入電費(fèi):"<<endl; cin>>powerfare;}voidStudent::output() //學(xué)生信息輸出函數(shù){ cout<<"姓名:"<<name<<" " <<"性別:"<<sex<<" " <<"年齡:"<<age<<endl; cout<<"班級:"<<grade<<"" <<"學(xué)號:"<<number<<" " <<"用水量:"<<water<<endl; cout<<"用電量:"<<electric<<" " <<"水費(fèi):"<<waterfee<<" " <<"電費(fèi):"<<powerfare <<endl <<endl;}voidStudent_message::add() //學(xué)生信息添加函數(shù){ if(amount>=capacity) { cout<<"警告!用戶已滿!"<<endl; return; } Studentstud; cout<<"請輸入添加人員的信息"<<endl; stud.input(); for(inti=0;i<amount;i++) if(stud.getnumber()==stu[i].getnumber()) { cout<<"該編號人員已存在!"<<endl; return; } stu[amount]=stud; amount=amount+1; cout<<"添加成功!"<<endl;}voidStudent_message::search() //學(xué)生信息查詢函數(shù){ if(amount==0) { cout<<"當(dāng)前沒有人員記錄!"<<endl; return; } intchoice; cout<<"請選擇查詢方式:1.編號查找2.姓名查找3.用水量查找4.用電量查找"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入要查詢的編號:"<<endl; intnumber; cin>>number; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"班級"<<" " <<"學(xué)號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(stu[i].getnumber()==number) { stu[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; case2: { cout<<"請輸入要查詢的姓名:"<<endl; stringname; cin>>name; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"班級"<<" " <<"學(xué)號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(stu[i].getname()==name) { stu[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; case3: { cout<<"請輸入要查詢的用水量:"<<endl; doublewater; cin>>water; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"班級"<<" " <<"學(xué)號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(stu[i].getwater()==water) { stu[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; case4: { cout<<"請輸入要查詢的用電量:"<<endl; doubleelectric; cin>>electric; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"班級"<<" " <<"學(xué)號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(stu[i].geteletric()==electric) { stu[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; default:cout<<"無此選項,請重試!"<<endl;break; }}voidStudent_message::show() //學(xué)生信息顯示函數(shù){ if(amount==0) { cout<<"沒有數(shù)據(jù)!"<<endl; return; } cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"班級"<<" " <<"學(xué)號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { stu[i].output(); }}voidStudent_message::compile() //學(xué)生信息編輯函數(shù){ if(amount==0) { cout<<"當(dāng)前沒有人員記錄!"<<endl; return; } intnum; cout<<"請輸入要查找的編號:"<<endl; cin>>num; for(inti=0;i<amount;i++) { if(stu[i].getnumber()==num) { cout<<"請輸入修改的信息"<<endl; stu[i].input(); cout<<"修改成功!"<<endl; return; } } cout<<"查無此人!"<<endl;}voidStudent_message::deletes() //學(xué)生信息刪除函數(shù){ if(amount==0) { cout<<"當(dāng)前沒有人員記錄!"<<endl; return; } cout<<"請輸入您的選擇:"<<endl; cout<<"1.編號查找刪除 2.姓名查找刪除"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"請輸入編號:"<<endl; intnum; cin>>num; for(inti=0;i<amount;i++) { if(num==stu[i].number) { cout<<"是否刪除?"<<endl; cout<<"1.是2.否"<<endl; intchoice1; cin>>choice1; switch(choice1) { case1: { for(intk=i;k<amount-1;k++) stu[k]=stu[k+1]; cout<<"刪除成功!"<<endl; amount--; };break; case2:return; default:cout<<"不存在此選項!"<<endl;break; }return; } } cout<<"不存在此人!"<<endl; };break; case2: { cout<<"請輸入姓名:"<<endl; stringname; cin>>name; for(inti=0;i<amount;i++) { if(name==stu[i].name) { cout<<"是否刪除?"<<endl; cout<<"1.是 2.否"<<endl; intchoice2; cin>>choice2; switch(choice2) { case1: { for(intk=i;k<amount-1;k++) stu[k]=stu[k+1]; cout<<"刪除成功!"<<endl; amount--; };break; case2:return; default:cout<<"無此項,失敗!"<<endl;break; }return; } } cout<<"無此人!"<<endl; };break; default:cout<<"沒有此選項,失??!"<<endl;break; }}voidStudent_message::statistics() //統(tǒng)計函數(shù){ cout<<"1.學(xué)生用水總量和用電總量 2.學(xué)生總的水電費(fèi)"<<endl; intchoice; cout<<"請選擇您的選項:"<<endl; cin>>choice; switch(choice) { case1: { doubleall_water=0.0,all_electric=0.0; for(inti=0;i<amount;i++) { all_water+=stu[i].water; all_electric+=stu[i].electric; } cout<<"學(xué)生總用水量為:"<<all_water<<endl; cout<<"學(xué)生總用電量為:"<<all_electric<<endl; }break; case2: { doubleall_waterfare=0.0,all_powerfee=0.0; for(inti=0;i<amount;i++) { all_waterfare+=stu[i].waterfee; all_powerfee+=stu[i].powerfare; } cout<<"學(xué)生總水費(fèi)為:"<<all_waterfare<<endl; cout<<"學(xué)生總電費(fèi)為:"<<all_powerfee<<endl; }break; default:cout<<"輸入錯誤!請重新輸入!"<<endl;break; }}voidStudent_message::saving() //學(xué)生信息保存函數(shù){ ofstreamout("學(xué)生.txt",ios::out); if(!out) { cout<<"打開失敗!"<<endl; return; } cout<<"打開成功!"<<endl; for(inti=0;i<amount;i++) { out<<stu[i].name<<" " <<stu[i].sex<<" " <<stu[i].age<<" " <<stu[i].grade<<" " <<stu[i].number<<" " <<stu[i].water<<" " <<stu[i].electric<<" " <<stu[i].waterfee<<" " <<stu[i].powerfare<<" " <<endl; } cout<<"寫入成功!"<<endl; out.close();}voidStudent_message::reading() //學(xué)生信息讀取函數(shù){ ifstreamin("學(xué)生.txt",ios::in); if(!in) { cout<<"打開失敗!"<<endl; return; } intj=0; while(in>>stu[j].name >>stu[j].sex >>stu[j].age >>stu[j].grade >>stu[j].number >>stu[j].water >>stu[j].electric >>stu[j].waterfee >>stu[j].powerfare) { j++; amount++; } cout<<"打開成功!"<<endl; in.close();}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////classTeacher:publicCollege//公有繼承基類{public: //公用數(shù)據(jù)成員 Teacher(stringnam="",strings="",inta=0, intnum=0,doublewat=0.0,doubleele=0.0, doublepowerf=0.0,doublewaterf=0.0,stringdepart=""): College(nam,s,a,num,wat,ele,powerf,waterf),department(depart){} //定義教師類構(gòu)造函數(shù) voidinput(); //聲明教師類輸入函數(shù) voidoutput(); //聲明教師類輸出函數(shù)public: stringdepartment;};classTeacher_message //聲明教師信息類{ Teacherteach[capacity]; intamount;//定義當(dāng)前數(shù)據(jù)數(shù)public: Teacher_message(){amount=0;} //初始記錄數(shù)據(jù)數(shù)為0 voidadd(); //聲明教師信息添加函數(shù) voidsearch(); //聲明教師信息查詢函數(shù) voidshow(); //聲明教師信息顯示函數(shù) voidcompile(); //聲明教師信息編輯函數(shù) voiddeletes(); //聲明教師信息刪除函數(shù) voidstatistics(); //聲明統(tǒng)計函數(shù) voidsaving(); //聲明教師信息保存函數(shù) voidreading(); //聲明教師信息讀取函數(shù)};////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////voidTeacher::input() //教師信息輸入函數(shù){ intchoice3; intchoice4; cout<<"請輸入姓名:"<<endl; cin>>name; cout<<"請選擇性別(1.男,2.女):"<<endl; cin>>choice3; switch(choice3) { case1:sex="男";break; case2:sex="女";break; default:cout<<"輸入錯誤!"<<endl;break; } cout<<"請輸入年齡:"<<endl; cin>>age; cout<<"請選擇工作部門:"<<endl; cout<<"1.教務(wù)處,2.財務(wù)處,3.人事處,4.學(xué)生處,5.后勤管理處,6.普通教師"<<endl; cin>>choice4; switch(choice4) { case1:department="教務(wù)處";break; case2:department="財務(wù)處";break; case3:department="人事處";break; case4:department="學(xué)生處";break; case5:department="后勤管理處";break; case6:department="普通教師";break; default:cout<<"輸入錯誤!"<<endl;break; } cout<<"請輸入職工號:"<<endl; cin>>number; cout<<"請輸入該月老師用水量:"<<endl; cin>>water; cout<<"請輸入該月老師用電量:"<<endl; cin>>electric; cout<<"請輸入水費(fèi):"<<endl; cin>>waterfee; cout<<"請輸入電費(fèi):"<<endl; cin>>powerfare;}voidTeacher::output() //教師信息輸出函數(shù){ cout<<"姓名:"<<name<<" " <<"性別:"<<sex<<" " <<"年齡:"<<age<<endl; cout<<"工作部門:"<<department<<" " <<"職工號:"<<number<<" " <<"老師用水量:"<<water<<endl; cout<<"用電量:"<<electric<<" " <<"水費(fèi):"<<waterfee<<" " <<"電費(fèi):"<<powerfare <<endl <<endl;}voidTeacher_message::add() //教師信息添加函數(shù){ if(amount>=capacity) { cout<<"警告!用戶已滿!"<<endl; return; } Teacherteachers; cout<<"請輸入添加人員的信息"<<endl; teachers.input(); for(inti=0;i<amount;i++) if(teachers.getnumber()==teach[i].getnumber()) { cout<<"該編號人員已存在!"<<endl; return; } teach[amount]=teachers; amount=amount+1; cout<<"添加成功!"<<endl;}voidTeacher_message::search() //教師信息查詢函數(shù){ if(amount==0) { cout<<"當(dāng)前沒有人員記錄!"<<endl; return; } intchoice; cout<<"請選擇查詢方式:1.編號查找2.姓名查找3.用水量查找4.用電量查找"<<endl; cin>>choice; switch(choice) { case1: { cout<<"請輸入要查詢的編號:"<<endl; intnumber; cin>>number; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"工作部門"<<" " <<"職工號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(teach[i].getnumber()==number) { teach[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; case2: { cout<<"請輸入要查詢的姓名:"<<endl; stringname; cin>>name; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"工作部門"<<" " <<"職工號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(teach[i].getname()==name) { teach[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; case3: { cout<<"請輸入要查詢的用水量:"<<endl; doublewater; cin>>water; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"工作部門"<<" " <<"職工號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(teach[i].getwater()==water) { teach[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; case4: { cout<<"請輸入要查詢的用電量:"<<endl; doubleelectric; cin>>electric; cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"工作部門"<<" " <<"職工號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { if(teach[i].geteletric()==electric) { teach[i].output(); } } return; cout<<"此人不存在!"<<endl; }break; default:cout<<"無此選項,請重試!"<<endl;break; }}voidTeacher_message::show() //教師信息顯示函數(shù){ if(amount==0) { cout<<"沒有數(shù)據(jù)!"<<endl; return; } cout<<"姓名"<<" " <<"性別"<<" " <<"年齡"<<" " <<"工作部門"<<" " <<"職工號"<<setw(10) <<"用水量"<<setw(10) <<"用電量"<<setw(10) <<"水費(fèi)"<<setw(10) <<"電費(fèi)" <<endl <<endl; for(inti=0;i<amount;i++) { teach[i].output(); }}voidTeacher_message::compile() //教師信息編輯函數(shù){ if(amount==0) { cout<<"當(dāng)前沒有人員記錄!"<<endl; return; } intnum; cout<<"請輸入所查詢的人的編號:"<<endl; cin>>num; for(inti=0;i<amount;i++) { if(teach[i].getnumber()==num) { cout<<"請輸入要修改的信息"<<endl; teach[i].input(); cout<<"修改成功!"<<endl; return; } } cout<<"查無此人!"<<endl;}voidTeacher_message::deletes() //教師信息刪除函數(shù){ if(amount==0) { cout<<"當(dāng)前沒有人員記錄!"<<endl; return; } cout<<"請輸入您的選擇:"<<endl; cout<<"1.編號查找刪除 2.姓名查找刪除"<<endl; intchoice; cin>>choice; switch(choice) { case1: { cout<<"請輸入編號:"<<endl; intnum; cin>>num; for(inti=0;i<amount;i++) { if(num==teach[i].number) { cout<<"是否刪除?"<<endl; cout<<"1.是2.否"<<endl; intchoice1; cin>>choice1; switch(choice1) { case1: { for(intk=i;k<amount-1;k++) teach[k]=teach[k+1]; cout<<"刪除成功!"<<endl; amount--; };break; case2:return; default:cout<<"不存在此選項!"<<endl;break; }return; } } cout<<"不存在此人!"<<endl; };break; case2: { cout<<"請輸入姓名:"<<endl; stringname; cin>>name; for(inti=0;i<amount;i++) { if(name==teach[i].name) { cout<<"是否刪除?"<<endl; cout<<"1.是 2.否"<<endl; intchoice2; cin>>choice2; switch(choice2) { case1: { for(intk=i;k<amount-1;k++) teach[k]=teach[k+1]; cout<<"刪除成功!"<<endl; amount--; };break; case2:return; default:cout<<"無此項,失?。?<<endl;break; }return; } } cout<<"無此人!"<<endl; };break; default:cout<<"沒有此選項,失??!"<<endl;break; }}voidTeacher_message::statistics() //統(tǒng)計函數(shù){ cout<<"1.老師用水總量和用電總量 2.老師總的水電費(fèi)"<<endl; intchoice; cout<<"請輸入您的選擇:"<<endl; cin>>choice; switch(choice) { case1: { doubleall_water=0.0,all_electric=0.0; for(inti=0;i<amount;i++) { all_water+=teach[i].water; all_electric+=teach[i].electric; } cout<<"教師總用水量為:"<<all_water<<endl; cout<<"教師總用電量為:"<<all_electric<<endl; }break; case2: { doubleall_waterfare=0.0,all_powerfee=0.0; for(inti=0;i<amount;i++) { all_waterfare+=teach[i].waterfee; all_powerfee+=teach[i].powerfare; } cout<<"教師總水費(fèi)為:"<<all_waterfare<<endl; cout<<"教師總電費(fèi)為:"<<all_powerfee<<endl; }break; default:cout<<"輸入錯誤!請重新輸入!"<<endl;break; }}voidTeacher_message::saving() //教師信息保存函數(shù){ ofstreamout("教師.txt",ios::out); if(!out) { cout<<"打開失?。?<<endl; return; } cout<<"打開成功!"<<endl; for(inti=0;i<amount;i++) { out<<teach[i].name<<" " <<teach[i].sex<<" " <<teach[i].age<<" " <<teach[i].department<<" " <<teach[i].number<<" " <<teach[i].water<<" " <<teach[i].electric<<" " <<teach[i].waterfee<<" " <<teach[i].powerfare<<" " <<endl; } cout<<"寫入成功!"<<endl; out.close();}voidTeacher_message::reading() //教師信息讀取函數(shù){ ifstreamin("教師.txt",ios::in); if(!in) { cout<<"打開失敗!"<<endl; return; } intj=0; while(in>>teach[j].name >>teach[j].sex >>teach[j].age >>teach[j].department >>teach[j].number >>teach[j].water >>teach[j].electric >>teach[j].waterfee >>teach[j].powerfare) { j++; amount++; } cout<<"打開成功!"<<endl; in.close();}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////voidstudentMenu(); //聲明學(xué)生頁面主菜單函數(shù)voidteacherMenu(); //聲明教師頁面主菜單函數(shù)//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////intmain() //主函數(shù){ intchoice=3; while(choice!=0) { cout<<"\n===============================================================================\n"<<endl; cout<<" 高校水電費(fèi)管理系統(tǒng)\n"<<endl; ////////////////////////////////////////////////////////////////////////////////////////////////////// // 管理系統(tǒng)的項目選擇主界面并且旗下有兩個子系統(tǒng) // // 一個是關(guān)于教師的,另一個是關(guān)于學(xué)生的 // ////////////////////////////////////////////////////////////////////////////////////////////////////// cout<<"0.退出系統(tǒng) 1.教師水電費(fèi)管理系統(tǒng) 2.學(xué)生水電費(fèi)管理系統(tǒng)"<<endl<<endl; cout<<"請輸入您的選擇:"<<endl; cin>>choice; switch(choice) { case1:teacherMenu();break; case2:studentMenu();break; case0:cout<<"您已退出系統(tǒng)!"<<endl;break; default:cout<<"不存在此選項!請重選!"<<endl;break; } } cout<<"\n================================歡迎下次您的再次使用===========================\n"<<endl; getchar(); return0;}voidstudentMenu() //學(xué)生頁面主菜單函數(shù){ Student_messagestudents; intchoice=9; while(choice!=0) { cout<<"\n===============================================================================\n"<<endl; cout<<" 學(xué)生水電費(fèi)管理系統(tǒng)\n"<<endl; //學(xué)生水電費(fèi)管理系統(tǒng)各種功能的選擇 cout<<"0.退出 1.添加 2.查找 3.修改 4.刪除 5.顯示 6.保存 7.讀取 8.統(tǒng)計\n"<<endl; cout<<"請輸入您的選擇:"<<endl; cin>>choice; switch(choice) { case1:students.add();break; case2:students.search();break; case3:pile();break; case4:students.deletes();break; case5:students.show();break; case6:students.saving();break; case7:students.reading();break; case8:students.statistics();break; case0:cout<<"已退出系統(tǒng)!"<<endl;break; default:cout<<"不存在此選項!請重選!"<<endl;break; } }}voidteacherMenu() //教師頁面主菜單函數(shù){ Teacher_messageteachers; intchoice=9; while(choice!=0) { cout<<"\n===============================================================================\n"<<endl; cout<<" 教師水電費(fèi)管理系統(tǒng)\n"<<endl; //教師水電費(fèi)管理系統(tǒng)各種功能的選擇 cout<<"0.退出 1.添加 2.查找 3.修改 4.刪除 5.顯示 6.保存 7.讀取 8.統(tǒng)計\n"<<endl; cout<<"請輸入您的選擇:"<<endl; cin>>choice; switch(choice) { case1:teachers.add();break; case2:teachers.search();break; case3:pile();break; case4:teachers.deletes();break; case5:teachers.show();break; case6:teachers.saving();break; case7:teachers.reading();break; case8:teachers.statistics();break; case0:cout<<"已退出系統(tǒng)!"<<endl;break; default:cout<<"不存在此選項!請重選!"<<endl;break; } }}基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器\t"_
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)藥制劑操作工成果轉(zhuǎn)化競賽考核試卷含答案
- 水土保持治理工安全教育強(qiáng)化考核試卷含答案
- 電商咨詢師風(fēng)險評估與管理評優(yōu)考核試卷含答案
- 注水泵工操作能力強(qiáng)化考核試卷含答案
- 多膛爐焙燒工操作競賽考核試卷含答案
- 起重裝卸機(jī)械智能控制員安全風(fēng)險測試考核試卷含答案
- 老年癲癇手術(shù)麻醉的腦電監(jiān)測應(yīng)用
- 2026山東省青島市城陽區(qū)教育系統(tǒng)招聘高層次緊缺急需人才180人備考題庫附答案詳解
- 2026四川長虹物業(yè)服務(wù)有限責(zé)任公司綿陽分公司招聘環(huán)境專員兼行政助理崗位1人備考題庫及答案詳解(新)
- 虛擬現(xiàn)實技術(shù)的未來展望
- 新疆維吾爾自治區(qū)伊犁哈薩克自治州2023-2024學(xué)年八年級下學(xué)期期中數(shù)學(xué)試題
- 人工智能在專業(yè)通信領(lǐng)域的應(yīng)用
- T-CI 178-2023 高大邊坡穩(wěn)定安全智能監(jiān)測預(yù)警技術(shù)規(guī)范
- THHPA 001-2024 盆底康復(fù)管理質(zhì)量評價指標(biāo)體系
- 傷口的美容縫合減少瘢痕的形成
- MSOP(測量標(biāo)準(zhǔn)作業(yè)規(guī)范)測量SOP
- 顱鼻眶溝通惡性腫瘤的治療及護(hù)理
- 人教版四年級《上冊語文》期末試卷(附答案)
- 四川山體滑坡地質(zhì)勘察報告
- 青島啤酒微觀運(yùn)營
- 工程結(jié)算書(設(shè)備及安裝類)
評論
0/150
提交評論