C++高校人員信息管理系統(tǒng)課程設計報告報告_第1頁
C++高校人員信息管理系統(tǒng)課程設計報告報告_第2頁
C++高校人員信息管理系統(tǒng)課程設計報告報告_第3頁
C++高校人員信息管理系統(tǒng)課程設計報告報告_第4頁
C++高校人員信息管理系統(tǒng)課程設計報告報告_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、-. z.北華航天工業(yè)學院畢業(yè)論文基于C+的面向?qū)ο蟪绦蛟O計實例課程設計報告報告題目: 高校人員信息管理系統(tǒng) 作者所在系部: 計算機科學與工程系 作者所在專業(yè): 計算機科學與技術專業(yè) 作者所在班級:作 者 姓 名 :指導教師:完 成 時 間 : 2012.6 摘 要在當前的市場經(jīng)濟體制下,企業(yè)間競爭不斷,企業(yè)的發(fā)展與企業(yè)的有效管理密不可分,一個企業(yè)要偶適合自身特點的信息化管理系統(tǒng),以實現(xiàn)企業(yè)降低成本、及時反饋市場信息、完善服務質(zhì)量、提高經(jīng)濟效益、分析市場需求、制定銷售計劃和目標等管理目的。本文利用Microsoft Visual C+ 6.0編寫程序,實現(xiàn)了用戶對公司經(jīng)理、技術人員、銷售人員和

2、銷售經(jīng)理管理操作。本系統(tǒng)主要有八個功能模塊:添加功能、查詢功能、顯示功能、 編輯功能、刪除功能、 統(tǒng)計功能、保存功能、讀取功能關鍵詞:系統(tǒng)設計 類 信息 面向?qū)ο竽夸?TOC o 1-4 h z u HYPERLINK l _Toc233648113摘要 PAGEREF _Toc233648113 h 2HYPERLINK l _Toc233648114第一章緒論 PAGEREF _Toc233648114 h 2HYPERLINK l _Toc23364811511 課程設計的目的4HYPERLINK l _Toc23364811612 課程設計的背景和意義4HYPERLINK l _Toc

3、233648117121 課程設計的背景4HYPERLINK l _Toc233648120122 課程設計的意義4HYPERLINK l _Toc23364812113 課程設計環(huán)境5HYPERLINK l _Toc233648122第二章需求分析6HYPERLINK l _Toc23364812321 問題描述6HYPERLINK l _Toc23364812422 功能要求6HYPERLINK l _Toc23364812523 問題的解決方案6HYPERLINK l _Toc233648126第三章系統(tǒng)設計8HYPERLINK l _Toc23364812731 數(shù)據(jù)設計8HYPERL

4、INK l _Toc233648128311 類設計8HYPERLINK l _Toc233648129312 類之間的關系10HYPERLINK l _Toc233648130313 函數(shù)設計10HYPERLINK l _Toc23364813132 結構設計10HYPERLINK l _Toc233648132321 系統(tǒng)流程圖10HYPERLINK l _Toc233648133322 界面設計11HYPERLINK l _Toc233648134第四章系統(tǒng)實現(xiàn)13HYPERLINK l _Toc23364813541 類實現(xiàn)13HYPERLINK l _Toc23364813642 函

5、數(shù)實現(xiàn)13HYPERLINK l _Toc23364813743 主函數(shù)實現(xiàn)21HYPERLINK l _Toc233648138第五章系統(tǒng)測試23HYPERLINK l _Toc23364813951 模塊測試23HYPERLINK l _Toc23364814052 課程設計過程中遇到的問題28HYPERLINK l _Toc233648141總結29 致HYPERLINK l _Toc233648142 PAGEREF _Toc233648142 h 30HYPERLINK l _Toc233648143參考文獻31HYPERLINK l _Toc233648144任務書32第一章 緒論

6、11 課程設計的目的C+面向?qū)ο蟪绦蛟O計是計算機專業(yè)的基礎課程,本課程按照軟件程序設計所需能力進行教學設計,提出以項目模塊方式帶動相關知識點、實踐項目和理論并行的思路,將案例貫穿于課程始終,對原有的教學體系、教學容進行重新編排,按照從易到難的原則,將其巧妙地融入到項目開發(fā)過程中,降低學習難度,提高學生學習的信心,有效培養(yǎng)學生的應用能力和學習能力。12 課程設計的背景和意義隨著社會的發(fā)展,各種公司規(guī)模逐漸變大,需要對公司的員工信息進行統(tǒng)一有效的管理,方便的對人員的信息進行增添、查閱、修改、刪除、保存,這就必須有一個實用的管理系統(tǒng)。121 課程設計的背景1. 理論研究基礎掌握C+基本知識,具體包括

7、:掌握面向?qū)ο蠡局R和基本概念,掌握靜態(tài)成員的定義與作用,掌握友元的定義,掌握運算符重載方法,繼承與派生,虛函數(shù)的定義和使用,輸入、輸出流操作,文件的創(chuàng)建、打開、讀寫、關閉等。2. 技術層面的支持(1)定義基類與派生類,將數(shù)據(jù)成員與成員函數(shù)封裝在類中。(2)設計增添、顯示、查詢、修改、刪除、保存等函數(shù)。122 課程設計的意義通過課程設計的綜合訓練,培養(yǎng)了學生分析解決實際問題和編程等實際動手能力。幫助了同學系統(tǒng)的掌握C+課程的主要容。(2)通過詳細的實例分析,循環(huán)漸進的描述,啟發(fā)學生順利的完成設計。課程設計將設計要求、需求分析、算法設計、編程和實例測試運行分開,為學生創(chuàng)造分析問題、獨立思考的條

8、件。(3)通過編寫一個較長的程序,實現(xiàn)了對人員信息的管理,激發(fā)了學生學習編程的興趣。13 課程設計環(huán)境Microsoft Visual C+ 6.0第二章 需求分析21 問題描述*高校有四類員工:教師、實驗員、行政人員,教師兼行政人員;共有的信息包括:編號、性別、年齡等。其中,教師還包含的信息有:所在系部、專業(yè)、職稱;實驗員還包含的信息由:所在實驗室、職務;行政人員還包含的信息有:政治面貌、職稱等。22 功能要求(1)基本功能1) 添加功能:程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號要唯一,如果添加了重復編號的記錄時,則提示數(shù)據(jù)添加重復并取消

9、添加。2) 查詢功能:可根據(jù)編號、等信息對已添加的記錄進行查詢,如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息。3) 顯示功能:可顯示當前系統(tǒng)中所有記錄,每條記錄占據(jù)一行。4) 編輯功能:可根據(jù)查詢結果對相應的記錄進行修改,修改時注意編號的唯一性。5)刪除功能:主要實現(xiàn)對已添加的人員記錄進行刪除。如果當前系統(tǒng)中沒有相應的人員記錄,則提示記錄為空!”并返回操作;否則,輸入要刪除的人員的編號或,根據(jù)所輸入的信息刪除該人員記錄,如果沒有找到該人員信息,則提示相應的記錄不存。6) 統(tǒng)計功能:能根據(jù)多種參數(shù)進行人員的統(tǒng)計。例如,統(tǒng)計四類人員數(shù)量以及總數(shù),或者統(tǒng)計男、女員工的數(shù)量,或者統(tǒng)計

10、*年齡段人員的數(shù)量等。7)保存功能:可將當前系統(tǒng)中各類人員記錄存入文件中,存入方式任意。8)讀取功能:可將保存在文件中的人員信息讀入到當前系統(tǒng)中,供用戶進行使用。23 問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: 1)應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計;2)分析系統(tǒng)中的各個實體及它們之間的關系; 3)根據(jù)問題描述,設計系統(tǒng)的類層次; 4)完成類層次中各個類的描述; 5)完成類中各個成員函數(shù)的定義; 6)完成系統(tǒng)的應用模塊; 7)功能調(diào)試; 8)完成系統(tǒng)總結報告。第三章 系統(tǒng)設計31 數(shù)據(jù)設計311 類設計1.人員的管理需包含人員的基本信息,所以定義一個人

11、員類如表3-1所示:表 3-1員工類類名人員類數(shù)據(jù)成員protected:num(編號) char name20()char se*10(性別) age(年齡)成員函數(shù)public: Input():輸入函數(shù)Output():輸出函數(shù)GetNum():獲取編號 GetName(): 獲取2. 根據(jù)高校人員的工作性質(zhì)的不同,將所有員工分為教師、實驗員、行政人員,教師兼行政人員表3-2教師類類名教師類(公有繼承員工類)數(shù)據(jù)成員protected:char depart20(部門);char spec20(專業(yè));char title20(職稱);成員函數(shù)public:void Input_1():

12、輸入函數(shù)void Output_1():輸出函數(shù) char GetDepart(): 獲取部門char GetSpec(): 獲取專業(yè)char GetTitle(): 獲取職稱 friend Tea_Manage:友元教師管理類表3-3實驗員類類名實驗員類(公有繼承員工類)數(shù)據(jù)成員protected:char te*troom20(所在實驗室)char post20(職務)成員函數(shù)public:void Input_3():輸入函數(shù)void Output_3():輸出函數(shù)char GetTe*troom(): 獲取實驗室char GetPost(): 獲取職務friend E*p_Manage

13、: 友元實驗人員管理類表3-4行政人員類類名行政人員類(公有繼承員工類)數(shù)據(jù)成員public: char politics20:(政治面貌)char title20:(職稱)成員函數(shù)public: void Input_2():輸入函數(shù)void Output_2():輸出函數(shù)char GetPolitics():獲取政治面貌char GetTitle():獲取職稱friend Sta_Manage:友元行政人員管理類表3-5教師兼行政人員類類名教師兼行政人員類(公有繼承員工類)數(shù)據(jù)成員成員函數(shù)Public:void Input_4():輸入函數(shù)void Output_4():輸出函數(shù)frien

14、d Tea_Sta_Manage:友元教師行政人員管理 類4、為了控制以上的類,分別建立了4個管理類,以經(jīng)理的管理了為例:表 3-6 教師管理類類名教師管理類數(shù)據(jù)成員Teacher Tea20 (創(chuàng)建教師的空間); top(統(tǒng)計人員數(shù)和進行操作時的指針); 312 類之間的關系員工類派生出教師類、實驗員類、行政人員類,教師類和行政人員類派生出教師兼行政人員類。313 函數(shù)設計根據(jù)要求,為了功能的實現(xiàn),通過top實現(xiàn)功能。分別以8個功能函數(shù)進行對數(shù)據(jù)的操作(下面以經(jīng)理類為例)void Add(); (信息的添加) void Search(); (信息的查找)void Edit(); (信息的編輯

15、)void Total(); (信息的統(tǒng)計)void Delete(); (信息的刪除)void Show(); (信息的顯示)void Save(); (信息的存儲) void Read(); (信息的讀取)32 結構設計321 系統(tǒng)流程圖人員類教師類實驗員類行政人員類教師兼行政人員類322 界面設計主菜單界面,如圖33所示圖33 主菜單教師菜單界面,如圖3-4 圖34 教師管理界面3. 教師查詢界面,如圖3-5所示: 圖35 教師查詢界面教師刪除界面,如圖3-6所示:圖36 教師刪除界面第四章 系統(tǒng)實現(xiàn)41 類實現(xiàn)class Person /人員類class Teacher:virtual

16、 public Person /教師類class Staff:virtual public Person /行政人員類class E*perimenter:public Person /實驗員類class Tea_Sta:public Teacher,public Staff /教師兼行政人員類class Tea_manage /教師管理類class Sta_manage /行政人員管理類class E*p_manage /實驗員管理類class Tea_Sta_manage /教師兼行政人員管理類42 函數(shù)實現(xiàn)void Person:Input() /員工信息輸入cout請輸入編號:num;

17、cout請輸入名字:name;cout請輸入性別:se*;cout請輸入年齡:age;void Teacher:Input_1() /教師信息輸入Input();cout請輸入所在系別:depart;cout請輸入專業(yè)名稱:spec;cout請輸入職稱:title;void Person:Output () /員工信息輸出cout編號:numendl;cout:nameendl;cout性別:se*endl;cout年齡:ageendl;void Teacher:Output_1() /教師信息輸出Output();cout所在系別:departendl;cout所在專業(yè):specendl;c

18、out職稱:titleendl;int Person:GetNum() /返回編號return num;char Person:GetName() /返回return name20;char Person:GetSe*() /返回性別return se*10;int Person:GetAge() /返回年齡return age; char Teacher:GetDepart() /返回所在部門return depart20;char Teacher:GetSpec() /返回專業(yè)return spec20;char Teacher:GetTitle() /返回職稱return title20

19、;void Tea_Manage:Add() /教師信息的添加Teacher t;cout請輸入新增人員的信息:endl;t.Input_1();int i;for( i=0;itop;i+)if(t.GetNum()=Teai.GetNum()cout編號已存在,請重新輸入:1000)cout存已滿,不可添加endl;else if(top=1000)Teatop=t; cout添加成功endl;top+; return;void Tea_Manage:Show() /教師信息的顯示for(int i=0;itop;i+)Teai.Output_1(); coutendl;void Tea_

20、Manage:Search() /教師信息的查詢if(top=0)cout沒有任何信息endl;int choice;int i=0;int m=0; int n=0;int num;cout請輸入您的選擇:endl; cout查詢方式 1.按名字 2.按編號choice;switch(choice)case 1: char name20;cout請輸入您所查詢的人員名字:name;for(i;itop;i+)if(!strcmp(name,T )Teai.Output_1();break;if(i=top)cout查無此人endl;break;case 2:cout請輸入編號

21、:num;for(i=0;itop;i+)if(num=Teai.GetNum()Teai.Output_1();if(i=top)cout查無此人endl;break;void Tea_Manage:Edit() /教師信息的修改int i=0; Search();cout+endl;cout1.修改編號 2.修改 3.修改性別 4.修改年齡 5.修改系別 6.修改專業(yè) 7.修改職稱 0.退出endl;cout+choice;switch(choice)case 1:cout編號不可修改endl;break;case 2:char na20; cout請輸入修改后的:na; strcpy(T

22、,na); cout修改成功endl;break;case 3: int m; char a10;cout輸入修改后的容:a; strcpy(Teai.se*,a); cout修改成功,是否繼續(xù)(1/2)m; if(m=1) return;break;case 4: int b,m;cout請輸入修改后的年齡:b; Teai.age=b;cout修改成功,是否繼續(xù)(1/2)m; if(m=1)return;break;case 5: int m; char n20; cout請輸入修改后系部:n; strcpy(Teai.depart,n);cout修改成功,是否繼續(xù)(1/2)

23、m; if(m=1) return; break;case 6: int m; char n20; cout請輸入修改后專業(yè):n; strcpy(Teai.spec,n);cout修改成功,是否繼續(xù)(1/2)m; if(m=1)return; break;case 7: int m; char n20; cout請輸入修改后的職稱:n; strcpy(Teai.title,n); cout修改成功,是否繼續(xù)(1/2)m; if(m=1) return; break;case 0:cout退出成功!endl;break;default:cout無此選項!請重試!endl;break;void T

24、ea_Manage:Delete() /教師信息的刪除Teacher t;int i=0;cout請輸入你想刪除人員的編號:t.num;if(top=0)cout沒有人員選擇endl;for(i;itop;i+)if(t.num=Teai.num)Teai=Teai+1;top-;break;if(i=top)cout查無此人endl;cout刪除成功m;if(m=1) return;void Tea_Manage:Total() /教師信息的統(tǒng)計couttopendl;void Tea_Manage:Save() /教師信息的保存ofstream outfile(c:/高校管理系統(tǒng)之教師類.

25、dat,ios:binary);if(!outfile)cerropen error!endl;abort();for(int i=0;itop;i+)outfile.write(char *)&Teai,sizeof(Teai);cout保存成功endl;outfile.close();void Tea_Manage:Read() /教師信息的讀出ifstream infile(c:/高校管理系統(tǒng)之教師類.dat,ios:binary);if(!infile)cerropen error!endl;abort();while(infile.read(char *)&Teatop,sizeof

26、(Tea0)top+;cout讀取成功endl;infile.close();4.3 主函數(shù)實現(xiàn)int main() /主函數(shù)的實現(xiàn)cout *歡迎進入北華航天工業(yè)學院人員管理系統(tǒng)*endl;int choice;docout *主菜單*nendl;coutendl;cout| |endl;cout 行政人員管理 2 = 教師管理 |endl; cout 實驗人員管理 4 =教師兼行政人員管理 |endl;cout 退出系統(tǒng) |endl;cout| |endl;coutendl; coutchoice;switch(choice)case 1:StuMenu();break;case 2:Te

27、aMenu();break;case 3:E*pMenu();break;case 4:Tea_StaMenu();break;case 0:coutn您已安全退出系統(tǒng).endl;break;default:coutn沒有此選項.請重選.endl;break;while(choice!=0);coutn *歡迎您下次再使用本系統(tǒng)!*endl; return 0;第五章 系統(tǒng)測試51 模塊測試以教師信息為例進行說明。選擇對教師信息進行添加 ,見圖51 ,圖52 圖51 圖52選擇對教師信息顯示 圖53 圖53選擇對教師信息修改 圖54 圖54(4)修改后顯示 圖55 圖55(5)對教師信息的刪除

28、 圖56 圖56對教師信息保存 圖57 圖57對保存的教師信息的讀取 圖58 圖58程序的退出 圖59 圖5952 課程設計過程中遇到的問題1、程序設計時選擇了數(shù)組的方式來對數(shù)據(jù)的操作,在查詢時,由于思路不明確,沒有成功實現(xiàn)程序?qū)處熜畔⒌牟樵儯谡埥汤蠋熤螅擅畹剡\用了變量top,終于完成了查詢的功能。2、文件的存入和讀出使用的2進制的方法,對此,因為掌握不是很熟練,總是存入讀出錯誤,在查閱了課本書籍之后,仍出現(xiàn)類似問題,請教老師后明白了2進制存入、讀出的方法,實現(xiàn)了相關功能。總 結通過本程序設計掌握了類對象、類數(shù)組、繼承、派生、重載、輸入輸出流的定義和使用,對使用C+語言編碼有了更深層次

29、的理解,也認識到了自己還有許多不足之處,達到了實驗目的。本系統(tǒng)基本完成了題目的功能要求,并且還在一定程度上進行了優(yōu)化,具體如下:優(yōu)點:刪除時可以重新選擇;對無效數(shù)據(jù)的輸入進行了有效的判斷;在刪除和查詢時既可以按編號也可以按;每次刪除后自動將人員信息顯示出來。缺點:對于重名的人員系統(tǒng)照舊可以添加,沒有提醒;人員的編號可以重復。可以改進的地方:在添加成員時進行驗證,看所輸和編號是否重復,若重復進行重新輸入;在實現(xiàn)七個功能的地方添加e*it函數(shù),一旦操作失誤,不想繼續(xù)進行,則系統(tǒng)跳轉(zhuǎn)會主界面進行新的操作選擇。致 本次課程設計主要使用了本學期學習的Microsoft Visual C+ 6.0的設計環(huán)

30、境,容涵蓋了c和c+語言部分知識,在本次編程過程中,我學習到了很多。例如:在編程首先要有全局觀念,要認識到自己是要編寫怎樣的程序,并且要構建相應的程序結構,否則漫無目的的編寫只能造成自己后期的負擔。其次要熟練的掌握老師以前所教授的相關知識,這樣在編寫程序的時候才能得心應手。再次,要分步進行程序的編寫,實現(xiàn)一個功能,再實現(xiàn)另一個功能,不可以全部編好最后在檢查,否則最終無從下手。我現(xiàn)在才明白一個真正好的程序是需要很多人共同完成的,不是說一個人就能完成一個程序的編寫,現(xiàn)在的程序還不是很大,但如果是一個巨型系統(tǒng),任何一個人是不可能完成的,像是微軟操作系統(tǒng)也是由很多高手一起編寫的,這次編寫過程中,我請教

31、了老師和同學一些問題,是在他們的幫助下我才最終順利地完成任務。讓我深刻的認識到團隊的力量。所以在以后學習過程中,我想應該多探討,多幫助,多學習才行。參考文獻1 煒,徐慧. Visual C+數(shù)據(jù)庫編程技術與實例 . :人民郵電,20052 鄧阿奇,丁有和. Visual C+ 教程 . :清華大學,2004年9月3 譚浩強. C+程序設計. :清華大學,2004年4 譚浩強.C語言程序設計(第2版). :清華大學, 2003 基于C+的面向?qū)ο蟪绦蛟O計實例任務書一目的與要求1、目的(1)要求學生能夠熟練掌握C+語言的基本知識和技能。(2)基本掌握面向?qū)ο蟪绦蛟O計的基本思路和方法。(3)能夠利用

32、所學的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O計問題。2、基本要求(1)要求利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完成系統(tǒng)的設計。(2)在系統(tǒng)的設計中,要求運用面向?qū)ο蟮臋C制(繼承、派生及多態(tài)性)來實現(xiàn)系統(tǒng)功能,并且要建立清晰的類層次關系。(3)在系統(tǒng)設計中要分析和定義各個類,每個類中要有各自的數(shù)據(jù)成員和成員函數(shù)。(4)主函數(shù)中提供菜單選項,并給出足夠的選擇信息以及提示信息。(5)程序具有一定的健壯性,不會因為用戶的輸入錯誤引起程序運行錯誤而中斷執(zhí)行。對輸入值的類型、大小圍、字符串的長度等,進行正確性檢查,對不合法的輸入值給出出錯信息,指出錯誤類型,等待重新輸入。3、創(chuàng)新要求在基本要求達到后,可根據(jù)實際情況進行創(chuàng)新設計,如根據(jù)查找結果進行修改的功能及設計出比較友好的界面等。二驗收方式完成設計容之后,即可開始驗收。驗收時,首先由學生簡要說明所做題目的思路、設計結構及實現(xiàn)過程,然后運行程序并進行測試,對輸出結果作出解釋,同時認真回答教師提出的問題。三課設報告在完成驗收之后,提交課設報告。其中報告中需包括系統(tǒng)設計要求,設計思路,系統(tǒng)功能模塊圖,系統(tǒng)流程圖,類的層次圖(包括類成員列表),調(diào)試過程,關鍵程序代碼,總結,參考書目等。另外,課設報告要嚴格遵守模板文件的格式要求,思路清晰,容詳實豐富。四成績評定課設總成績=驗收成績(50%)+課程設計報告成績(30%)+程序

溫馨提示

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

評論

0/150

提交評論