版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課程設(shè)計問題描述學(xué)院教學(xué)信息管理系統(tǒng)是高等學(xué)校教務(wù)管理的重要組成部分,其內(nèi)容較多為了簡化計論,要求設(shè)計的管理系統(tǒng)能夠完成以下功能:(1)輸入:輸入每一位教師記錄,將其信息寫入文件中;(2)顯示:顯示每位教師記錄;(3)排序:按職工號或教學(xué)效果綜合評分進行排序,并顯示;(4)查找:完成按姓名或課程查找教師的相關(guān)記錄,并顯示;(5)創(chuàng)建:創(chuàng)建新的紀錄,輸入數(shù)位教師記錄,顯示在屏幕上并保存;二、課程設(shè)計目的和要求:經(jīng)過一個學(xué)期的《C++面向?qū)ο髮嵱媒坛獭氛n程的學(xué)習(xí),已經(jīng)有了一定地程序設(shè)計基礎(chǔ),但是要學(xué)好C++程序設(shè)計,不僅要認真閱讀課本知識和從事課堂學(xué)習(xí),更重要的是要進行上機實踐,通過上機實踐才能增強和鞏固知識。三、系統(tǒng)設(shè)計(算法分析)1、整體結(jié)構(gòu)整個程序定義四個類(1)CPerson類:包含數(shù)據(jù)成員name,age,sex,記錄姓名,年齡,性別這些信息,并包含構(gòu)造函數(shù)及其他成員函數(shù)(定義CPerson類以后若有需要,可再通過繼承派生其他類);(2)CTeacher:共有繼承CPerson類,包含數(shù)據(jù)成員title,teano,course,score,分別記錄職稱,職工號,3門課程和教學(xué)效果綜合評分等信息,另有其他成員函數(shù);(3)CNode類:節(jié)點類,包含2個數(shù)據(jù)成員,CTeacher類對象p和CNode類指針對象next,作為構(gòu)建鏈表的單位;(4)CList類:鏈表類,聲明為CNode類的友元類,數(shù)據(jù)成員有頭結(jié)點head,尾節(jié)點tail,記錄當(dāng)前節(jié)點的p和當(dāng)前節(jié)點前一節(jié)點的pre,鏈表相關(guān)的輸入,顯示,排序,查找,創(chuàng)建全部設(shè)為成員函數(shù)??傮w流程為先打開文件,讀取文件中的記錄來創(chuàng)建鏈表,然后對鏈表進行操作,最后保存至文件中2、流程打開文件讀取記錄打開文件讀取記錄否t結(jié)束3、各函數(shù)的功能和實現(xiàn)學(xué)院教學(xué)信息管理系統(tǒng)的相關(guān)功能由對應(yīng)的函數(shù)來實現(xiàn)(1)輸入教師信息并顯示voidAppend()通過提示一步步輸入信息,由程序構(gòu)建新節(jié)點并加入鏈表2)顯示所有記錄voidPrint()(3)按職工號或教學(xué)效果綜合評分排序并顯示intSortMenu()voidSortMenuControl()voidInsertByTeano(CNode*newp)voidSortByTeano()voidInsertByScore(CNode*newp)voidSortByScore()(4)按姓名或課程查找教師記錄并顯示intSearchMenu()voidSearchMenuControl()voidSearchByName()voidSearchByCourse()四、程序源代碼#include"stdafx.h"#include<iostream>{{{{#include<fstream>#include<vector>#include<algorithm>#include<cstring>#include<string>usingnamespacestd;classCPerson{private:stringname;intage;charsex;public:CPerson(){}CPerson(stringname,intage=0,charsex='M')this->name=name;this->age=age;}}}}{{{{this->sex=sex;voidSetAge(intage=0){this->age=age;}voidSetNameAndSex(stringname,charsex){this->name=name;this->sex=sex;}voidShowInfo(){cout<<name<<"\t"<<age<<"\t"<<(sex=='M?男":"女")<<endl;}stringGetName()returnname;}}}}intGetAge(){returnage;}charGetSex(){returnsex;}};classCTeacher:publicCPerson{private:stringtitle;//職稱stringteano;//職工號vector<string>course;//教授課程floatscore;//教學(xué)效果綜合評分public:{{{{CTeacher(){}CTeacher(stringname,intage=0,charsex='M'):CPerson(name,age,sex){}voidSetData(stringtitle,stringteano){this->title=title;this->teano=teano;}voidSetCourse(stringc1,stringc2,stringc3){course.push_back(c1);course.push_back(c2);course.push_back(c3);}voidSetScore(floatscore)this->score=score;}}}}{{{{voidShowInfo(){cout<<teano<<"\t"<<GetName()<<"\t"<<GetAge()<<"\t"<<(GetSex()=='M'?"男":")<<title<<"\t"<<course[0]<<‘\t"<<course[1]<<"\t"<<course[2]<<"\t"<<score<<endl;}voidoperator=(CTeacher&one){CPerson(one.GetName(),one.GetAge(),one.GetSex());this->title=one.title;this->teano=one.teano;this->course[0]=one.course[0];this->course[1]=one.course[1];this->course[2]=one.course[2];this->score=one.score;}vector<string>GetCourse()returncourse;}}}}{{{{stringGetTitle(){returntitle;}stringGetTeano(){returnteano;}floatGetScore(){returnscore;}};classCNodefriendclassCList;private:CTeacherdata;CNode*next;};classCList{private:CNode*head;CNode*tail;CNode*p;CNode*pre;intnum;//當(dāng)前節(jié)點數(shù)public:intMainMenu(){cout<<"1.顯示當(dāng)前記錄"<<endl;cout<<"2.添加記錄"<<endl;cout<<"3.排序"<<endl;cout<<"4.查找"<<endl;cout<<"5.創(chuàng)建新紀錄"<<endl;cout<<"0.退出"<<endl;cout<<endl;intchoice;cin>>choice;returnchoice;}voidMainMenuControl(){ReadData();while(1){intchoice=MainMenu();if(choice==0)break;switch(choice){case1:Print();break;case2:Append();break;case3:SortMenuControl();break;case4:SearchMenuControl();break;case5:NewList();break;cout<<堤否保存?(Y/N):charc;cin>>c;if(c=='y')Save();}voidReadData(){head=tail=newCNode;head->next=NULL;num=0;charfname[80];cout<<"請輸入要讀取的文件:";cin>>fname;ifstreamfile(fname);if(!file){cout<<"出現(xiàn)未知錯誤導(dǎo)致無法打開!"<<endl;exit(1);}stringname,title,teano,course[3];intage;{{{{charsex;floatscore;while(file.peek()!=EOF){file>>teano>>name>>age>>sex>>title>>course[0]>>course[1]>>course[2]>>score;p=newCNode;p->data.SetNameAndSex(name,sex);p->data.SetAge(age);p->data.SetData(title,teano);p->data.SetCourse(course[0],course[1],course[2]);p->data.SetScore(score);tail->next=p;tail=p;num++;}tail->next=NULL;}voidPrint()for(p=head->next;p!=NULL;p=p->next)p->data.ShowInfo();cout<<endl;}voidAppend(){while(1){p=newCNode;cout<<"請輸入:"<<endl;cout<<":";stringname;cin>>name;cout<<"年齡:";intage;cin>>age;cout<<"性別(F/M):";charsex;cin>>sex;p->data.SetNameAndSex(name,sex);p->data.SetAge(age);cout<<"職稱:";stringtitle;cin>>title;cout<<"職工號:";stringteano;cin>>teano;p->data.SetData(title,teano);cout<<"教授課程:";stringcourse[3];cin>>course[0]>>course[1]>>course[2];p->data.SetCourse(course[0],course[1],course[2]);cout<<"教學(xué)效果綜合評分:";floatscore;cin>>score;p->data.SetScore(score);p->next=tail->next;tail->next=p;tail=p;num++;charc;cout<<"是否繼續(xù)添加?(Y/N):";cin>>c;cin.get();{{{{if(c!='y')break;}tail->next=NULL;Print();}intSortMenu(){cout<<"1.按職工號排序"<<endl;cout<<"2.按教學(xué)效果綜合評分排序"<<endl;cout<<"0.退出"<<endl;cout<<endl;intchoice;cin>>choice;returnchoice;}voidSortMenuControl()while(1)intchoice=SortMenu();if(choice==0)break;switch(choice){case1:SortByTeano();break;case2:SortByScore();break;}Print();}}voidInsertByTeano(CNode*newp){for(pre=head,p=head->next;p!=NULL;pre=p,p=p->next)if(newp->data.GetTeano()<p->data.GetTeano())break;newp->next=p;pre->next=newp;}voidSortByTeano()p=head->next;head->next=NULL;CNode*nextp;while(p!=NULL){nextp=p->next;InsertByTeano(p);p=nextp;}}voidInsertByScore(CNode*newp){for(pre=head,p=head->next;p!=NULL;pre=p,p=p->next)if(newp->data.GetScore()<p->data.GetScore())break;newp->next=p;pre->next=newp;}voidSortByScore()p=head->next;head->next=NULL;CNode*nextp;{{{{while(p!=NULL){nextp=p->next;InsertByScore(p);p=nextp;}}intSearchMenu(){cout<<"1?按姓名查找"<<endl;cout<<"2.按課程查找"<<endl;cout<<"0.退出"<<endl;cout<<endl;intchoice;cin>>choice;returnchoice;}voidSearchMenuControl()while(1){{{{{intchoice=SearchMenu();if(choice==0)break;switch(choice){case1:SearchByName();break;case2:SearchByCourse();break;}}}voidSearchByName(){intn=0;cout<<"請輸入姓名:";stringname;cin>>name;for(p=head->next;p!=NULL;p=p->next)if(p->data.GetName()==name)p->data.ShowInfo();n++;if(n==0)cout<<"沒有相關(guān)記錄"<<endl;cout<<endl;}voidSearchByCourse(){intn=0;cout<<"請輸入查找課程:";stringc;cin>>c;for(p=head->next;p!=NULL;p=p->next){vector<string>course=p->data.GetCourse();for(inti=0;i<3;i++)if(c==course[i]){p->data.ShowInfo();n++;break;if(n==0)cout<<"沒有相關(guān)記錄"<<endl;cout<<endl;}voidNewList(){Destory();head=tail=newCNode;head->next=NULL;while(1){p=newCNode;cout<<"請輸入:"<<endl;cout<<":";stringname;cin>>name;cout<<"年齡:";intage;cin>>age;cout<<"性別(F/M):";charsex;cin>>sex;p->data.SetNameAndSex(name,sex);p->data.SetAge(age);cout<<"職稱:";stringtitle;cin>>title;cout<<"職工號:";stringteano;cin>>teano;p->data.SetData(title,teano);cout<<"教授課程:";stringcourse[3];cin>>course[0]>>course[1]>>course[2];p->data.SetCourse(course[0],course[1],course[2]);cout<<"教學(xué)效果綜合評分:";floatscore;cin>>score;p->data.SetScore(score);tail->next=p;tail=p;num++;cout<<"是否繼續(xù)輸入?(Y/N):";charc;cin>>c;cin.get();if(c!='y')break;}tail->next=NULL;}voidSave(){charfname[80];cout<<"保存到:";cin>>fname;ofstreamfile(fname);if(!file){cout<<"出現(xiàn)未知錯誤導(dǎo)致無法打開!"<<endl;exit(1);}for(p=head->next;p!=NULL;p=p->next){vector<string>course=p->data.GetCourse();file<<p->data.GetTeano()<<"\t"<<p->data.GetName()<<"\t"<<p->data.GetAge()<<"\t"<<p->data.GetSex()<<"\t"<<p->data.GetTitle()<<"\t"<<course[0]<<"\t"<<course[1]<<"\t"<<course[2]<<"\t"<<p->data.GetScore()<<endl;}file.close();}voidDestory(){for(p=head->next;p!=NULL;p=head->next){head->next=p->next;deletep;}deletehead;head=NULL;tail=NULL;pre=NULL;num=0;}}}}~CList(){for(p=head->next;p!=NULL;p=head->next){head->next=p->next;deletep;}deletehead;head=NULL;tail=NULL;pre=NULL;}};intmain(intargc,char*argv[]){CListlist1;list1.MainMenuControl();CListlist2;list2.MainMenuControl();return
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景觀燈采購合同
- 二年級道德與法治上冊 我上二年級了 第2課《我為集體添光彩》教案 北師大版
- 2024-2025學(xué)年高中物理 第二章 原子結(jié)構(gòu) 3 光譜 氫原子光譜教案1 教科版選修3-5
- 2024年學(xué)年八年級語文上冊 第五單元 心靈詩語 第18課《采蓮曲》教案 滬教版五四制
- 2023三年級英語上冊 Unit 2 Colours Part B 第二課時教案 人教PEP
- 八年級政治下冊 第五單元 我是中國公民 5.1 我們都是公民情境探究型教案 粵教版
- 2024-2025學(xué)年高中物理 第四章 機械能和能源 5 機械能守恒定律教案1 教科版必修2
- 高考地理一輪復(fù)習(xí)第十九章環(huán)境安全與國家安全第一節(jié)環(huán)境安全、全球氣候與國家安全課件
- 最簡單的居間合同(2篇)
- 漢子人教版課件
- 6 我的家庭貢獻與責(zé)任(教學(xué)設(shè)計) 部編版道德與法治四年級上冊
- 2024七年級英語下冊 Unit 6 I'm watching TV教案設(shè)計(新版)人教新目標版
- 期中測試題-2024-2025學(xué)年道德與法治六年級上冊統(tǒng)編版
- 《珍愛生命拒絕毒品》主題班會課件
- 2024年貴州畢節(jié)市委政法委所屬事業(yè)單位考調(diào)6人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 安全生產(chǎn)治本攻堅三年行動方案2024~2026(工貿(mào))
- 人教版九年級數(shù)學(xué)下冊相似《相似三角形(第4課時)》示范教學(xué)課件
- 2024年新高考試題分析及2025屆備考策略建議課件
- 2024年供應(yīng)鏈管理師技能競賽理論考試題庫資料(含答案)
- 義務(wù)教育地理2022年版課程標準考試題庫及答案
- T-CRHA 049-2024 結(jié)核病區(qū)消毒隔離護理管理規(guī)范
評論
0/150
提交評論