數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學生成績管理系統(tǒng)[]_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學生成績管理系統(tǒng)[]_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學生成績管理系統(tǒng)[]_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學生成績管理系統(tǒng)[]_第4頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、武漢理工大學華夏學院課程設(shè)計報告書課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目 :用 C 語言實現(xiàn)成績統(tǒng)計程序的設(shè)計系名:信息工程系專業(yè)班級:計算機 1121姓名:吳濤學號:10210412104指導教師 :司曉梅2016年3月20日第1頁共37頁武漢理工大學華夏學院信息工程系課程設(shè)計任務書課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計指導教師:司曉梅班級名稱:計算機 1121開課系、教研室:信息系計算機一、課程設(shè)計目的與任務數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計是為訓練學生的數(shù)據(jù)組織能力和提高程序設(shè)計能力而設(shè)置的增強實踐能力的課程。目的:學習數(shù)據(jù)結(jié)構(gòu)課程,旨在使學生學會分析研究數(shù)據(jù)對象的特性,學會數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)的邏輯結(jié)構(gòu)和存

2、儲結(jié)構(gòu)以及相應操作,把現(xiàn)實世界中的問題轉(zhuǎn)換為計算機內(nèi)部的表示和處理,這就是一個良好的程序設(shè)計技能訓練的過程。提高學生的程序設(shè)計能力、掌握基本知識、 基本技能, 提高算法設(shè)計質(zhì)量與程序設(shè)計素質(zhì)的培養(yǎng)就是本門課程的課程設(shè)計的目的。任務:根據(jù)題目要求,完成算法設(shè)計與程序?qū)崿F(xiàn),并按規(guī)定寫出課程設(shè)計報告。二、課程設(shè)計的內(nèi)容與基本要求設(shè)計題目:用C 語言實現(xiàn)成績統(tǒng)計程序的設(shè)計問題描述給出 n 個學生的 m 門課程的考試成績信息,每條信息由姓名、課程代號與分數(shù)組成,要求設(shè)計算法:( 1)輸入每個人的各門課程的成績,計算每人的平均成績;( 2)按平均成績的高低次序,打印出個人的名次,平均成績相同的為同一名次;

3、( 3)按名次列出每個學生的姓名和各科成績;基本要求學生的考試成績必須通過鍵盤輸入,且需對輸出進行格式控制;算法提示可以用選擇排序、冒泡排序等多種排序算法求解;具體要完成的任務是:A. 編制完成上述問題的C 語言程序、進行程序調(diào)試并能得出正確的運行結(jié)果。B. 寫出規(guī)范的課程設(shè)計報告書;三、課程設(shè)計步驟及時間進度和場地安排時間: 1 周地點:現(xiàn)代教育中心具體時間安排如下:第一天:布置題目,確定任務、查找相關(guān)資料第二天第四天:功能分析,編寫程序,調(diào)試程序、運行系統(tǒng);第五天上午:撰寫設(shè)計報告;第五天下午:程序驗收、答辯。四、課程設(shè)計考核及評分標準第2頁共37頁課程設(shè)計考核將綜合考慮學生的系統(tǒng)設(shè)計方案

4、、運行結(jié)果、 課程設(shè)計報告書的質(zhì)量、態(tài)度、考勤、答辯情況等各因素。具體評分標準如下:( 1)設(shè)計方案正確,具有可行性、創(chuàng)新性;30分( 2)系統(tǒng)開發(fā)效果較好;20分( 3)設(shè)計報告規(guī)范、課程設(shè)計報告質(zhì)量高;20分( 4)課程設(shè)計答辯時,問題回答正確;20分( 5)態(tài)度認真、刻苦鉆研、遵守紀律;10分按上述五項分別記分后求和,總分按五級制記載最后成績。優(yōu)秀( 100 90分),良好( 80 89分),中等( 70 79分),及格( 60 69分),不及格( 0 59分)第3頁共37頁目錄一、問題描述5二、基本要求5三、數(shù)據(jù)結(jié)構(gòu)設(shè)計6四、軟件模塊結(jié)構(gòu)圖7五、程序設(shè)計思想9六、程序流程圖13七、源程

5、序18八、調(diào)試分析32九、測試數(shù)據(jù)33十、用戶使用手冊35一、問題描述第4頁共37頁問題描述給出 n 個學生的 m門課程的考試成績信息,每條信息由姓名、課程代號與分數(shù)組成,要求設(shè)計算法:( 1)輸入每個人的各門課程的成績,計算每人的平均成績;( 2)按平均成績的高低次序,打印出個人的名次,平均成績相同的為同一名次;( 3)按名次列出每個學生的姓名和各科成績;基本要求學生的考試成績必須通過鍵盤輸入,且需對輸出進行格式控制;算法提示可以用選擇排序、冒泡排序等多種排序算法求解;二、基本要求基本要求學生的考試成績必須通過鍵盤輸入,且需對輸出進行格式控制;算法提示可以用選擇排序、冒泡排序等多種排序算法求

6、解;三、數(shù)據(jù)結(jié)構(gòu)的設(shè)計第5頁共37頁為了對學生信息進行統(tǒng)一操作,使用了結(jié)構(gòu)體這一數(shù)據(jù)結(jié)構(gòu),學生的各項數(shù)據(jù)信息都能用結(jié)構(gòu)體來表示,具體如下:structstu int num; /* 學號,整型變量 */char name50; /* 姓名,長度為 50的字符串數(shù)組 */char classes50 /* 班級名稱,長度為 50的字符串數(shù)組 */ ; double gsps_score; /* 高等數(shù)學平時成績,雙精度實型變量 */ double gsks_score; /* 高等數(shù)學考試成績,雙精度實型變量 */ double gszh_score; /* 高等數(shù)學綜合成績,雙精度實型變量 *

7、/ double dlps_score; /* 電路理論平時成績,雙精度實型變量 */ double dlks_score; /* 電路理論考試成績,雙精度實型變量 */ double dlzh_score; /* 電路理論綜合成績,雙精度實型變量 */ double yyps_score; /* 英語平時成績,雙精度實型變量 */ double yyks_score; /* 英語考試成績,雙精度實型變量 */ double yyzh_score; /* 英語綜合成績,雙精度實型變量 */ double wlps_score; /* 物理平時成績,雙精度實型變量 */ double wlks_

8、score; /* 物理考試成績,雙精度實型變量 */ double wlzh_score; /* 物理綜合成績,雙精度實型變量 */double pj_score; /* 平均成績,雙精度實型變量 */ student1000; /* 最多存儲 1000 個學生數(shù)據(jù) */該結(jié)構(gòu)體數(shù)據(jù)定義為全局變量。四、軟件模塊結(jié)構(gòu)圖第6頁共37頁主菜單控制模塊模塊功能描述:學生信息錄入模塊按學號查詢學生信息學生信息查詢模塊按姓名查詢學生信息學生信息修改模塊學生信息刪除模塊學生信息插入模塊輸出優(yōu)秀學生相關(guān)信息學生信息輸出模塊輸出不及格學生信息每門課程的平均成績課程成績統(tǒng)計模塊按單科成績排名次a. 主菜單控制模

9、塊: 主菜單直接控制七個模塊 (學生信息輸出模塊的兩個子模塊直接歸主菜單控制) ,在各模塊間起到紐帶的作用。在主菜單,可以通過選擇進入其他模塊, 其他模塊運行結(jié)束后也可回到主菜單繼續(xù)選擇。b. 學生信息錄入模塊: 循環(huán)輸入學生信息, 建立臨時的學生信息數(shù)據(jù)庫。c. 學生信息查詢模塊: 可選擇按學號或者按姓名查詢學生信息,如學生信息不存在則給出提示。d. 學生信息修改模塊: 查找到要修改的學生信息后,可對該學生的信第7頁共37頁息進行逐項修改。e. 學生信息刪除模塊: 查找到要刪除的學生信息后, 可對其進行刪除操作。f. 學生信息插入模塊: 在數(shù)據(jù)庫末尾插入學生信息, 逐項輸入要插入的學生信息即

10、可。g. 學生信息輸出模塊: 輸出優(yōu)秀學生信息模塊能夠輸出優(yōu)秀學生 (平均成績大于等 90 分)的學號和姓名;輸出不及格學生信息模塊能夠輸出不及格學生的相關(guān)信息。h. 課程成績統(tǒng)計模塊: 可以得到每門課程的平均成績,還可以任意抽取一門課按單科成績排定學生名次。五、程序設(shè)計思想第8頁共37頁結(jié)構(gòu)化的程序設(shè)計主要靠設(shè)計和調(diào)用各模塊的函數(shù)來實現(xiàn)。本程序設(shè)計了多個函數(shù), 每個函數(shù)自身能完成一個任務,有的函數(shù)和別的函數(shù)結(jié)合能完成更大的任務。 每一個模塊功能的實現(xiàn)其實就是對函數(shù)的調(diào)用,本說明首先介紹本程序所涉及的子函數(shù),再介紹主函數(shù),最后介紹程序整體的實現(xiàn)過程。1.voidInputfun()此函數(shù)較特別

11、,它只進行輸入操作,但由于此函數(shù)所包含的語句較長且需要被其他三個函數(shù)使用,為方便調(diào)用單寫了一個函數(shù)。此函數(shù)在源程序中放在最前,所以在此先作說明。此函數(shù)可細分為 11 個小塊,用來輸入學生的基本數(shù)據(jù)。每小塊的結(jié)構(gòu)基本相同即for(;)基本語句+ 一個continue語句 +基本語句 +一個break 語句 之所以用這個結(jié)構(gòu)為了使輸入的數(shù)據(jù)更加正規(guī)。比如在分數(shù)的輸入中就限定了只能輸入 0 至 100 之間的數(shù)值,這也符合分數(shù)錄入規(guī)則。需要特別注意的是, 這個函數(shù)完成了本程序中要做的兩個計算。其一是在每門課的考試試成績輸入后完成了對這門課的綜合成績的加權(quán)計算(考試成績 *0.7+ 平時成績 *0.3

12、 );其二是在最后一門課程的綜合成績算出后,計算了該學生四門課的平均成績。2.void Getinformation() 此函數(shù)用來錄入學生信息。 它調(diào)用了 void Inputfun() 函數(shù),其實它的主體部分就是 void Inputfun() 函數(shù)。這函數(shù)還用了一個 for 循環(huán)以達到循環(huán)輸入的目的。3.int Searchbynum (int no)int Searchbyname (char na50)這是兩個“兄弟函數(shù)”,是按學號查找和按姓名查詢模塊中的兩個重要函數(shù)。主要功能是根據(jù)用戶輸入的學號姓名返回改學生所在的的數(shù)第9頁共37頁組下標。利用for 循環(huán)嵌套一個 if語句實現(xiàn),若

13、找到學生該學生信息就返回數(shù)組下標,若找不到就返回-1 。4.void Seekinformation()void Printinformation(int x)這兩個函數(shù)關(guān)系緊密,所以一起介紹。void Seekinformation()函數(shù)利用for循環(huán)和 if語句使查找中能夠使用學號和姓名兩種方式。如源程序所示,在用 if語句確定了查找方式后先后調(diào)用了intSearchbynum(intno)intSearchbyname(charna50)和voidPrintinformation(int x)兩個函數(shù),根據(jù)int Searchbynum (intno)int Searchbyname

14、(char na50)返回的數(shù)組下標,運用voidPrintinformation(int x)輸出所查詢的內(nèi)容。所以int Searchbynum (int no)int Searchbyname (char na50)voidSeekinformation()voidPrintinformation(intx) 這四個函數(shù)是查詢模塊的四個聯(lián)系緊密的重要函數(shù),在它們的共同作用下查詢模塊的功能得以實現(xiàn)。5.void Modifyinformation() 此函數(shù)用于修改學生信息?;驹砭褪怯幂斎氲男聰?shù)據(jù)覆蓋原來的老數(shù)據(jù), 達到修改的目的。 本函數(shù)還調(diào)用了查找模塊的函數(shù), 使修改前能按學號或姓

15、名找到要修改的學生信息。修改過程中調(diào)用了 Inputfun() 函數(shù)6.void Deleteinformation()此函數(shù)用于刪除學生信息。同樣調(diào)用了查找模塊的函數(shù)。刪除模塊的關(guān)鍵語句是for (i=x;i<999;i+)studenti=studenti+1;從要刪除的那一個數(shù)據(jù)開始, 用后一個數(shù)據(jù)覆蓋它,一直循環(huán)到最后,相當于把開始的第一個數(shù)據(jù)刪除了。第10頁共37頁7.voidInsertinformaton()此函數(shù)用于插入學生數(shù)據(jù)。 由于沒有用鏈表,所以選擇插入在最后一個有效數(shù)據(jù)之后。本函數(shù)運用if(studentj.num=0)這個語句找到了最后一個有效數(shù)據(jù)之后的數(shù)組下標

16、 j, 然后將數(shù)據(jù)輸入到studentj中,便完成的了插入。插入過程中,調(diào)用了Inputfun()函數(shù)。8.void Showthefail()此函數(shù)用于顯示不及格學生的信息。能夠按要求輸出不及格學生的學號、姓名、各科成績以及平均成績。首先用這條 if 語句搜索該學生是否有成績不及格,當四門課中至少有一門不及格時會輸出該學生的相關(guān)信息。9.void Stu_p() 此函數(shù)用于輸出優(yōu)秀學生(平均成績大于 90 分)的信息,利用 for 循環(huán)和條件判斷句輸出找出相應的學生輸出相關(guān)信息。10.void Chengjitongji()此函數(shù)用于按要求統(tǒng)計成績。有分別統(tǒng)計每門課的平均成績的功能;還能夠按

17、每門課程的成績對學生進行排序,使學生在該門課的表現(xiàn)一目了然。 排序中用到了冒泡排序的方法。9. void main() 下面對主函數(shù)作簡要說明。 Switch 語句是函數(shù)的主體:switch(c)/*利用 switch 語句集成各個功能函數(shù) */case 1 : Getinformation();break;/*獲得學生信息 */case 2 : Seekinformation();break;/*查找學生信息 */case 3 : Modifyinformation();break;/*修改學生信息 */第11頁共37頁case 4 : Deleteinformation();break;/

18、*刪除學生信息 */case 5 : Insertinformaton();break;/*插入學生信息 */case 6: Stu_p();break;/*顯示優(yōu)秀學生信息 */case 7: Showthefail();break;/*顯示不及格學生信息 */case 8: Chengjitongji();break;/*課程成績的統(tǒng)計 */case 0: exit(0);/*退出 */default: break;default: break;通過一個數(shù)值輸入函數(shù), 使用戶在簡單的數(shù)值輸入后就可輕松調(diào)用各模塊。還使用了 for (;)使各模塊能夠循環(huán)調(diào)用。11. 最后對程序的整體實現(xiàn)過程

19、作個簡要說明。源程序中多處運用continue和 break 語句,同時配合scanf 函數(shù)和 if條件判斷語句,使用戶能夠根據(jù)提示通過簡單的數(shù)值輸入來選擇下一步該做什么。中文界面,用戶很容易根據(jù)提示上手,簡單易用。六、程序流程圖第12頁共37頁開始系統(tǒng)啟動口令輸入a=?Na=1?Y口令錯誤,系N進入選擇菜單統(tǒng)即將關(guān)閉!Yc=1?N錄入學生信息c=2?Y查找學生信息NYc=3?N修改學生信息c=4?YN刪除學生信息c=5?NY插入學生信息Yc=6?N優(yōu)秀學生信息c=7?NYY不及格學生信息Nc=8?N課程成績統(tǒng)計結(jié)束以上為主函數(shù)流程圖, 主函數(shù)下八個供選擇的模塊只是簡單的用一個第13頁共37頁

20、執(zhí)行框表示。現(xiàn)分別畫出八個模塊的流程圖:1、錄入學生成績:開始輸入學生信息及成績是否繼續(xù)?繼續(xù)按1,結(jié)束按 0·10結(jié)束2、查找學生信息:開始按學號查找請按 1,2按姓名查找請按 21輸出相應姓名所對應的信息輸出相應學號所對應的信息1是否繼續(xù)?繼續(xù)按1,結(jié)束按 000結(jié)束3、修改學生信息:第14頁共37頁開始調(diào)用查找函數(shù)找到要修改的信息輸入修改后的信息是否繼續(xù)?繼續(xù)按1,結(jié)束按00結(jié)束4、刪除學生信息:開始調(diào)用查找函數(shù)找到要刪除的信息是否刪除?是按1,否按 01刪除成功是否繼續(xù)?繼續(xù)按1,結(jié)束按00結(jié)束11第15頁共37頁5、插入學生信息:開始輸入要插入的信息是否繼續(xù)?繼續(xù)按1,結(jié)束

21、按00結(jié)束6、優(yōu)秀學生信息:開始1N學生平均成績是否大于等于90?YY輸出該生學號和姓名檢索完畢?NY結(jié)束7、不及格學生信息:第16頁共37頁開始判斷該生是N否有不及格科目Y輸出該該生學信息N檢索完畢?Y結(jié)束8、成績統(tǒng)計模塊:開始每門課程平均成績請按1,單1科成績排名請按22選擇要排名的科目輸出該科成績排名結(jié)束輸出每門課程平均成績第17頁共37頁七、源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>struct stu/*定義結(jié)構(gòu)體 */int num

22、;char name50;char classes50;double gsps_score;double gsks_score;double gszh_score;double dlps_score;double dlks_score;double dlzh_score;double yyps_score;double yyks_score;double yyzh_score;double wlps_score;double wlks_score;double wlzh_score;double pj_score;student1000;int a,b,c,d,x,i,j,k,s,y,flag

23、;char s150,c1;double f,t,gp,dp,yp,wp;/*錄入、修改、插入學生信息三個模塊調(diào)用了輸入模塊*/void Inputfun()/*輸入學生信息模塊 */for(; ;)/*設(shè)計死循環(huán)以至于在輸入格式錯誤時可以再次輸入*/printf("請輸入班級名稱 :t"); /*輸入班級名稱 */scanf("%s",&s1);if(strlen(s1)>20)printf("您輸入的班級名稱過長 !n");continue;strcpy(studenti.classes,s1);break; /*格

24、式正確后跳出死循環(huán) */第18頁共37頁for(; ;)printf("請輸入學號 :t");/*輸入學號 */scanf("%d",&b);if(studenti.num<0)printf("您輸入的學號錯誤 !n");continue;studenti.num=b;break;for(; ;)printf("請輸入姓名 :t");/*輸入姓名 */scanf("%s",&s1);if(strlen(s1)>20)printf("您輸入的姓名過長 !n&q

25、uot;);continue;strcpy(,s1);break;for(; ;)printf("請輸入該生高等數(shù)學平時成績:t");/*輸入各科平時成績和考試成績 */ scanf("%lf",&f);if(f>100|f<0)printf("成績不合理!請您輸入合理的成績.n");continue;studenti.gsps_score=f;break;for(; ;)printf("請輸入該生高等數(shù)學考試成績:t");scanf("%lf",&

26、amp;f);if(f>100|f<0)第19頁共37頁printf(" 成績不合理!請您輸入合理的成績 .n"); continue;studenti.gsks_score=f;studenti.gszh_score=studenti.gsks_score*0.7+studenti.gsps_score *0.3;/* 按考試成績 70%平時成績 30%算該門課程的最終成績 */break;for(; ;)printf("請輸入該生電路理論平時成績:t");scanf("%lf",&f);if(f>100|

27、f<0)printf(" 成績不合理!請您輸入合理的成績 .n"); continue;studenti.dlps_score=f;break;for(; ;)printf("請輸入該生電路理論考試成績:t");scanf("%lf",&f);if(f>100|f<0)printf(" 成績不合理!請您輸入合理的成績 .n"); continue;studenti.dlks_score=f;studenti.dlzh_score=studenti.dlks_score*0.7+studen

28、ti.dlps_score *0.3;break;for(; ;)printf("請輸入該生英語平時成績:t");scanf("%lf",&f);if(f>100|f<0)printf(" 成績不合理!請您輸入合理的成績 .n"); continue;第20頁共37頁studenti.yyps_score=f;break;for(; ;)printf("請輸入該生英語考試成績:t");scanf("%lf",&f);if(f>100|f<0)printf(

29、" 成績不合理!請您輸入合理的成績 .n"); continue;studenti.yyks_score=f;studenti.yyzh_score=studenti.yyks_score*0.7+studenti.yyps_score *0.3;break;for(; ;)printf("請輸入該生物理平時成績:t");scanf("%lf",&f);if(f>100|f<0)printf(" 成績不合理!請您輸入合理的成績 .n"); continue;studenti.wlps_score

30、=f;break;for(; ;)printf("請輸入該生物理考試成績:t");scanf("%lf",&f);if(f>100|f<0)printf(" 成績不合理!請您輸入合理的成績 .n"); continue;studenti.wlks_score=f;studenti.wlzh_score=studenti.wlks_score*0.7+studenti.wlps_score *0.3;第21頁共37頁studenti.pj_score=(studenti.yyzh_score+studenti.dlz

31、h_score+studenti.gszh_score+studenti.wlzh_score)/4;/* 計算每個學生的平均成績 */ break;/*錄入學生信息模塊*/void Getinformation() /*獲得學生信息 */for (i=0;i<1000;i+)/*利用循環(huán)連續(xù)輸入學生信息*/if(i=0)system("cls");printf("請根據(jù)提示輸入學生的信息nn");elseprintf("請輸入下一個學生的信息nn");Inputfun();printf("繼續(xù)請按 1,返回主菜單請按

32、0.n");scanf("%d",&a);if(a=0)break;/*查詢模塊:包含四個函數(shù),函數(shù)間有聯(lián)系*/int Searchbynum (int no) /*按學號查找 */for (j=0;j<1000;j+)if (studentj.num=no)return j;return -1;int Searchbyname (char na50)/*按姓名查找 */第22頁共37頁for (k=0;k<1000;k+)if (strcmp(,na)=0)return k;return -1;void Printi

33、nformation(int x)/*輸出學生信息 */if (x=-1)printf("該學生信息不存在 !n");elseprintf("班級 :%sn",studentx.classes);printf("學號 :%dn",studentx.num);printf("姓名 :%snn",);printf(" 高數(shù)平時成績 :%5.2fn",studentx.gsps_score); printf(" 高數(shù)考試成績 :%5.2fn",studen

34、tx.gsks_score); printf(" 高數(shù)綜合成績 :%5.2fnn",studentx.gszh_score); printf(" 電路平時成績 :%5.2fn",studentx.dlps_score); printf(" 電路考試成績 :%5.2fn",studentx.dlks_score); printf(" 電路綜合成績 :%5.2fnn",studentx.dlzh_score); printf(" 英語平時成績 :%5.2fn",studentx.yyps_score

35、); printf(" 英語考試成績 :%5.2fn",studentx.yyks_score); printf(" 英語綜合成績 :%5.2fnn",studentx.yyzh_score); printf(" 物理平時成績 :%5.2fn",studentx.wlps_score); printf(" 物理考試成績 :%5.2fn",studentx.wlks_score); printf(" 物理綜合成績 :%5.2fnn",studentx.wlzh_score); printf(&qu

36、ot; 平均成績 :%5.2fn",studentx.pj_score);void Seekinformation()/*查詢學生信息 */for(; ;)system("cls");printf("按學號查找請按 1,按姓名查找請按2n");/*提供兩種查找方式 */scanf("%d",&a);if(a=1)第23頁共37頁system("cls");printf("請輸入要查找的學生的學號n");scanf("%d",&d);x=Searchb

37、ynum (d);/*調(diào)用按學號查找函數(shù) */Printinformation(x);else if (a=2)system("cls");printf("請輸入要查找的學生的姓名n");scanf("%s",&s1);x=Searchbyname (s1);/*調(diào)用按姓名查找函數(shù) */Printinformation(x);printf("繼續(xù)請按 1,返回主菜單請按0.n");scanf("%d",&a);if(a=0)break;/*學生信息刪改:包含三個相互獨立的函數(shù)*/

38、void Modifyinformation() /*修改學生信息 */for(; ;)system("cls");printf("請先查找要修改的學生信息!nn");printf("按學號查找請按 1,按姓名查找請按2n");/*先查找后修改 */scanf("%d",&a);if(a=1)system("cls");printf("請輸入要查找的學生的學號n");scanf("%d",&d);x=Searchbynum (d);else

39、 if (a=2)system("cls");printf("請輸入要查找的學生的姓名n");scanf("%s",&s1);第24頁共37頁x=Searchbyname (s1);if (x=-1)printf("學生信息不存在 !n");elseprintf("您要修改的學生信息為 :n");Printinformation(x);printf("請您輸入新值 n");i=x;Inputfun();printf("繼續(xù)請按 1,返回主菜單請按0.n&qu

40、ot;);scanf("%d",&a);if(a=0)break;void Deleteinformation() /*刪除學生信息 */for (;)system("cls");printf("請先查找要刪除的學生信息!nn");printf(" 按學號查找請按 1,按姓名查找請按 2n"); scanf("%d",&a);if(a=1)system("cls");printf("請輸入要查找的學生的學號n");scanf("%

41、d",&d);x=Searchbynum (d);else if (a=2)system("cls");printf("請輸入要查找的學生的姓名n");scanf("%s",&s1);x=Searchbyname (s1);if (x=-1)printf("學生信息不存在 !n");else第25頁共37頁printf("您要刪除的學生信息為 :n");Printinformation(x);printf("是否真的要刪除該生信息?是請按 1,否請按 0.n&

42、quot;);scanf("%d",&a);if (a=1)for (i=x;i<999;i+)studenti=studenti+1;/*該數(shù)組后的數(shù)組向前移動以覆蓋的方式刪除該數(shù)組 */printf("刪除成功 !n");printf("繼續(xù)請按 1,返回主菜單請按0.n");scanf("%d",&a);if(a=0)break;void Insertinformaton() /*插入學生信息 */system("cls");for(j=0;j<1000;j+)

43、if(studentj.num=0)x=j;break;for(i=x;i<1000;i+)system("cls");printf("請輸入要插入的學生信息nn");Inputfun();/* 利用信息錄入函數(shù)把學生信息插在末尾 */ printf(" 繼續(xù)請按 1,返回主菜單請按 0.n");scanf("%d",&a);if(a=0)break;/*各科成績排序的四個程序*/void paixugs() /*排序 1*/struct stu temp;第26頁共37頁for (j=1;j<

44、1000;j+)for (k=0;k<999;k+)if (studentk.gszh_score<studentk+1.gszh_score)/*利用冒泡排序的方法完成排序 */temp=studentk;studentk=studentk+1;studentk+1=temp;system("cls");printf("學生成績排序表 :nn");for (i=0;i<1000;i+)if (studenti.num!=0)printf("學號 :%dt",studenti.num);printf("姓名 :%st",);printf(" 第%d名:%5.2fn",(i+1),studenti.gszh_score); printf("返回主菜單請按0n");scanf("%d",&a);void paixudl() /*排序 2*/struct stu temp;for (j=1;j<1000;j+)for (k=0;k<999;k+)if (studentk.dlzh_score<studentk+1.d

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論