版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.湖北汽車工業(yè)學(xué)院Hubei Automotive Industrise Institute課 程 設(shè) 計 說 明 書課程名稱 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計 設(shè)計題目 高校人員管理系統(tǒng) 班號 T1123-X 專業(yè) 軟件工程學(xué)號 1234567891011 學(xué)生姓名 指導(dǎo)教師(簽字) 起止日期 2013 年 1 月 10 日- 2013 年 1月 16 日;目 錄第1章(C+)課程設(shè)計任務(wù)書11.1設(shè)計目的11.2 課程設(shè)計題目11.2.1高校人員信息管理系統(tǒng)11.3 設(shè)計思路11.3.1高校人員信息管理系統(tǒng)1第2章 程序設(shè)計32.1 需求分析32.1.1 問題分析32.1.2 功能分析32.2 總
2、體設(shè)計42.2.1 系統(tǒng)流程設(shè)計42.3 數(shù)據(jù)結(jié)構(gòu)52.3.1 類設(shè)計52.3.2 函數(shù)設(shè)計82.4 設(shè)計分析312.4.1 person類312.4.2 派生類312.4.3 友元類322.4.4 保存函數(shù)322.4.5 插入函數(shù)322.4.6 查詢函數(shù)322.4.7 修改函數(shù)332.4.8 刪除函數(shù)33第3章 程序調(diào)試和運行結(jié)果343.1.1 主界面343.1.2 插入界面343.1.3 修改界面343.1.4 刪除界面35第4章 課設(shè)總結(jié)36第1章(C+)課程設(shè)計任務(wù)書1.1設(shè)計目的通過本次課程設(shè)計,深入理解類和對象、繼承和派生、重載和多態(tài),熟練掌握面向?qū)ο蟮某绦蛟O(shè)計思想和方法,能夠?qū)ΜF(xiàn)
3、實世界中的實際問題進行分析、設(shè)計,并學(xué)會熟練運用面向?qū)ο蟮木幊谭椒ǎ∣OP) C+語言進行編程實現(xiàn)。1.2 課程設(shè)計題目1.2.1高校人員信息管理系統(tǒng)開發(fā)一個簡易的高校人員信息管理系統(tǒng),主要針對高校人員的基本信息進行管理。采用對象鏈表或?qū)ο髷?shù)組存放各個對象,實現(xiàn)新增、修改、刪除、查詢以及統(tǒng)計等功能。1.3 設(shè)計思路1.3.1高校人員信息管理系統(tǒng)根據(jù)高校人員的特點,先設(shè)計一個高校人員抽象類,應(yīng)包含編號、姓名、年齡、性別、系部、聯(lián)系方式等數(shù)據(jù)成員,以及顯示、統(tǒng)計等成員函數(shù)。然后分別設(shè)計教師類、學(xué)生類和機關(guān)人員類,它們的基類均為高校人員抽象類。創(chuàng)建人員對象,通過鏈表或?qū)ο髷?shù)組的形式組織全體高校人員(
4、可以定義一個管理類,該類具有新增、修改、刪除、查詢、統(tǒng)計及保存文件功能)。利用多態(tài)理論統(tǒng)一處理高校人員的信息。36第2章 程序設(shè)計2.1 需求分析2.1.1 問題分析根據(jù)高校人員管理系統(tǒng)要求,設(shè)計一個高校人員抽象類(person),包括以下數(shù)據(jù)成員:1.編號Num 2.姓名Name 3.年齡Age4.性別Sex 5.系部Depart 6.電話Tel以及以下成員函數(shù):1.顯示函數(shù)virtual void print();2.輸入函數(shù)virtual void input();3.保存函數(shù)virtual void save(const char*);4.修改函數(shù)virtual void change
5、(int nunber)=0;2.1.2 功能分析根據(jù)需求,該系統(tǒng)應(yīng)包括以下這些功能:1.插入對象信息void insert(person*);2.查詢對象信息void find(int data);3.刪除對象信息void delet(int);4.修改對象信息void renew(int);5.顯示對象信息void print();6.保存對象信息void save(const char*);7.主函數(shù)輸出菜單、功能選擇、退出系統(tǒng)。2.2 總體設(shè)計2.2.1 系統(tǒng)流程設(shè)計根據(jù)要求,系統(tǒng)流程圖如下:菜單顯示退出用戶選擇操作執(zhí)行相應(yīng)操作退出判斷選擇圖1.系統(tǒng)流程圖基類person管理類教師類學(xué)
6、生類機關(guān)類插入查詢修改顯示保存刪除圖2.功能聯(lián)系圖2.3 數(shù)據(jù)結(jié)構(gòu)2.3.1 類設(shè)計1、人員類主要用來描述人員的基本信息,如編號、姓名、性別、年齡、系部、聯(lián)系方式等。 person(int num=0,char name="",int age=0,char sex="",char depart="",int tel=0); person();public virtual void print();virtual void input();virtual void save(const char*);Person virtual voi
7、d change(int nunber)=0;int Num; char Name20; protectedint Age;char Sex20;char Depart20;int Tel;person *next;2、教師類教師類除基本信息外,還包含其薪水和主講課程等數(shù)據(jù)成員。class teacher:public personpublic:teacher(int num=0,char name="",int age=0,char sex="",char depart="",int tel=0,int salary=0,char
8、course="");teacher();void print();void input();void save(const char*);virtual void change(int nunber);protected:int Salary;char Course20;3、學(xué)生類學(xué)生類除基本信息外,還應(yīng)包含學(xué)分和專業(yè)等數(shù)據(jù)成員。class student:public personpublic:student(int num=0,char name="",int age=0,char sex="",char depart=&quo
9、t;",int tel=0,int grade=0,char spec="");student();void print();void input();void save(const char*);virtual void change(int nunber);protected:int Grade;char Spec20;4、機關(guān)人員類機關(guān)人員類除基本信息外,還包含職位和工資等數(shù)據(jù)成員。class staff:public personpublic:staff(int num=0,char name="",int age=0,char sex
10、="",char depart="",int tel=0,char position="",int salary=0);staff();void print();void input();void save(const char*);virtual void change(int nunber);protected:char Position20;int Salary;5、管理類主要用來管理高校人員信息,實現(xiàn)對人員信息的插入、查找、刪除、顯示和保存等功能。class manageprotected:person *head;publi
11、c:manage();manage();void insert(person*);void find(int data);void delet(int);void renew(int);void print();void save(const char*);2.3.2 函數(shù)設(shè)計1、person類函數(shù)構(gòu)造函數(shù):person:person(int num,char name,int age,char sex,char depart,int tel)Num=num;strcpy(Name,name);Age=age;strcpy(Sex,sex);strcpy(Depart,depart);Tel=
12、tel;person:person()輸入函數(shù):void person:input()cout<<"ttt請輸入編號:"cin>>Num;cout<<"ttt請輸入姓名:"cin>>Name;cout<<"ttt請輸入年齡:"cin>>Age;cout<<"ttt請輸入性別:"cin>>Sex;cout<<"ttt請輸入系部:"cin>>Depart;cout<<&
13、quot;ttt請輸入聯(lián)系電話:"cin>>Tel;顯示函數(shù):void person:print()cout<<"n編號:"<<Num<<" 姓名:"<<Name<<" 年齡:"<<Age<<" 性別:"<<Sex<<" 系部:"<<Depart<<" 電話:"<<Tel;保存函數(shù):void person:sav
14、e(const char* str)fstream file;file.open(str,ios:out|ios:app);if(file.fail()cout<<str<<endl;cerr<<"ttt文件打開失敗!"<<endl;return;file<<"編號:"<<Num<<" 姓名:"<<Sex<<" 年齡:"<<Age<<Name<<" 性別:&quo
15、t;<<" 系部:"<<Depart<<" 電話:"<<Tel;file.close();2、教師類構(gòu)造函數(shù):teacher:teacher(int num,char name,int age,char sex,char depart,int tel,int salary,char course):person(num,name,age,sex,depart,tel)Salary=salary;strcpy(Course,course);teacher:teacher()顯示函數(shù):void teacher:
16、print(void)person:print();cout<<" 薪水:"<<Salary<<" 主講課程:"<<Course<<endl;保存函數(shù):void teacher:save(const char* str)person:save(str);fstream file;file.open(str,ios:out|ios:app);if(file.fail()cout<<str<<endl;cerr<<"ttt文件打開失??!"<
17、;<endl;return;file<<" 薪水:"<<Salary<<" 主講課程:"<<Course<<endl;file.close();void teacher:input(void)person:input();cout<<"ttt請輸入薪水:"cin>>Salary;cout<<"ttt請輸入主講課程:"cin>>Course;修改函數(shù):void teacher:change(int num
18、ber)switch(number)case 7:cout<<"ttt請輸入新的薪水:"cin>>Salary;cout<<"ttt薪水已修改!"<<endl;system("pause");break;case 8:cout<<"ttt請輸入新的主講課程:"cin>>Course;cout<<"ttt主講課程已修改!"<<endl;system("pause");break;3、
19、學(xué)生類構(gòu)造函數(shù):student:student(int num,char name,int age,char sex,char depart,int tel,int grade,char spec):person(num,name,age,sex,depart,tel)Grade=grade;strcpy(Spec,spec);student:student()顯示函數(shù):void student:print(void)cout<<endl<<endl;person:print();cout<<" 學(xué)分:"<<Grade<
20、<" 專業(yè):"<<Spec<<endl;輸入函數(shù):void student:input(void)person:input();cout<<"ttt請輸入學(xué)分:"cin>>Grade;cout<<"ttt請輸入專業(yè):"cin>>Spec;保存函數(shù):void student:save(const char*str)person:save(str);fstream file;file.open(str,ios:out|ios:app);if(file.fail(
21、)cout<<str<<endl;cerr<<"ttt文件打開失敗!"<<endl;return;file<<" 學(xué)分:"<<Grade<<" 專業(yè):"<<Spec<<endl;file.close();修改函數(shù):void student:change(int number)switch(number)case 7:cout<<"ttt請輸入新的學(xué)分:"cin>>Grade;cout&
22、lt;<"ttt學(xué)分已修改!"<<endl;system("pause");break;case 8:cout<<"ttt請輸入新的專業(yè):"cin>>Spec;cout<<"ttt專業(yè)已修改!"<<endl;system("pause");break;4、機關(guān)人員類構(gòu)造函數(shù):staff:staff(int num,char name,int age,char sex,char depart,int tel,char positio
23、n,int salary):person(num,name,age,sex,depart,tel)strcpy(Position,position);Salary=salary;staff:staff()顯示函數(shù):void staff:print(void)cout<<endl<<endl;person:print();cout<<" 職位:"<<Position<<" 工資:"<<Salary<<endl;保存函數(shù):void staff:save(const char*
24、 str)person:save(str);fstream file;file.open(str,ios:out|ios:app);if(file.fail()cerr<<"ttt文件打開失??!"<<endl;return;file<<" 職位:"<<Position<<" 工資:"<<Salary<<endl;file.close();輸入函數(shù):void staff:input(void)person:input();cout<<&quo
25、t;ttt請輸入職位:"cin>>Position;cout<<"ttt請輸入工資:"cin>>Salary;修改函數(shù):void staff:change(int number)switch(number)case 7:cout<<"ttt請輸入新的職位:"cin>>Position;cout<<"ttt職位已修改!"<<endl;system("pause");break;case 8:cout<<"
26、;ttt請輸入新的工資:"cin>>Salary;cout<<"ttt工資已修改!"<<endl;system("pause");break;5、管理類構(gòu)造函數(shù):manage:manage()head=NULL;manage:manage()插入函數(shù):void manage:insert(person* p)person* q;if(NULL=head)head=p;head->next=NULL;elseq=head;while(q->next)q=q->next;q->next=p
27、;p->next=NULL;cout<<"ttt插入成功!"<<endl;查詢函數(shù):void manage:find(int data)person* q=head;int flag=0;int str;if(NULL=head)cout<<"ttt請先錄入數(shù)據(jù)再查詢!"<<endl;return;while(q)str=q->Num;if(data=str)flag=1;break;elseq=q->next;if(flag=1)cout<<"ttt查詢結(jié)果為:&q
28、uot;<<endl<<endl;q->print();if(flag=0)cout<<"ttt查詢結(jié)果不存在!"<<endl<<endl;刪除函數(shù):void manage:delet(int str)person *p1,*p2;int flag=0;p1=head;char ch;if(str=head->Num)cout<<"ttt是否要刪除?(y/n)"<<endl;cout<<"ttt"cin>>ch;if
29、 (ch='y'|ch='Y')cout<<"ttt正在刪除."<<endl;elsereturn;head=head->next;flag=1;elsewhile(p1)if(str=p1->Num)cout<<"ttt是否要刪除?(y/n)"<<endl;cout<<"ttt"cin>>ch;if (ch='y'|ch='Y')cout<<"ttt正在刪除.&qu
30、ot;<<endl;elsereturn;p2->next=p1->next;flag=1;break;elsep2=p1;p1=p1->next;if(!flag)cout<<"ttt未找到要刪除的節(jié)點!"<<endl;elsecout<<"ttt節(jié)點被刪除,起編號是:"<<str<<endl;cout<<"ttt刪除完成!"<<endl;修改函數(shù):void manage:renew(int str)person* p;
31、int num,flag=0;if(NULL=head)cout<<"ttt請先錄入數(shù)據(jù)再修改!"<<endl;return;p=head;while(p)if(str=p->Num)flag=1;break;elsep=p->next;if(flag)domenu3(str);cin>>num;switch(num)case 1:cout<<"ttt請輸入新的編號:"cin>>p->Num;cout<<"ttt編號已修改!"<<en
32、dl;system("pause");break;case 2:cout<<"ttt請輸入新的姓名:"cin>>p->Name;cout<<"ttt姓名已修改!"<<endl;system("pause");break;case 3:cout<<"ttt請輸入新的年齡:"cin>>p->Age;cout<<"ttt年齡已修改!"<<endl;system("p
33、ause");break;case 4:cout<<"ttt請輸入新的性別:"cin>>p->Sex;cout<<"ttt性別已修改!"<<endl;system("pause");break;case 5:cout<<"ttt請輸入新的系部:"cin>>p->Depart;cout<<"ttt系部已修改!"<<endl;system("pause");bre
34、ak;case 6:cout<<"ttt請輸入新的電話:"cin>>p->Tel;cout<<"ttt電話已修改!"<<endl;system("pause");break;case 7:p->change(num);break;case 8:p->change(num);break;case 0:break;default:break;while(num!=0);cout<<"ttt修改成功!"<<endl;elsecout
35、<<"nttt查詢結(jié)果不存在!"<<endl;顯示函數(shù):void manage:print(void)person* p;if(head=NULL)cout<<"ttt請先錄入數(shù)據(jù)!"<<endl;elsep=head;while(p)p->print();p=p->next;保存函數(shù):void manage:save(const char* filename)person* p;if(head=NULL)cout<<"ttt請先錄入數(shù)據(jù)!"<<end
36、l;return;fstream file;file.open(filename,ios:out);if(file.fail()cout<<filename<<endl;cerr<<"ttt文件打開失?。?quot;<<endl;return;file.close();p=head;while(p)p->save(filename);p=p->next;cout<<"ttt文件保存成功!"<<endl;6、菜單函數(shù)主界面選擇菜單:void menu1()system("c
37、ls");cout<<"ttt*人員管理系統(tǒng)*"<<endl;cout<<"ttt*1.插入*"<<endl;cout<<"ttt*2.查詢*"<<endl;cout<<"ttt*3.刪除*"<<endl;cout<<"ttt*4.修改*"<<endl;cout<<"ttt*5.顯示*"<<endl;cout<<
38、"ttt*6.保存*"<<endl;cout<<"ttt*0.退出*"<<endl;cout<<"ttt*"<<endl;cout<<"ttt請輸入操作選項:"插入信息選擇菜單:void menu2()system("cls");cout<<"ttt*插入對象*"<<endl;cout<<"ttt* 1.教師 *"<<endl;cout&
39、lt;<"ttt* 2.學(xué)生 *"<<endl;cout<<"ttt* 3.機關(guān) *"<<endl;cout<<"ttt* 0.退出 *"<<endl;cout<<"ttt*"<<endl;cout<<"ttt請輸入插入對象前的選項:"修改選擇菜單:void menu3(int temp)system("cls");cout<<"ttt*修改選項*&qu
40、ot;<<endl;cout<<"ttt*1.編號2.姓名3.年齡 *"<<endl;cout<<"ttt*4.性別5.系部6.電話 *"<<endl;if (temp/1000=1)cout<<"ttt*7.薪水8.主講課程 *"<<endl;if (temp/1000=2)cout<<"ttt*7.學(xué)分8.專業(yè) *"<<endl;if (temp/1000=3)cout<<"ttt*
41、7.職位8.工資 *"<<endl;cout<<"ttt*0.返回 *"<<endl;cout<<"ttt*"<<endl;cout<<"ttt請輸入修改選項:"7、主函數(shù)int main()int choice,choice2;person* p=NULL;manage m;int temp;teacher a1;student a2;staff a3;char filename20;while(choice!=0)menu1();cin>>
42、;choice;switch(choice)case 1:do menu2();cin>>choice2;switch(choice2)case 1:cout<<"nttt請輸入老師的信息:"<<endl;a1.input();p=&a1;m.insert(p);system("pause");break;case 2:cout<<"nttt請輸入學(xué)生的信息:"<<endl;a2.input();p=&a2;m.insert(p);system("p
43、ause");break;case 3:cout<<"nttt請輸入機關(guān)人員的信息:"<<endl;a3.input();p=&a3;m.insert(p);system("pause");break;case 0:break;default:cout<<"nttt請輸入正確的選擇!"<<endl;while (choice2!=0);break;case 2:cout<<"nttt請輸入要查詢的編號:"<<endl;cout
44、<<"ttt"cin>>temp;m.find(temp);system("pause");break;case 3:cout<<"nttt請輸入要刪除的編號:"<<endl;cout<<"ttt"cin>>temp;m.delet(temp);system("pause");break;case 4:cout<<"nttt請輸入要修改的編號:"<<endl;cout<<
45、;"ttt"cin>>temp;m.renew(temp);system("pause");break;case 5:m.print();system("pause");break;case 6:cout<<"nttt請輸入保存文件名:"<<endl;cout<<"ttt"cin>>filename;m.save(filename);fstream file;file.open(filename,ios:out|ios:app);if (file.fail()cout<<filename<<endl;cerr<<"ttt文件打開失??!"<<endl;break;system("pause");break;case 0:system("cls");cout<<"* 歡迎再次使用本管理系統(tǒng)!*"<<endl;break;default:cout<
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東建筑大學(xué)《推拿與按摩》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東海事職業(yè)學(xué)院《生物教育研究方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 放風(fēng)箏課程設(shè)計
- 幼兒園秋收主題課程設(shè)計
- 工程概預(yù)算課程設(shè)計試講
- 幼兒園植物測量課程設(shè)計
- 星空剪影教學(xué)課程設(shè)計
- 2024年薄板坯連鑄連軋設(shè)備合作協(xié)議書
- 土石壩組織課程設(shè)計
- 固廢收集站課程設(shè)計
- 第1章-配置Web服務(wù)器-課件
- CQI-12特殊過程:涂裝系統(tǒng)評估表(中文第三版)
- 華為財務(wù)分析報告華為財務(wù)分析報告八篇
- 《公共倫理學(xué)》課程教學(xué)大綱
- 計調(diào)業(yè)務(wù)操作流程
- “四議兩公開”模板范文(精選6篇)
- 四年級數(shù)學(xué)(上冊)培優(yōu)輔差
- 人教版小學(xué)數(shù)學(xué)123456年級教資面試試講逐字稿155篇
- 三菱 SG-VF(A) 電梯資料
- DB2308T098-2021矮桿高粱密植高產(chǎn)栽培技術(shù)規(guī)程
- 2023年上海社會科學(xué)院工作人員招聘筆試備考試題及答案解析
評論
0/150
提交評論