版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 項目名稱: 學生信息管理系統(tǒng) </p><p><b> 目 錄</b></p><p> 1 實驗目的和意義1</p><p><b> 1.1 目的1</b></p><p><b> 1.2 意義1</b></p>
2、<p> 2 系統(tǒng)功能描述及設計1</p><p> 3 系統(tǒng)存儲結(jié)構(gòu)設計與描述3</p><p> 4 系統(tǒng)功能實現(xiàn)及算法描述3</p><p> 5 系統(tǒng)性能測試8</p><p><b> 6 設計小結(jié)14</b></p><p><b> 致謝1
3、4</b></p><p><b> 參考文獻15</b></p><p> 附錄:源代碼清單16</p><p><b> 1 實驗目的和意義</b></p><p><b> 1.1 目的</b></p><p> C語言課
4、程設計要求我們綜合應用所學的計算機基礎(chǔ)知識和所掌握的程序設計——C語言,獨立地設計并實現(xiàn)一個較為完整的小型軟件系統(tǒng)。主要目的是在鞏固所學內(nèi)容的基礎(chǔ)之上,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉我們分析解決實際問題的能力。是我們通過系統(tǒng)分析,系統(tǒng)設計,編程調(diào)試,寫實驗報告等環(huán)節(jié),初步掌握軟件設計的方法和步驟,靈活運用程序設計進行軟件開發(fā)的能力,提高分析問題和解決問題的能力,提高程序設計水平。</p><p>&
5、lt;b> 1.2 意義</b></p><p> 描述實驗意義學生信息檔案的管理對于學校的管理者來說至關(guān)重要,學生信息是高等學校非常重要的一項數(shù)據(jù)資源,是一個教育單位不可缺少一部分。但其包含的數(shù)據(jù)量大,涉及的人員面廣,而且需要及時更新,故較為復雜,難以單純地依賴人工管理,而且傳統(tǒng)的人工管理方式既不易于規(guī)范化,管理效率也不高,所以利用計算機實現(xiàn)學生信息檔案管理成為必然的趨勢。本系統(tǒng)針對學校學
6、生信息的特點以及管理中實際需要而設計,能夠有效地實現(xiàn)學生信息管理的信息化,減輕管理人員的工作負擔,高效率、規(guī)范化地管理大量的學生信息,并避免人為操作的錯誤和不規(guī)范行為。</p><p> 2 系統(tǒng)功能描述及設計</p><p> 系統(tǒng)設計的總?cè)蝿帐菍崿F(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)設計主要包括以下兩方面:</p><p> 1.系統(tǒng)功能設計是在系統(tǒng)開發(fā)
7、的總體任務的基礎(chǔ)上完成。本設計中的信息管理系統(tǒng)需要完成功能主要有:</p><p> 學生信息錄入,包括學號、學生姓名、學生性別、學生的計算機成績、英語成績、數(shù)學成績。其中學號是隨機生成的。</p><p> 學生信息瀏覽,包括學號、學生姓名、學生性別、計算機成績、英語成績、數(shù)學成績等。</p><p> 學生信息查詢,包括按學號查詢和按姓名查詢學生學號、學生
8、姓名、學生性別、計算機成績、英語成績、數(shù)學成績。</p><p> 學生信息排序,包括按學生的總分大小進行從大到小排序。</p><p> 學生信息添加, 包括添加學生學號、學生姓名、學生性別、計算機成績、英語成績、數(shù)學成績等</p><p> 學生信息統(tǒng)計,包括最高分、最低分、平均分、及格率及各個分數(shù)段的比率。</p><p> 學
9、生信息刪除,包括按學號查詢該學生然后顯示該學生的信息,并提示是否刪除。</p><p> 學生信息修改,包括學生學號、學生姓名、學生性別、計算機成績、英語成績、數(shù)學成績等的修改。</p><p> 2.系統(tǒng)功能模塊設計是對上述各項功能進行集中、分塊,按照結(jié)構(gòu)化程序設計的要求,得到如圖2-1所示的系統(tǒng)功能模塊圖。</p><p> 圖2-1學生信息管理系統(tǒng)功能模
10、塊圖</p><p> 3 系統(tǒng)存儲結(jié)構(gòu)設計與描述</p><p> 存儲結(jié)構(gòu)為結(jié)構(gòu)體,如下:</p><p> struct student</p><p><b> {</b></p><p> int ID; /*學生的學號*/&l
11、t;/p><p> char Name[20]; /*學生的姓名*/</p><p> char Sex[3]; /*學生的性別*/</p><p> float Computer; /*學生的計算機成績*/</p><p> f
12、loat English; /*學生的英語成績*/</p><p> float Math; /*學生的數(shù)學成績*/</p><p> float Average; /*學生的平均分數(shù)*/</p><p> }student[1000],t;
13、 /*定義了一千個學生,t為程序中需要的中介結(jié)構(gòu)體在查詢學生成績的時候可以作為中介變量是整個結(jié)構(gòu)體轉(zhuǎn)換。另外在學生信息排序的是的時候在定義最大值得時候作為中介變量使得排序按照平均分數(shù)排序*/</p><p> 定義的一個包含學生學號、姓名、性別、計算機分數(shù)、數(shù)學分數(shù)、英語分數(shù)的結(jié)構(gòu)體變量。用于存儲學生信息。后面給出了結(jié)構(gòu)體中的具體的解釋和說明,在此種的程序管理中,定義結(jié)構(gòu)體可以使
14、得程序變得簡單,不會那么的復雜難以控制,這也是結(jié)構(gòu)體在寫程序時候的方便。</p><p> 4 系統(tǒng)功能實現(xiàn)及算法描述</p><p> 下面是系統(tǒng)用到的函數(shù)名:</p><p> void main(); /*主函數(shù)*/</p><p> void save();
15、 /*文件的保存*/</p><p> int load(); /*文件的讀取*/</p><p> int suiji(); /*隨機數(shù)的生成*/</p><p> int Student_SearchByIn
16、dex(int id); /*通過學號返回數(shù)組下標*/</p><p> int Student_SearchByName(char name[]); /*通過姓名返回數(shù)組下標*/</p><p> void Student_StatisticsByMath(); /*按數(shù)學成績統(tǒng)計學生信息*/</p><p> void
17、 Student_StatisticsByEnglish(); /*按英語成績統(tǒng)計學生信息*/</p><p> void Student_StatisticsByComputer(); /*按計算機成績統(tǒng)計學生信息*/</p><p> float Student_Average(int index); /*求每個學生的平均分數(shù)*/</
18、p><p> void Student_DisplaySingle(int index); /*顯示單個的學生信息*/</p><p> void Student_Input(); /*輸入學生的信息*/</p><p> void Student_Display(); /*瀏覽學生信息*
19、/</p><p> void Student_Select(); /*兩種選擇查找*/</p><p> void Student_Sort(); /*對學生信息排序*/</p><p> void Student_Statistics(); /*統(tǒng)計學生信
20、息*/</p><p> void Student_Insert(); /*添加學生信息*/</p><p> void Student_Modify(); /*修改學生信息*/</p><p> void Student_Delete(); /*刪除學生信
21、息*/</p><p> 以上為全部函數(shù),后面為函數(shù)的說明。下面給出部分函數(shù)的流程圖:</p><p> 1.主菜單模塊包含了錄入,瀏覽,查詢,排序,統(tǒng)計,添加,修改,刪除,退出這幾個小模塊,他們之間存在以下的聯(lián)系,用流程圖給出,學生信息管理功能菜單的流程圖:</p><p> 圖4-1功能菜單的流程圖</p><p> 2.主菜單選
22、3進入查詢模塊,包含了按學號查詢和按姓名查詢,如果輸入的學號與內(nèi)存里的學號相等,就輸出該學生的所有信息,如果不相等則提示用戶不存在該學生,并且詢問用戶時候繼續(xù)查詢,若繼續(xù)查詢則重新輸入學號,若不繼續(xù)則返回上一層菜單。下面給出按學號查詢的流程圖:</p><p> 圖4-2 學號查詢流程圖</p><p> 這個流程圖是按學號來查詢學生信息,先進入主菜單輸入3選擇查詢模塊,然后輸入用戶想
23、要查詢的學生的學生學號,此時調(diào)用子函數(shù)int Student_SearchByIndex(int id)來確定是否有該學生,若有則輸出該學生的信息,若不存在,則顯示不存在該學生并詢問用戶是否繼續(xù)查詢。</p><p> 3.主菜單選6進入刪除模塊,刪除函數(shù)的功能是首先查詢是否有這個學生,如果有,則選擇是否刪除。如果沒有則輸出不存在該學生并且詢問用戶是否繼續(xù)查詢。下面給出刪除函數(shù)的流程圖:</p>
24、<p> 圖4-3學生刪除函數(shù)流程圖</p><p> 學生刪除模塊,開始主菜單后選擇8進入學生信息刪除模塊,繼而輸入要刪除的學生的學號,系統(tǒng)會通過學號來查找要刪除的學生信息,同時調(diào)用int Student_SearchByIndex(int id)函數(shù)來確定是否有該學生,有則詢問用戶是否要刪除,若不存在該學生則輸出不存在,是否繼續(xù),刪除學生信息之后系統(tǒng)繼續(xù)詢問用戶是否繼續(xù)刪除學生信息。</p
25、><p> 4.主菜單選5進入統(tǒng)計模塊,統(tǒng)計函數(shù)的功能按照用戶的選擇來按照不同科目的成績來統(tǒng)計學生信息。可以按照計算機成績,英語成績和數(shù)學成績統(tǒng)計,下面用計算機成績的流程圖來舉例吧。</p><p> 圖4-4學生統(tǒng)計函數(shù)流程圖(按計算機成績統(tǒng)計)</p><p> 如圖按照學生計算機成績來統(tǒng)計學生信息,先進入主菜單有用戶選擇統(tǒng)計模塊,進入統(tǒng)計模塊后進入了統(tǒng)計子菜
26、單,由用戶選擇1按照計算機成績來統(tǒng)計所有學生的關(guān)于計算機成績的最高分,最低分,平均跟,及格率和分數(shù)段比率。</p><p><b> 5 系統(tǒng)性能測試</b></p><p> 通過對程序測試的截圖,顯示各函數(shù)的測試情況,下面為各個模塊的測試圖:</p><p> 程序主菜單:進入主菜單之后可以有如圖九種選擇。</p>&l
27、t;p><b> 圖5-1程序主菜單</b></p><p> 輸入1后進入錄入學生信息菜單,可以錄入學生姓名,性別,學號,計算機分數(shù),英語分數(shù)和數(shù)學分數(shù),錄入完了一位學生信息后可以選擇是否繼續(xù)錄入,選擇y可以繼續(xù)錄入學生信息。</p><p> 圖5-2錄入學生信息菜單</p><p> 開始錄入學生信息,如圖,錄入完了一個學生
28、信息之后選擇y繼續(xù)便進行下一個學生的信息錄入.。</p><p> 圖5-3錄入學生信息</p><p> 輸入n后,回到主菜單然后輸入2瀏覽學生信息,瀏覽學生信息將所有的學生信息按照指定的格式輸出,瀏覽學生信息之后可以按enter鍵返回主菜單。</p><p> 圖5-4學生信息瀏覽</p><p> 輸入enter之后返回主菜單,
29、繼續(xù)輸入3后進入查詢界面如圖所示,可以有兩種查詢的方式,按學號查找和按姓名查找,如圖選擇一可以按學號查詢學生信息,輸入學號顯示學生信息,并且提示用戶是否繼續(xù),若繼續(xù)則繼續(xù)輸入學號查詢,若不繼續(xù)則返回上一個菜單。</p><p> 圖5-5學生信息查詢</p><p> 主菜單輸入4進入排序界面,如圖所示,系統(tǒng)按照總分成績大小從上往下排序,排序完了之后并顯示排序后的學生信息瀏覽,瀏覽完按
30、enter鍵返回主菜單。</p><p> 圖5-6學生信息排序主菜單</p><p> 主菜單選5進入統(tǒng)計菜單,在統(tǒng)計菜單里面可以選擇按計算機成績,按英語成績,按數(shù)學成績這三種方式對學生信息進行統(tǒng)計。</p><p> 圖5-7學生信息統(tǒng)計菜單</p><p> 計算機分數(shù)統(tǒng)計,此時系統(tǒng)按照所以學生的計算機成績來統(tǒng)計,統(tǒng)計后顯示學生
31、計算機成績里面的最高分,最低分,平均分,及格率以及分數(shù)段比率。統(tǒng)計完了之后提示用戶是否繼續(xù),若繼續(xù)則返回上一個菜單,不繼續(xù)則返回主菜單。</p><p> 圖5-8計算機分數(shù)統(tǒng)計</p><p> 主菜單選6進入添加學生信息界面,進圖界面之后由用戶添加一個學生的信息,包括學生姓名,學生性別,計算機成績,英語成績和數(shù)學成績,至于學號由系統(tǒng)隨機分配。</p><p>
32、; 圖5-9刪除學生信息</p><p> 主菜單選7進入修改菜單,通過輸入學生學號查找到學生的信息,然后顯示學生的信息,并且讓用戶重新輸入要修改后的信息,包含姓名,性別,計算機成績,英語成績和數(shù)學成績,至于學號是系統(tǒng)隨機生成。</p><p> 圖5-10修改學生信息</p><p> 主菜單選8進入刪除菜單,進入刪除菜單后通過輸入學號找到要刪除的學生信息
33、,程序通過后一個的學生信息將前一個學生的信息依次覆蓋來達到學生刪除功能,顯示了學生信息之后提示用戶是否繼續(xù)刪除.</p><p><b> 圖5-11刪除菜單</b></p><p> 主菜單選9退出即可推出該系統(tǒng)。</p><p> 圖5-12退出學生管理系統(tǒng)</p><p><b> 系統(tǒng)總結(jié):&l
34、t;/b></p><p> 整個系統(tǒng)清新簡明,功能較多,模塊分析到位,有錄入也有添加,信息加入之后還有修改以及刪除功能,觀看里面的學生信息有瀏覽功能,為了明了的了解學生的信息還附帶了排序,查找和統(tǒng)計功能,總體而言系統(tǒng)比較完善,具備的功能也比較多,而且該系統(tǒng)對非法字符也有所考慮,大致的內(nèi)容模板簡單明了。</p><p><b> 6 設計小結(jié)</b><
35、/p><p> 我覺得這次課程設計應該是我們大一下學期以來寫的最多代碼的程序了,以前每次上機寫過許多的小程序,感覺都不是很難。可是這次的課程設計,才發(fā)現(xiàn)要寫一個比較完善的管理系統(tǒng)是比較困難的,通過這次的課程設計我發(fā)現(xiàn)我在學習上有太多的不足。比如一開始不知道該如何下手,一點思路都沒有。后來就將一個個的子函數(shù)寫出來,然后將它們一個一個運行,發(fā)現(xiàn)沒有很大問題,但是這時候總體的時候卻又出了別的新問題了。很多函數(shù)連接不起來。
36、問題還是有很多,在文件的讀取與寫入,遇見了比較多次的麻煩,有關(guān)于這個返回值的問題,因為將程序運行完了一次之后輸入的人數(shù)的總體值會清零,而這個時候在讀文件的時候需要返回值,后來是在老師的指導下慢慢完成的。不過在此期間,我學到了很多東西。以前學習的選擇語句,條件語句,變量的控制等等都得到了很好的鞏固。還有我知道了如何一條條的去調(diào)試語句,運用這個方法我知道如何更簡單知道程序的錯誤和修改程序。當我把程序?qū)懞煤?,我發(fā)現(xiàn)C語言并不是很難,難的是自己
37、并不用心花時間去專研,雖然遇到了很多的困難,但是進過自己的努力和同學與老師的幫助,自己也是全部弄清楚了,這次程序設計我學到了很多。</p><p><b> 致謝</b></p><p> 本次課程設計是在胡老師指導以及同學們的互相幫助下完成的,在此次的程序編寫中老師給了我很多的建議和指導,使得本設計順利完成。在此期間, 老師對我提出的問題都很詳細的給出解答,無論
38、是小問題或者是一些比較麻煩的問題都很細心的指導和說教。一點點的指出我錯誤的部分,并給出各種解決方法。這次的程序設計真的很謝謝胡老師。</p><p><b> 參考文獻</b></p><p> [1] 雷于生,胡成松.C語言程序設計[M].北京:高等教育出版社,廣州:中山大學出版社.2009.[2] 譚浩強.C語言課程設計(第三版)[M].北京:清華大學出版社
39、.1996.[3] 譚浩強.C程序設計題解與上機指導[M].北京:清華大學出版社.2005.[4] 黃遠林 等編著.C語言程序設計基礎(chǔ)實驗與題解[M].北京:清華大學出版社.2010. </p><p><b> 附錄:源代碼清單</b></p><p> #include"stdio.h"</p><p>
40、#include"stdlib.h"</p><p> #include"string.h"</p><p> void save(); /*文件的保存*/</p><p> int load(); /*文件的讀取*
41、/</p><p> int suiji(); /*隨機數(shù)的生成*/</p><p> int Student_SearchByIndex(int id); /*通過學號返回數(shù)組下標*/</p><p> int Student_SearchByName(char name[]); /*通過姓名返回數(shù)
42、組下標*/</p><p> void Student_StatisticsByMath(); /*按數(shù)學成績統(tǒng)計學生信息*/</p><p> void Student_StatisticsByEnglish(); /*按英語成績統(tǒng)計學生信息*/</p><p> void Student_StatisticsByComputer();
43、 /*按計算機成績統(tǒng)計學生信息*/</p><p> float Student_Average(int index); /*求每個學生的平均分數(shù)*/</p><p> void Student_DisplaySingle(int index); /*顯示單個的學生信息*/</p><p> void Student_Input();
44、 /*輸入學生的信息*/</p><p> void Student_Display(); /*瀏覽學生信息*/</p><p> void Student_Select(); /*兩種選擇查找*/</p><p> void Student_Sort();
45、 /*對學生信息排序*/</p><p> void Student_Statistics(); /*統(tǒng)計學生信息*/</p><p> void Student_Insert(); /*添加學生信息*/</p><p> void Student_Modify();
46、 /*修改學生信息*/</p><p> void Student_Delete(); /*刪除學生信息*/</p><p> int Num=0,SAME[20];</p><p> struct student</p><p><b> {</b></p>
47、<p> int ID; /*學生的學號*/</p><p> char Name[20]; /*學生的姓名*/</p><p> char Sex[3]; /*學生的性別*/</p><p> float Computer
48、; /*學生的計算機成績*/</p><p> float English; /*學生的英語成績*/</p><p> float Math; /*學生的數(shù)學成績*/</p><p> float Average;
49、 /*學生的平均分數(shù)*/</p><p> }student[1000],t; /*定義了一千個學生,t為程序中需要的中介結(jié)構(gòu)體*/</p><p> void main()</p><p><b> {</b></p><p><b> int n;</b&
50、gt;</p><p> while(n!=9)</p><p><b> {</b></p><p> system("cls");</p><p> printf("*********************************************************
51、***\n");</p><p> printf("- - - - - - - - - - - - ");</p><p> printf("學生信息管理系統(tǒng)");</p><p> printf("- - - - - - - - - - - - \n");</p><p
52、> printf("1.錄入學生信息 ");/*完成*/</p><p> printf("2.瀏覽學生信息 \n");/*完成*/</p><p> printf("3.查找學生信息 ");/*完成*/</p><p> printf("4
53、.對學生信息排序 \n");/*完成*/</p><p> printf("5.統(tǒng)計學生信息 ");/*完成*/</p><p> printf("6.添加學生信息 \n");/*完成*/</p><p> printf("7.修改學生信息 &quo
54、t;);/*完成*/</p><p> printf("8.刪除學生信息 \n");/*完成*/</p><p> printf("9.退出程序 \n");</p><p> printf("- - - - - - - - - - - - - - - - - - - - - - -
55、- - - - - - - \n");</p><p> printf("************************************************************\n");</p><p> printf("輸入選擇類型1--9:\n");</p><p> scanf(&quo
56、t;%d",&n);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1:Student_Input();break;</p><p> case 2:Student_Display();break;&
57、lt;/p><p> case 3:Student_Select();break;</p><p> case 4:Student_Sort();break;</p><p> case 5:Student_Statistics();break;</p><p> case 6:Student_Insert();break;</p&
58、gt;<p> case 7:Student_Modify();break;</p><p> case 8:Student_Delete();break;</p><p> case 9:exit(0);break;</p><p><b> }</b></p><p><b> }&
59、lt;/b></p><p><b> }</b></p><p><b> /*隨機數(shù)*/</b></p><p> int suiji()</p><p><b> {</b></p><p><b> int m,n;&l
60、t;/b></p><p> for(m=0;m<1000;m++)</p><p><b> {</b></p><p> SAME[m]=rand()%1000+2011000;</p><p> for(n=0;n<m;n++)</p><p> if(SAME[
61、m]==SAME[n])</p><p><b> {</b></p><p><b> m--;</b></p><p><b> break;</b></p><p><b> }</b></p><p> retur
62、n SAME[m];</p><p><b> }</b></p><p><b> }</b></p><p> /*通過學號返回數(shù)組下標*/</p><p> int Student_SearchByIndex(int id)</p><p><b>
63、 {</b></p><p><b> int i;</b></p><p> for (i=0;i<Num;i++)</p><p><b> {</b></p><p> if(student[i].ID==id)</p><p><b&g
64、t; {</b></p><p><b> return i;</b></p><p><b> }</b></p><p><b> }</b></p><p> return -1;</p><p><b> } &
65、lt;/b></p><p> /*通過姓名返回數(shù)組下標*/</p><p> int Student_SearchByName(char name[])</p><p><b> {</b></p><p><b> int i;</b></p><p>
66、for(i=0;i<Num;i++)</p><p><b> {</b></p><p> if(strcmp(student[i].Name,name)==0)</p><p><b> {</b></p><p><b> return i;</b><
67、/p><p><b> }</b></p><p><b> }</b></p><p> return -1;</p><p><b> }</b></p><p> /*求每個學生的平均分數(shù)*/</p><p> fl
68、oat Student_Average(int index)</p><p><b> {</b></p><p> student[index].Average=(student[index].Computer+student[index].English+student[index].Math)/3;</p><p> return
69、student[index].Average;</p><p><b> }</b></p><p> /*顯示單個學生信息*/</p><p> void Student_DisplaySingle(int index)</p><p><b> {</b></p><
70、p> printf("%10s%10s%10s%8s%8s%8s\n","學號","姓名","性別","計算機","英語","數(shù)學");</p><p> printf("------------------------------------------
71、------------------\n");</p><p> printf("%10d%10s%10s%8.2f%8.2f%8.2f\n",student[index].ID,student[index].Name,student[index].Sex,student[index].Computer,student[index].English,student[index].M
72、ath);</p><p><b> }</b></p><p> /*錄入學生的信息*/ </p><p> void Student_Input() </p><p><b> {</b></p><p><b> char ch;</b>
73、</p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("請輸入姓名:");</p><p> scanf("%s",student[Num].Name);</p>&l
74、t;p> printf("請輸入學生性別:");</p><p> scanf("%s",student[Num].Sex);</p><p> printf("請輸入計算機成績:");</p><p> scanf("%f",&student[Num].Compu
75、ter);</p><p> printf("請輸入英語成績:");</p><p> scanf("%f",&student[Num].English);</p><p> printf("請輸入數(shù)學成績:");</p><p> scanf("%f&qu
76、ot;,&student[Num].Math);</p><p> student[Num].ID=suiji();</p><p><b> Num++;</b></p><p> printf("是否繼續(xù)?(y/n):");</p><p> getchar();</p>
77、;<p> ch=getchar();</p><p> while(ch!='y'&&ch!='n')</p><p><b> {</b></p><p> printf("輸入格式不正確,是否繼續(xù)(y/n):");</p><p&
78、gt; getchar();</p><p> ch=getchar();</p><p> if(ch=='n')</p><p><b> {</b></p><p><b> break;</b></p><p><b> }<
79、;/b></p><p><b> }</b></p><p> if(ch=='n')</p><p><b> {</b></p><p><b> break;</b></p><p><b> }<
80、/b></p><p><b> } </b></p><p><b> save();</b></p><p><b> }</b></p><p> /*瀏覽學生信息*/</p><p> void Student_Display()
81、</p><p><b> {</b></p><p> Num=load();</p><p><b> int i;</b></p><p> printf("%10s%10s%10s%8s%8s%8s\n","學號","姓名"
82、,"性別","計算機","英語","數(shù)學");</p><p> printf("------------------------------------------------------------\n");</p><p> for(i=0;i<Num;i++)</p&
83、gt;<p><b> {</b></p><p> printf("%10d%10s%10s%8.2f%8.2f%8.2f\n",student[i].ID,student[i].Name,student[i].Sex,student[i].Computer,student[i].English,student[i].Math); </p>
84、<p><b> }</b></p><p> printf("按enter鍵返回");</p><p> getchar();</p><p> getchar();</p><p><b> }</b></p><p> /*
85、按姓名查詢學生信息*/</p><p> void Student_SelectByName()</p><p><b> {</b></p><p><b> char ch;</b></p><p><b> while(1)</b></p><
86、p><b> {</b></p><p> char name[20];</p><p> int index;</p><p> printf("請輸入要查詢的學生的姓名:");</p><p> scanf("%s",&name);</p>
87、<p> index=Student_SearchByName(name);</p><p> if(index==-1)</p><p><b> {</b></p><p> printf("學生不存在!\n");</p><p><b> }</b>&
88、lt;/p><p><b> else</b></p><p><b> {</b></p><p> printf("你要查詢的學生信息為:\n");</p><p> Student_DisplaySingle(index);</p><p>&l
89、t;b> }</b></p><p> printf("是否繼續(xù)?(y/n):");</p><p> getchar();</p><p> ch=getchar();</p><p> while(ch!='y'&&ch!='n')</p
90、><p><b> {</b></p><p> printf("輸入格式不正確,是否繼續(xù)(y/n):");</p><p> getchar();</p><p> ch=getchar();</p><p> if(ch=='n')</p>
91、<p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(ch=='n')</p>
92、<p><b> {</b></p><p> Student_Select(); </p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>&
93、lt;p><b> }</b></p><p> /*按學號查詢學生信息*/</p><p> void Student_SelectByIndex()</p><p><b> {</b></p><p><b> char ch;</b></p>
94、<p><b> while(1)</b></p><p><b> {</b></p><p> int index,id;</p><p> printf("請輸入要查詢的學生的學號:");</p><p> scanf("%d",
95、&id);</p><p> index=Student_SearchByIndex(id);</p><p> if(index==-1)</p><p><b> {</b></p><p> printf("學生不存在!\n");</p><p><
96、b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("你要查詢的學生信息為:\n");</p><p> Student_DisplaySingle(index);<
97、/p><p><b> }</b></p><p> printf("是否繼續(xù)?(y/n):");</p><p> getchar();</p><p> ch=getchar();</p><p> while(ch!='y'&&ch!
98、='n')</p><p><b> {</b></p><p> printf("輸入格式不正確,是否繼續(xù)(y/n):");</p><p> getchar();</p><p> ch=getchar();</p><p> if(ch==
99、9;n')</p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(ch=='
100、;n')</p><p><b> {</b></p><p> Student_Select();</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</
101、b></p><p><b> }</b></p><p> /*兩種選擇查找學生信息*/</p><p> void Student_Select()</p><p><b> {</b></p><p> Num=load();</p>&l
102、t;p> system("cls");</p><p><b> int n;</b></p><p> printf("------------------------------------------------------------\n");</p><p> printf(&qu
103、ot;1.按學號查詢 ");</p><p> printf("2.按姓名查詢 \n");</p><p> printf("3.退出該查詢 \n");</p><p> printf("------------------------------------
104、------------------------\n");</p><p> printf("輸入選擇類型1--3:\n");</p><p> scanf("%d",&n);</p><p><b> switch(n)</b></p><p><b
105、> {</b></p><p> case 1:Student_SelectByIndex();break;</p><p> case 2:Student_SelectByName();break;</p><p> case 3:;break;</p><p><b> }</b><
106、/p><p><b> }</b></p><p> /*按總分對學生信息排序*/</p><p> void Student_Sort()</p><p><b> {</b></p><p> Num=load();</p><p><
107、b> int i,j;</b></p><p> for(i=0;i<Num;i++)</p><p> student[i].Average=Student_Average(i);</p><p> for(i=0;i<Num-1;i++)</p><p><b> {</b>&
108、lt;/p><p> for(j=0;j<Num-i-1;j++)</p><p> if(student[j+1].Average>student[j].Average)</p><p><b> {</b></p><p> t=student[j+1];</p><p>
109、student[j+1]=student[j];</p><p> student[j]=t;</p><p><b> }</b></p><p><b> }</b></p><p> printf("%10s%10s%10s%8s%8s%8s\n","學號
110、","姓名","性別","計算機","英語","數(shù)學");</p><p> printf("------------------------------------------------------------\n");</p><p> for(i=0
111、;i<Num;i++)</p><p><b> {</b></p><p> printf("%10d%10s%10s%8.2f%8.2f%8.2f\n",student[i].ID,student[i].Name,student[i].Sex,student[i].Computer,student[i].English,student
112、[i].Math); </p><p><b> }</b></p><p> printf("按enter鍵返回");</p><p> getchar();</p><p> getchar();</p><p><b> }</b><
113、/p><p> /*按計算機成績統(tǒng)計學生信息*/</p><p> void Student_StatisticsByComputer()</p><p><b> {</b></p><p><b> char ch;</b></p><p> int i,a=0,b
114、=0,c=0,d=0,e=0,j=0;</p><p> float max=0,min=100,s=0,Average,jige;</p><p> for(i=0;i<Num;i++)</p><p><b> {</b></p><p> if(student[i].Computer>max)&
115、lt;/p><p> max=student[i].Computer;</p><p> if(student[i].Computer<min)</p><p> min=student[i].Computer;</p><p> s=s+student[i].Computer;</p><p> if(s
116、tudent[i].Computer>=60)</p><p><b> j++;</b></p><p> if(student[i].Computer>=0&&student[i].Computer<=59)</p><p><b> a++;</b></p>&l
117、t;p> if(student[i].Computer>=60&&student[i].Computer<=69)</p><p><b> b++;</b></p><p> if(student[i].Computer>=70&&student[i].Computer<=79)</p>
118、<p><b> c++;</b></p><p> if(student[i].Computer>=80&&student[i].Computer<=89)</p><p><b> d++;</b></p><p> if(student[i].Computer>
119、=90&&student[i].Computer<=100)</p><p><b> e++;</b></p><p><b> }</b></p><p> Average=s/Num;</p><p> printf("\n");</p&
120、gt;<p> jige=(float)j/Num;</p><p> printf("%8s%8s%8s%8s%12s\n","最高分","最低分","平均分","及格率","分數(shù)段比率");</p><p> printf("------
121、------------------------------------------------------\n");</p><p> printf("%8.2f%8.2f%8.2f%8.2f %d:%d:%d:%d:%d",max,min,Average,jige,a,b,c,d,e);</p><p> printf("\n")
122、;</p><p> printf("是否繼續(xù)?(y/n):");</p><p> getchar();</p><p> ch=getchar();</p><p> while(ch!='y'&&ch!='n')</p><p><
123、b> {</b></p><p> printf("輸入格式不正確,是否繼續(xù)(y/n):");</p><p> getchar();</p><p> ch=getchar();</p><p> if(ch=='n')</p><p><b>
124、; {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(ch=='y')</p><p><b>
125、 {</b></p><p> Student_Statistics();</p><p><b> }</b></p><p><b> }</b></p><p> /*按英語成績統(tǒng)計學生信息*/</p><p> void Student_Sta
126、tisticsByEnglish()</p><p><b> {</b></p><p><b> char ch;</b></p><p> int i,j=0,a=0,b=0,c=0,d=0,e=0;</p><p> float max=0,min=100,s=0,Average,j
127、ige;</p><p> for(i=0;i<Num;i++)</p><p><b> {</b></p><p> if(student[i].English>max)</p><p> max=student[i].English;</p><p> if(stude
128、nt[i].English<min)</p><p> min=student[i].English;</p><p> s=s+student[i].English;</p><p> if(student[i].English>=60)</p><p><b> j++;</b></p>
129、;<p> if(student[i].English>=0&&student[i].English<=59)</p><p><b> a++;</b></p><p> if(student[i].English>=60&&student[i].English<=69)</p>
130、<p><b> b++;</b></p><p> if(student[i].English>=70&&student[i].English<=79)</p><p><b> c++;</b></p><p> if(student[i].English>=80
131、&&student[i].English<=89)</p><p><b> d++;</b></p><p> if(student[i].English>=90&&student[i].English<=100)</p><p><b> e++;</b><
132、/p><p><b> }</b></p><p> Average=s/Num;</p><p> jige=(float)j/Num;</p><p> printf("%8s%8s%8s%8s%12s\n","最高分","最低分","平均分&
133、quot;,"及格率","分數(shù)段比率");</p><p> printf("------------------------------------------------------------\n");</p><p> printf("%8.2f%8.2f%8.2f%8.2f %d:%d:%d:%d:%d&
134、quot;,max,min,Average,jige,a,b,c,d,e);</p><p> printf("\n");</p><p> printf("是否繼續(xù)?(y/n):");</p><p> getchar();</p><p> ch=getchar();</p>
135、<p> while(ch!='y'&&ch!='n')</p><p><b> {</b></p><p> printf("輸入格式不正確,是否繼續(xù)(y/n):");</p><p> getchar();</p><p> c
136、h=getchar();</p><p> if(ch=='n')</p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b>
137、}</b></p><p> if(ch=='y')</p><p><b> {</b></p><p> Student_Statistics();</p><p><b> }</b></p><p><b> }<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言學生選課系統(tǒng)課程設計
- 課程設計-c語言學生成績管理系統(tǒng)設計
- c語言學生成績管理系統(tǒng)課程設計報告
- c語言學生成績管理系統(tǒng)課程設計報告
- c語言學生證管理系統(tǒng)課程設計報告
- c語言學生成績管理系統(tǒng)課程設計報告 (2)
- c語言學生成績管理系統(tǒng)課程設計報告 (3)
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計--學生信息管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計——學生宿舍管理系統(tǒng)
- c語言課程設計--- 學生信息管理系統(tǒng)
- c語言課程設計----學生成績管理系統(tǒng)
- c語言課程設計--學生信息管理系統(tǒng)
- c語言課程設計——學生信息管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計---學生信息管理系統(tǒng)
評論
0/150
提交評論