版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計</b></p><p> 專 業(yè): </p><p> 班 級: </p><p> 學(xué) 號: </p><p> 姓 名:
2、 </p><p> 日 期: </p><p> 鏈表基本綜合操作(簡單學(xué)生管理系統(tǒng))</p><p><b> 1. 系統(tǒng)需求分析</b></p><p> 在日常生活中,學(xué)生管理系統(tǒng)系統(tǒng)的應(yīng)用無處不在。學(xué)生成績管理系統(tǒng)是對學(xué)生基本信息及成績的管理。本程
3、序是綜合利用鏈表的基礎(chǔ)知識來編寫一個簡單的學(xué)生管理系統(tǒng),功能包括建立、顯示、查詢、刪除以及退出功能。 </p><p> 學(xué)生管理系統(tǒng)首先需要通過函數(shù)建立儲存學(xué)生信息的鏈表,其中學(xué)生信息包括學(xué)號、姓名、成績,這就需要建立包括上述信息的結(jié)構(gòu)體。當(dāng)然只建立儲存學(xué)生信息的鏈表是不夠的,因此需要一個輸出函數(shù)來把鏈表里儲存的學(xué)生信息按照一定的格式顯示出來。本系統(tǒng)還要求輸入一個學(xué)號即可檢索出該學(xué)生的有關(guān)信息并且檢索用函數(shù)實
4、現(xiàn),故該系統(tǒng)需要編寫查找學(xué)生信息的子函數(shù)。系統(tǒng)要求從鏈表中刪除成績低于50分的學(xué)生并且刪除節(jié)點用函數(shù)實現(xiàn),所以該系統(tǒng)又需編寫刪除子函數(shù)。</p><p><b> 2. 系統(tǒng)總體設(shè)計</b></p><p> 2.1 功能模塊設(shè)計</p><p> 該系統(tǒng)根據(jù)需求共設(shè)有四個模塊,即創(chuàng)建學(xué)生信息模塊、顯示學(xué)生信息模塊、刪除低于50分的學(xué)生的
5、學(xué)生信息模塊和查詢學(xué)生信息模塊。該系統(tǒng)具體模塊關(guān)系如下圖所示:</p><p> 輸入學(xué)生信息模塊主要是將用戶根據(jù)提示輸入的學(xué)生信息儲存在建立的鏈表之中,是最主要的子函數(shù)。</p><p> 顯示學(xué)生信息模塊是將通過輸入學(xué)生信息模塊輸入鏈表中的學(xué)生信息在系統(tǒng)界面中顯示出來。</p><p> 查詢學(xué)生信息模塊是將通過輸入學(xué)生信息模塊輸入鏈表中的學(xué)生信息在用戶輸
6、入所要查詢的學(xué)生學(xué)號后將相應(yīng)的學(xué)生信息顯示在系統(tǒng)界面中。</p><p> 刪除學(xué)生信息模塊是將通過輸入學(xué)生信息模塊輸入鏈表中的學(xué)生信息中成績低于50分的學(xué)生信息在鏈表中刪除并且提示用戶刪除完畢。</p><p><b> 2.2程序處理流程</b></p><p> 該系統(tǒng)的程序處理是通過主函數(shù)調(diào)用子函數(shù)來實現(xiàn)的。主函數(shù)中通過switc
7、h----case來調(diào)用子函數(shù),具體如下:</p><p><b> Case1 :</b></p><p> 調(diào)用輸入學(xué)生信息模塊,來完成鏈表的建立進而完成學(xué)生信息的輸入。</p><p><b> Case2 :</b></p><p> 調(diào)用顯示學(xué)生信息模塊,來完成學(xué)生信息在系統(tǒng)界面中
8、的顯示。</p><p><b> Case3 :</b></p><p> 調(diào)用查詢學(xué)生信息模塊,來完成用戶查詢學(xué)生信息的功能。</p><p><b> Case4 :</b></p><p> 調(diào)用刪除學(xué)生信息模塊,來完成用戶刪除成績低于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ù)無返回值。</p><p> 查詢學(xué)生信息的子函數(shù):void Search(NODE **head, long num)</p><p
11、> 函數(shù)入口的參數(shù)為指向NODE類型指針的指針以及所要查詢的學(xué)生信息的學(xué)號,該函數(shù)無返回值。</p><p> 刪除低于50分的子函數(shù):void Del(NODE **head,int n)</p><p> 函數(shù)入口的參數(shù)為指向NODE類型指針的指針以及所要刪除的分?jǐn)?shù)(在此系統(tǒng)中該參數(shù)默認(rèn)為50),該函數(shù)無返回值。</p><p> 3.系統(tǒng)詳細(xì)設(shè)計
12、與實現(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為儲存學(xué)生姓名的字符數(shù)組的大小,SCORE代表所要刪除的的學(xué)生信息是50分以下的。這
13、樣編寫的目的是提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤和便于修改。</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]; /*每個學(xué)生的姓名*/</p><p> long number; /*每個學(xué)生的學(xué)號*/</p><p> float score; /*每個學(xué)生的成績*/</p><p><b> };</b></p&g
15、t;<p> struct node /*建立一個結(jié)構(gòu)體作為鏈表的節(jié)點用來存儲學(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用來儲存學(xué)生信息,包括學(xué)生的學(xué)號、姓名及成績。NODE為鏈表的節(jié)點。</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)體目的是儲存每個輸入的學(xué)生的學(xué)生信息。</p><p> int num=0; 定義此整型變量目的是統(tǒng)計以輸入的學(xué)生人數(shù)。</p><p> NODE *pNew,*pCur; 定義此NODE類型的指針目的是用 pNew
18、 指向?qū)⒂脩糨斎朐趕truct STU one 中的學(xué)生信息,再通過pCur=pNew; 語句來完成鏈表的創(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)志量目的是在指針移動至鏈表末尾后flag=0; 以便退出循環(huán)。</p><p> NODE *p, *a;定義此NODE類型的指針目的是為了確保刪除無誤。</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類型的指針的目的是將其作為一個查詢用的指針來逐個查詢,以防遺漏。</p><p> p=*head; 將p初始化,即指向已有鏈表的第一項,目的是從第一個學(xué)生開始查詢。</p><
22、p> 3.4主函數(shù)、主函數(shù)處理函數(shù)、輔助函數(shù)的設(shè)計</p><p><b> 主函數(shù)源代碼如下:</b></p><p> int main()</p><p><b> {</b></p><p> int n,i,p,flag=1; /*通
23、過flag的值來控制是否退出循環(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"); /* 在界面中顯示功能模塊代號 */</p><p&
26、gt; scanf("%d",&p); /* 用戶輸入所需功能模塊代號 */</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é)號 */</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)實現(xiàn)</b></p><p><b> 系統(tǒng)主界面</b></p><p> 輸入學(xué)生信息模塊功能實現(xiàn)截圖</p><p> 顯示學(xué)生
34、信息模塊功能實現(xiàn)截圖</p><p> 查詢學(xué)生信息模塊功能實現(xiàn)截圖</p><p> 刪除低于50分以下學(xué)生信息功能實現(xiàn)截圖</p><p> 刪除后再次顯示學(xué)生信息截圖</p><p> 退出系統(tǒng)功能實現(xiàn)截圖</p><p> 結(jié)論(系統(tǒng)存在的問題)</p><p> 該系統(tǒng)程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡單投票管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計--簡單成績管理系統(tǒng)
- java課程設(shè)計簡單的班級管理系統(tǒng)
- 簡單的文件管理系統(tǒng)-c課程設(shè)計
- 學(xué)生管理系統(tǒng)課程設(shè)計
- 學(xué)生管理系統(tǒng)課程設(shè)計
- 學(xué)生管理系統(tǒng)設(shè)計課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--簡單的學(xué)生考試系統(tǒng)設(shè)計
- java課程設(shè)計---簡單高校圖書管理系統(tǒng)
- net課程設(shè)計---學(xué)生管理系統(tǒng)
- 《學(xué)生管理系統(tǒng)》課程設(shè)計報告
- mis課程設(shè)計--學(xué)生管理系統(tǒng)
- 學(xué)生考勤管理系統(tǒng)課程設(shè)計
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計
- 學(xué)生管理系統(tǒng)課程設(shè)計9
- 學(xué)生管理系統(tǒng)課程設(shè)計報告
- java學(xué)生管理系統(tǒng)課程設(shè)計
- 學(xué)生選課管理系統(tǒng)課程設(shè)計
- 學(xué)生管理系統(tǒng)課程設(shè)計報告
- 學(xué)生管理系統(tǒng)課程設(shè)計(java)
評論
0/150
提交評論