數(shù)據(jù)結(jié)構(gòu)--學(xué)生信息管理系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)--學(xué)生信息管理系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)--學(xué)生信息管理系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)--學(xué)生信息管理系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)--學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告班級(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ǔ)。typedef struct GRecordtypedef structtypedef struct Cl

2、ass/*基本信息*/MRecord/*班級(jí)信息*/ long int num;/*成績(jī)信息*/ int CN;/* 班號(hào) */char n ame10; int eng;struct GRecordint age;int math;*fchild;struct GRecord *G;int comp;struct Classstruct MRecord *M;MRecord;*n extkid;GRecord;Class;Class *H;三、功能(函數(shù))設(shè)計(jì):班級(jí)學(xué)生成績(jī)管理系統(tǒng)錄入信息模塊插入信息模塊刪除信息模塊修改信息模塊查詢信息模塊瀏覽信息模塊修改學(xué)生基本信息修改學(xué)生成績(jī)信息總體上劃

3、分為六個(gè)模塊,具體功能描述如下:1.錄入信息模塊(W):主要實(shí)現(xiàn)按班級(jí)分別錄入學(xué)生的基本信息和 成績(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)的英語成績(jī),數(shù)學(xué)成績(jī)和計(jì)算機(jī)成績(jī)。5. 查詢信息模塊(Sear

4、chS :主要實(shí)現(xiàn)分別按照學(xué)號(hào)和姓名查詢學(xué)生的學(xué)生基本信息和學(xué)生成績(jī)信息。6. 瀏覽信息模塊(Rprint):主要實(shí)現(xiàn)按照班級(jí)顯示每個(gè)學(xué)生的全部 信息,并顯示統(tǒng)計(jì)的學(xué)生人數(shù)。程序界面(menu, cmd): menu是為了顯示主菜單;cmd主要對(duì)菜單 的選擇和相應(yīng)的函數(shù)的調(diào)用。四、界面設(shè)計(jì):1.主界面班級(jí)學(xué)生成締管理系統(tǒng)1- 登記班級(jí)所有學(xué)生全部信息2- 插入某個(gè)學(xué)生的信息3- 刪除某個(gè)學(xué)生的信息4修改某個(gè)學(xué)生的皋本情況5-修改某個(gè)學(xué)生某門功課的成緒查棧某個(gè)個(gè)學(xué)生的信息7-瀏覽每個(gè)學(xué)生的全部信息fi-痕由青選擇需要的操作:2.登記班級(jí)所有學(xué)生全部信息3.插入學(xué)生信息請(qǐng)輸入學(xué)生的班號(hào)亠 請(qǐng)捋學(xué)號(hào)

5、由小到咲依初輸入; 情輸入學(xué)生的學(xué)號(hào)j 1 諸輸入學(xué)生的姓知1 請(qǐng)輸入卓生的年齡;1 諳輸入學(xué)生的英語課成績(jī)1 請(qǐng)輸入學(xué)生的數(shù)學(xué)諜我績(jī):1 請(qǐng)輸人學(xué)生的微機(jī)課成績(jī);1 現(xiàn)已兒條學(xué)生信息 按#退出輸入這輸入學(xué)生所在的班紐I 1 請(qǐng)輸入學(xué)生的學(xué)號(hào):1 請(qǐng)輛入學(xué)生的姓名:1 P青輸入學(xué)生的年齡;1 陰輸入學(xué)生的英語課成締 1 E青輸入學(xué)生的數(shù)學(xué)課成績(jī) 1 $青輸入學(xué)生的微機(jī)課成績(jī):1 鮭入成功按任意鍵返回.4.刪除學(xué)生信息5.修改學(xué)生基本信息B青輸入學(xué)生所在的班級(jí):12: UlSIliiit I1»18請(qǐng)選擇需要的操在:1諳輸入需要?jiǎng)h除的學(xué)生的學(xué)號(hào);1 冊(cè)除成功,退出輸入清選擇需要的撫作.

6、1請(qǐng)輸人需要修改的學(xué)生的學(xué)號(hào) 1諳輜入新的姓名:§修決成島杼任篇鍵返回6修改學(xué)生成績(jī)信息修改學(xué)生的英語成締2-修改學(xué)生的數(shù)學(xué)成締3.修改學(xué)生的計(jì)算機(jī)成縉請(qǐng)選擇需要的操作;1請(qǐng)輸入雲(yún)要修改的學(xué)生的學(xué)號(hào) 4 請(qǐng)榆人新禹英語成績(jī):6彥改成功按任意鍵返回7. 查詢學(xué)生信息|1青輸入學(xué)生所在的班級(jí);丄的學(xué)號(hào);1學(xué)號(hào)姓名英語L|數(shù)學(xué)計(jì)身機(jī)111 1LH1 1LJ118. 瀏覽學(xué)生信息b青輸入學(xué)生所在的班級(jí):丄二班學(xué)生信息J學(xué)號(hào)姓名年齡英語數(shù)學(xué)計(jì)算機(jī)11 |111122 |1 2t.22233 |rn33313L共3個(gè)學(xué)生1按h退出輸入.5數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告五、程序設(shè)計(jì):(一)主程序?qū)哟螆D:(二

7、)主要函數(shù)流程圖:cmd對(duì)主菜單界面進(jìn)行選擇,分別對(duì)功能函數(shù)進(jìn)行調(diào)用;若輸入操作序號(hào)錯(cuò)誤,則重新輸入。面;若輸入班號(hào)錯(cuò)誤,則重新輸入InsertR :從鍵盤中輸入班號(hào)(分別為1和2),選擇學(xué)生所在班級(jí), 輸入要插入的學(xué)生所有信息,按任意鍵退出插入學(xué)生信息,返回主菜單界面;若輸入班號(hào)錯(cuò)誤,則重新輸入。9數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告DeletR :從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和學(xué)號(hào)查找學(xué)生,并刪除學(xué)生全部信息,按 #退出刪除模塊,否則繼續(xù);輸入操作序號(hào) *n=2n=1輸入姓名刪除switch( n)其他p1- >num=nup1->name=naTRUEFALSEFALSE

8、FALSEFALS繼續(xù)尋找繼續(xù)尋找TRUETRUEFALEp1- >num=nup1->name=na無該生記錄無該生記錄TRUEFALSEch=#p1- >num=nu&& p1->G=NULLp1->name=na&&p1->G=NULL刪除第一個(gè) 學(xué)生的信息輸入序號(hào)錯(cuò)誤輸入學(xué)號(hào)刪除TRUE * 刪除第一個(gè)學(xué)生的信息刪除記錄刪除記錄free(p2)free(p2)TRUEReciseG:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和 學(xué)號(hào)查找到學(xué)生,若選擇按姓名查找則可分別修改學(xué)生的學(xué)號(hào)、 性別,若選擇按學(xué)號(hào)查找則可分

9、別修改學(xué)生的姓名、性別,按任意鍵退出修改模塊,否則繼續(xù);若輸入班級(jí)錯(cuò)誤則重新輸入開始flag=1flag=0數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告ReciseM:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和flag=1flag=0無該生記錄無該生記錄1rgetch)學(xué)號(hào)查找到學(xué)生,并選擇修改學(xué)生英語、數(shù)學(xué)、計(jì)算機(jī)成績(jī),按任意 鍵退出修改模塊,否則繼續(xù);若輸入班級(jí)錯(cuò)誤則重新輸入開始while(flag)結(jié)束數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告SearchS:從鍵盤上輸入學(xué)生所在班,并進(jìn)行選擇,分別按照姓名和 學(xué)號(hào)查找到學(xué)生,并選擇修改學(xué)生英語、數(shù)學(xué)、計(jì)算機(jī)成績(jī),按任意 鍵退出修改模塊,否則繼續(xù);若輸入班級(jí)錯(cuò)誤則重新輸入。數(shù)

10、據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告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é)生的信息。解決方法:每個(gè)班存放學(xué)

11、號(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ù)輸入。輸入的班號(hào)只能為

12、 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é)生的所有信息,直到按#返回,若按其他鍵,則繼續(xù)

14、輸入。輸入 的班號(hào)只能為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í), 緩存中的回

15、車。3)問題:當(dāng)只輸入一個(gè)學(xué)生時(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)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論