C高校人員信息管理系統(tǒng)_第1頁
C高校人員信息管理系統(tǒng)_第2頁
C高校人員信息管理系統(tǒng)_第3頁
免費預覽已結束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

1、基于C+勺面向對象程序設計實例課程設計報告課程名稱C+面向對象程序設計(一) 課題名稱高校人員信息管理系統(tǒng)專業(yè)計算機科學與技術班級1220541學號姓名苗鵬程指導教師侯歡歡、課程設計題目:(二) 高校人員信息管理系統(tǒng)、目的與要求:1、目的:(1) 要求學生達到熟練掌握C+吾言的基本知識和技能;基本掌握面向對象程序設計的基本思路和方法;能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。2、基本要求:(1) 要求利用面向對象的方法以及C+祐勺編程思想來完成系統(tǒng)的設計;要求在設計的過程中,建立清晰的類層次;在系統(tǒng)中至少要定義四個類,每個類中要有各自的屬性和方法;在系統(tǒng)的設計中,至少要用到

2、面向對象的一種機制。3、創(chuàng)新要求:在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結果進行修改的功能。(三) 、設計方法和基本原理:1. 功能要求添加功能程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求人員的編號要唯一,如果添加了重復編號的記錄時,則提示用戶數(shù)據(jù)添加重復并取消添加。查詢功能可根據(jù)編號、姓名等信息對已添加的記錄進行查詢。如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息。顯示功能可顯示當前系統(tǒng)中所有記錄。修改功能可根據(jù)查詢結果對相應的記錄進行修改,修改時注意編號的唯一性。刪除功能對已添加的人員記錄進行刪除。如果當前系統(tǒng)中沒有相應的人員記

3、錄,貝提示“記錄為空!”并返回操作;否則輸入要刪除的人員的編號或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒有找到該人員信息,則提示相應的記錄不存在。統(tǒng)計功能能根據(jù)多種參數(shù)進行人員的統(tǒng)計。例如:統(tǒng)計四類人員數(shù)量以及總數(shù),統(tǒng)計男、女員工的數(shù)量,統(tǒng)計某年齡段人員的數(shù)量等。保存功能將當前系統(tǒng)中各類人員記錄存入文件中。讀取功能將保存在文件中的人員信息讀入到當前系統(tǒng)中,以供用戶使用。在完成以上基本功能的基礎上,可自行進行擴展或完善。2. 問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1) 應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計;分析系統(tǒng)中的各個實體及它們之間的關系包

4、括屬性和行為;根據(jù)問題描述,設計系統(tǒng)的類層次;完成類層次中各個類的描述(包括屬性和方法);(2) 完成類中各個成員函數(shù)的定義;(3) 完成系統(tǒng)的應用模塊;(4) 功能調試;完成系統(tǒng)總結報告以及系統(tǒng)使用說明書錯誤!未指定書簽。目錄摘要第一章緒論錯誤!未指定書簽。1.1課程設計的目的41.2課程設計的背景和意義42.1課程設計的背景41.2.2課程設計的意義41.3課程設計環(huán)境52. 第二章需求分析61問題描述62功能要求63問題的解決方案6第三章系統(tǒng)設計81數(shù)據(jù)設計81.1類設計81.2類之間的關系101.3函數(shù)設計102結構設計103.2.1系統(tǒng)流程圖103.2.2界面設計111. 第四章系統(tǒng)

5、實現(xiàn)131類實現(xiàn)132函數(shù)實現(xiàn)133主函數(shù)實現(xiàn)213. 第五章系統(tǒng)測試231模塊測試232課程設計過程中遇到的問題28結論29致謝31錯誤!未指定書簽。1. 參考書目第一章緒論1.1課程設計的目的C+浦向對象程序設計是計算機專業(yè)的基礎課程,本課程按照軟件程序設計所需能力進行教學設計,提出以項目模塊方式帶動相關知識點、實踐項目和理論并行的思路,將案例貫穿于課程始終,對原有的教學體系、教學內容進行重新編排,按照從易到難的原則,將其巧妙地融入到項目開發(fā)過程中,降低學習難度,提高學生學習的信心,有效培養(yǎng)學生的應用能力和學習能力。1.2課程設計的背景和意義隨著社會的發(fā)展,各種公司規(guī)模逐漸變大,需要對公司

6、的員工信息進行統(tǒng)一有效的管理,方便的對人員的信息進行增添、查閱、修改、刪除、保存,這就必須有一個實用的管理系統(tǒng)。1.2.1課程設計的背景1. 理論研究基礎掌握C+本知識,具體包括:掌握面向對象基本知識和基本概念,掌握靜態(tài)成員的定義與作用,掌握友元的定義,掌握運算符重載方法,繼承與派生,虛函數(shù)的定義和使用,輸入、輸出流操作,文件的創(chuàng)建、打開、讀寫、關閉等。(1) 技術層面的支持定義基類與派生類,將數(shù)據(jù)成員與成員函數(shù)封裝在類中。(2) 設計增添、顯示、查詢、修改、刪除、保存等函數(shù)。1.2.2課程設計的意義(1) 通過課程設計的綜合訓練,培養(yǎng)了學生分析解決實際問題和編程等實際動手能力。幫助了同學系統(tǒng)

7、的掌握C+!程的主要內容。通過詳細的實例分析,循環(huán)漸進的描述,啟發(fā)學生順利的完成設計。課程設計將設計要求、需求分析、算法設計、編程和實例測試運行分開,為學生創(chuàng)造分析問題、獨立思考的條件。(2) 通過編寫一個較長的程序,實現(xiàn)了對人員信息的管理,激發(fā)了學生學習編程的興趣。1.3課程設計環(huán)境2. MicrosoftVisualC+6.0第二章需求分析2.1問題描述某高校有四類人員:教師、實驗員、行政人員、教師兼行政人員;共有的信息包括:編號、姓名、性別、年齡等。其中,教師還包含的信息有:所在系部、專業(yè)、職稱;實驗員還包含的信息有:所在實驗室、職務;行政人員還包含的信息有:政治面貌、職稱等。2.2功能

8、要求1) 添加功能程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求人員的編號要唯一,如果添加了重復編號的記錄時,則提示用戶數(shù)據(jù)添加重復并取消添加。2) 查詢功能可根據(jù)編號、姓名等信息對已添加的記錄進行查詢。如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息。3) 顯示功能可顯示當前系統(tǒng)中所有記錄4) 修改功能可根據(jù)查詢結果對相應的記錄進行修改,修改時注意編號的唯一性。5) 刪除功能對已添加的人員記錄進行刪除。如果當前系統(tǒng)中沒有相應的人員記錄,貝提示“記錄為空!”并返回操作;否則輸入要刪除的人員的編號或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒有

9、找到該人員信息,則提示相應的記錄不存在。6) 統(tǒng)計功能能根據(jù)多種參數(shù)進行人員的統(tǒng)計。例如:統(tǒng)計四類人員數(shù)量以及總數(shù),統(tǒng)計男、女員工的數(shù)量,統(tǒng)計某年齡段人員的數(shù)量等。7) 保存功能將當前系統(tǒng)中各類人員記錄存入文件中。讀取功能將保存在文件中的人員信息讀入到當前系統(tǒng)中,以供用戶使用。在完成以上基本功能的基礎上,可自行進行擴展或完善。2.3問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:1) 應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計;2) 分析系統(tǒng)中的各個實體以及它們之間的關系;3) 根據(jù)問題描述,設計系統(tǒng)的類層次;4) 完成類層次中各個類的描述;5) 完成類中各個成員函

10、數(shù)的定義;6) 完成系統(tǒng)的應用模塊;7) 功能調試;8) 完成系統(tǒng)總結報告。3. 第三章系統(tǒng)設計1數(shù)據(jù)設計3.1.1類設計1.人員的管理需包含人員的基本信息,所以定義一個人員類如表3-1所示:表3-1員工類類名人員類數(shù)據(jù)成員protected:num(編號)charname20(姓名)charsex10(性別)age(年齡)成員函數(shù)public:Input():輸入函數(shù)Output():輸出函數(shù)GetNum():獲取編號GetName():獲取姓名2.根據(jù)高校人員的工作性質的不同,將所有員工分為教師、實驗員、行政人員,教師兼行政人員表3-2教師類類名教師類(公有繼承員工類)數(shù)據(jù)成員protec

11、ted:chardepart20(部門);charspec20(專業(yè));chartitle20(職稱);成員函數(shù)public:voidInput_1():輸入函數(shù)voidOutput_1():輸出函數(shù)charGetDepart():獲取部門charGetSpec():獲取專業(yè)charGetTitle():獲取職稱friendTeaManage:友元教師管理類表3-3實驗員類類名實驗員類(公有繼承員工類)數(shù)據(jù)成員protected:chartextroom20(所在實驗室)charpost20(職務)成員函數(shù)public:voidInput_3():輸入函數(shù)voidOutput_3()輸出函數(shù)c

12、harGetTextroom():獲取實驗室charGetPost():獲取職務friendExp_Manage:友元實驗人員管理類表3-4行政人員類類名行政人員類(公有繼承員工類)數(shù)據(jù)成員public:charpolitics20:(政治面貌)chartitle20:(職稱)成員函數(shù)public:voidInput_2():輸入函數(shù)voidOutput_2()輸出函數(shù)charGetPolitics():獲取政治面貌charGetTitle()獲取職稱friendSta_Manage:友元行政人員管理類表3-5教師兼行政人員類類名教師兼行政人員類(公有繼承員工類)數(shù)據(jù)成員成員函數(shù)Public:

13、voidInput_4():輸入函數(shù)voidOutput_4()輸出函數(shù)friendTea_Sta_Manage:友元教師行政人員管理類4、為了控制以上的類,分別建立了4個管理類,以經(jīng)理的管理了為例:表3-6教師管理類類名教師管理類數(shù)據(jù)成員TeacherTea20(創(chuàng)建教師的空間);top(統(tǒng)計人員數(shù)和進行操作時的指針);3.1.2類之間的關系員工類派生出教師類、實驗員類、行政人員類,教師類和行政人員類派生出教師兼行政人員類。3.1.3函數(shù)設計根據(jù)要求,為了功能的實現(xiàn),通過top實現(xiàn)功能。分別以8個功能函數(shù)進行對數(shù)據(jù)的操作(下面以經(jīng)理類為例)voidAdd();(信息的添加)教師兼行政人員類v

14、oidSearch();(信息的查找)voidEdit();(信息的編輯voidTotal();(信息的統(tǒng)計)j3kvoidDelete();(信息的刪除)voidShoW);師類(信息的顯示)彳亍政人員類II實驗員類voidSave();八(信息的存儲)MvoidRead();(信息的讀版)3.3.2結構設討2.1系統(tǒng)點呈長人員類1. 3.2.2界面設計圖33主菜單主菜單界面,如圖33所示教師菜單界面,如圖3-4圖34教師管理界面教師查詢界面,如圖3-5所示:2. 圖3-5教師查詢界面教師刪除界面,如圖3-6所示:4. 圖3-6教師刪除界面第四章系統(tǒng)實現(xiàn)1類實現(xiàn)/classPersoncla

15、ssTeacher:virtualpublicPerson/classGovernment:virtualpublicPerson/classExperimenter:publicPerson/classTea_Gover:publicTeacher,publicGovernment:/classTea_manage/classGov_manage/classExp_manage/2. classTea_GoverManage/人員類教師類行政人員類實驗員類教師兼行政人員類教師管理類行政人員管理類實驗員管理類教師兼行政人員管理類2函數(shù)實現(xiàn)員工信息輸入教師信息輸入voidPerson:Input

16、()cout請輸入編號cout請輸入名字cout請輸入性別cout請輸入年齡voidTeacher:Input_1()/num;name;sex;age;/Input();cout請輸入所在系另1J:depart;cout請輸入專業(yè)名稱:spec;cout請輸入職稱:title;員工信息輸出voidPerson:Output()/cout編號:numendl;cout姓名:nameendl;cout性另ij:sexendl;cout年齡:ageendl;教師信息輸出voidTeacher:Output_1()/Output();cout所在系另1J:departendl;cout所在專業(yè):sp

17、ecendl;返回編號返回姓名返回性別返回年齡返回所在部門返回專業(yè)返回職稱教師信息的添加:endl;endl;教師信息的顯示cout職稱:titleendl;intPerson:GetNum()/(returnnum;charPerson:GetName()/(returnname20;charPerson:GetSex()/(returnsex10;intPerson:GetAge()/(returnage;charTeacher:GetDepart()/(returndepart20;charTeacher:GetSpec()/(returnspec20;charTeacher:GetTi

18、tle()/(returntitle20;voidTea_Manage:Add()/(一Teachert;cout請輸入新增人員的信息:endl;t.Input_1();inti;for(i=0;itop;i+)(if(t.GetNum()=Teai.GetNum()(cout1000)cout內存已滿,不可添加elseif(top=1000)Teatop=t;cout添加成功endl;top+;return;voidTea_Manage:Show()/一for(inti=0;itop;i+)Teai.Output_1();coutendl;voidTea_Manage:Search()/教師

19、信息的查詢(一if(top=0)(cout”沒有任何信息”endl;intchoice;inti=0;intm=0;intn=0;intnum;cout請輸入您的選擇:endl;cout查詢方式1.按名字2.按編號choice;switch(choice)(case1:(charname20;cout請輸人您所查詢的人員名字:name;for(i;itop;i+)(if(!strcmp(name,T)(Teai.Output_1();break;if(i=top)cout查無此人endl;break;case2:(cout請輸入編號:num;for(i=0;itop;i+)(i

20、f(num=Teai.GetNum()(Teai.Output_1();一if(i=top)cout查無此人endl;break;工voidTea_Manage:Edit()/教師信息的修改(一inti=0;Search();cout+endl;cout1.修改編號2.修改姓名3.修改性別4.修改年齡5.修改系別6.修改專業(yè)7.修改職稱0.退出endl;cout+choice;switch(choice)(case1:cout編號不可修改endl;break;case2:(charna20;cout請輸入修改后的姓名:na;strcpy(T,na);cout修改成功endl;b

21、reak;case3:(intm;chara10;cout輸入修改后的內容:a;strcpy(Teai.sex,a);cout修改成功,是否繼續(xù)(1/2)m;if(m=1)return;break;case4:(intb,m;cout請輸入修改后的年齡:b;Teai.age=b;cout修改成功,是否繼續(xù)(1/2)”m;if(m=1)return;break;case5:(intm;charn20;cout請輸入修改后系部:n;strcpy(Teai.depart,n);cout修改成功,是否繼續(xù)(1/2)m;if(m=1)return;break;case6:(intm;charn20;co

22、ut請輸入修改后專業(yè):n;strcpy(Teai.spec,n);cout修改成切,是否繼續(xù)(1/2)m;if(m=1)return;break;case7:(intm;charn20;cout請輸入修改后的職稱:n;strcpy(Teai.title,n);cout修改依功,是否繼續(xù)(1/2)m;if(m=1)return;break;case0:cout退出成功!endl;break;default:cout無此選項!請重認!endl;break;voidTea_Manage:Delete()/(一Teachert;inti=0;cout請輸入你想刪除人員的編號:t.num;if(top=

23、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;voidTea_Manage:Total()/(一couttopendl;voidTea_Manage:Save()/(一if(!outfile)(cerropenerror!endl;abort();for(inti=0;itop;i+)(outfile.write(char*)&Teai,sizeof(Teai);cout保存成功endl;outfile

24、.close();voidTea_Manage:Read()/(一if(!infile)(cerropenerror!endl;abort();while(infile.read(char*)&Teatop,sizeof(Tea0)top+;cout讀取成折endl;教師信息的刪除教師信息的統(tǒng)計教師信息的保存教師信息的讀出infile.close();4.3主函數(shù)實現(xiàn)intmain()/主函數(shù)的實現(xiàn)(cout*歡迎進入北華航天工業(yè)學院人員管理系統(tǒng)*endl;intchoice;do(cout*主菜單*nendl;coutendl;cout|endl;cout行政人員管理2=教師管理|endl;

25、cout實驗人員管理4=教師兼行政人員管理|endl;cout退出系統(tǒng)|endl;cout|endl;coutendl;coutchoice;switch(choice)(case1:StuMenu();break;case2:TeaMenu();break;case3:ExpMenu();break;您已安全退出系統(tǒng).endl;break;沒有此選項.請重選.”endl;break;case4:Tea_StaMenu();break;case0:coutndefault:coutn*歡迎您下次再使用本系統(tǒng)!*endl;while(choice!=0);coutnreturn0;3. 第五章系

26、統(tǒng)測試5. 1模塊測試以教師信息為例進行說明。選擇對教師信息進行添加,見圖5-1,圖5-2圖51圖52選擇對教師信息顯示圖5-3圖53選擇對教師信息修改圖5-4圖54修改后顯示圖55圖55對教師信息的刪除圖56對教師信息保存圖5-7圖57對保存的教師信息的讀取圖5-8圖58程序的退出圖5-9圖592課程設計過程中遇到的問題1、程序設計時選擇了數(shù)組的方式來對數(shù)據(jù)的操作,在查詢時,由于思路不明確,沒有成功實現(xiàn)程序對教師信息的查詢,在請教老師之后,巧妙地運用了變量top,終于完成了查詢的功能。2、文件的存入和讀出使用的2進制的方法,對此,因為掌握不是很熟練,總是存入讀出錯誤,在查閱了課本書籍之后,仍

27、出現(xiàn)類似問題,請教老師后明白了2進制存入、讀出的方法,實現(xiàn)了相關功能。結論通過本程序設計掌握了類對象、類數(shù)組、繼承、派生、重載、輸入輸出流的定義和使用,對使用C+吾言編碼有了更深層次的理解,也認識到了自己還有許多不足之處,達到了實驗目的。本系統(tǒng)基本完成了題目的功能要求,并且還在一定程度上進行了優(yōu)化,具體如下:優(yōu)點:刪除時可以重新選擇;對無效數(shù)據(jù)的輸入進行了有效的判斷;在刪除和查詢時既可以按編號也可以按姓名;每次刪除后自動將人員信息顯示出來。缺點:對于重名的人員系統(tǒng)照舊可以添加,沒有提醒;人員的編號可以重復。可以改進的地方:在添加成員時進行驗證,看所輸姓名和編號是否重復,若重復進行重新輸入;在實

28、現(xiàn)七個功能的地方添加exit函數(shù),一旦操作失誤,不想繼續(xù)進行,則系統(tǒng)跳轉會主界面進行新的操作選擇。2. 心得體會的設計本次課程設計主要使用了本學期學習的MicrosoftVisualC+6.0環(huán)境,內容涵蓋了c和C+語言部分知識,在本次編程過程中,我學習到了很多。例如:在編程首先要有全局觀念,要認識到自己是要編寫怎樣的程序,并且要構建相應的程序結構,否則漫無目的的編寫只能造成自己后期的負擔。其次要熟練的掌握老師以前所教授的相關知識,這樣在編寫程序的時候才能得心應手。再次,要分步進行程序的編寫,實現(xiàn)一個功能,再實現(xiàn)另一個功能,不可以全部編好最后在檢查,否則最終無從下手。我現(xiàn)在才明白一個真正好的程

29、序是需要很多人共同完成的,不是說一個人就能完成一個程序的編寫,現(xiàn)在的程序還不是很大,但如果是一個巨型系統(tǒng),任何一個人是不可能完成的,像是微軟操作系統(tǒng)也是由很多局手一起編寫的,這次編寫過程中,我請教了老師和同學一些問題,是在他們的幫助下我才最終順利地完成任務。讓我深刻的認識到團隊的力量。所以在以后學習過程中,我想應該多探討,多幫助,多學習才行。1 參考書目沈煒,徐慧.VisualC+做據(jù)庫編程技術與實例.北京:人民郵電出版社,2005鄧阿奇,丁有和.VisualC+教程.北京:清華大學出版社,2004年9月譚浩強.C+程序設計.北京:清華大學出版社,2004年譚浩強.C語言程序設計(第2版).北

30、京:清華大學出版社,2003附錄:關鍵程序代碼#include#include#include#includePerson.h#includeExperiment.h#includeGoverment.h#includeTeacher.h#includeTea_Gov.h”#includeTea_Manage.h”#includeExp_Manage.h”#includeGov_Manage.h”#includeTeagov_Manage.h”usingnamespacestd;/voidTeaMenu();voidExpMenu();voidGovMenu();voidTea_GovMenu

31、();/*main主函數(shù)intmain()intchoice;docout【高校人員信息管理系統(tǒng)】endl;coutendl;coutendl;cout|endl;cout|1.教師管理2.實驗員管理|endl;cout|3.行政人員管理4.教師兼行政人員|endl;cout|0.退出系統(tǒng)|endl;cout|endl;cout=endl;coutchoice;switch(choice)case1:TeaMenu();break;case2:ExpMenu();break;case3:GovMenu();break;case4:Tea_GovMenu();break;case0:coutn您

32、已安全退出系統(tǒng).”endl;break;default:coutn沒有此選項.請重選.”endl;break;while(choice!=0);coutn*歡迎您下次再使用本系統(tǒng)!*endl;return0;voidTeaMenu()system(cls);Tea_Managet;intchoice;while(choice!=0)coutn【教師管理】endl;cout+endl;cout|endl;cout|1.添加2.查找3.修改4.統(tǒng)計5.刪除6.顯示7.保存8.讀取0.退出|endl;cout|endl;cout+endl;coutchoice;switch(choice)case1

33、:t.Add();break;case2:t.Search();break;case3:t.Edit();break;case4:t.Total();break;case5:t.Delete();break;case6:t.Show();break;case7:t.Save();break;case8:t.Read();break;case0:cout退出成功!endl;system(cls);break;default:cout無此無項!請重試!endl;break;voidExpMenu()system(cls);Exper_Managet;intchoice;while(choice!=0)coutn【實驗員管理】endl;cout+endl;cout|endl;cout|1.添加2.查找3.修改4.統(tǒng)計5.刪除6.顯示7.保存8.讀取0.退出|endl;cout|endl;cout+endl;coutchoice;switch(choice)case1:t.Add()

溫馨提示

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

評論

0/150

提交評論