版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語(yǔ)言課程設(shè)計(jì)</b></p><p> 專 業(yè): </p><p> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 姓 名:
2、 </p><p> 日 期: </p><p> 鏈表基本綜合操作(簡(jiǎn)單學(xué)生管理系統(tǒng))</p><p><b> 1. 系統(tǒng)需求分析</b></p><p> 在日常生活中,學(xué)生管理系統(tǒng)系統(tǒng)的應(yīng)用無(wú)處不在。學(xué)生成績(jī)管理系統(tǒng)是對(duì)學(xué)生基本信息及成績(jī)的管理。本程
3、序是綜合利用鏈表的基礎(chǔ)知識(shí)來(lái)編寫一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng),功能包括建立、顯示、查詢、刪除以及退出功能。 </p><p> 學(xué)生管理系統(tǒng)首先需要通過(guò)函數(shù)建立儲(chǔ)存學(xué)生信息的鏈表,其中學(xué)生信息包括學(xué)號(hào)、姓名、成績(jī),這就需要建立包括上述信息的結(jié)構(gòu)體。當(dāng)然只建立儲(chǔ)存學(xué)生信息的鏈表是不夠的,因此需要一個(gè)輸出函數(shù)來(lái)把鏈表里儲(chǔ)存的學(xué)生信息按照一定的格式顯示出來(lái)。本系統(tǒng)還要求輸入一個(gè)學(xué)號(hào)即可檢索出該學(xué)生的有關(guān)信息并且檢索用函數(shù)實(shí)
4、現(xiàn),故該系統(tǒng)需要編寫查找學(xué)生信息的子函數(shù)。系統(tǒng)要求從鏈表中刪除成績(jī)低于50分的學(xué)生并且刪除節(jié)點(diǎn)用函數(shù)實(shí)現(xiàn),所以該系統(tǒng)又需編寫刪除子函數(shù)。</p><p><b> 2. 系統(tǒng)總體設(shè)計(jì)</b></p><p> 2.1 功能模塊設(shè)計(jì)</p><p> 該系統(tǒng)根據(jù)需求共設(shè)有四個(gè)模塊,即創(chuàng)建學(xué)生信息模塊、顯示學(xué)生信息模塊、刪除低于50分的學(xué)生的
5、學(xué)生信息模塊和查詢學(xué)生信息模塊。該系統(tǒng)具體模塊關(guān)系如下圖所示:</p><p> 輸入學(xué)生信息模塊主要是將用戶根據(jù)提示輸入的學(xué)生信息儲(chǔ)存在建立的鏈表之中,是最主要的子函數(shù)。</p><p> 顯示學(xué)生信息模塊是將通過(guò)輸入學(xué)生信息模塊輸入鏈表中的學(xué)生信息在系統(tǒng)界面中顯示出來(lái)。</p><p> 查詢學(xué)生信息模塊是將通過(guò)輸入學(xué)生信息模塊輸入鏈表中的學(xué)生信息在用戶輸
6、入所要查詢的學(xué)生學(xué)號(hào)后將相應(yīng)的學(xué)生信息顯示在系統(tǒng)界面中。</p><p> 刪除學(xué)生信息模塊是將通過(guò)輸入學(xué)生信息模塊輸入鏈表中的學(xué)生信息中成績(jī)低于50分的學(xué)生信息在鏈表中刪除并且提示用戶刪除完畢。</p><p><b> 2.2程序處理流程</b></p><p> 該系統(tǒng)的程序處理是通過(guò)主函數(shù)調(diào)用子函數(shù)來(lái)實(shí)現(xiàn)的。主函數(shù)中通過(guò)switc
7、h----case來(lái)調(diào)用子函數(shù),具體如下:</p><p><b> Case1 :</b></p><p> 調(diào)用輸入學(xué)生信息模塊,來(lái)完成鏈表的建立進(jìn)而完成學(xué)生信息的輸入。</p><p><b> Case2 :</b></p><p> 調(diào)用顯示學(xué)生信息模塊,來(lái)完成學(xué)生信息在系統(tǒng)界面中
8、的顯示。</p><p><b> Case3 :</b></p><p> 調(diào)用查詢學(xué)生信息模塊,來(lái)完成用戶查詢學(xué)生信息的功能。</p><p><b> Case4 :</b></p><p> 調(diào)用刪除學(xué)生信息模塊,來(lái)完成用戶刪除成績(jī)低于50分的學(xué)生的學(xué)生信息的需求。</p>
9、;<p><b> Case5 :</b></p><p><b> 退出系統(tǒng)。</b></p><p> 模塊之間的接口,即模塊之間傳遞的信息如下:</p><p> 創(chuàng)建鏈表的子函數(shù):NODE *Creat(int n)</p><p> 函數(shù)入口的參數(shù)為用戶在主函數(shù)中輸
10、入的所有的學(xué)生人數(shù),函數(shù)返回值為NODE類型的指針。</p><p> 顯示學(xué)生信息的子函數(shù):void Out(NODE *head)</p><p> 函數(shù)入口的參數(shù)為1)中返回的NODE類型的指針,該函數(shù)無(wú)返回值。</p><p> 查詢學(xué)生信息的子函數(shù):void Search(NODE **head, long num)</p><p
11、> 函數(shù)入口的參數(shù)為指向NODE類型指針的指針以及所要查詢的學(xué)生信息的學(xué)號(hào),該函數(shù)無(wú)返回值。</p><p> 刪除低于50分的子函數(shù):void Del(NODE **head,int n)</p><p> 函數(shù)入口的參數(shù)為指向NODE類型指針的指針以及所要?jiǎng)h除的分?jǐn)?shù)(在此系統(tǒng)中該參數(shù)默認(rèn)為50),該函數(shù)無(wú)返回值。</p><p> 3.系統(tǒng)詳細(xì)設(shè)計(jì)
12、與實(shí)現(xiàn)</p><p><b> 3.1預(yù)處理</b></p><p> 該系統(tǒng)的頭文件為 #include<stdio.h> 和 #include<stdlib.h> 。宏定義為#define MAX 25和 #define SCORE 50 。其中MAX為儲(chǔ)存學(xué)生姓名的字符數(shù)組的大小,SCORE代表所要?jiǎng)h除的的學(xué)生信息是50分以下的。這
13、樣編寫的目的是提高程序的通用性和易讀性,減少不一致性,減少輸入錯(cuò)誤和便于修改。</p><p><b> 3.2數(shù)據(jù)結(jié)構(gòu)定義</b></p><p><b> 數(shù)據(jù)結(jié)構(gòu)定義如下:</b></p><p> struct STU</p><p><b> {</b><
14、;/p><p> char name[MAX]; /*每個(gè)學(xué)生的姓名*/</p><p> long number; /*每個(gè)學(xué)生的學(xué)號(hào)*/</p><p> float score; /*每個(gè)學(xué)生的成績(jī)*/</p><p><b> };</b></p&g
15、t;<p> struct node /*建立一個(gè)結(jié)構(gòu)體作為鏈表的節(jié)點(diǎn)用來(lái)存儲(chǔ)學(xué)生信息*/</p><p><b> {</b></p><p> struct STU data;</p><p> struct node *next;</p><p><
16、b> };</b></p><p> typedef struct node NODE;</p><p> 其中結(jié)構(gòu)體STU用來(lái)儲(chǔ)存學(xué)生信息,包括學(xué)生的學(xué)號(hào)、姓名及成績(jī)。NODE為鏈表的節(jié)點(diǎn)。</p><p> 3.3函數(shù)及變量聲明</p><p> 1)創(chuàng)建鏈表的子函數(shù):NODE *Creat(int n)<
17、;/p><p> 在此函數(shù)中所定義的變量為: </p><p> struct STU one; 定義此STU類型的結(jié)構(gòu)體目的是儲(chǔ)存每個(gè)輸入的學(xué)生的學(xué)生信息。</p><p> int num=0; 定義此整型變量目的是統(tǒng)計(jì)以輸入的學(xué)生人數(shù)。</p><p> NODE *pNew,*pCur; 定義此NODE類型的指針目的是用 pNew
18、 指向?qū)⒂脩糨斎朐趕truct STU one 中的學(xué)生信息,再通過(guò)pCur=pNew; 語(yǔ)句來(lái)完成鏈表的創(chuàng)立。</p><p> NODE *head=NULL;定義此NODE類型的指針并且指向NULL目的是確保鏈表的頭指針為空。</p><p> 2)顯示學(xué)生信息的子函數(shù):void Out(NODE *head)</p><p> 在此函數(shù)中所定義的變量為
19、:</p><p> NODE *pCur=head; 定義此NODE類型的指針目的是將指針指向以創(chuàng)建好的鏈表以便在此函數(shù)中完成顯示學(xué)生信息的功能。將其初始化為head 是為了不遺漏任何一人的學(xué)生信息。</p><p> 3)刪除低于50分的子函數(shù):void Del(NODE **head,int n)</p><p> 在此函數(shù)中所定義的變量為:</p
20、><p> int flag=1;定義此標(biāo)志量目的是在指針移動(dòng)至鏈表末尾后flag=0; 以便退出循環(huán)。</p><p> NODE *p, *a;定義此NODE類型的指針目的是為了確保刪除無(wú)誤。</p><p> a=p=*head; 將其初始化為head 是為了不遺漏任何一人的學(xué)生信息。</p><p> 4)查詢學(xué)生信息的子函數(shù):v
21、oid Search(NODE **head, long num)</p><p> 在此函數(shù)中所定義的變量為:</p><p> NODE *p; 定義此NODE類型的指針的目的是將其作為一個(gè)查詢用的指針來(lái)逐個(gè)查詢,以防遺漏。</p><p> p=*head; 將p初始化,即指向已有鏈表的第一項(xiàng),目的是從第一個(gè)學(xué)生開始查詢。</p><
22、p> 3.4主函數(shù)、主函數(shù)處理函數(shù)、輔助函數(shù)的設(shè)計(jì)</p><p><b> 主函數(shù)源代碼如下:</b></p><p> int main()</p><p><b> {</b></p><p> int n,i,p,flag=1; /*通
23、過(guò)flag的值來(lái)控制是否退出循環(huán)*/</p><p><b> long m;</b></p><p> NODE *head;</p><p> while(flag)</p><p><b> {</b></p><p> printf("******
24、**************************************************************************\n"); /*界面在主函數(shù)中顯示*/</p><p> printf("***************************歡迎使用學(xué)生管理系統(tǒng)*********************************\n");&
25、lt;/p><p> printf("1 Create students' information\n2 Output information\n3 Search information\n4 Delete students under 50\n5 Quit\n\n"); /* 在界面中顯示功能模塊代號(hào) */</p><p&
26、gt; scanf("%d",&p); /* 用戶輸入所需功能模塊代號(hào) */</p><p><b> switch(p)</b></p><p><b> {</b></p><p> case 1:
27、 /* 調(diào)用信息輸入模塊 */</p><p> printf("Please input how many students?\n"); </p><p> scanf("%d",&n); /* 用戶輸入學(xué)生人數(shù) */</p><p> head=Creat(
28、n);</p><p><b> break;</b></p><p> case 2: /* 調(diào)用信息輸出模塊 */</p><p> Out(head);</p><p><b> break;</b></p>
29、<p> case 3: /* 調(diào)用信息查找模塊 */</p><p> printf("The student you want to find is:\n");</p><p> scanf("%ld",&m); /
30、* 用戶輸入所要查詢學(xué)生學(xué)號(hào) */</p><p> Search(&head,m);</p><p><b> break;</b></p><p> case 4: /* 調(diào)用信息刪除模塊 */</p><p> Del(&head,SCORE)
31、;</p><p><b> break;</b></p><p> case 5: /* 退出程序功能 */</p><p> printf("Goodbye!歡迎使用");</p><p><b> flag=0;</b&g
32、t;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> getch();</b></p><p><b> re
33、turn 0;</b></p><p><b> }</b></p><p><b> 3.5系統(tǒng)實(shí)現(xiàn)</b></p><p><b> 系統(tǒng)主界面</b></p><p> 輸入學(xué)生信息模塊功能實(shí)現(xiàn)截圖</p><p> 顯示學(xué)生
34、信息模塊功能實(shí)現(xiàn)截圖</p><p> 查詢學(xué)生信息模塊功能實(shí)現(xiàn)截圖</p><p> 刪除低于50分以下學(xué)生信息功能實(shí)現(xiàn)截圖</p><p> 刪除后再次顯示學(xué)生信息截圖</p><p> 退出系統(tǒng)功能實(shí)現(xiàn)截圖</p><p> 結(jié)論(系統(tǒng)存在的問(wèn)題)</p><p> 該系統(tǒng)程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)單投票管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)--簡(jiǎn)單成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)簡(jiǎn)單的班級(jí)管理系統(tǒng)
- 簡(jiǎn)單的文件管理系統(tǒng)-c課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--簡(jiǎn)單的學(xué)生考試系統(tǒng)設(shè)計(jì)
- java課程設(shè)計(jì)---簡(jiǎn)單高校圖書管理系統(tǒng)
- net課程設(shè)計(jì)---學(xué)生管理系統(tǒng)
- 《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告
- mis課程設(shè)計(jì)--學(xué)生管理系統(tǒng)
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)9
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
評(píng)論
0/150
提交評(píng)論