版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上課程設計報告(說明書) 課程: 面向?qū)ο笳Z言與 C+程序設計題目: 大學師生管理系統(tǒng) 班 級: 學 號: 學生姓名: 日 期: 1課程設計目的與要求1.1目的(1)要求學生達到熟練掌握C+語言的基本知識和技能; (2)基本掌握面向?qū)ο蟪绦蛟O計的基本思路和方法; (3)能夠利用所學的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O計問題.1.2 基本要求(1)要求利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完成系統(tǒng)的設計; (2)要求在設計的過程中,建立清晰的類層次; (3)在系統(tǒng)設計中要分析和定義各個類,每個類中要有各自的屬性和方法; (4)在系統(tǒng)的設計中,要求運用面向?qū)ο蟮臋C制(
2、繼承、派生及多態(tài)性)來實現(xiàn)系統(tǒng)功能. 1.3 創(chuàng)新要求在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結(jié)果進行修改的功能及設計出比較友好的界面等. 2 設計題目(問題)描述和要求2.1 問題描述 設計一個處理集合的類,用來處理整型數(shù),要求具有如下功能.要求: 用c+設計一個大學教師和學生管理程序: A) 教師包括:編號(a),姓名(c),職稱(d)和教研室數(shù)據(jù)(b); B) 大學生包括:編號(m),姓名(s),性別(t),班號(n),英語(e),高等數(shù)學(f)和數(shù)據(jù)結(jié)構(gòu)(g); C) 研究生包括編號,姓名,性別,班號,指導教師和研究方法; D) 博士后既是教師也是研究生. 2.2完成功能 1) 教
3、師與學生、研究生、博士后的基本信息的輸入輸出功能.2) 教師與學生、研究生、博士后的信息刪除、查詢功能 3) 學生三門課程成績輸入輸出和計算機平均分(ave)功能. 4) 學生三門課程成績的單科排序與總分排名輸出. 2.3設計說明用派生,繼承的方法做.3問題的解決方案及設計思路根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: (1)應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計; (2)分析系統(tǒng)中的各個實體及它們之間的關系包括屬性和行為; (3)根據(jù)問題描述,設計系統(tǒng)的類層次; (4)完成類層次中各個類的描述(包括屬性和方法); (5)完成類中各個成員函數(shù)的定義; (6)完成系統(tǒng)的應
4、用模塊; (7)功能調(diào)試; (8)完成系統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書. 4 系統(tǒng)分析與設計4.1 系統(tǒng)功能模塊大學師生管理程序成績排序求平均分英 語高等數(shù)學數(shù)據(jù)結(jié)構(gòu)總 分信息修改教 師研究生大學生博士后信息錄入教 師研究生大學生博士后教師信息刪除通過編 號研究生博士后大學生教師信息查詢通過編 號研究生博士后大學生英 語高等數(shù)學數(shù)據(jù)結(jié)構(gòu)圖4-1 系統(tǒng)功能模塊圖1) 信息錄入功能模塊:信息錄入模塊是簡單成績管理系統(tǒng)首先要執(zhí)行的一個基本模塊.該模塊的功能即教師、大學生、研究生、博士后的各項數(shù)據(jù)的輸入,只有當數(shù)據(jù)存入才能進行其他的功能.教師包括:編號,姓名,職稱和教研室數(shù)據(jù),大學生包括:編號,姓名,性
5、別,班號,英語,高等數(shù)學和數(shù)據(jù)結(jié)構(gòu), 研究生包括:編號,姓名,性別,班號,指導教師和研究方法, 博士后包括:編號,姓名,性別,班號,指導教師,研究方法,職稱和教研室數(shù)據(jù).2) 信息修改功能模塊:實現(xiàn)已錄入信息的修改,用新輸入的信息覆蓋原來的信息.3) 信息刪除功能模塊:通過編號刪除已錄入的成員信息.4) 信息查詢功能模塊:通過編號查找已錄入的成員信息.5) 求平均分功能模塊:該功能求出大學生英語、高等數(shù)學、數(shù)據(jù)結(jié)構(gòu)三門的平均分.6) 成績排序功能模塊:該功能實現(xiàn)大學生英語、高等數(shù)學、數(shù)據(jù)結(jié)構(gòu)和總分的排序,此處用冒泡排序法實現(xiàn).4.2 系統(tǒng)流程4.2.1 主函數(shù)流程圖開始密碼是否正確?輸入密碼出
6、現(xiàn)歡迎界面N NYY顯示菜單用戶輸入根據(jù)輸入執(zhí)行相應的操作退出?結(jié)束畫面結(jié) 束 圖4-2 主函數(shù)流程圖4.2.2 資料修改函數(shù)流程圖開始主菜單修改菜單輸入“3”輸入選擇51234教師大學生研究生輸入編號選擇要修改的項目輸入修改內(nèi)容是否繼續(xù)修改YN博士后結(jié) 束圖4-3 資料修改函數(shù)流程圖4.3 類的層次teachera,c,d,b,input1(),input2(),output1(),output2(),change(),delete(),search();undergraduatem,s,t,n,e,f,g,z,input3(),input4(),output3(),output4(),ch
7、ange(),delete(),search(),getnum();postdoctoralgraduate_studentdirector,method,input5(),output5();圖4-4 類的層次圖其中:(1) teacher類的a-編號,c-姓名,d-職稱,b-教研室數(shù)據(jù),input1()為輸入編號和姓名的成員函數(shù),input2()為輸入職稱和教研室數(shù)據(jù)的成員函數(shù),output1()為輸出編號和姓名的成員函數(shù),output2()為輸出職稱和教研室數(shù)據(jù)的成員函數(shù),change()為修改教師資料數(shù)據(jù)的成員函數(shù),delete()為刪除教師資料數(shù)據(jù)的成員函數(shù),search()為查找教
8、師資料數(shù)據(jù)的成員函數(shù).(2) undergraduate類的m-編號,s-姓名,t-性別,n-班號,e-英語成績,f-高等數(shù)學成績,g-數(shù)據(jù)結(jié)構(gòu)成績,z-總分,input3()為輸入編號、姓名性別和班號的成員函數(shù),input4()為輸入英語、高等數(shù)學和數(shù)據(jù)結(jié)構(gòu)成績的成員函數(shù),output3()為輸出編號、姓名性別和班號的成員函數(shù),output4()為輸出英語、高等數(shù)學和數(shù)據(jù)結(jié)構(gòu)成績的成員函數(shù),change()為修改大學生資料數(shù)據(jù)的成員函數(shù),delete()為刪除大學生資料數(shù)據(jù)的成員函數(shù),search()為查找大學生資料數(shù)據(jù)的成員函數(shù),getnum()為求得錄入大學生人數(shù)個數(shù)的成員函數(shù).(3)
9、graduate_student類的director-指導教師,method-研究方法,input5()為輸入指導教師和研究方法的成員函數(shù),output5()為輸出指導教師和研究方法的成員函數(shù). graduate_student類是undergraduate類的繼承,繼承了其m-編號,s-姓名,t-性別,n-班號.(4) postdoctoral類繼承了teacher類和graduate_student類.5 系統(tǒng)調(diào)試出現(xiàn)的問題5.1資料錄入問題 問題:錄入師生資料超過一次時,在主菜單中選擇“5. 顯示師生資料”后,顯示資料中前一次的師生資料將被后一次的所覆蓋,即不能執(zhí)行資料增加功能.代碼及修
10、改:void main(). int ch,a,i1,i2,i3,i4,j; / 改為:int ch,a,i1=0,i2=0,i3=0,i4=0,j; int *d1=&i1,*d2=&i2,*d3=&i3,*d4=&i4; char choice; do system(cls); menu1(); switch(ch) case 1: do system(cls); menu2(); if(a=1) i1=0; / 刪除該語句; do i1+; while(choice=Y); if(a=2) i2=0; / 刪除該語句; do i2+; while(choice=Y); if(a=3) i
11、3=0; / 刪除該語句; do i3+; while(choice=Y); if(a=4) i4=0; / 刪除該語句; do i4+; while(choice=Y); while(a!=5);break; while(ch!=8); 5.2資料刪除問題 問題:刪除某一人員資料時,在主菜單中選擇“5. 顯示師生資料”后,顯示資料中該已被刪除的人員資料僅僅是被同一類的下一個人員的資料所覆蓋,即出現(xiàn)了兩個相同的人員資料,總?cè)藛T數(shù)目并未減少.代碼及修改:void Delete(teacher t,int i1) / 改為:void Delete(teacher t,int *d1)system(
12、cls);teacher tt; / 增加:int r=*d1;char number20;coutnumber;coutendl;for(int i=0;ii1;i+) / 改為:for(int i=0;ir;i+)if(strcmp(ti.a,number)=0)for(int j=i;ji1;j+) / 改為:for(int j=i;jr;j+)tt=tj; tj=tj+1; / 增加:(*d1) -; cout編號number的教師的資料已刪除!endl; break;if(i=i1) / 改為:if(i=r)cout 無此教師的資料!endl;6 關鍵程序代碼6.1資料修改函數(shù)代碼(
13、教師)void Change(teacher t,int i1)system(cls);int choice;char number20,name20,duty20,date20,c;coutnumber;for(int i=0;ii1;i+)if(strcmp(ti.a,number)=0) cout 1. 編號 2. 姓名endl;cout 3. 職稱 4. 教研室數(shù)據(jù)endl;docoutchoice; while(!(choice=1&choice=4) coutchoice; if(choice=1) coutnumber; strcpy(ti.a,number); if(choic
14、e=2) . if(choice=3) . if(choice=4) . coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i1)cout 無此教師的資料!endl;cout按任意鍵返回.; getch();6.2資料刪除函數(shù)代碼(教師)void Delete(teacher t,int *d1)system(cls);teacher tt;int r=*d1;char number20;coutnumber;coutendl;for(int i=0;ir;i+)if(strcmp(ti.a,number)=0)for(int
15、 j=i;jr;j+)tt=tj; tj=tj+1;(*d1)-; cout編號number的教師的資料已刪除!endl; break;if(i=r)cout 無此教師的資料!endl;6.3 學生成績排名函數(shù)代碼void sort(undergraduate u,int *d2) int a; do system(cls); cout- 1. 英 語成績排名 -endl; cout- 2. 高等數(shù)學成績排名 -endl; cout- 3. 數(shù)據(jù)結(jié)構(gòu)成績排名 -endl; cout- 4. 總 分成績排名 -endl; cout- 5. 返 回 主 菜 單 -endl; couta; if(a
16、5)cout輸入錯誤,請重新輸入!;if(a=1) undergraduate s; for(int i=0;i*d2;i+)for(int j=0;j*d2-i;j+) if(uj.euj+1.e)s=uj; uj=uj+1; uj+1=s;for(i=0;i*d2;i+)cout編號:setw(3)ui.m 姓名:setw(4)ui.s 班號:ui.nendl; coutendl;cout按任意鍵返回.; getch();if(a=2) . if(a=3) . if(a=4) . while(a!=5);7 總結(jié)和體會這次的課程設計,從最先的選題,到策劃、分工、再到系統(tǒng)代碼的合并、修改,最
17、后調(diào)試并一步步完善,看似簡單的命題,但在編輯時稍有不慎就會錯誤、漏洞.通過這次鍛煉,我了解了很多,學習了很多,也得到了很多.1、以彼之長,補己之短,在作業(yè)中學習并幫助伙伴,我深深體會到合作的重要性.2、程序越復雜,越容易出現(xiàn)錯誤,一處改動,相應的多處就得一并修改,因此編輯時須一直保持警惕,這次編程提高了我的耐性和謹慎性.3、程序調(diào)試成功后,還可使代碼簡化、美化界面或增加提示語句.在調(diào)試中我學會了一種精益求精的態(tài)度. 4、完成課程設計,我體會到了成功的喜悅.參考書目1 鄭莉、董淵、張瑞豐編著.C+語言程序設計(第三版)M.清華大學出版社,2004.12 戴鋒編著.Visual C+程序設計基礎M
18、.清華大學出版社,2001.43 Stanley B.Lippman編著.C+ Primer中文版(第3版)M.中國電力出版社,1989年4 譚浩強編著.C程序設計(第三版)M.清華大學出版社,2005.7附錄1:源程序清單#include #include #include #include using namespace std;class teacherpublic:char a20;char c20;char d20;char b20;public:void input1();void input2();void output1();void output2();friend void
19、 Change(teacher t,int i1);friend void Delete(teacher t,int *d1);friend void Search(teacher t,int i1);class undergraduate public:char m20;char s20; char t;char n20;float e,f,g,z;public:void input3();void input4();void output3();void output4(); friend void Change(undergraduate u,int i2);friend void De
20、lete(undergraduate u,int *d2);friend void Search(undergraduate u,int i2);class graduate_student:public undergraduatepublic:char director20;char method20;public:void input5();void output5();class postdoctoral:public teacher,public graduate_student;void teacher:input1()couta ; coutc ;void teacher:inpu
21、t2()coutd ;coutb ;void undergraduate:input3()coutm ;couts ;coutt;coutn ;void undergraduate:input4() coute ;coutf ; coutg ; z=e+f+g;coutendl;void graduate_student:input5() coutdirector; coutmethod; coutendl;void teacher:output1()cout 編號:aendl;cout 姓名:cendl;void teacher:output2()cout 職稱:dendl;cout 教研室
22、數(shù)據(jù):bendl;void undergraduate:output3()cout 編號:mendl;cout 姓名:sendl;cout 性別:tendl;cout 班號:nendl;void undergraduate:output4()cout 英語:eendl;cout 高等數(shù)學:fendl;cout 數(shù)據(jù)結(jié)構(gòu):gendl;void graduate_student:output5()cout 指導教師:directorendl;cout 教學方法:methodendl;void Change(teacher t,int i1)system(cls);int choice;char n
23、umber20,name20,duty20,date20,c;coutnumber;for(int i=0;ii1;i+)if(strcmp(ti.a,number)=0) cout 1. 編號 2. 姓名endl;cout 3. 職稱 4. 教研室數(shù)據(jù)endl;docoutchoice; while(!(choice=1&choice=4) coutchoice; if(choice=1) coutnumber; strcpy(ti.a,number); if(choice=2)coutname; strcpy(ti.c,name); if(choice=3) coutduty; strcp
24、y(ti.d,duty); if(choice=4) coutdate; strcpy(ti.b,date); coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i1)cout 無此教師的資料!endl;cout按任意鍵返回.; getch();void Change(undergraduate u,int i2)system(cls);int choice;char number20,name20,sex,clas20,c;float English,math,date;coutnumber;for(int i=0;ii2;
25、i+)if(strcmp(ui.m,number)=0) cout 1. 編號 2. 姓名endl;cout 3. 性別 4. 班號endl;cout 5. 英語成績 6. 高等數(shù)學成績endl; cout 7. 數(shù)據(jù)結(jié)構(gòu)成績endl;do coutchoice; while(!(choice=1&choice=7) coutchoice; if(choice=1) coutnumber; strcpy(ui.m,number); if(choice=2)coutname; strcpy(ui.s,name); if(choice=3) coutsex; ui.t=sex; if(choice
26、=4) coutclas; strcpy(ui.n,clas);if(choice=5) coutEnglish; ui.e=English;if(choice=6) coutmath; ui.f=math;if(choice=7) coutdate; ui.g=date; coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i2)cout 無此大學生的資料!endl;cout按任意鍵返回.; getch();void Change(graduate_student g,int i3)system(cls);int choice
27、;char number20,name20,sex,clas20,direct20,meth20,c;coutnumber;for(int i=0;ii3;i+)if(strcmp(gi.m,number)=0) cout 1. 編號 2. 姓名endl;cout 3. 性別 4. 班號endl;cout 5. 指導教師 6. 研究方法endl;do coutchoice; while(!(choice=1&choice=6) coutchoice; if(choice=1) coutnumber; strcpy(gi.m,number); if(choice=2) coutname; str
28、cpy(gi.s,name); if(choice=3) coutsex; gi.t=sex; if(choice=4) coutclas; strcpy(gi.n,clas);if(choice=5) coutdirect; strcpy(gi.director,direct);if(choice=6) coutmeth; strcpy(gi.method,meth); coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i3)cout 無此研究生的資料!endl;cout按任意鍵返回.; getch();void Chang
29、e(postdoctoral p,int i4)system(cls);int choice;char number20,name20,sex,clas20,duty20,date20,direct20,meth20,c;coutnumber;for(int i=0;ii4;i+)if(strcmp(pi.m,number)=0) cout 1. 編號 2. 姓名endl;cout 3. 性別 4. 班號endl; cout 5. 職稱 6. 教研室數(shù)據(jù)endl;cout 7. 指導教師 8. 研究方法endl;docoutendl;coutchoice; while(!(choice=1&c
30、hoice=8) coutchoice; if(choice=1) coutnumber; strcpy(pi.m,number); if(choice=2) coutname; strcpy(pi.s,name); if(choice=3) coutsex; pi.t=sex; if(choice=4) coutclas; strcpy(pi.n,clas); if(choice=5) coutduty; strcpy(pi.d,duty); if(choice=6) coutdate; strcpy(pi.b,date);if(choice=7) coutdirect; strcpy(pi
31、.director,direct);if(choice=8) coutmeth; strcpy(pi.method,meth); coutendl;coutc;while(c!=Y&c!=N)coutc;while(c=Y);break;if(i=i4)cout 無此博士后的資料!endl;cout按任意鍵返回.; getch();void Delete(teacher t,int *d1)system(cls);teacher tt;int r=*d1;char number20;coutnumber;coutendl;for(int i=0;ir;i+)if(strcmp(ti.a,number)=0)for(int j=i;jr;j+)tt=tj; tj=tj+1;(*d1)-; cout編號number的教師的資料已刪除!endl; break;if(i=r)cout 無此教師的資料!endl;void Delete(undergraduate u,int *d2)system(cls);undergraduate uu;int r=*d2;char number20;coutnumber;coutendl;for(int i=0;ir;i+)if(strcmp(ui.m,number)=0)for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端酒店客房承包管理合同2篇
- 二零二五年度模特肖像權(quán)許可使用合同3篇
- 二零二五年度新型環(huán)保材料內(nèi)河水路運輸合同范本4篇
- 2025年度電視節(jié)目贊助合作合同4篇
- 二零二五年度美食節(jié)活動策劃與執(zhí)行合同4篇
- 2025年度個人自用房產(chǎn)權(quán)屬變更合同范本4篇
- 二零二五年度打孔工程節(jié)能環(huán)保合同4篇
- 2025年度電梯安裝工程環(huán)保評估與監(jiān)測合同3篇
- 二零二五年度生物有機肥原料供應合同規(guī)范及執(zhí)行細則4篇
- 2025年度海綿城市建設泥工班組勞務承包合同范本4篇
- 《電影之創(chuàng)戰(zhàn)紀》課件
- 社區(qū)醫(yī)療抗菌藥物分級管理方案
- 開題報告-鑄牢中華民族共同體意識的學校教育研究
- 《醫(yī)院標識牌規(guī)劃設計方案》
- 公司2025年會暨員工團隊頒獎盛典攜手同行共創(chuàng)未來模板
- 夜市運營投標方案(技術方案)
- 電接點 水位計工作原理及故障處理
- 國家職業(yè)大典
- 2024版房產(chǎn)代持協(xié)議書樣本
- 公眾號運營實戰(zhàn)手冊
- 科研倫理與學術規(guī)范(研究生)期末試題庫及答案
評論
0/150
提交評論