![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學(xué)生成績管理系統(tǒng)[1] (1)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f4/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f41.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學(xué)生成績管理系統(tǒng)[1] (1)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f4/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f42.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學(xué)生成績管理系統(tǒng)[1] (1)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f4/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f43.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學(xué)生成績管理系統(tǒng)[1] (1)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f4/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f44.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-學(xué)生成績管理系統(tǒng)[1] (1)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f4/21c8a2f3-0de2-4fa3-9a61-4d4ccb9d54f45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、武漢理工大學(xué)華夏學(xué)院課程設(shè)計報告書課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題 目:用C語言實現(xiàn)成績統(tǒng)計程序的設(shè)計系 名:信息工程系專業(yè)班級: 計算機1121姓 名:吳濤學(xué) 號:10210412104指導(dǎo)教師: 司曉梅 2016年3月20日武漢理工大學(xué)華夏學(xué)院信息工程系課 程 設(shè) 計 任 務(wù) 書課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 指導(dǎo)教師: 司曉梅 班級名稱: 計算機1121 開課系、教研室: 信息系計算機 一、課程設(shè)計目的與任務(wù)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計是為訓(xùn)練學(xué)生的數(shù)據(jù)組織能力和提高程序設(shè)計能力而設(shè)置的增強實踐能力的課程。目的:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程,旨在使學(xué)生學(xué)會分析研究數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)
2、的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)以及相應(yīng)操作,把現(xiàn)實世界中的問題轉(zhuǎn)換為計算機內(nèi)部的表示和處理,這就是一個良好的程序設(shè)計技能訓(xùn)練的過程.提高學(xué)生的程序設(shè)計能力、掌握基本知識、基本技能,提高算法設(shè)計質(zhì)量與程序設(shè)計素質(zhì)的培養(yǎng)就是本門課程的課程設(shè)計的目的。任務(wù):根據(jù)題目要求,完成算法設(shè)計與程序?qū)崿F(xiàn),并按規(guī)定寫出課程設(shè)計報告.二、課程設(shè)計的內(nèi)容與基本要求設(shè)計題目:用C語言實現(xiàn)成績統(tǒng)計程序的設(shè)計問題描述給出n個學(xué)生的m門課程的考試成績信息,每條信息由姓名、課程代號與分數(shù)組成,要求設(shè)計算法:(1)輸入每個人的各門課程的成績,計算每人的平均成績;(2)按平均成績的高低次序,打印出個人的名次,平均成績相同的為同一名次;(3
3、)按名次列出每個學(xué)生的姓名和各科成績;基本要求學(xué)生的考試成績必須通過鍵盤輸入,且需對輸出進行格式控制;算法提示可以用選擇排序、冒泡排序等多種排序算法求解; 具體要完成的任務(wù)是: A。 編制完成上述問題的C語言程序、進行程序調(diào)試并能得出正確的運行結(jié)果。B。 寫出規(guī)范的課程設(shè)計報告書;三、課程設(shè)計步驟及時間進度和場地安排時間:1周 地點:現(xiàn)代教育中心具體時間安排如下:第一天:布置題目,確定任務(wù)、查找相關(guān)資料第二天第四天:功能分析,編寫程序,調(diào)試程序、運行系統(tǒng);第五天上午:撰寫設(shè)計報告;第五天下午:程序驗收、答辯。四、課程設(shè)計考核及評分標準課程設(shè)計考核將綜合考慮學(xué)生的系統(tǒng)設(shè)計方案、運行結(jié)果、課程設(shè)計
4、報告書的質(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)秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)目 錄 一、問題描述.。.。.。.。.。.。.。.。.5 二、基本要求.。.。.。.。.。.。.。.。.。.。.。.。.5三、數(shù)據(jù)結(jié)構(gòu)設(shè)計.。.。.。.。.。.。.。.
5、。.。.6四、軟件模塊結(jié)構(gòu)圖。.。.。.。.。.。.。.。.。.。7五、程序設(shè)計思想。.。.。.。.。.。.。9六、程序流程圖。.。.。.。.。.。.。.。.。.。.。137、 源程序。.。.。.。.。.。.。.。.。.。18 八、調(diào)試分析.。.。.。.。.。.。.。.。.。.。32九、測試數(shù)據(jù).。.。.。.。.。.。.。.。.。.。.。33 十、用戶使用手冊.。.。.。.。.。.。.。.。.。.35一、問題描述問題描述給出n個學(xué)生的m門課程的考試成績信息,每條信息由姓名、課程代號與分數(shù)組成,要求設(shè)計算法:(1)輸入每個人的各門課程的成績,計算每人的平均成績;(2)按平均成績的高低次序,打印出
6、個人的名次,平均成績相同的為同一名次;(3)按名次列出每個學(xué)生的姓名和各科成績;基本要求 學(xué)生的考試成績必須通過鍵盤輸入,且需對輸出進行格式控制;算法提示可以用選擇排序、冒泡排序等多種排序算法求解;二、基本要求基本要求 學(xué)生的考試成績必須通過鍵盤輸入,且需對輸出進行格式控制;算法提示可以用選擇排序、冒泡排序等多種排序算法求解;三、數(shù)據(jù)結(jié)構(gòu)的設(shè)計為了對學(xué)生信息進行統(tǒng)一操作,使用了結(jié)構(gòu)體這一數(shù)據(jù)結(jié)構(gòu),學(xué)生的各項數(shù)據(jù)信息都能用結(jié)構(gòu)體來表示,具體如下:struct stuint num;/學(xué)號,整型變量/char name50;/姓名,長度為50的字符串數(shù)組/char classes50/班級名稱,長
7、度為50的字符串數(shù)組/;double gsps_score;/高等數(shù)學(xué)平時成績,雙精度實型變量/double gsks_score;/高等數(shù)學(xué)考試成績,雙精度實型變量/double gszh_score;/*高等數(shù)學(xué)綜合成績,雙精度實型變量*/doubledlps_score;/電路理論平時成績,雙精度實型變量*/doubledlks_score;/電路理論考試成績,雙精度實型變量/doubledlzh_score;/*電路理論綜合成績,雙精度實型變量*/double yyps_score;/*英語平時成績,雙精度實型變量/double yyks_score;/*英語考試成績,雙精度實型變量/
8、double yyzh_score;/*英語綜合成績,雙精度實型變量/doublewlps_score;/*物理平時成績,雙精度實型變量/doublewlks_score;/物理考試成績,雙精度實型變量/doublewlzh_score;/物理綜合成績,雙精度實型變量/double pj_score;/平均成績,雙精度實型變量/student1000;/最多存儲1000個學(xué)生數(shù)據(jù)*/該結(jié)構(gòu)體數(shù)據(jù)定義為全局變量。四、軟件模塊結(jié)構(gòu)圖每門課程的平均成績主菜單控制模塊學(xué)生信息錄入模塊學(xué)生信息查詢模塊學(xué)生信息修改模塊學(xué)生信息刪除模塊學(xué)生信息插入模塊學(xué)生信息輸出模塊按學(xué)號查詢學(xué)生信息按姓名查詢學(xué)生信息輸出
9、優(yōu)秀學(xué)生相關(guān)信息輸出不及格學(xué)生信息課程成績統(tǒng)計模塊按單科成績排名次模塊功能描述:a.主菜單控制模塊:主菜單直接控制七個模塊(學(xué)生信息輸出模塊的兩個子模塊直接歸主菜單控制),在各模塊間起到紐帶的作用。在主菜單,可以通過選擇進入其他模塊,其他模塊運行結(jié)束后也可回到主菜單繼續(xù)選擇。b。學(xué)生信息錄入模塊:循環(huán)輸入學(xué)生信息,建立臨時的學(xué)生信息數(shù)據(jù)庫。c.學(xué)生信息查詢模塊:可選擇按學(xué)號或者按姓名查詢學(xué)生信息,如學(xué)生信息不存在則給出提示.d。學(xué)生信息修改模塊:查找到要修改的學(xué)生信息后,可對該學(xué)生的信息進行逐項修改。e.學(xué)生信息刪除模塊:查找到要刪除的學(xué)生信息后,可對其進行刪除操作.f.學(xué)生信息插入模塊:在數(shù)
10、據(jù)庫末尾插入學(xué)生信息,逐項輸入要插入的學(xué)生信息即可。g。學(xué)生信息輸出模塊:輸出優(yōu)秀學(xué)生信息模塊能夠輸出優(yōu)秀學(xué)生(平均成績大于等90分)的學(xué)號和姓名;輸出不及格學(xué)生信息模塊能夠輸出不及格學(xué)生的相關(guān)信息。h.課程成績統(tǒng)計模塊:可以得到每門課程的平均成績,還可以任意抽取一門課按單科成績排定學(xué)生名次。五、程序設(shè)計思想結(jié)構(gòu)化的程序設(shè)計主要靠設(shè)計和調(diào)用各模塊的函數(shù)來實現(xiàn).本程序設(shè)計了多個函數(shù),每個函數(shù)自身能完成一個任務(wù),有的函數(shù)和別的函數(shù)結(jié)合能完成更大的任務(wù).每一個模塊功能的實現(xiàn)其實就是對函數(shù)的調(diào)用,本說明首先介紹本程序所涉及的子函數(shù),再介紹主函數(shù),最后介紹程序整體的實現(xiàn)過程。1。void Inputfu
11、n() 此函數(shù)較特別,它只進行輸入操作,但由于此函數(shù)所包含的語句較長且需要被其他三個函數(shù)使用,為方便調(diào)用單寫了一個函數(shù)。此函數(shù)在源程序中放在最前,所以在此先作說明。此函數(shù)可細分為11個小塊,用來輸入學(xué)生的基本數(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、在最后一門課程的綜合成績算出后,計算了該學(xué)生四門課的平均成績。2.void Getinformation() 此函數(shù)用來錄入學(xué)生信息。它調(diào)用了void Inputfun()函數(shù),其實它的主體部分就是void Inputfun()函數(shù)。這函數(shù)還用了一個for循環(huán)以達到循環(huán)輸入的目的.3。int Searchbynum (int no)int Searchbyname (char na50) 這是兩個“兄弟函數(shù)”,是按學(xué)號查找和按姓名查詢模塊中的兩個重要函數(shù)。主要功能是根據(jù)用戶輸入的學(xué)號姓名返回改學(xué)生所在的的數(shù)組下標。利用for循環(huán)嵌套一個if語句實現(xiàn),若找到學(xué)生該學(xué)生信息就返回數(shù)組下標,若找不到
13、就返回1.4.void Seekinformation()void Printinformation(int x) 這兩個函數(shù)關(guān)系緊密,所以一起介紹。void Seekinformation()函數(shù)利用for循環(huán)和if語句使查找中能夠使用學(xué)號和姓名兩種方式。如源程序所示,在用if語句確定了查找方式后先后調(diào)用了int Searchbynum (int no)int Searchbyname (char na50)和void Printinformation(int x)兩個函數(shù),根據(jù)int Searchbynum (int no)int Searchbyname (char na50)返回的數(shù)組
14、下標,運用void Printinformation(int x)輸出所查詢的內(nèi)容.所以int Searchbynum (int no)int Searchbyname (char na50)void Seekinformation()void Printinformation(int x)這四個函數(shù)是查詢模塊的四個聯(lián)系緊密的重要函數(shù),在它們的共同作用下查詢模塊的功能得以實現(xiàn)。5。void Modifyinformation() 此函數(shù)用于修改學(xué)生信息.基本原理就是用輸入的新數(shù)據(jù)覆蓋原來的老數(shù)據(jù),達到修改的目的。本函數(shù)還調(diào)用了查找模塊的函數(shù),使修改前能按學(xué)號或姓名找到要修改的學(xué)生信息。修改過程
15、中調(diào)用了Inputfun()函數(shù)6.void Deleteinformation() 此函數(shù)用于刪除學(xué)生信息。同樣調(diào)用了查找模塊的函數(shù)。刪除模塊的關(guān)鍵語句是for (i=x;i999;i+) studenti=studenti+1;從要刪除的那一個數(shù)據(jù)開始,用后一個數(shù)據(jù)覆蓋它,一直循環(huán)到最后,相當于把開始的第一個數(shù)據(jù)刪除了。7.void Insertinformaton() 此函數(shù)用于插入學(xué)生數(shù)據(jù).由于沒有用鏈表,所以選擇插入在最后一個有效數(shù)據(jù)之后。本函數(shù)運用if(studentj。num=0)這個語句找到了最后一個有效數(shù)據(jù)之后的數(shù)組下標j,然后將數(shù)據(jù)輸入到studentj中,便完成的了插入。
16、插入過程中,調(diào)用了Inputfun()函數(shù)。8。void Showthefail() 此函數(shù)用于顯示不及格學(xué)生的信息.能夠按要求輸出不及格學(xué)生的學(xué)號、姓名、各科成績以及平均成績。首先用這條if語句搜索該學(xué)生是否有成績不及格,當四門課中至少有一門不及格時會輸出該學(xué)生的相關(guān)信息。9。void Stu_p() 此函數(shù)用于輸出優(yōu)秀學(xué)生(平均成績大于90分)的信息,利用for循環(huán)和條件判斷句輸出找出相應(yīng)的學(xué)生輸出相關(guān)信息。10。void Chengjitongji()此函數(shù)用于按要求統(tǒng)計成績。有分別統(tǒng)計每門課的平均成績的功能;還能夠按每門課程的成績對學(xué)生進行排序,使學(xué)生在該門課的表現(xiàn)一目了然。排序中用到
17、了冒泡排序的方法。9. void main() 下面對主函數(shù)作簡要說明。Switch語句是函數(shù)的主體:switch(c)/*利用switch語句集成各個功能函數(shù)/case 1 : Getinformation();break;/獲得學(xué)生信息*/case 2 : Seekinformation();break;/*查找學(xué)生信息*/case 3 : Modifyinformation();break;/*修改學(xué)生信息*/case 4 : Deleteinformation();break;/*刪除學(xué)生信息/case 5 : Insertinformaton();break;/插入學(xué)生信息*/cas
18、e 6 : Stu_p();break;/*顯示優(yōu)秀學(xué)生信息/case 7 : Showthefail();break;/顯示不及格學(xué)生信息/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)過程作個簡要說明.源程序中多處運用continue和break語句,同時配合scanf函數(shù)和if條件判斷語句,使用戶能夠根據(jù)提示通過簡
19、單的數(shù)值輸入來選擇下一步該做什么。中文界面,用戶很容易根據(jù)提示上手,簡單易用。六、程序流程圖開始系統(tǒng)啟動口令輸入a=?a=1? N口令錯誤,系統(tǒng)即將關(guān)閉! Y進入選擇菜單 N c=1? Y錄入學(xué)生信息c=2? NY查找學(xué)生信息c=3?NY修改學(xué)生信息 Nc=4?刪除學(xué)生信息c=5? Y N c=6? N Y插入學(xué)生信息c=7? Y 優(yōu)秀學(xué)生信息 N 不及格學(xué)生信息c=8? N Y Y N課程成績統(tǒng)計N結(jié)束以上為主函數(shù)流程圖,主函數(shù)下八個供選擇的模塊只是簡單的用一個執(zhí)行框表示?,F(xiàn)分別畫出八個模塊的流程圖:1、 錄入學(xué)生成績:開始輸入學(xué)生信息及成績是否繼續(xù)?繼續(xù)按1,結(jié)束按0·10結(jié)束開
20、始2、查找學(xué)生信息:按學(xué)號查找請按1,按姓名查找請按221輸出相應(yīng)姓名所對應(yīng)的信息輸出相應(yīng)學(xué)號所對應(yīng)的信息是否繼續(xù)?繼續(xù)按1,結(jié)束按010結(jié)束03、修改學(xué)生信息:開始調(diào)用查找函數(shù)找到要修改的信息輸入修改后的信息是否繼續(xù)?繼續(xù)按1,結(jié)束按010結(jié)束4、刪除學(xué)生信息:開始調(diào)用查找函數(shù)找到要刪除的信息是否刪除?是按1,否按0 1 刪除成功是否繼續(xù)?繼續(xù)按1,結(jié)束按01結(jié)束0開始5、插入學(xué)生信息:輸入要插入的信息是否繼續(xù)?繼續(xù)按1,結(jié)束按01 0 結(jié)束6、優(yōu)秀學(xué)生信息:開始學(xué)生平均成績是否大于等于90?N Y輸出該生學(xué)號和姓名 Y檢索完畢? N 結(jié)束Y7、 不及格學(xué)生信息:開始判斷該生是否有不及格科目
21、 N Y 輸出該該生學(xué)信息檢索完畢? N Y結(jié)束8、 成績統(tǒng)計模塊:開始每門課程平均成績請按1,單科成績排名請按2 1 2 輸出每門課程平均成績選擇要排名的科目輸出該科成績排名結(jié)束七、源程序includestdio。h>includestring.h#includestdlib.hinclude<conio.hstruct stu/*定義結(jié)構(gòu)體*/int num; char name50; char classes50; double gsps_score; double gsks_score; double gszh_score; double dlps_score; doubl
22、e 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;char s150,c1;double f,t,gp,dp,yp,wp;/*錄入、修改、插入學(xué)生信息三個模塊調(diào)用了輸入模塊*/void Inputfun()/輸入學(xué)生信息模塊*/for(; ;
23、)/*設(shè)計死循環(huán)以至于在輸入格式錯誤時可以再次輸入*/ printf(”請輸入班級名稱:t"); /輸入班級名稱/ scanf("s”,&s1); if(strlen(s1)20) printf(”您輸入的班級名稱過長!n"); continue; strcpy(studenti.classes,s1); break; /*格式正確后跳出死循環(huán)/ for(; ;) printf(”請輸入學(xué)號:t");/*輸入學(xué)號/ scanf(”d",&b); if(studenti。num0) printf(”您輸入的學(xué)號錯誤!n”); co
24、ntinue; studenti。num=b; break; for(; ;) printf(”請輸入姓名:t");/*輸入姓名/ scanf("s",s1); if(strlen(s1)20) printf(”您輸入的姓名過長!n”); continue; strcpy(,s1); break; for(; ;) printf(”請輸入該生高等數(shù)學(xué)平時成績:t");/*輸入各科平時成績和考試成績/ scanf(”lf”,f); if(f100|f0) printf(”成績不合理!請您輸入合理的成績。n”); continue;
25、 studenti。gsps_score=f; break; for(; ;) printf(”請輸入該生高等數(shù)學(xué)考試成績:t”); scanf(”lf”,f); if(f100|f<0) printf("成績不合理!請您輸入合理的成績。n”); continue; studenti。gsks_score=f; studenti。gszh_score=studenti.gsks_score0。7+studenti.gsps_score*0.3;/按考試成績70平時成績30%算該門課程的最終成績/ break; for(; ;) printf(”請輸入該生電路理論平時成績:t”)
26、; scanf("lf”,&f); if(f>100f0) printf(”成績不合理!請您輸入合理的成績。n"); continue; studenti。dlps_score=f; break; for(; ;) printf("請輸入該生電路理論考試成績:t”); scanf(”lf”,f); if(f100f0) printf("成績不合理!請您輸入合理的成績.n"); continue; studenti.dlks_score=f; studenti。dlzh_score=studenti。dlks_score0.7+st
27、udenti.dlps_score0.3; break; for(; ;) printf("請輸入該生英語平時成績:t”); scanf(”lf”,f); if(f100|f0) printf(”成績不合理!請您輸入合理的成績。n”); continue; studenti。yyps_score=f; break; for(; ;) printf("請輸入該生英語考試成績:t"); scanf("lf”,&f); if(f>100f0) printf(”成績不合理!請您輸入合理的成績。n”); continue; studenti。yyks
28、_score=f; studenti.yyzh_score=studenti。yyks_score*0.7+studenti。yyps_score0.3; break;for(; ;) printf("請輸入該生物理平時成績:t"); scanf("%lf”,&f); if(f>100|f0) printf("成績不合理!請您輸入合理的成績。n”); continue; studenti。wlps_score=f; break; for(; ;) printf(”請輸入該生物理考試成績:t”); scanf(”lf”,&f); if
29、(f>100|f0) printf(”成績不合理!請您輸入合理的成績.n"); continue; studenti。wlks_score=f; studenti.wlzh_score=studenti.wlks_score0。7+studenti。wlps_score0.3; studenti。pj_score=(studenti。yyzh_score+studenti。dlzh_score+studenti.gszh_score+studenti.wlzh_score)/4;/*計算每個學(xué)生的平均成績*/ break; /*錄入學(xué)生信息模塊*/void Getinforma
30、tion() /*獲得學(xué)生信息/ for (i=0;i1000;i+)/利用循環(huán)連續(xù)輸入學(xué)生信息/ if(i=0) system(”cls”); printf(”請根據(jù)提示輸入學(xué)生的信息nn”); else printf("請輸入下一個學(xué)生的信息nn"); Inputfun();printf(”繼續(xù)請按1,返回主菜單請按0。n”); scanf(”d”,&a); if(a=0) break;/*查詢模塊:包含四個函數(shù),函數(shù)間有聯(lián)系*/int Searchbynum (int no) /*按學(xué)號查找/for (j=0;j<1000;j+) if (student
31、j。num=no) return j; return -1;int Searchbyname (char na50)/按姓名查找/for (k=0;k1000;k+) if (strcmp(,na)=0) return k; return 1; void Printinformation(int x)/輸出學(xué)生信息/ if (x=-1)printf("該學(xué)生信息不存在!n”);elseprintf("班級:sn",studentx。classes); printf(”學(xué)號:dn”,studentx.num);printf(”姓名:snn”
32、,);printf(”高數(shù)平時成績:5。2fn”,studentx.gsps_score);printf(”高數(shù)考試成績:5.2fn”,studentx.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_
33、score);printf(”英語平時成績:5.2fn”,studentx.yyps_score);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(”平均成績:%5。
34、2fn",studentx。pj_score); void Seekinformation()/查詢學(xué)生信息/for(; ;)system(”cls”);printf(”按學(xué)號查找請按1,按姓名查找請按2n”);/提供兩種查找方式*/scanf(”d”,&a);if(a=1)system(”cls”);printf("請輸入要查找的學(xué)生的學(xué)號n”);scanf(”d”,&d);x=Searchbynum (d);/調(diào)用按學(xué)號查找函數(shù)*/Printinformation(x);else if (a=2)system(”cls”);printf("請輸
35、入要查找的學(xué)生的姓名n”);scanf("s”,&s1);x=Searchbyname (s1);/調(diào)用按姓名查找函數(shù)/Printinformation(x);printf(”繼續(xù)請按1,返回主菜單請按0。n”); scanf(”d",a); if(a=0) break;/*學(xué)生信息刪改:包含三個相互獨立的函數(shù)*/void Modifyinformation() /*修改學(xué)生信息*/for(; ;) system("cls”);printf(”請先查找要修改的學(xué)生信息!nn");printf("按學(xué)號查找請按1,按姓名查找請按2n”);
36、/先查找后修改/scanf("d",&a);if(a=1)system(”cls”);printf(”請輸入要查找的學(xué)生的學(xué)號n”);scanf("d”,d);x=Searchbynum (d);else if (a=2)system(”cls”);printf(”請輸入要查找的學(xué)生的姓名n");scanf(”%s”,&s1);x=Searchbyname (s1);if (x=1) printf("學(xué)生信息不存在!n”); else printf("您要修改的學(xué)生信息為:n"); Printinformat
37、ion(x);printf("請您輸入新值n”); i=x;Inputfun();printf("繼續(xù)請按1,返回主菜單請按0.n"); scanf(”d",a); if(a=0) break;void Deleteinformation() /*刪除學(xué)生信息/for (;;)system(”cls");printf("請先查找要刪除的學(xué)生信息!nn");printf(”按學(xué)號查找請按1,按姓名查找請按2n”);scanf("d",a);if(a=1)system("cls”);printf(”
38、請輸入要查找的學(xué)生的學(xué)號n”);scanf("%d”,&d);x=Searchbynum (d);else if (a=2)system(”cls");printf(”請輸入要查找的學(xué)生的姓名n");scanf(”s",s1);x=Searchbyname (s1);if (x=1) printf("學(xué)生信息不存在!n”); else printf(”您要刪除的學(xué)生信息為:n”); Printinformation(x);printf("是否真的要刪除該生信息?是請按1,否請按0.n”);scanf(”%d”,&a);
39、if (a=1) for (i=x;i999;i+) studenti=studenti+1;/*該數(shù)組后的數(shù)組向前移動以覆蓋的方式刪除該數(shù)組/printf(”刪除成功!n”); printf(”繼續(xù)請按1,返回主菜單請按0.n"); scanf(”d”,a); if(a=0) break;void Insertinformaton() /插入學(xué)生信息*/system("cls”);for(j=0;j1000;j+)if(studentj。num=0)x=j;break;for(i=x;i1000;i+)system(”cls”);printf("請輸入要插入的學(xué)
40、生信息nn”);Inputfun();/*利用信息錄入函數(shù)把學(xué)生信息插在末尾/printf("繼續(xù)請按1,返回主菜單請按0。n"); scanf(”%d”,&a); if(a=0) break;/*各科成績排序的四個程序*/void paixugs() /*排序1*/struct stu temp;for (j=1;j1000;j+) for (k=0;k999;k+) if (studentk。gszh_scorestudentk+1。gszh_score)/利用冒泡排序的方法完成排序/ temp=studentk; studentk=studentk+1; st
41、udentk+1=temp; system("cls”); printf(”學(xué)生成績排序表:nn"); for (i=0;i1000;i+) if (studenti。num!=0) printf("學(xué)號:dt",studenti。num); printf("姓名:st",); printf(”第d名:5.2fn",(i+1),studenti。gszh_score); printf(”返回主菜單請按0n”); scanf("d",&a);void paixudl() /
42、*排序2/struct stu temp;for (j=1;j1000;j+) for (k=0;k999;k+) if (studentk。dlzh_scorestudentk+1。dlzh_score) temp=studentk; studentk=studentk+1; studentk+1=temp; system("cls"); printf(”學(xué)生成績排序表:nn"); for (i=0;i1000;i+) if (studenti。num!=0) printf(”學(xué)號:%dt”,studenti.num); printf("姓名:st”,
43、); printf("第d名:%5。2fn”,(i+1),studenti.dlzh_score); printf(”返回主菜單請按0n"); scanf("d”,a);void paixuyy() /排序3/struct stu temp;for (j=1;j<1000;j+) for (k=0;k<999;k+) if (studentk.yyzh_score<studentk+1.yyzh_score) temp=studentk; studentk=studentk+1; studentk+1=temp; sys
44、tem("cls”); printf(”學(xué)生成績排序表:nn”); for (i=0;i1000;i+) if (studenti。num!=0) printf(”學(xué)號:dt",studenti。num); printf("姓名:st",); printf(”第d名:5。2fn”,(i+1),studenti。yyzh_score); printf(”返回主菜單請按0n”); scanf(”d",a);void paixuwl() /排序4/struct stu temp;for (j=1;j1000;j+) for
45、(k=0;k<999;k+) if (studentk.wlzh_scorestudentk+1。wlzh_score) temp=studentk; studentk=studentk+1; studentk+1=temp; system(”cls”); printf("學(xué)生成績排序表:nn”); for (i=0;i1000;i+) if (studenti.num!=0) printf("學(xué)號:%dt”,studenti.num); printf(”姓名:%st",); printf(”第d名:%5。2fn",(i+
46、1),studenti。wlzh_score); printf("返回主菜單請按0n”); scanf(”d”,a);void Showthefail()/顯示不及格學(xué)生的情況/ system("cls”); printf(”不及格的學(xué)生:nn"); for (i=0;i1000;i+) if (studenti.num!=0) if(studenti。gszh_score60|studenti.dlzh_score<60studenti。yyzh_score60|studenti。wlzh_score60) Printinformation(i);printf("-n”);printf(”n返回主菜單請按0n”); scanf(”%d”,a);void Stu_p()/優(yōu)秀學(xué)生(平均分大于等于90分)信息/system("cls");printf(”平均分90以上的學(xué)生:nn”);for (i=0;i1000;i+)if (studenti。num!=0) if(studenti。pj_score>=90) printf("學(xué)號:dn”,studenti.num); printf(”姓名:snn&q
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州2025年江蘇蘇州張家港市招聘備案制教師47人筆試歷年參考題庫附帶答案詳解
- 秦皇島2025年河北秦皇島市第二醫(yī)院招聘人事代理人員115人筆試歷年參考題庫附帶答案詳解
- 梧州2025年廣西梧州市事業(yè)單位招聘中小學(xué)幼兒園教師507人筆試歷年參考題庫附帶答案詳解
- 2025年中國多流水表市場調(diào)查研究報告
- 德州2024年山東德州天衢新區(qū)第三批招聘教師60人筆試歷年參考題庫附帶答案詳解
- 2025至2031年中國高亮度充電式手筒行業(yè)投資前景及策略咨詢研究報告
- 2025年自動補償式交流穩(wěn)壓器項目可行性研究報告
- 2025年粉碎自動送料機項目可行性研究報告
- 2025年生物活能全效眼霜項目可行性研究報告
- 2025至2031年中國文丘里噴嘴行業(yè)投資前景及策略咨詢研究報告
- 國有集團公司中層及員工履職追責(zé)問責(zé)處理辦法模版
- 臺球運動中的理論力學(xué)
- 春節(jié)(節(jié)后復(fù)工)安全教育培訓(xùn)
- “高中英語閱讀課件-閱讀策略與技巧”
- 透明質(zhì)酸注射美容記錄
- GB/T 25922-2023封閉管道中流體流量的測量用安裝在充滿流體的圓形截面管道中的渦街流量計測量流量
- 培訓(xùn)-責(zé)任心課件
- 播音主持外部技巧:停連重音語氣節(jié)奏課件講義
- 安徽杭富固廢環(huán)保有限公司10萬噸工業(yè)廢物(無機類)資源化利用及無害化處置項目環(huán)境影響報告書
- 商業(yè)綜合體市場調(diào)研報告
- GB/T 42096-2022飛機耐火電纜性能要求
評論
0/150
提交評論