《基于C++的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例》課程設(shè)計(jì)報(bào)告高校人員信息管理系統(tǒng)_第1頁(yè)
《基于C++的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例》課程設(shè)計(jì)報(bào)告高校人員信息管理系統(tǒng)_第2頁(yè)
《基于C++的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例》課程設(shè)計(jì)報(bào)告高校人員信息管理系統(tǒng)_第3頁(yè)
《基于C++的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例》課程設(shè)計(jì)報(bào)告高校人員信息管理系統(tǒng)_第4頁(yè)
《基于C++的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例》課程設(shè)計(jì)報(bào)告高校人員信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、北 華 航 天 工 業(yè) 學(xué) 院基于 c+的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例課程設(shè)計(jì)報(bào)告報(bào)告題目:高校人員信息管理系統(tǒng)作者所在系部:計(jì)算機(jī)科學(xué)與工程系作者所在專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)作者所在班級(jí):作 者 姓 名 :指導(dǎo)教師姓名:完 成 時(shí) 間 :北華航天工業(yè)學(xué)院教務(wù)處制北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告摘要當(dāng)今教育事業(yè)備受關(guān)注,如何高效方便的對(duì)高校人員進(jìn)行管理是一個(gè)問(wèn)題。本文利用 c+面向?qū)ο蟮某绦蛟O(shè)計(jì)實(shí)現(xiàn)了這一功能。本系統(tǒng)主要有七個(gè)功能模塊:新增、更改、刪除、查找、顯示、全刪、統(tǒng)計(jì),實(shí)現(xiàn)了對(duì)領(lǐng)導(dǎo)、教師、學(xué)生信息的管理。本程序已經(jīng)過(guò)全面的系統(tǒng)測(cè)試,能夠很好的運(yùn)行,達(dá)到預(yù)期的效果。關(guān)鍵詞:信息管理系統(tǒng)設(shè)計(jì)面向?qū)ο?/p>

2、北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告1摘要.2第一章緒論.211 課程設(shè)計(jì)的目的.212 課程設(shè)計(jì)的背景和意義.2121 課程設(shè)計(jì)的背景.21. 理論研究基礎(chǔ).22. 技術(shù)層面的支持.2122 課程設(shè)計(jì)的意義.213 課程設(shè)計(jì)環(huán)境.3第二章需求分析.321 問(wèn)題描述.322 功能要求.323 問(wèn)題的解決方案.4第三章系統(tǒng)設(shè)計(jì).431 數(shù)據(jù)設(shè)計(jì).4311 類設(shè)計(jì).4312 類之間的關(guān)系.4313 函數(shù)設(shè)計(jì).532 結(jié)構(gòu)設(shè)計(jì).5321 系統(tǒng)流程圖.5322 界面設(shè)計(jì).6第四章系統(tǒng)實(shí)現(xiàn).741 類實(shí)現(xiàn).742 函數(shù)實(shí)現(xiàn).943 主函數(shù)實(shí)現(xiàn).15第五章系統(tǒng)測(cè)試.1651 模塊測(cè)試.1652 課程設(shè)計(jì)過(guò)程中遇到

3、的問(wèn)題.19總結(jié).19致謝.20參考文獻(xiàn).21附錄.21北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告2第一章緒論11 課程設(shè)計(jì)的目的課程設(shè)計(jì)是課程教學(xué)必不可缺的一個(gè)重要環(huán)節(jié), 可加深學(xué)生對(duì)該課程所學(xué)內(nèi)容的進(jìn)一步的了解與鞏固,是將計(jì)算機(jī)課程與實(shí)際問(wèn)題相連接的關(guān)鍵步驟。此次程序設(shè)計(jì)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題,將課堂的書(shū)本知識(shí)有效的在程序中體現(xiàn)出來(lái),讓學(xué)生更理解了c+功能之強(qiáng)大,進(jìn)一步讓學(xué)生對(duì)面向?qū)ο蟮姆椒ㄒ约?c+的編程思想有了較好了解和認(rèn)識(shí)。12 課程設(shè)計(jì)的背景和意義121 課程設(shè)計(jì)的背景本次課程設(shè)計(jì),主要研究類的繼承、抽象類、多態(tài)、虛基類以及對(duì)文件進(jìn)行各項(xiàng)操作(如添加、 修改、刪除、 查詢、顯示等) 。通過(guò)

4、這次課程設(shè)計(jì)掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)思路,著重掌握在 c+中對(duì)文件進(jìn)行查找、刪除、修改等操作。1. 理論研究基礎(chǔ)(1)c+面向?qū)ο蟪绦蛟O(shè)計(jì)中類與對(duì)象的使用(2)類的封裝性和繼承性。(3)c+ i/o 流庫(kù)的處理,二進(jìn)制文件的創(chuàng)建與保存。2. 技術(shù)層面的支持(1)定義基類與派生類,將數(shù)據(jù)成員與成員函數(shù)封裝在類中。(2)定義指向?qū)ο蟮闹羔?,設(shè)計(jì)刪除、查詢、更改的算法。(3)c+異常處理的功能與輸入輸出流。122 課程設(shè)計(jì)的意義(1) 通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練, 培養(yǎng)了學(xué)生分析解決實(shí)際問(wèn)題和編程等實(shí)際動(dòng)手能力。北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告3幫助了同學(xué)系統(tǒng)的掌握 c+課程的主要內(nèi)容。(2)通過(guò)詳細(xì)的實(shí)例分

5、析,循環(huán)漸進(jìn)的描述,啟發(fā)學(xué)生順利的完成設(shè)計(jì)。課程設(shè)計(jì)將設(shè)計(jì)要求、需求分析、算法設(shè)計(jì)、編程和實(shí)例測(cè)試運(yùn)行分開(kāi),為學(xué)生創(chuàng)造分析問(wèn)題、獨(dú)立思考的條件。(3)通過(guò)編寫一個(gè)較長(zhǎng)的程序,實(shí)現(xiàn)了對(duì)人員信息的管理,激發(fā)了學(xué)生學(xué)習(xí)編程的興趣。13 課程設(shè)計(jì)環(huán)境在 microsoft visual c+ 6.0 開(kāi)發(fā)平臺(tái)上編寫程序源代碼,修改,增加功能,通過(guò)編譯、連接,直到完全無(wú)誤,最終執(zhí)行程序,反復(fù)輸入新的數(shù)據(jù)進(jìn)行驗(yàn)證并進(jìn)一步完善。第二章需求分析21 問(wèn)題描述某高校,主要人員有:領(lǐng)導(dǎo)、教師和學(xué)生,共有的信息包括:編號(hào)、姓名、性別、年齡。其中領(lǐng)導(dǎo)還應(yīng)包含的信息有:任職部門(學(xué)院、各系部) 、職稱;教師還應(yīng)包含的信

6、息有:職稱、任職時(shí)間、專業(yè);學(xué)生還應(yīng)包含的信息有:所在班級(jí)、所在宿舍等。22 功能要求對(duì)各類人員信息完成的基本功能有:1) 添加功能:程序能夠添加相應(yīng)的記錄;2) 查詢功能:能根據(jù)編號(hào)和姓名進(jìn)行查詢,并顯示相應(yīng)的記錄信息;3) 編輯功能:根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改;4) 統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì);5)刪除功能:根據(jù)查找結(jié)果,完成具體記錄的刪除;6)保存功能:將對(duì)高校人員信息進(jìn)行的添加、刪除、修改結(jié)果保存到文本文件中。北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告423 問(wèn)題的解決方案根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);

7、2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;4)完成類層次中各個(gè)類的描述;5)完成類中各個(gè)成員函數(shù)的定義;6)完成系統(tǒng)的應(yīng)用模塊;7)功能調(diào)試;8)完成系統(tǒng)總結(jié)報(bào)告。第三章系統(tǒng)設(shè)計(jì)31 數(shù)據(jù)設(shè)計(jì)311 類設(shè)計(jì)人員有共同的信息編號(hào) number、姓名 neme、性別 sex、年齡 age,所以設(shè)計(jì)一個(gè)基類people, 在此基礎(chǔ)上派生出 leader 類 (添加數(shù)據(jù)成員任職部門 bumen, 職稱 zhicheng) , teacher類(添加數(shù)據(jù)成員職稱 zhicheng,任職時(shí)間 time,專業(yè) project) ,student 類(添加數(shù)據(jù)成員班級(jí) ba

8、nji,宿舍 sushe) ?;?people 中包含設(shè)置成員值的 set 函數(shù),添加成員的 add 函數(shù)。在派生類 leader,teacher,student 中對(duì) set 和 add 進(jìn)行重新定義。為了對(duì)信息進(jìn)行添加、刪除、查找等功能,定義 leaderbase,teacher,student 類,分別定義對(duì)象數(shù)組,定義指向?qū)ο蟮闹羔槪?leaderbase 類為例,int top; 人數(shù) leader readmaxr;領(lǐng)導(dǎo)類數(shù)組;leaderbase()將領(lǐng)導(dǎo)信息從 leader.txt 讀取到 read中,void delnu(int u)編號(hào)刪除,void delname(c

9、har*na)姓名刪除,void clear()刪除所有, void disp() 領(lǐng)導(dǎo)信息顯示, void data()領(lǐng)導(dǎo)維護(hù), leaderbase() 將 read中的信息讀入到 leader.txt 中。312 類之間的關(guān)系由 people 類派生出 leader,teacher,student 類,leaderbase 類調(diào)用 leader 類,teacherbase北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告5類調(diào)用了 teacher 類,studentbase 類調(diào)用了 student 類.。派生類對(duì)基類的成員進(jìn)行繼承。繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)中軟件重用的關(guān)鍵技術(shù)。繼承機(jī)制使用已經(jīng)定義的類作為基

10、礎(chǔ)建立新的類定義,新的類是原有類的數(shù)據(jù)、操作和新類所添加的數(shù)據(jù)、操作的組合。新的類把原有類作為基類引用,而不需要修改原有類的定義。313 函數(shù)設(shè)計(jì)leaderbase()將領(lǐng)導(dǎo)信息從 leader.txt 讀取到 read中,void delnu (int n)編號(hào)刪除,voiddelname(char*na)姓名刪除,void clear()刪除所有,void disp() 領(lǐng)導(dǎo)信息顯示,void data()領(lǐng)導(dǎo)數(shù)據(jù)維護(hù),實(shí)現(xiàn)領(lǐng)導(dǎo)信息的添加、刪除、查詢、顯示、統(tǒng)計(jì)、更改功能。leaderbase() 將read中的信息讀如到leader.txt中。 當(dāng)刪除和查找時(shí)調(diào)用兩個(gè)函數(shù)leader

11、*query(int n), leader*query1(char *na),看刪除或查找的領(lǐng)導(dǎo)是否存在,若存在,返回指向 leader 類的指針,若不存在,返回空指針。32 結(jié)構(gòu)設(shè)計(jì)321 系統(tǒng)流程圖main 函數(shù)領(lǐng)導(dǎo)數(shù)據(jù)操作教師數(shù)據(jù)操作學(xué)生數(shù)據(jù)操作voidleaderbase:date()voidteacherbase:date()voidstudentbase:base()北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告6322 界面設(shè)計(jì)登入高校管理系統(tǒng)界面如圖 3-2 所示圖 3-2 界面菜單設(shè)計(jì)程序開(kāi)始運(yùn)行,通過(guò)主函數(shù)進(jìn)入系統(tǒng)主界面(如上圖所示) ,操作員可鍵入數(shù)字信息選擇系統(tǒng)的各個(gè)功能或退出系統(tǒng)。每種

12、功能的界面都有相應(yīng)的提示(以輸入領(lǐng)導(dǎo)為例) :在添加信息功能中系統(tǒng)提示 “請(qǐng)輸入領(lǐng)導(dǎo)的性別為男或女, 如果輸入錯(cuò)誤, 會(huì)輸出 “輸入性別錯(cuò)誤,請(qǐng)重新輸入”在新增時(shí)系統(tǒng)會(huì)同時(shí)計(jì)算輸入男女領(lǐng)導(dǎo)的人數(shù);在更改中系統(tǒng)提供了按姓名或編號(hào)修改,在修改前系統(tǒng)會(huì)輸出該領(lǐng)導(dǎo)的全部信息,修改時(shí)系統(tǒng)會(huì)輸出是否更改;刪除中系統(tǒng)提供了按編號(hào)或姓名刪除,刪除前系統(tǒng)會(huì)再次提醒使用者是否確定刪除;在查找中亦提供了按編號(hào)或姓名查找;在輸入完畢后按 0 返回主菜單。 ,以便操作員更方便地使用該系統(tǒng)注:各子菜單項(xiàng)均有重新顯示,并順利返回到主菜單。如果要保存信息的數(shù)據(jù),必須退出到主菜單,系統(tǒng)會(huì)自動(dòng)保存;system(“cls”)清除

13、以前的內(nèi)容,界面重新顯示。system( “color 23”)設(shè)置當(dāng)前的窗口和輸出字體的顏色北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告7第四章系統(tǒng)實(shí)現(xiàn)41 類實(shí)現(xiàn)class people/人員基類protected:int number;/編號(hào)char name20;/姓名char sex4;/性別int age;/年齡public:void show()cout編號(hào)setw(10)姓名setw(10)性別setw(10)年齡endl;coutnumbersetw(10)namesetw(10)sexsetw(10)ageendl;void set()cout請(qǐng)輸入編號(hào):number;cout請(qǐng)輸入姓名:

14、name;cout請(qǐng)輸入性別:sex;cout請(qǐng)輸入年齡:age;char *getname() return name; /獲取名字int getno()return number;/獲取編號(hào)int getage() return age; /獲取年齡char* getsex()return sex; /獲取性別void ren(int n)coutnendl;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告8void add(int n,char *na,int ag,char *se)number=n;age=ag;strcpy(name,na);strcpy(sex,se);classleader: pu

15、blic people/領(lǐng)導(dǎo)類private:char bumen20;char zhicheng20;public:void set1()set();cout請(qǐng)輸入任職部門:bumen;cout請(qǐng)輸入職稱:zhicheng;void setbu(char bu)strcpy(bumen,bu);void setzhi(char zhi)strcpy(zhicheng,zhi);void show1()show();cout部門setw(10)職稱endl;coutbumensetw(10)zhichengendl;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告9void add1(int n,char *na

16、,int ag,char *se,char *bu,char *zhi)add( n, na, ag, se);strcpy(bumen,bu);strcpy(zhicheng,zhi);char *getbu()return bumen;/獲取部門char *getzhi()return zhicheng;/獲取職稱;類似的,在 people 類的基礎(chǔ)上派生出 student 類,teacher 類。42 函數(shù)實(shí)現(xiàn)void leaderbase:data()/定義領(lǐng)導(dǎo)維護(hù)int choice=1;int b=1;/標(biāo)記變量char x;int nan=0;/男領(lǐng)導(dǎo)int nv=0; /女領(lǐng)導(dǎo)

17、char name20; /姓名int number;/編號(hào)int age;/年齡char zhi20; /職稱char sex4;/性別char bu20;/系部leader *r;while (choice!=0)cout;cinchoice;switch (choice)北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告10case 1: /新增system(color 17); /顏色system(cls);/清屏coutnumber;coutname;coutage;coutsex;if(strcmp(male,sex)!=0&strcmp(f,sex)!=0)while(b)cout輸入性別有誤,請(qǐng)重新

18、輸入:sex;if(strcmp(male,sex)=0|strcmp(f,sex)=0)b=0;if(strcmp(male,sex)=0)nan+;/統(tǒng)計(jì)男女領(lǐng)導(dǎo)的人數(shù)elsenv+;coutbu;coutzhi;add(number,name,age,sex,bu,zhi);break;case 2: /根據(jù)查詢結(jié)果更改system(color f4); /顏色system(cls);cout 按編號(hào)更改 1endl;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告11cout 按姓名更改 2endl;cout 返回 0b;while(b)switch(b)case 1:coutnumber;r=query

19、(number);if (r=null) cout該領(lǐng)導(dǎo)不存在show1();cout是否確認(rèn)更改任職部門?(y/n)x;if(x=y|x=y)cout輸入新的任職部門:bu;r-setbu(bu);add(number,name,age,sex,bu,zhi);cout是否確認(rèn)更改職稱?(y/n)x;if(x=y|x=y)cout請(qǐng)輸入新的職稱zhi;r-setzhi(zhi);add(number,name,age,sex,bu,zhi);r-show1();break;case 2:coutname;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告12r=query1(name);if (r=null)co

20、ut該領(lǐng)導(dǎo)不存在show1();cout 是否確認(rèn) 更改任職部門? ( y/n) x;if(x=y|x=y) cout輸入新的任職部門:bu; r-setbu(bu);add(number,name,age,sex,bu,zhi);cout是否確認(rèn)更改職稱?(y/n)x;if(x=y|x=y) cout請(qǐng)輸入新的職稱zhi; r-setzhi(zhi);add(number,name,age,sex,bu,zhi);r-show1();break;case 3:break;break;break;case 3:/刪除system(color f1); /顏色 同樣是調(diào)用 docsystem(c

21、ls);cout 按編號(hào)刪除 1endl;cout 按姓名刪除 2endl;cout 返回 0b;while(b!=0)switch(b)case 1:北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告13coutnumber;r=query(number);if (r=null)cout該領(lǐng)導(dǎo)不存在endl; break; delnu(number); b=0;break;case 2:cout輸入領(lǐng)導(dǎo)姓名:name;r=query1(name);if (r=null)cout該領(lǐng)導(dǎo)不存在endl; break; delname(name);b=0;break;case 3:break;break;break;c

22、ase 4: /查找system(color 07); /顏色system(cls);cout 按編號(hào)查找 1endl;cout 按姓名查找 2endl;cout 返回 0b;while(b!=0)switch(b)case 1:coutnumber;r=query(number);if (r=null) cout該領(lǐng)導(dǎo)不存在show1();break;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告14case 2:coutname;r=query1(name);if (r=null) cout該領(lǐng)導(dǎo)不存在show1();break;case 3:break;break;break;case 5:/顯示信息sy

23、stem(color fa); /顏色system(cls);disp();break;case 6:system(color fd); /顏色system(cls);clear();break;case 7:system(color 48); /顏色system(cls);cout 統(tǒng)計(jì)男領(lǐng)導(dǎo)人數(shù) 1endl;cout 統(tǒng)計(jì)女領(lǐng)導(dǎo)人數(shù) 2endl;cout 返回 0b;while(b!=0)switch(b)case 1:cout該高校男領(lǐng)導(dǎo)人數(shù)ren(nan);b=0; break;case 2:cout該高校女領(lǐng)導(dǎo)人數(shù)ren(nv);b=0;break;case 3:break;brea

24、k;類似的, 定義 teacherbase 類與 studentbase 類的數(shù)據(jù)維護(hù) data 函數(shù), 實(shí)現(xiàn)對(duì)人員信息的新增、更改、刪除 、查找 、顯示、全刪 、統(tǒng)計(jì)功能。43 主函數(shù)實(shí)現(xiàn)int main()a:int choice=1;leaderbase l;teacherbase t;studentbase s;while(choice!=0) cout*endl;coutendl;coutendl;coutsetw(20)*歡迎使用高校人員管理系統(tǒng)*endl;coutendl;coutendl;coutsetw(50) -n;coutsetw(50)請(qǐng)選擇您所需的操作 n;couts

25、etw(50)n;coutsetw(50)操作 1,領(lǐng)導(dǎo)信息管理n;coutsetw(50)n;coutsetw(50)操作 2,教師信息管理 n;coutsetw(50)n;coutsetw(50)操作 3,學(xué)生信息管理 n;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告16coutsetw(50)n;coutsetw(50)操作 0,退出信息管理系統(tǒng) n;coutsetw(50)choice;switch(choice) case 1:while(1) coutsetw(20);l.data(); goto a; case 2:while(1) coutsetw(20);t.data(); goto a;c

26、ase 3:while(1) coutsetw(20);s.data();goto a;break;return 0;第五章系統(tǒng)測(cè)試51 模塊測(cè)試以管理領(lǐng)導(dǎo)信息為例進(jìn)行說(shuō)明。(1)選擇對(duì)領(lǐng)導(dǎo)信息進(jìn)行添加 ,見(jiàn)圖 51北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告17圖 51(2)添加界面如圖 52圖 52(3)可以按編號(hào)和姓名進(jìn)行更改,見(jiàn)圖 53圖 53(4)按編號(hào)更改如圖 54圖 54(5)按姓名刪除如圖 55北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告18圖 55(6)可以按姓名、編號(hào)進(jìn)行查找,如圖 56圖 56(7)按姓名進(jìn)行查找,如圖 57圖 57(8)對(duì)領(lǐng)導(dǎo)信息進(jìn)行顯示,如圖 58北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告19圖

27、58(9)可以對(duì)人員信息進(jìn)行統(tǒng)計(jì),如圖 59圖 59(10)對(duì)男領(lǐng)導(dǎo)人數(shù)進(jìn)行統(tǒng)計(jì),如圖 510圖 51052 課程設(shè)計(jì)過(guò)程中遇到的問(wèn)題(1)程序?qū)崿F(xiàn)七個(gè)功能,怎樣選擇何種功能。解決方法:應(yīng)用 switch 語(yǔ)句,分多種情況進(jìn)行選擇。(2)系統(tǒng)在輸入過(guò)程中不能自動(dòng)保存,必須退出時(shí)才能自動(dòng)保存。用的是析構(gòu)函數(shù)保存。(3)窗口中內(nèi)容太多,顯得雜亂,顏色只有黑色。從網(wǎng)上搜索到了清屏函數(shù) system(”cls”) ,使屏幕干凈、整潔。并有 system(”color 2f”)顏色設(shè)置,告別了單一的畫面總結(jié)通過(guò)本程序設(shè)計(jì)掌握了類對(duì)象、類數(shù)組、繼承、派生、重載、輸入輸出流的定義和使用,對(duì)使用 c+語(yǔ)言編碼

28、有了更深層次的理解,也認(rèn)識(shí)到了自己還有許多不足之北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告20處,達(dá)到了實(shí)驗(yàn)?zāi)康?。本系統(tǒng)基本完成了題目的功能要求, 并且還在一定程度上進(jìn)行了優(yōu)化, 具體如下:優(yōu)點(diǎn):刪除時(shí)可以重新選擇;對(duì)無(wú)效數(shù)據(jù)的輸入進(jìn)行了有效的判斷;在刪除和查詢時(shí)既可以按編號(hào)也可以按姓名;每次刪除后自動(dòng)將人員信息顯示出來(lái)。缺點(diǎn):對(duì)于重名的人員系統(tǒng)照舊可以添加,沒(méi)有提醒;人員的編號(hào)可以重復(fù)??梢愿倪M(jìn)的地方:在添加成員時(shí)進(jìn)行驗(yàn)證,看所輸姓名和編號(hào)是否重復(fù),若重復(fù)進(jìn)行重新輸入;在實(shí)現(xiàn)七個(gè)功能的地方添加 exit 函數(shù),一旦操作失誤,不想繼續(xù)進(jìn)行,則系統(tǒng)跳轉(zhuǎn)會(huì)主界面進(jìn)行新的操作選擇。致謝在課程設(shè)計(jì)過(guò)程中遇到了很多問(wèn)

29、題,不過(guò)在老師和和同學(xué)們的幫助下大部分都得以解決,首先要對(duì)他們表示感謝。同時(shí),我們也要感謝學(xué)校為我們提供了大量的圖書(shū),通過(guò)看書(shū)我們也學(xué)到了很多課堂上學(xué)不到的東西。通過(guò)此次課程設(shè)計(jì)我最大的收獲是學(xué)會(huì)了自主學(xué)習(xí),也增加了與老師和同學(xué)們的交往、增進(jìn)了相互之間的感情。由于自己水平和能力有限,其中有不足和疏漏之處,懇求老師批評(píng)指正。北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告21參考文獻(xiàn)1張軍安.c+設(shè)計(jì)教程.西安:西北工業(yè)大學(xué)出版社 20062 周靄如 .林偉健. c+程序設(shè)計(jì)基礎(chǔ) .北京:電子工業(yè)出版社 20023 李巖visual c+實(shí)用教程北京:科學(xué)教育出版社 20034 徐曉梅 高麗visual c+程序設(shè)

30、計(jì) 北京:電子工業(yè)出版社 20045 陳偉柱c+代碼設(shè)計(jì)與重用北京:人民郵電出版社 2002附錄#include#include#include#include #includeconst int maxr=100;class people/人員基類protected:int number;/編號(hào)char name20;/姓名char sex4;/性別int age;/年齡public:void show()cout編號(hào)setw(10)姓名北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告22setw(10)性別setw(10)年齡endl;coutnumbersetw(10)namesetw(10)sexsetw

31、(10)ageendl;void set()cout請(qǐng)輸入編號(hào):number;cout請(qǐng)輸入姓名:name;cout請(qǐng)輸入性別:sex;cout請(qǐng)輸入年齡:age;char *getname() return name; /獲取名字int getno()return number;/獲取編號(hào)int getage() return age; /獲取年齡char* getsex()return sex; /獲取性別void ren(int n)coutnendl;void add(int n,char *na,int ag,char *se)number=n;age=ag;strcpy(name,

32、na);strcpy(sex,se);classleader: public people/領(lǐng)導(dǎo)類private:char bumen20;char zhicheng20;public:void set1()set();cout請(qǐng)輸入任職部門:bumen;cout請(qǐng)輸入職稱:zhicheng;void setbu(char bu)strcpy(bumen,bu);void setzhi(char zhi)strcpy(zhicheng,zhi);void show1()show();cout部門setw(10)職稱endl;coutbumensetw(10)zhichengendl;void

33、add1(int n,char *na,int ag,char*se,char *bu,char *zhi)add( n, na, ag, se);strcpy(bumen,bu);strcpy(zhicheng,zhi);char *getbu()return bumen;/獲取部北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告23門char *getzhi()return zhicheng;/獲取職稱;class leaderbaseprivate:int top;leader readmaxr;public:leaderbase()/將領(lǐng)導(dǎo)信息從 leader.txt讀取到 read中l(wèi)eader l;to

34、p=-1;fstream file(d:leader.txt,ios:in);while(1)file.read(char*)&l,sizeof(l);if(!file)break;top+;readtop=l;file.close();void delnu(int n)/按編號(hào)刪除int i,y=0;char x;for ( i=0;i=top;i+)if (readi.getno()=n)cout該領(lǐng)導(dǎo)情況:endl;coutsetw(10)編號(hào)setw(10)姓名setw(10)年齡setw(10)性別setw(10)系部setw(10)職稱endl;coutsetw(10)readi.

35、getno()setw(10)readi.getname()setw(10)readi.getage()setw(10)readi.getsex()setw(10)readi.getbu()setw(10)readi.getzhi()endl;cout是否確認(rèn)刪除?(y/n)x;if(x=y|x=y)y+;for(;i=top-1;i+)readi=readi+1;top-;/每刪除一個(gè)對(duì)總是減少一個(gè)if(y=0)cout未刪除該領(lǐng)導(dǎo)!endl;elsecout刪除后的信息為:endl;for (int i=0;i=top;i+)readi.show1();北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告24vo

36、id delname(char*na)/按姓名刪除int i,y=0;char x;for ( i=0;i=top;i+)if(strcmp(readi.getname(),na)=0)coutsetw(10)編號(hào)setw(10)姓名setw(10)年齡setw(10)性別setw(10)系部setw(10)職稱endl;coutsetw(10)readi.getno()setw(10)readi.getname()setw(10)readi.getage()setw(10)readi.getsex()setw(10)readi.getbu()setw(10)readi.getzhi()end

37、l;cout是否確認(rèn)刪除?(y/n)x;if(x=y|x=y)y+;for(;i=top-1;i+)readi=readi+1;top-;/每刪除一個(gè)對(duì)總是減少一個(gè)if(y=0)cout未刪除該領(lǐng)導(dǎo)!endl;elsecout刪除后的信息為:endl;for (int i=0;i=top;i+)readi.show1();void clear() top=-1; /刪除所有int add (int n,char *na,int ag,char*se ,char *bu,char *zhi) /增加職工leader *p=query(n);if (p=null) /不存在編號(hào)是 n 的領(lǐng)導(dǎo),執(zhí)行

38、增加top+;readtop.add1(n,na,ag,se,bu,zhi);return 1;return 0;leader *query(int n) /判斷是否存在編號(hào)是 n 的領(lǐng)導(dǎo)for (int i=0;i=top;i+)if(readi.getno()=n)return &readi;return null;leader *query1(char *na) /判斷將要增加的姓名是否存在北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告25for (int i=0;i=top;i+)if(strcmp(readi.getname(),na)=0 )return &readi;return null;voi

39、d disp() /領(lǐng)導(dǎo)信息顯示for (int i=0;i=top;i+)readi.show1();void data(); /聲明領(lǐng)導(dǎo)數(shù)據(jù)維護(hù)函數(shù)leaderbase() /將 read中的信息讀如到 leader.txt 中fstreamfile(d:leader.txt,ios:out);for (int i=0;i=top;i+)file.write(char*)&readi,sizeof(readi);file.close();void leaderbase:data()/定義領(lǐng)導(dǎo)維護(hù)int choice=1;int b=1;/標(biāo)記變量char x;int nan=0;/男領(lǐng)導(dǎo)i

40、nt nv=0; /女領(lǐng)導(dǎo)char name20; /姓名int number;/編號(hào)int age;/年齡char zhi20; /職稱char sex4;/性別char bu20;/系部leader *r;while (choice!=0)cout;cinchoice;switch (choice)case 1: /新增system(color 17); /顏色system(cls);/清屏coutnumber;coutname;coutage;coutsex;if(strcmp(m,sex)!=0&strcmp(f,sex)!=0)while(b)cout輸入性別有誤,請(qǐng)重新輸入:sex

41、;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告26if(strcmp(m,sex)=0|strcmp(f,sex)=0)b=0;if(strcmp(m,sex)=0)nan+;/統(tǒng)計(jì)男女領(lǐng)導(dǎo)的人數(shù)elsenv+;coutbu;coutzhi;add(number,name,age,sex,bu,zhi);break;case 2: /根據(jù)查詢結(jié)果更改system(color f4); /顏色system(cls);cout 按編號(hào)更改1endl;cout 按姓名更改2endl;cout 返回0b;while(b)switch(b)case 1:coutnumber;r=query(number);if (r=

42、null) cout該領(lǐng)導(dǎo)不存在show1();cout是否確認(rèn)更改任職部門?(y/n)x;if(x=y|x=y)cout輸入新的任職部門:bu;r-setbu(bu);add(number,name,age,sex,bu,zhi);cout是否確認(rèn)更改職稱?(y/n)x;if(x=y|x=y)cout請(qǐng)輸入新的職稱zhi;r-setzhi(zhi);add(number,name,age,sex,bu,zhi);r-show1();break;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告27case 2:coutname;r=query1(name);if (r=null)cout該領(lǐng)導(dǎo)不存在show1()

43、;cout是否確認(rèn)更改任職部門?(y/n)x;if(x=y|x=y) cout輸入新的任職部門:bu;r-setbu(bu);add(number,name,age,sex,bu,zhi);cout是否確認(rèn)更改職稱?(y/n)x;if(x=y|x=y) cout請(qǐng)輸入新的職稱zhi; r-setzhi(zhi);add(number,name,age,sex,bu,zhi);r-show1();break;case 3:break;break;break;case 3:/刪除system(color f1); /顏色 同樣是調(diào)用 docsystem(cls);cout 按編號(hào)刪除1endl;c

44、out 按姓名刪除2endl;cout 返回0b;while(b!=0)switch(b)case 1:coutnumber;r=query(number);if (r=null)cout該領(lǐng)導(dǎo)不存在endl; break; delnu(number); b=0;break;case 2:cout輸入領(lǐng)導(dǎo)姓名:name;r=query1(name);北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告28if (r=null)cout該領(lǐng)導(dǎo)不存在endl; break; delname(name);b=0;break;case 3:break;break;break;case 4: /查找system(color 0

45、7); /顏色system(cls);cout 按編號(hào)查找1endl;cout 按姓名查找2endl;cout 返回0b;while(b!=0)switch(b)case 1:coutnumber;r=query(number);if(r=null) cout該領(lǐng)導(dǎo)不存在show1();break;case 2:coutname;r=query1(name);if(r=null) cout該領(lǐng)導(dǎo)不存在show1();break;case 3:break;break;break;case 5:/顯示信息system(color fa); /顏色system(cls);disp();break;c

46、ase 6:system(color fd); /顏色system(cls);clear();break;case 7:system(color 48); /顏色system(cls);cout 統(tǒng)計(jì)男領(lǐng)導(dǎo)人數(shù) 1endl;cout 統(tǒng)計(jì)女領(lǐng)導(dǎo)人北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告29數(shù) 2endl;cout 返回0b;while(b!=0)switch(b)case 1:cout該高校男領(lǐng)導(dǎo)人數(shù)ren(nan);b=0; break;case 2:cout該高校女領(lǐng)導(dǎo)人數(shù)ren(nv);b=0;break;case 3:break;break;class teacher:public peoplep

47、rivate:char zhicheng20;inttime;char project20;public:void set2()set();cout請(qǐng)輸入職稱:zhicheng;cout請(qǐng)輸入任職時(shí)間:time;cout請(qǐng)輸入專業(yè):project;char *getzhi()return zhicheng;/獲取職稱intgettime()return time;/獲取任職時(shí)間char *getpro()return project;/獲取專業(yè)void setzhi(char zhi)/設(shè)置職稱strcpy(zhicheng,zhi);void settime(int t)/設(shè)置任職時(shí)間tim

48、e=t;void setpro(char pro)/設(shè)置專業(yè)strcpy(project,pro);void show2()show();cout職稱setw(10)任職時(shí)間setw(10)專業(yè)endl;coutzhicheng timeprojectendl;void add2(int n,char *na,int ag,char北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告30*se,char *zhi,int ti,char *pro)add( n, na, ag, se);strcpy(zhicheng,zhi);strcpy(project,pro);time=ti;class teacherbase

49、private:int top;teacher readmaxr;public:teacherbase()/將教師信息從 teacher.txt讀取到 read中teacher t;top=-1;fstreamfile(d:teacher.txt,ios:in);while(1)file.read(char*)&t,sizeof(t);if(!file)break;top+;readtop=t;file.close();void delnu(int n)/按編號(hào)刪除int i,y=0;char x;for ( i=0;i=top;i+)if (readi.getno()=n)cout該教師情況

50、:endl;readi.show2();cout是否確認(rèn)刪除?(y/n)x;if(x=y|x=y)y+;for(;i=top-1;i+)readi=readi+1;top-;/每刪除一個(gè)對(duì)象總是減少一個(gè)if(y=0)cout未刪除該教師!endl;elsecout刪除后的信息為:endl;for (int i=0;i=top;i+)readi.show2();北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告31void delname(char*na)/按姓名刪除int i,y=0;char x;for ( i=0;i=top;i+)if(strcmp(readi.getname(),na)=0)coutsetw

51、(10)編號(hào)setw(10)姓名setw(10)年齡setw(10)性別setw(10)系部setw(10)職稱endl;coutsetw(10)readi.getno()setw(10)readi.getname()setw(10)readi.getage()setw(10)readi.getsex()setw(10)readi.gettime()setw(10)readi.getzhi()setw(10)readi.getpro()endl;cout是否確認(rèn)刪除?(y/n)x;if(x=y|x=y)y+;for(;i=top-1;i+)readi=readi+1;top-;/每刪除一個(gè)對(duì)總

52、是減少一個(gè)if(y=0)cout未刪除該教師!endl;elsecout刪除后的信息為:endl;for (int i=0;i=top;i+)readi.show2();void clear() top=-1; /刪除所有int add2 (int n,char *na,int ag,char*se ,char *zhi,int ti,char *pro) /增加職工teacher *p=query(n);if (p=null) /不存在編號(hào)是 n 的教師,執(zhí)行增加top+;readtop.add2(n,na,ag,se,zhi,ti,pro);return 1;return 0;teache

53、r *query(int n) /判斷是否存在編號(hào)是 n 的領(lǐng)導(dǎo)for (int i=0;i=top;i+)if(readi.getno()=n)return &readi;return null;teacher *query1(char *na) /判斷將要增加的姓名是否存在北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告32for (int i=0;i=top;i+)if(strcmp(readi.getname(),na)=0 )return &readi;return null;void disp() /教師信息顯示for (int i=0;i=top;i+)readi.show2();void data

54、(); /聲明教師數(shù)據(jù)維護(hù)函數(shù)teacherbase() /將 read中的信息讀入到 teacher.txt 中fstreamfile(d:teacher.txt,ios:out);for (int i=0;i=top;i+)file.write(char*)&readi,sizeof(readi);file.close();void teacherbase:data()/定義教師維護(hù)int choice=1;int b=1;/標(biāo)記變量char x;int nan=0;/男教師int nv=0; /女教師char name20; /姓名int number;/編號(hào)int age;/年齡cha

55、r zhi20; /職稱char sex4;/性別char pro20;/專業(yè)int ti;/時(shí)間teacher *r;while (choice!=0)cout;cinchoice;switch (choice)case 1: /新增system(color 17); /顏色 同樣是調(diào)用 docsystem(cls);/清屏coutnumber;coutname;coutage;coutsex;if(strcmp(m,sex)!=0&strcmp(f,sex)!=0)while(b)cout輸入性別北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告33有誤,請(qǐng)重新輸入:sex;if(strcmp(m,sex)=0

56、|strcmp(f,sex)=0)b=0;if(strcmp(m,sex)=0)nan+;/統(tǒng)計(jì)男女領(lǐng)導(dǎo)的人數(shù)elsenv+;coutpro;coutzhi;coutti;add2(number,name,age,sex,zhi,ti,pro);break;case 2: /根據(jù)查詢結(jié)果更改system(color f4); /顏色system(cls);cout 按編號(hào)更改1endl;cout 按姓名更改2endl;cout 返回0b;while(b)switch(b)case 1:coutnumber;r=query(number);if (r=null) cout該教師不存在show2(

57、);cout是否確認(rèn)更改職稱?(y/n)x;if(x=y|x=y)cout輸入新的職稱:zhi;r-setzhi(zhi);add2(number,name,age,sex,zhi,ti,pro);cout是否確認(rèn)更改任職時(shí)間?(y/n)x;if(x=y|x=y)cout請(qǐng)輸入新的任職時(shí)間ti;r-settime(ti);北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告34add2(number,name,age,sex,zhi,ti,pro);cout是否確認(rèn)更改專業(yè)?(y/n)x;if(x=y|x=y)cout請(qǐng)輸入新的專業(yè)pro;r-setpro(pro);add2(number,name,age,sex,

58、zhi,ti,pro);r-show2();break;case 2:coutname;r=query1(name);if (r=null)cout該教師不存在show2();cout是否確認(rèn)更改職稱?(y/n)x;if(x=y|x=y)cout輸入新的職稱:zhi;r-setzhi(zhi);add2(number,name,age,sex,zhi,ti,pro);cout是否確認(rèn)更改任職時(shí)間?(y/n)x;if(x=y|x=y)cout請(qǐng)輸入新的任職時(shí)間ti;r-settime(ti);add2(number,name,age,sex,zhi,ti,pro);cout是否確認(rèn)更改專業(yè)?(y

59、/n)x;if(x=y|x=y)cout請(qǐng)輸入新的專業(yè)pro;r-setpro(pro);add2(number,name,age,sex,zhi,ti,pro);r-show2();break;case 3:break;北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告35break;break;case 3:/刪除system(color f1); /顏色system(cls);cout 按編號(hào)刪除1endl;cout 按姓名刪除2endl;cout 返回0b;while(b!=0)switch(b)case 1:coutnumber;r=query(number);if (r=null)cout該教師不存在e

60、ndl; break; delnu(number); b=0;break;case 2:cout輸入教師姓名:name;r=query1(name);if (r=null)cout該教師不存在endl; break; delname(name);b=0;break;case 3:break;break;break;case 4: /查找system(color 07); /顏色system(cls);cout 按編號(hào)查找1endl;cout 按姓名查找2endl;cout 返回0b;while(b!=0)switch(b)case 1:coutnumber;r=query(number);if

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論