




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、 課程設計問題描述學院教學信息管理系統是高等學校教務管理的重要組成局部,其內容較多,為了簡化計論,要求設計的管理系統能夠完成以下功能:1輸入:輸入每一位教師記錄,將其信息寫入文件中;2顯示:顯示每位教師記錄;3排序:按職工號或教學效果綜合評分進行排序,并顯示;4查找:完成按姓名或課程查找教師的相關記錄,并顯示;5創立:創立新的紀錄,輸入數位教師記錄,顯示在屏幕上并保存;二、 課程設計目的和要求:經過一個學期的?C+面向對象實用教程?課程的學習,已經有了一定地程序設計根底,但是要學好C+程序設計,不僅要認真閱讀課本知識和從事課堂學習,更重要的是要進行上機實踐,通過上機實踐才能增強和穩固知識。
2、三、 系統設計算法分析1、 整體結構整個程序定義四個類(1) CPerson類:包含數據成員name,age,sex,記錄姓名,年齡,性別這些信息,并包含構造函數及其他成員函數定義CPerson類以后假設有需要,可再通過繼承派生其他類;(2) CTeacher:共有繼承CPerson類,包含數據成員title,teano,course,score,分別記錄職稱,職工號,3門課程和教學效果綜合評分等信息,另有其他成員函數;(3) CNode類:節點類,包含2個數據成員,CTeacher類對象p和CNode類指針對象next,作為構建鏈表的單位;(4) CList類:鏈表類,聲明為CNode類的友
3、元類,數據成員有頭結點head,尾節點tail,記錄當前節點的p和當前節點前一節點的pre,鏈表相關的輸入,顯示,排序,查找,創立全部設為成員函數??傮w流程為先翻開文件,讀取文件中的記錄來創立鏈表,然后對鏈表進行操作,最后保存至文件中2、流程圖開始翻開文件讀取記錄輸入choicechoice=0? 是 否查找排序創立新紀錄添加記錄顯示當前記錄保存 是保存 否結束3、 各函數的功能和實現學院教學信息管理系統的相關功能由對應的函數來實現。(1) 輸入教師信息并顯示void Append()通過提示一步步輸入信息,由程序構建新節點并參加鏈表(2) 顯示所有記錄void Print()3按職工號或教學
4、效果綜合評分排序并顯示int SortMenu()void SortMenuControl()void InsertByTeano(CNode *newp)void SortByTeano()void InsertByScore(CNode *newp)void SortByScore()4按姓名或課程查找教師記錄并顯示int SearchMenu()void SearchMenuControl()void SearchByName()void SearchByCourse()四、程序源代碼#include "stdafx.h"#include <iostream&g
5、t;#include <fstream>#include <vector>#include <algorithm>#include <cstring>#include <string>using namespace std;class CPersonprivate:string name;int age;char sex;public:CPerson()CPerson(string name,int age=0,char sex='M')this->name=name;this->age=age;this-
6、>sex=sex;void SetAge(int age=0)this->age=age;void SetNameAndSex(string name,char sex)this->name=name;this->sex=sex;void ShowInfo()cout<<name<<"t"<<age<<"t"<<(sex='M'?"男":"女")<<endl;string GetName()return
7、name;int GetAge()return age;char GetSex()return sex;class CTeacher:public CPersonprivate:string title;/職稱string teano;/職工號vector<string> course;/教授課程float score;/教學效果綜合評分public:CTeacher()CTeacher(string name,int age=0,char sex='M'):CPerson(name,age,sex)void SetData(string title,string
8、teano)this->title=title;this->teano=teano;void SetCourse(string c1,string c2,string c3)course.push_back(c1);course.push_back(c2);course.push_back(c3);void SetScore(float score)this->score=score;void ShowInfo()cout<<teano<<"t"<<GetName()<<"t"<&l
9、t;GetAge()<<"t"<<(GetSex()='M'?"男":")<<title<<"t"<<course0<<"t"<<course1<<"t"<<course2<<"t"<<score<<endl;void operator =(CTeacher &one)CPerson(one.GetN
10、ame(),one.GetAge(),one.GetSex();this->title=one.title;this->teano=one.teano;this->course0=one.course0;this->course1=one.course1;this->course2=one.course2;this->score=one.score;vector<string> GetCourse()return course;string GetTitle()return title;string GetTeano()return teano;
11、float GetScore()return score;class CNodefriend class CList;private:CTeacher data;CNode *next;class CListprivate:CNode *head;CNode *tail;CNode *p;CNode *pre;int num;/當前節點數public:int MainMenu()cout<<"1.顯示當前記錄"<<endl;cout<<"2.添加記錄"<<endl;cout<<"3.排
12、序"<<endl;cout<<"4.查找"<<endl;cout<<"5.創立新紀錄"<<endl;cout<<"0.退出"<<endl;cout<<endl;int choice;cin>>choice;return choice;void MainMenuControl()ReadData();while ( 1 )int choice=MainMenu();if ( choice=0 )break;switch
13、( choice )case 1:Print();break;case 2:Append();break;case 3:SortMenuControl();break;case 4:SearchMenuControl();break;case 5:NewList();break;cout<<"是否保存?Y/N:"char c;cin>>c;if ( c='y' )Save();void ReadData()head=tail=new CNode;head->next=NULL;num=0;char fname80;cout<
14、;<"請輸入要讀取的文件:"cin>>fname;ifstream file(fname);if ( !file )cout<<"出現未知錯誤導致無法翻開!"<<endl;exit(1);string name,title,teano,course3;int age;char sex;float score;while ( file.peek()!=EOF )file>>teano>>name>>age>>sex>>title>>course
15、0>>course1>>course2>>score;p=new CNode;p->data.SetNameAndSex(name,sex);p->data.SetAge(age);p->data.SetData(title,teano);p->data.SetCourse(course0,course1,course2);p->data.SetScore(score);tail->next=p;tail=p;num+;tail->next=NULL;void Print()for ( p=head->next
16、; p!=NULL; p=p->next)p->data.ShowInfo();cout<<endl;void Append()while ( 1 )p=new CNode;cout<<"請輸入:"<<endl;cout<<"姓名:"string name;cin>>name;cout<<"年齡:"int age;cin>>age;cout<<"性別F/M:"char sex;cin>>sex;p
17、->data.SetNameAndSex(name,sex);p->data.SetAge(age);cout<<"職稱:"string title;cin>>title;cout<<"職工號:"string teano;cin>>teano;p->data.SetData(title,teano);cout<<"教授課程:"string course3;cin>>course0>>course1>>course2;p-&
18、gt;data.SetCourse(course0,course1,course2);cout<<"教學效果綜合評分:"float score;cin>>score;p->data.SetScore(score);p->next=tail->next;tail->next=p;tail=p;num+;char c;cout<<"是否繼續添加?Y/N:"cin>>c;cin.get();if ( c!='y' )break;tail->next=NULL;Prin
19、t();int SortMenu()cout<<"1.按職工號排序"<<endl;cout<<"2.按教學效果綜合評分排序"<<endl;cout<<"0.退出"<<endl;cout<<endl;int choice;cin>>choice;return choice;void SortMenuControl()while ( 1 )int choice=SortMenu();if ( choice=0 )break;switch ( c
20、hoice )case 1:SortByTeano();break;case 2:SortByScore();break;Print();void InsertByTeano(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;void SortByTeano()p=head->next;head->
21、;next=NULL;CNode *nextp;while ( p!=NULL )nextp=p->next;InsertByTeano(p);p=nextp;void InsertByScore(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;void SortByScore()p=head->
22、;next;head->next=NULL;CNode *nextp;while ( p!=NULL )nextp=p->next;InsertByScore(p);p=nextp;int SearchMenu()cout<<"1.按姓名查找"<<endl;cout<<"2.按課程查找"<<endl;cout<<"0.退出"<<endl;cout<<endl;int choice;cin>>choice;return choic
23、e;void SearchMenuControl()while ( 1 )int choice=SearchMenu();if ( choice=0 )break;switch ( choice )case 1:SearchByName();break;case 2:SearchByCourse();break;void SearchByName()int n=0;cout<<"請輸入姓名:"string name;cin>>name;for ( p=head->next; p!=NULL; p=p->next)if ( p->da
24、ta.GetName()=name)p->data.ShowInfo();n+;if ( n=0 )cout<<"沒有相關記錄"<<endl;cout<<endl;void SearchByCourse()int n=0;cout<<"請輸入查找課程:"string c;cin>>c;for ( p=head->next; p!=NULL; p=p->next)vector<string> course=p->data.GetCourse();for (int
25、 i=0; i<3; i+)if ( c=coursei)p->data.ShowInfo();n+;break;if ( n=0 )cout<<"沒有相關記錄"<<endl;cout<<endl;void NewList()Destory();head=tail=new CNode;head->next=NULL;while ( 1 )p=new CNode;cout<<"請輸入:"<<endl;cout<<"姓名:"string name;c
26、in>>name;cout<<"年齡:"int age;cin>>age;cout<<"性別F/M:"char sex;cin>>sex;p->data.SetNameAndSex(name,sex);p->data.SetAge(age);cout<<"職稱:"string title;cin>>title;cout<<"職工號:"string teano;cin>>teano;p->da
27、ta.SetData(title,teano);cout<<"教授課程:"string course3;cin>>course0>>course1>>course2;p->data.SetCourse(course0,course1,course2);cout<<"教學效果綜合評分:"float score;cin>>score;p->data.SetScore(score);tail->next=p;tail=p;num+;cout<<"是否
28、繼續輸入?Y/N:"char c;cin>>c;cin.get();if ( c!='y' )break;tail->next=NULL;void Save()char fname80;cout<<"保存到:"cin>>fname;ofstream file(fname);if ( !file )cout<<"出現未知錯誤導致無法翻開!"<<endl;exit(1);for ( p=head->next; p!=NULL; p=p->next)vector<string> course=p->data.GetCourse();file<<p->data.GetTeano()&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國凳類家具行業市場深度研究及投資戰略咨詢報告
- 2025年中國智能超市手推車行業市場發展監測及投資戰略咨詢報告
- 生物質直燃發電項目節能評估報告(節能專用)
- 中國汽艇行業市場運營現狀及行業發展趨勢報告
- 房屋中介服務合同
- 2025年中國LED顯示器市場全面調研及行業投資潛力預測報告
- 2025年中國純牛奶行業市場深度分析及投資戰略規劃報告
- 2025年中國園林苗木行業市場深度分析及發展前景預測報告
- 2023-2029年中國木工鋸床行業市場深度分析及投資戰略規劃建議報告
- 嵊州市中等職業技術學校招聘真題
- 鄉村醫生從業管理條例
- 北京第八十中學英語新初一分班試卷
- 酒店OTA學習三部曲(側重攜程)
- 【園林測量】試題及答案
- 潮汕方言語音的內部差異及其成因
- 人教版小學語文一年級到六年級課本古詩
- 2023年氣象服務行業市場突圍建議及需求分析報告
- 四年級下冊健康成長教案
- 手太陰肺經課件-
- 分包工程驗收報告
- 《汽車維修業開業條件》
評論
0/150
提交評論