

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