




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、班級(jí)學(xué)生成績(jī)管理系統(tǒng)一、簡(jiǎn)介1 .設(shè)計(jì)目的:理解樹的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),進(jìn)一步提高使用理論知識(shí)指導(dǎo)解決實(shí)際問題的能力。2 .問題的描述:在一個(gè)班級(jí)學(xué)生管理系統(tǒng)中,希望處理每個(gè)學(xué)生的學(xué)習(xí)情況信息。學(xué)生學(xué)習(xí)情況信息包括學(xué)號(hào)、姓名、班號(hào)等,及已學(xué)課程的課程號(hào)及成績(jī),并能使管理人員通過界面完成對(duì)班級(jí)、學(xué)生信息的錄入及對(duì)數(shù)據(jù)的查找、瀏覽。二、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì):采用樹的孩子兄弟表示法進(jìn)行存儲(chǔ)。第一個(gè)班級(jí)是第二個(gè)班級(jí)的兄弟,每個(gè)班級(jí)中學(xué)生成員為孩子,該生成績(jī)?yōu)樾值艿姆绞酱鎯?chǔ)。typedefstructGRecord/*基本信息*/longintnum;charname10;intage;structGReco
2、rd*G;structMRecord*M;GRecord;Class*H;typedefstructMRecord/*成績(jī)信息*/inteng;intmath;intcomp;MRecord;typedefstructClass/*班級(jí)信息*/intCN;/*班號(hào)*/structGRecord*fchild;structClass*nextkid;Class;三、功能(函數(shù))設(shè)計(jì):班級(jí)學(xué)生成績(jī)管理系統(tǒng)瀏覽信息模塊查詢信息模塊修改信息模塊刪除信息模塊插入信息模塊錄入信息模塊修改學(xué)生成績(jī)信息修改學(xué)生基本信息總體上劃分為六個(gè)模塊,具體功能描述如下:1 .錄入信息模塊(W):主要實(shí)現(xiàn)按班級(jí)分別錄入學(xué)生
3、的基本信息和成績(jī)信息。2 .插入信息模塊(InsertR):主要實(shí)現(xiàn)根據(jù)學(xué)號(hào)由小到大插入學(xué)生的基本信息和成績(jī)信息。3 .刪除信息模塊(DeletR):主要實(shí)現(xiàn)分別按照學(xué)號(hào)和姓名查找到學(xué)生信息,并把對(duì)應(yīng)的學(xué)生基本信息和學(xué)生成績(jī)信息刪除。4 .修改信息模塊:修改學(xué)生基本信息(ReviseG):主要實(shí)現(xiàn)分別按照學(xué)號(hào)和姓名查找到學(xué)生信息,并修改對(duì)應(yīng)的學(xué)號(hào),姓名和年齡。修改學(xué)生成績(jī)信息(ReviseM):主要實(shí)現(xiàn)分別按照學(xué)號(hào)和姓名查找到學(xué)生信息,并修改對(duì)應(yīng)的英語(yǔ)成績(jī),數(shù)學(xué)成績(jī)和計(jì)算機(jī)成績(jī)。5.查詢信息模塊(SearchS:主要實(shí)現(xiàn)分別按照學(xué)號(hào)和姓名查詢學(xué)生的學(xué)生基本信息和學(xué)生成績(jī)信息6.瀏覽信息模塊(R
4、print):主要實(shí)現(xiàn)按照班級(jí)顯示每個(gè)學(xué)生的全部信息,并顯示統(tǒng)計(jì)的學(xué)生人數(shù)。程序界面(menu,cmd):menu是為了顯示主菜單;cmd主要對(duì)菜單的選擇和相應(yīng)的函數(shù)的調(diào)用。四、界面設(shè)計(jì):1.主界面班皴學(xué)生成績(jī)管理系統(tǒng)1-登記班蜴所有學(xué)生全部信息2r插入某個(gè)學(xué)士3.刪除某個(gè)學(xué)生的信息4 .修改某個(gè)學(xué)生的基本情況5 .修改某個(gè)學(xué)生某門功課的成績(jī)查找某個(gè)個(gè)學(xué)生的信息7-瀏賢每個(gè)學(xué)生的全部信息fi-狼由借選擇需要的操作;2.登記班級(jí)所有學(xué)生全部信息3.插入學(xué)生信息情輸入學(xué)生的朗書工睛按學(xué)號(hào)由小到大依次輸兒入學(xué)生的冊(cè)號(hào).1請(qǐng)揄入學(xué)生的學(xué)號(hào)11請(qǐng)輸入學(xué)生的姓昂1請(qǐng)輸入率生的年齡;1請(qǐng)輸入學(xué)生的英語(yǔ)課竣請(qǐng)
5、籟入學(xué)生取整學(xué)課成績(jī)情輸入學(xué)生的微機(jī)課成績(jī)現(xiàn)已1條學(xué)生信息按#退出輸入請(qǐng)輸入學(xué)生所在的班級(jí)1請(qǐng)輸入學(xué)生的學(xué)號(hào)1請(qǐng)輸入學(xué)生的姓名11清輸入學(xué)生的年齡11清福人學(xué)生的英語(yǔ)課成績(jī)工請(qǐng)輔入學(xué)生的數(shù)學(xué)課成績(jī).請(qǐng)輸入學(xué)生的澈機(jī)課成績(jī);隨人成功.一按任意鍵返回4.刪除學(xué)生信息5.修改學(xué)生基本信息8著輸入學(xué)生所在的班級(jí),1r1 .接學(xué)號(hào)刪除學(xué)生信息2 .做名刪除學(xué)生信息I修改學(xué)生的姓名修改學(xué)生的年蛤請(qǐng)選擇需要的操作:1請(qǐng)輸人需要?jiǎng)h除的學(xué)生的學(xué)號(hào);1刪除網(wǎng),可退出輸入一.精輸入需要修改的學(xué)生的學(xué)號(hào),i睛輸入新的姓名:修改成功.席任意鍍返回6.修改學(xué)生成績(jī)信息工.修改學(xué)生的英語(yǔ)成績(jī)2.修改學(xué)生的教學(xué)成績(jī)3.修改學(xué)
6、生的計(jì)算機(jī)成績(jī)請(qǐng)選擇需要的操作;1清揄人需要修改的學(xué)生的學(xué)號(hào).4清瑜入新的英語(yǔ)成壽6窗改成功按任意鍵返回7,查詢學(xué)生信息睛輸入學(xué)生所在的班級(jí);1按學(xué)號(hào)查詢學(xué)生信息睛選擇需要的操作;12.拉姓名查詢學(xué)生信息英語(yǔ)1計(jì)機(jī)1111rn1111睛輸入需要查詢的學(xué)生的學(xué)號(hào):1胺靜退出輸入.一8.瀏覽學(xué)生信息情揄入學(xué)生所在的班級(jí):1ii班學(xué)生信息|學(xué)號(hào)_姓名年齡英語(yǔ)數(shù)學(xué)計(jì)算機(jī)11)111122|12I22233)rn33313s1共3個(gè)學(xué)生胺北退出輸入五、程序設(shè)計(jì):(一)主程序?qū)哟螆D:(二)主要函數(shù)流程圖:cmd對(duì)主菜單界面進(jìn)行選擇,分別對(duì)功能函數(shù)進(jìn)行調(diào)用;若輸入操作序號(hào)錯(cuò)誤,則重新輸入面;若輸入班號(hào)錯(cuò)誤,
7、則重新輸入InsertR:從鍵盤中輸入班號(hào)(分別為1和2),選擇學(xué)生所在班級(jí),輸入要插入的學(xué)生所有信息,按任意鍵退出插入學(xué)生信息,返回主菜單界面;若輸入班號(hào)錯(cuò)誤,則重新輸入ODeletR:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和學(xué)號(hào)查找學(xué)生,并刪除學(xué)生全部信息,按腿出刪除模塊,否則繼續(xù);p1->num=nuTRUEp1->num=nu&&p1->G=NULLp1->name=nap1->name=na&&p1->G=NULLp1->num=nuch=#FALp1->name=nawhile(flag)&g
8、t;fchild->GH->nextkidswitch(ch)switch(n)H->fchild->GFALSETRUEflag=1n=1flag=0!NULLch=2FALSETRUEFALSE!NULLFALSETRUEn=2FALSETRUE繼續(xù)尋找ch=1NULLNULL刪除第一個(gè)學(xué)生的信息刪除第一個(gè)學(xué)生的信息刪除記錄free(p2)刪除記錄free(p2)輸入班號(hào)錯(cuò)誤輸入操作序號(hào)輸入班級(jí)無該生記錄輸入序號(hào)錯(cuò)誤無該生記錄輸入姓名刪除無學(xué)生記錄輸入學(xué)號(hào)刪除繼續(xù)尋找若輸入班級(jí)錯(cuò)誤則重新輸入。(開始flag=1ReciseG:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別
9、按照姓名和學(xué)號(hào)查找到學(xué)生,若選擇按姓名查找則可分別修改學(xué)生的學(xué)號(hào)、性別,若選擇按學(xué)號(hào)查找則可分別修改學(xué)生的姓名、性別,按任意鍵退出修改模塊,否則繼續(xù);若輸入班級(jí)錯(cuò)誤則重新輸入。開始flag=1flag=0while(flag)getW)ReciseM:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和學(xué)號(hào)查找到學(xué)生,并選擇修改學(xué)生英語(yǔ)、數(shù)學(xué)、計(jì)算機(jī)成績(jī),按任意鍵退出修改模塊,否則繼續(xù);若輸入班級(jí)錯(cuò)誤則重新輸入。開始flag=1flag=0while(flag)getchl)SearchS:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和學(xué)號(hào)查找到學(xué)生,并選擇修改學(xué)生英語(yǔ)、數(shù)學(xué)、計(jì)算機(jī)成績(jī),按
10、任意鍵退出修改模塊,否則繼續(xù);若輸入班級(jí)錯(cuò)誤則重新輸入。Rprint:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分顯示該班所有學(xué)生的全部信息,按腿出瀏覽學(xué)生全部信息,否則繼續(xù)。編寫代碼期間遇到的問題及其解決辦法:問題:怎樣用樹存放兩個(gè)班級(jí)的學(xué)生全部信息。解決方法:設(shè)根結(jié)點(diǎn)為空結(jié)點(diǎn),一個(gè)班是另一個(gè)班的兄弟,把每個(gè)班的學(xué)生作為班級(jí)的孩子,學(xué)生之間用孩子-孩子的方式連接,學(xué)生的成績(jī)信息分別是該生的兄弟。 問題:刪除第一個(gè)學(xué)生的信息后,后面學(xué)生的信息也不存在。解決方法:由于第一個(gè)學(xué)生的結(jié)點(diǎn)與后面學(xué)生所在的結(jié)構(gòu)體不同,所以應(yīng)該把刪除第一個(gè)學(xué)生的可能單獨(dú)列出來。 問題:在瀏覽時(shí)怎樣判斷一個(gè)班里面沒有學(xué)生的信息。
11、解決方法:每個(gè)班存放學(xué)號(hào)的結(jié)點(diǎn)為各班的學(xué)生信息的根結(jié)點(diǎn),當(dāng)存學(xué)號(hào)的結(jié)點(diǎn)之后的結(jié)點(diǎn)為空時(shí),班里面沒有學(xué)生的信息。 問題:插入學(xué)生信息時(shí),遇到學(xué)號(hào)相同的怎么辦。解決方法:直接在相同的后面插入。 問題:怎樣修改學(xué)生基本信息。解決方法:當(dāng)用學(xué)號(hào)查找時(shí),只能修改學(xué)生的姓名、性別;當(dāng)用姓名查找時(shí),只能修改學(xué)生的學(xué)號(hào)、性別; 問題:每個(gè)界面之間怎樣轉(zhuǎn)換。解決方法:第二、三層界面之間用按任意鍵直接返回,主界面與第二層之間用按#選擇性返回。六、運(yùn)行與測(cè)試:1、測(cè)試的數(shù)據(jù)及其結(jié)果:1)主界面中選擇1,顯示輸入所需登記學(xué)生信息的班級(jí),然后按學(xué)號(hào)從小到大的順序的依次錄入學(xué)生的所有信息,直到按#返回,若按其他鍵,則繼續(xù)
12、輸入。輸入的班號(hào)只能為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸入。2)主界面中選擇2,顯示輸入所需插入學(xué)生信息的班級(jí),然后輸入一個(gè)所要插入的學(xué)生的全部信息,按任意鍵返回主界面。輸入的班號(hào)只能為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸入。3)主界面中選擇3,顯示輸入所需刪除學(xué)生信息的班級(jí),然后按學(xué)號(hào)和姓名查詢學(xué)生,刪除該生的所有信息,直到按#返回,若按其他鍵,則繼續(xù)輸入。輸入的班號(hào)只能為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸入。4)主界面中選擇4,顯示輸入所需修改學(xué)生信息的班級(jí),然后按學(xué)號(hào)查詢學(xué)生,則選擇修改該生的姓名、性別;按姓名查詢學(xué)生,則選擇修改該生的學(xué)號(hào)、性別。直到按艇回,
13、若按其他鍵,則繼續(xù)輸入。輸入的班號(hào)只能為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸入。5)主界面中選擇5,顯示輸入所需修改學(xué)生信息的班級(jí),然后按學(xué)號(hào)和姓名查詢學(xué)生,并選擇修改該生的各科成績(jī),直到按#返回,若按其他鍵,則繼續(xù)輸入。輸入的班號(hào)只能為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸入。6)主界面中選擇6,顯示輸入所需查詢學(xué)生信息的班級(jí),然后按學(xué)號(hào)或姓名查詢學(xué)生,并顯示該生的全部信息,按任意鍵返回,輸入的班號(hào)只能為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸入。7)主界面中選擇7,提示輸入所需瀏覽學(xué)生信息的班級(jí),然后顯示學(xué)生的所有信息,直到按#M回,若按其他鍵,則繼續(xù)輸入。輸入的班號(hào)只能
14、為1和2,否則出現(xiàn)輸入班級(jí)序號(hào)錯(cuò)誤,提示重新輸8)主界面中選擇8,直接退出程序。9)主界面中輸入其他數(shù)字,則顯示主菜單并重新輸入要選擇的操作序號(hào)。2、運(yùn)行與測(cè)試期間遇到的問題及其解決辦法。1)問題:只能寫入一個(gè)班級(jí)學(xué)生的成績(jī),若開始登記第二個(gè)則第一個(gè)班級(jí)的信息被覆蓋掉了;解決辦法:第二個(gè)班級(jí)開辟的頭指針應(yīng)該是第一個(gè)班級(jí)的兄弟,而不是他的孩子;即H->fchild->nextkid->G存儲(chǔ)的為第二個(gè)班的信息。2)問題:主界面在每次返回再次顯示時(shí),每次都出現(xiàn)兩邊。解決辦法:在調(diào)用menu()時(shí),前面加入getchar(),清空每次返回時(shí),緩存中的回車。3)問題:當(dāng)只輸入一個(gè)學(xué)生
15、時(shí),無法刪除和修改該生信息。解決辦法:p1->num=nu來判斷是否找到第一個(gè)學(xué)生,而不是p1->G=NULL,因?yàn)樽鳛榈谝粋€(gè)學(xué)生的結(jié)點(diǎn),即為p1所指向的結(jié)點(diǎn)。4)問題:只能登記一個(gè)學(xué)生的信息,輸入第二個(gè)時(shí)程序卡掉。解決辦法:把開辟的指針空間放在while里,循環(huán)開辟。5)問題:第二、三層界面的切換。解決辦法:用while和flag標(biāo)志位,建立循環(huán),用break結(jié)束操作。七、結(jié)論:創(chuàng)建班級(jí)時(shí),只能創(chuàng)建兩個(gè)班級(jí),且班級(jí)序號(hào)已設(shè)定為1和2;在登記學(xué)生信息時(shí),可以亂序登記,無法按學(xué)號(hào)大小自動(dòng)排序,無法判斷信息是否重復(fù),無法判斷成績(jī)是否符合標(biāo)準(zhǔn);修改學(xué)生學(xué)號(hào)后,無法再次對(duì)學(xué)號(hào)進(jìn)行排序。整個(gè)程序完成了對(duì)兩個(gè)班的學(xué)生的基本信息和成績(jī)信息的登記,插入,刪除,修改,查詢和瀏覽。實(shí)現(xiàn)用樹的兄弟-孩子法存儲(chǔ)信息,分別學(xué)生的基本信息和成績(jī)信息兩個(gè)模塊進(jìn)行編輯,簡(jiǎn)單界面的提示和界面與界面之間的切換,減少每個(gè)編輯模塊之間的調(diào)用,增加了模塊的獨(dú)立性,基本完成了課程設(shè)計(jì)的要求。八、設(shè)計(jì)后的思考:結(jié)束了為期兩周的課程設(shè)計(jì),實(shí)踐了對(duì)數(shù)據(jù)結(jié)構(gòu)算法的實(shí)現(xiàn)和整體的知識(shí)框架的連通。在此次課程設(shè)計(jì)中,從最開始的程序設(shè)計(jì),調(diào)試,修改到完成,了解到編程的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人才引聘活動(dòng)方案
- 南通大學(xué)杏林學(xué)院《科學(xué)社會(huì)主義概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱石油學(xué)院《新醫(yī)療技術(shù)與法》2023-2024學(xué)年第二學(xué)期期末試卷
- 云南三鑫職業(yè)技術(shù)學(xué)院《公共關(guān)系與商務(wù)禮儀》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州農(nóng)業(yè)職業(yè)學(xué)院《社區(qū)康復(fù)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 人文積淀活動(dòng)方案
- 湖南吉利汽車職業(yè)技術(shù)學(xué)院《寫作呂林芳》2023-2024學(xué)年第二學(xué)期期末試卷
- 大理農(nóng)林職業(yè)技術(shù)學(xué)院《公司法》2023-2024學(xué)年第二學(xué)期期末試卷
- 銅陵職業(yè)技術(shù)學(xué)院《俄漢》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州南方學(xué)院《資源加工工程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶市沙坪壩區(qū)南開中學(xué)校2023-2024學(xué)年八年級(jí)下學(xué)期期末英語(yǔ)試題(無答案)
- DL-T839-2003大型鍋爐給水泵性能現(xiàn)場(chǎng)試驗(yàn)方法
- JC-T408-2005水乳型瀝青防水涂料
- FZT 74005-2016 針織瑜伽服行業(yè)標(biāo)準(zhǔn)
- 2024年廣東佛山市順德區(qū)公安局輔警招聘筆試參考題庫(kù)附帶答案詳解
- GB/T 43701-2024滑雪場(chǎng)地滑雪道安全防護(hù)規(guī)范
- 2024年高考工作總結(jié)(35篇)
- 文字學(xué)概要完整版本
- 酒店前臺(tái)接待培訓(xùn)課件
- 《電力機(jī)車制動(dòng)機(jī)》課件 7-02 最大最小有效減壓量計(jì)算
- 《冠脈造影流程操作》課件
評(píng)論
0/150
提交評(píng)論