版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 項(xiàng)目名稱: 學(xué)生信息管理系統(tǒng) </p><p><b> 目 錄</b></p><p> 1 實(shí)驗(yàn)?zāi)康暮鸵饬x1</p><p><b> 1.1 目的1</b></p><p><b> 1.2 意義1</b></p>
2、<p> 2 系統(tǒng)功能描述及設(shè)計(jì)1</p><p> 3 系統(tǒng)存儲結(jié)構(gòu)設(shè)計(jì)與描述3</p><p> 4 系統(tǒng)功能實(shí)現(xiàn)及算法描述3</p><p> 5 系統(tǒng)性能測試8</p><p><b> 6 設(shè)計(jì)小結(jié)14</b></p><p><b> 致謝1
3、4</b></p><p><b> 參考文獻(xiàn)15</b></p><p> 附錄:源代碼清單16</p><p><b> 1 實(shí)驗(yàn)?zāi)康暮鸵饬x</b></p><p><b> 1.1 目的</b></p><p> C語言課
4、程設(shè)計(jì)要求我們綜合應(yīng)用所學(xué)的計(jì)算機(jī)基礎(chǔ)知識和所掌握的程序設(shè)計(jì)——C語言,獨(dú)立地設(shè)計(jì)并實(shí)現(xiàn)一個(gè)較為完整的小型軟件系統(tǒng)。主要目的是在鞏固所學(xué)內(nèi)容的基礎(chǔ)之上,將課本上的理論知識和實(shí)際有機(jī)的結(jié)合起來,鍛煉我們分析解決實(shí)際問題的能力。是我們通過系統(tǒng)分析,系統(tǒng)設(shè)計(jì),編程調(diào)試,寫實(shí)驗(yàn)報(bào)告等環(huán)節(jié),初步掌握軟件設(shè)計(jì)的方法和步驟,靈活運(yùn)用程序設(shè)計(jì)進(jìn)行軟件開發(fā)的能力,提高分析問題和解決問題的能力,提高程序設(shè)計(jì)水平。</p><p>&
5、lt;b> 1.2 意義</b></p><p> 描述實(shí)驗(yàn)意義學(xué)生信息檔案的管理對于學(xué)校的管理者來說至關(guān)重要,學(xué)生信息是高等學(xué)校非常重要的一項(xiàng)數(shù)據(jù)資源,是一個(gè)教育單位不可缺少一部分。但其包含的數(shù)據(jù)量大,涉及的人員面廣,而且需要及時(shí)更新,故較為復(fù)雜,難以單純地依賴人工管理,而且傳統(tǒng)的人工管理方式既不易于規(guī)范化,管理效率也不高,所以利用計(jì)算機(jī)實(shí)現(xiàn)學(xué)生信息檔案管理成為必然的趨勢。本系統(tǒng)針對學(xué)校學(xué)
6、生信息的特點(diǎn)以及管理中實(shí)際需要而設(shè)計(jì),能夠有效地實(shí)現(xiàn)學(xué)生信息管理的信息化,減輕管理人員的工作負(fù)擔(dān),高效率、規(guī)范化地管理大量的學(xué)生信息,并避免人為操作的錯(cuò)誤和不規(guī)范行為。</p><p> 2 系統(tǒng)功能描述及設(shè)計(jì)</p><p> 系統(tǒng)設(shè)計(jì)的總?cè)蝿?wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)設(shè)計(jì)主要包括以下兩方面:</p><p> 1.系統(tǒng)功能設(shè)計(jì)是在系統(tǒng)開發(fā)
7、的總體任務(wù)的基礎(chǔ)上完成。本設(shè)計(jì)中的信息管理系統(tǒng)需要完成功能主要有:</p><p> 學(xué)生信息錄入,包括學(xué)號、學(xué)生姓名、學(xué)生性別、學(xué)生的計(jì)算機(jī)成績、英語成績、數(shù)學(xué)成績。其中學(xué)號是隨機(jī)生成的。</p><p> 學(xué)生信息瀏覽,包括學(xué)號、學(xué)生姓名、學(xué)生性別、計(jì)算機(jī)成績、英語成績、數(shù)學(xué)成績等。</p><p> 學(xué)生信息查詢,包括按學(xué)號查詢和按姓名查詢學(xué)生學(xué)號、學(xué)生
8、姓名、學(xué)生性別、計(jì)算機(jī)成績、英語成績、數(shù)學(xué)成績。</p><p> 學(xué)生信息排序,包括按學(xué)生的總分大小進(jìn)行從大到小排序。</p><p> 學(xué)生信息添加, 包括添加學(xué)生學(xué)號、學(xué)生姓名、學(xué)生性別、計(jì)算機(jī)成績、英語成績、數(shù)學(xué)成績等</p><p> 學(xué)生信息統(tǒng)計(jì),包括最高分、最低分、平均分、及格率及各個(gè)分?jǐn)?shù)段的比率。</p><p> 學(xué)
9、生信息刪除,包括按學(xué)號查詢該學(xué)生然后顯示該學(xué)生的信息,并提示是否刪除。</p><p> 學(xué)生信息修改,包括學(xué)生學(xué)號、學(xué)生姓名、學(xué)生性別、計(jì)算機(jī)成績、英語成績、數(shù)學(xué)成績等的修改。</p><p> 2.系統(tǒng)功能模塊設(shè)計(jì)是對上述各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,得到如圖2-1所示的系統(tǒng)功能模塊圖。</p><p> 圖2-1學(xué)生信息管理系統(tǒng)功能模
10、塊圖</p><p> 3 系統(tǒng)存儲結(jié)構(gòu)設(shè)計(jì)與描述</p><p> 存儲結(jié)構(gòu)為結(jié)構(gòu)體,如下:</p><p> struct student</p><p><b> {</b></p><p> int ID; /*學(xué)生的學(xué)號*/&l
11、t;/p><p> char Name[20]; /*學(xué)生的姓名*/</p><p> char Sex[3]; /*學(xué)生的性別*/</p><p> float Computer; /*學(xué)生的計(jì)算機(jī)成績*/</p><p> f
12、loat English; /*學(xué)生的英語成績*/</p><p> float Math; /*學(xué)生的數(shù)學(xué)成績*/</p><p> float Average; /*學(xué)生的平均分?jǐn)?shù)*/</p><p> }student[1000],t;
13、 /*定義了一千個(gè)學(xué)生,t為程序中需要的中介結(jié)構(gòu)體在查詢學(xué)生成績的時(shí)候可以作為中介變量是整個(gè)結(jié)構(gòu)體轉(zhuǎn)換。另外在學(xué)生信息排序的是的時(shí)候在定義最大值得時(shí)候作為中介變量使得排序按照平均分?jǐn)?shù)排序*/</p><p> 定義的一個(gè)包含學(xué)生學(xué)號、姓名、性別、計(jì)算機(jī)分?jǐn)?shù)、數(shù)學(xué)分?jǐn)?shù)、英語分?jǐn)?shù)的結(jié)構(gòu)體變量。用于存儲學(xué)生信息。后面給出了結(jié)構(gòu)體中的具體的解釋和說明,在此種的程序管理中,定義結(jié)構(gòu)體可以使
14、得程序變得簡單,不會那么的復(fù)雜難以控制,這也是結(jié)構(gòu)體在寫程序時(shí)候的方便。</p><p> 4 系統(tǒng)功能實(shí)現(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(); /*隨機(jī)數(shù)的生成*/</p><p> int Student_SearchByIn
16、dex(int id); /*通過學(xué)號返回?cái)?shù)組下標(biāo)*/</p><p> int Student_SearchByName(char name[]); /*通過姓名返回?cái)?shù)組下標(biāo)*/</p><p> void Student_StatisticsByMath(); /*按數(shù)學(xué)成績統(tǒng)計(jì)學(xué)生信息*/</p><p> void
17、 Student_StatisticsByEnglish(); /*按英語成績統(tǒng)計(jì)學(xué)生信息*/</p><p> void Student_StatisticsByComputer(); /*按計(jì)算機(jī)成績統(tǒng)計(jì)學(xué)生信息*/</p><p> float Student_Average(int index); /*求每個(gè)學(xué)生的平均分?jǐn)?shù)*/</
18、p><p> void Student_DisplaySingle(int index); /*顯示單個(gè)的學(xué)生信息*/</p><p> void Student_Input(); /*輸入學(xué)生的信息*/</p><p> void Student_Display(); /*瀏覽學(xué)生信息*
19、/</p><p> void Student_Select(); /*兩種選擇查找*/</p><p> void Student_Sort(); /*對學(xué)生信息排序*/</p><p> void Student_Statistics(); /*統(tǒng)計(jì)學(xué)生信
20、息*/</p><p> void Student_Insert(); /*添加學(xué)生信息*/</p><p> void Student_Modify(); /*修改學(xué)生信息*/</p><p> void Student_Delete(); /*刪除學(xué)生信
21、息*/</p><p> 以上為全部函數(shù),后面為函數(shù)的說明。下面給出部分函數(shù)的流程圖:</p><p> 1.主菜單模塊包含了錄入,瀏覽,查詢,排序,統(tǒng)計(jì),添加,修改,刪除,退出這幾個(gè)小模塊,他們之間存在以下的聯(lián)系,用流程圖給出,學(xué)生信息管理功能菜單的流程圖:</p><p> 圖4-1功能菜單的流程圖</p><p> 2.主菜單選
22、3進(jìn)入查詢模塊,包含了按學(xué)號查詢和按姓名查詢,如果輸入的學(xué)號與內(nèi)存里的學(xué)號相等,就輸出該學(xué)生的所有信息,如果不相等則提示用戶不存在該學(xué)生,并且詢問用戶時(shí)候繼續(xù)查詢,若繼續(xù)查詢則重新輸入學(xué)號,若不繼續(xù)則返回上一層菜單。下面給出按學(xué)號查詢的流程圖:</p><p> 圖4-2 學(xué)號查詢流程圖</p><p> 這個(gè)流程圖是按學(xué)號來查詢學(xué)生信息,先進(jìn)入主菜單輸入3選擇查詢模塊,然后輸入用戶想
23、要查詢的學(xué)生的學(xué)生學(xué)號,此時(shí)調(diào)用子函數(shù)int Student_SearchByIndex(int id)來確定是否有該學(xué)生,若有則輸出該學(xué)生的信息,若不存在,則顯示不存在該學(xué)生并詢問用戶是否繼續(xù)查詢。</p><p> 3.主菜單選6進(jìn)入刪除模塊,刪除函數(shù)的功能是首先查詢是否有這個(gè)學(xué)生,如果有,則選擇是否刪除。如果沒有則輸出不存在該學(xué)生并且詢問用戶是否繼續(xù)查詢。下面給出刪除函數(shù)的流程圖:</p>
24、<p> 圖4-3學(xué)生刪除函數(shù)流程圖</p><p> 學(xué)生刪除模塊,開始主菜單后選擇8進(jìn)入學(xué)生信息刪除模塊,繼而輸入要刪除的學(xué)生的學(xué)號,系統(tǒng)會通過學(xué)號來查找要刪除的學(xué)生信息,同時(shí)調(diào)用int Student_SearchByIndex(int id)函數(shù)來確定是否有該學(xué)生,有則詢問用戶是否要刪除,若不存在該學(xué)生則輸出不存在,是否繼續(xù),刪除學(xué)生信息之后系統(tǒng)繼續(xù)詢問用戶是否繼續(xù)刪除學(xué)生信息。</p
25、><p> 4.主菜單選5進(jìn)入統(tǒng)計(jì)模塊,統(tǒng)計(jì)函數(shù)的功能按照用戶的選擇來按照不同科目的成績來統(tǒng)計(jì)學(xué)生信息??梢园凑沼?jì)算機(jī)成績,英語成績和數(shù)學(xué)成績統(tǒng)計(jì),下面用計(jì)算機(jī)成績的流程圖來舉例吧。</p><p> 圖4-4學(xué)生統(tǒng)計(jì)函數(shù)流程圖(按計(jì)算機(jī)成績統(tǒng)計(jì))</p><p> 如圖按照學(xué)生計(jì)算機(jī)成績來統(tǒng)計(jì)學(xué)生信息,先進(jìn)入主菜單有用戶選擇統(tǒng)計(jì)模塊,進(jìn)入統(tǒng)計(jì)模塊后進(jìn)入了統(tǒng)計(jì)子菜
26、單,由用戶選擇1按照計(jì)算機(jī)成績來統(tǒng)計(jì)所有學(xué)生的關(guān)于計(jì)算機(jī)成績的最高分,最低分,平均跟,及格率和分?jǐn)?shù)段比率。</p><p><b> 5 系統(tǒng)性能測試</b></p><p> 通過對程序測試的截圖,顯示各函數(shù)的測試情況,下面為各個(gè)模塊的測試圖:</p><p> 程序主菜單:進(jìn)入主菜單之后可以有如圖九種選擇。</p>&l
27、t;p><b> 圖5-1程序主菜單</b></p><p> 輸入1后進(jìn)入錄入學(xué)生信息菜單,可以錄入學(xué)生姓名,性別,學(xué)號,計(jì)算機(jī)分?jǐn)?shù),英語分?jǐn)?shù)和數(shù)學(xué)分?jǐn)?shù),錄入完了一位學(xué)生信息后可以選擇是否繼續(xù)錄入,選擇y可以繼續(xù)錄入學(xué)生信息。</p><p> 圖5-2錄入學(xué)生信息菜單</p><p> 開始錄入學(xué)生信息,如圖,錄入完了一個(gè)學(xué)生
28、信息之后選擇y繼續(xù)便進(jìn)行下一個(gè)學(xué)生的信息錄入.。</p><p> 圖5-3錄入學(xué)生信息</p><p> 輸入n后,回到主菜單然后輸入2瀏覽學(xué)生信息,瀏覽學(xué)生信息將所有的學(xué)生信息按照指定的格式輸出,瀏覽學(xué)生信息之后可以按enter鍵返回主菜單。</p><p> 圖5-4學(xué)生信息瀏覽</p><p> 輸入enter之后返回主菜單,
29、繼續(xù)輸入3后進(jìn)入查詢界面如圖所示,可以有兩種查詢的方式,按學(xué)號查找和按姓名查找,如圖選擇一可以按學(xué)號查詢學(xué)生信息,輸入學(xué)號顯示學(xué)生信息,并且提示用戶是否繼續(xù),若繼續(xù)則繼續(xù)輸入學(xué)號查詢,若不繼續(xù)則返回上一個(gè)菜單。</p><p> 圖5-5學(xué)生信息查詢</p><p> 主菜單輸入4進(jìn)入排序界面,如圖所示,系統(tǒng)按照總分成績大小從上往下排序,排序完了之后并顯示排序后的學(xué)生信息瀏覽,瀏覽完按
30、enter鍵返回主菜單。</p><p> 圖5-6學(xué)生信息排序主菜單</p><p> 主菜單選5進(jìn)入統(tǒng)計(jì)菜單,在統(tǒng)計(jì)菜單里面可以選擇按計(jì)算機(jī)成績,按英語成績,按數(shù)學(xué)成績這三種方式對學(xué)生信息進(jìn)行統(tǒng)計(jì)。</p><p> 圖5-7學(xué)生信息統(tǒng)計(jì)菜單</p><p> 計(jì)算機(jī)分?jǐn)?shù)統(tǒng)計(jì),此時(shí)系統(tǒng)按照所以學(xué)生的計(jì)算機(jī)成績來統(tǒng)計(jì),統(tǒng)計(jì)后顯示學(xué)生
31、計(jì)算機(jī)成績里面的最高分,最低分,平均分,及格率以及分?jǐn)?shù)段比率。統(tǒng)計(jì)完了之后提示用戶是否繼續(xù),若繼續(xù)則返回上一個(gè)菜單,不繼續(xù)則返回主菜單。</p><p> 圖5-8計(jì)算機(jī)分?jǐn)?shù)統(tǒng)計(jì)</p><p> 主菜單選6進(jìn)入添加學(xué)生信息界面,進(jìn)圖界面之后由用戶添加一個(gè)學(xué)生的信息,包括學(xué)生姓名,學(xué)生性別,計(jì)算機(jī)成績,英語成績和數(shù)學(xué)成績,至于學(xué)號由系統(tǒng)隨機(jī)分配。</p><p>
32、; 圖5-9刪除學(xué)生信息</p><p> 主菜單選7進(jìn)入修改菜單,通過輸入學(xué)生學(xué)號查找到學(xué)生的信息,然后顯示學(xué)生的信息,并且讓用戶重新輸入要修改后的信息,包含姓名,性別,計(jì)算機(jī)成績,英語成績和數(shù)學(xué)成績,至于學(xué)號是系統(tǒng)隨機(jī)生成。</p><p> 圖5-10修改學(xué)生信息</p><p> 主菜單選8進(jìn)入刪除菜單,進(jìn)入刪除菜單后通過輸入學(xué)號找到要刪除的學(xué)生信息
33、,程序通過后一個(gè)的學(xué)生信息將前一個(gè)學(xué)生的信息依次覆蓋來達(dá)到學(xué)生刪除功能,顯示了學(xué)生信息之后提示用戶是否繼續(xù)刪除.</p><p><b> 圖5-11刪除菜單</b></p><p> 主菜單選9退出即可推出該系統(tǒng)。</p><p> 圖5-12退出學(xué)生管理系統(tǒng)</p><p><b> 系統(tǒng)總結(jié):&l
34、t;/b></p><p> 整個(gè)系統(tǒng)清新簡明,功能較多,模塊分析到位,有錄入也有添加,信息加入之后還有修改以及刪除功能,觀看里面的學(xué)生信息有瀏覽功能,為了明了的了解學(xué)生的信息還附帶了排序,查找和統(tǒng)計(jì)功能,總體而言系統(tǒng)比較完善,具備的功能也比較多,而且該系統(tǒng)對非法字符也有所考慮,大致的內(nèi)容模板簡單明了。</p><p><b> 6 設(shè)計(jì)小結(jié)</b><
35、/p><p> 我覺得這次課程設(shè)計(jì)應(yīng)該是我們大一下學(xué)期以來寫的最多代碼的程序了,以前每次上機(jī)寫過許多的小程序,感覺都不是很難??墒沁@次的課程設(shè)計(jì),才發(fā)現(xiàn)要寫一個(gè)比較完善的管理系統(tǒng)是比較困難的,通過這次的課程設(shè)計(jì)我發(fā)現(xiàn)我在學(xué)習(xí)上有太多的不足。比如一開始不知道該如何下手,一點(diǎn)思路都沒有。后來就將一個(gè)個(gè)的子函數(shù)寫出來,然后將它們一個(gè)一個(gè)運(yùn)行,發(fā)現(xiàn)沒有很大問題,但是這時(shí)候總體的時(shí)候卻又出了別的新問題了。很多函數(shù)連接不起來。
36、問題還是有很多,在文件的讀取與寫入,遇見了比較多次的麻煩,有關(guān)于這個(gè)返回值的問題,因?yàn)閷⒊绦蜻\(yùn)行完了一次之后輸入的人數(shù)的總體值會清零,而這個(gè)時(shí)候在讀文件的時(shí)候需要返回值,后來是在老師的指導(dǎo)下慢慢完成的。不過在此期間,我學(xué)到了很多東西。以前學(xué)習(xí)的選擇語句,條件語句,變量的控制等等都得到了很好的鞏固。還有我知道了如何一條條的去調(diào)試語句,運(yùn)用這個(gè)方法我知道如何更簡單知道程序的錯(cuò)誤和修改程序。當(dāng)我把程序?qū)懞煤螅野l(fā)現(xiàn)C語言并不是很難,難的是自己
37、并不用心花時(shí)間去專研,雖然遇到了很多的困難,但是進(jìn)過自己的努力和同學(xué)與老師的幫助,自己也是全部弄清楚了,這次程序設(shè)計(jì)我學(xué)到了很多。</p><p><b> 致謝</b></p><p> 本次課程設(shè)計(jì)是在胡老師指導(dǎo)以及同學(xué)們的互相幫助下完成的,在此次的程序編寫中老師給了我很多的建議和指導(dǎo),使得本設(shè)計(jì)順利完成。在此期間, 老師對我提出的問題都很詳細(xì)的給出解答,無論
38、是小問題或者是一些比較麻煩的問題都很細(xì)心的指導(dǎo)和說教。一點(diǎn)點(diǎn)的指出我錯(cuò)誤的部分,并給出各種解決方法。這次的程序設(shè)計(jì)真的很謝謝胡老師。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 雷于生,胡成松.C語言程序設(shè)計(jì)[M].北京:高等教育出版社,廣州:中山大學(xué)出版社.2009.[2] 譚浩強(qiáng).C語言課程設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社
39、.1996.[3] 譚浩強(qiáng).C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)[M].北京:清華大學(xué)出版社.2005.[4] 黃遠(yuǎn)林 等編著.C語言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)與題解[M].北京:清華大學(xué)出版社.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(); /*隨機(jī)數(shù)的生成*/</p><p> int Student_SearchByIndex(int id); /*通過學(xué)號返回?cái)?shù)組下標(biāo)*/</p><p> int Student_SearchByName(char name[]); /*通過姓名返回?cái)?shù)
42、組下標(biāo)*/</p><p> void Student_StatisticsByMath(); /*按數(shù)學(xué)成績統(tǒng)計(jì)學(xué)生信息*/</p><p> void Student_StatisticsByEnglish(); /*按英語成績統(tǒng)計(jì)學(xué)生信息*/</p><p> void Student_StatisticsByComputer();
43、 /*按計(jì)算機(jī)成績統(tǒng)計(jì)學(xué)生信息*/</p><p> float Student_Average(int index); /*求每個(gè)學(xué)生的平均分?jǐn)?shù)*/</p><p> void Student_DisplaySingle(int index); /*顯示單個(gè)的學(xué)生信息*/</p><p> void Student_Input();
44、 /*輸入學(xué)生的信息*/</p><p> void Student_Display(); /*瀏覽學(xué)生信息*/</p><p> void Student_Select(); /*兩種選擇查找*/</p><p> void Student_Sort();
45、 /*對學(xué)生信息排序*/</p><p> void Student_Statistics(); /*統(tǒng)計(jì)學(xué)生信息*/</p><p> void Student_Insert(); /*添加學(xué)生信息*/</p><p> void Student_Modify();
46、 /*修改學(xué)生信息*/</p><p> void Student_Delete(); /*刪除學(xué)生信息*/</p><p> int Num=0,SAME[20];</p><p> struct student</p><p><b> {</b></p>
47、<p> int ID; /*學(xué)生的學(xué)號*/</p><p> char Name[20]; /*學(xué)生的姓名*/</p><p> char Sex[3]; /*學(xué)生的性別*/</p><p> float Computer
48、; /*學(xué)生的計(jì)算機(jī)成績*/</p><p> float English; /*學(xué)生的英語成績*/</p><p> float Math; /*學(xué)生的數(shù)學(xué)成績*/</p><p> float Average;
49、 /*學(xué)生的平均分?jǐn)?shù)*/</p><p> }student[1000],t; /*定義了一千個(gè)學(xué)生,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("學(xué)生信息管理系統(tǒng)");</p><p> printf("- - - - - - - - - - - - \n");</p><p
52、> printf("1.錄入學(xué)生信息 ");/*完成*/</p><p> printf("2.瀏覽學(xué)生信息 \n");/*完成*/</p><p> printf("3.查找學(xué)生信息 ");/*完成*/</p><p> printf("4
53、.對學(xué)生信息排序 \n");/*完成*/</p><p> printf("5.統(tǒng)計(jì)學(xué)生信息 ");/*完成*/</p><p> printf("6.添加學(xué)生信息 \n");/*完成*/</p><p> printf("7.修改學(xué)生信息 &quo
54、t;);/*完成*/</p><p> printf("8.刪除學(xué)生信息 \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> /*隨機(jī)數(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> /*通過學(xué)號返回?cái)?shù)組下標(biāo)*/</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> /*通過姓名返回?cái)?shù)組下標(biāo)*/</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> /*求每個(gè)學(xué)生的平均分?jǐn)?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> /*顯示單個(gè)學(xué)生信息*/</p><p> void Student_DisplaySingle(int index)</p><p><b> {</b></p><
70、p> printf("%10s%10s%10s%8s%8s%8s\n","學(xué)號","姓名","性別","計(jì)算機(jī)","英語","數(shù)學(xué)");</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> /*錄入學(xué)生的信息*/ </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("請輸入學(xué)生性別:");</p><p> scanf("%s",student[Num].Sex);</p><p> printf("請輸入計(jì)算機(jī)成績:");</p><p> scanf("%f",&student[Num].Compu
75、ter);</p><p> printf("請輸入英語成績:");</p><p> scanf("%f",&student[Num].English);</p><p> printf("請輸入數(shù)學(xué)成績:");</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> /*瀏覽學(xué)生信息*/</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","學(xué)號","姓名"
82、,"性別","計(jì)算機(jī)","英語","數(shù)學(xué)");</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、按姓名查詢學(xué)生信息*/</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("請輸入要查詢的學(xué)生的姓名:");</p><p> scanf("%s",&name);</p>
87、<p> index=Student_SearchByName(name);</p><p> if(index==-1)</p><p><b> {</b></p><p> printf("學(xué)生不存在!\n");</p><p><b> }</b>&
88、lt;/p><p><b> else</b></p><p><b> {</b></p><p> printf("你要查詢的學(xué)生信息為:\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> /*按學(xué)號查詢學(xué)生信息*/</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("請輸入要查詢的學(xué)生的學(xué)號:");</p><p> scanf("%d",
95、&id);</p><p> index=Student_SearchByIndex(id);</p><p> if(index==-1)</p><p><b> {</b></p><p> printf("學(xué)生不存在!\n");</p><p><
96、b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("你要查詢的學(xué)生信息為:\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> /*兩種選擇查找學(xué)生信息*/</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.按學(xué)號查詢 ");</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> /*按總分對學(xué)生信息排序*/</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","學(xué)號
110、","姓名","性別","計(jì)算機(jī)","英語","數(shù)學(xué)");</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> /*按計(jì)算機(jī)成績統(tǒng)計(jì)學(xué)生信息*/</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","最高分","最低分","平均分","及格率","分?jǐ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)計(jì)學(xué)生信息*/</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;,"及格率","分?jǐn)?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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-c語言學(xué)生成績管理系統(tǒng)設(shè)計(jì)
- c語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言學(xué)生證管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (2)
- c語言學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (3)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)——學(xué)生宿舍管理系統(tǒng)
- c語言課程設(shè)計(jì)--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
評論
0/150
提交評論