數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余23頁(yè)可下載查看

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、在學(xué)生成績(jī)管理中,經(jīng)常會(huì)遇到求平均成績(jī),統(tǒng)計(jì)不及格學(xué)生成績(jī),統(tǒng)計(jì)優(yōu)秀學(xué)生人數(shù),以及按成績(jī)對(duì)學(xué)生進(jìn)行排名等?,F(xiàn)假設(shè)有某個(gè)班級(jí)的若干名學(xué)生,每個(gè)學(xué)生都考試完成了4門課程,試對(duì)所有學(xué)生的成績(jī)完成以下工作:(1)求每門課程的平均成績(jī)。(2)輸出所有有不及格課程的學(xué)生的學(xué)號(hào)、姓名、全部課程的成績(jī)、平均成績(jī)。(3)輸出所有平均分在90分以上(含90分)的學(xué)生學(xué)號(hào)、姓名。(4)對(duì)4門課程中的任何一門,可隨意抽取1門按學(xué)生成績(jī)進(jìn)行排序。二、基本要求對(duì)學(xué)生信息的輸入完成后,實(shí)現(xiàn)如下功能:1、對(duì)學(xué)生信息的查找、插入、刪除、修改。2、分別輸出優(yōu)秀學(xué)生和不及格學(xué)生的信息。3、顯示每們課程的平均成績(jī)。4、任意抽取一門課

2、程后,可以按該課程學(xué)生成績(jī)對(duì)學(xué)生信息進(jìn)行排序。三、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)為了對(duì)學(xué)生信息進(jìn)行統(tǒng)一操作,使用了結(jié)構(gòu)體這一數(shù)據(jù)結(jié)構(gòu),學(xué)生的各項(xiàng)數(shù)據(jù)信息都能用結(jié)構(gòu)體來(lái)表示,具體如下:structstuintnum;/*學(xué)號(hào),整型變量*/charname50;/*姓名,長(zhǎng)度為50的字符串?dāng)?shù)組*/charclasses50/*班級(jí)名稱,長(zhǎng)度為50的字符串?dāng)?shù)組*/;doublegsps_score;/*高等數(shù)學(xué)平時(shí)成績(jī),雙精度實(shí)型變量*/doublegsks_score;/*高等數(shù)學(xué)考試成績(jī),雙精度實(shí)型變量*/doublegszh_score;/*高等數(shù)學(xué)綜合成績(jī),雙精度實(shí)型變量*/doubledlps_score

3、;/*電路理論平時(shí)成績(jī),雙精度實(shí)型變量*/doubledlks_score;/*電路理論考試成績(jī),雙精度實(shí)型變量*/doubledlzh_score;/*電路理論綜合成績(jī),雙精度實(shí)型變量*/doubleyyps_score;/*英語(yǔ)平時(shí)成績(jī),雙精度實(shí)型變量*/doubleyyks_score;/*英語(yǔ)考試成績(jī),雙精度實(shí)型變量*/doubleyyzh_score;/*英語(yǔ)綜合成績(jī),雙精度實(shí)型變量*/doublewlps_score;/*物理平時(shí)成績(jī),雙精度實(shí)型變量*/doublewlks_score;/*物理考試成績(jī),雙精度實(shí)型變量*/doublewlzh_score;/*物理綜合成績(jī),雙精度實(shí)

4、型變量*/doublepj_score;/*平均成績(jī),雙精度實(shí)型變量*/student1000;/*最多存儲(chǔ)1000個(gè)學(xué)生數(shù)據(jù)*/該結(jié)構(gòu)體數(shù)據(jù)定義為全局變量。四、軟件模塊結(jié)構(gòu)圖學(xué)生信息帚人模跳自主菜單控制模塊學(xué)生信息修改模塊學(xué)生信息刪除模塊學(xué)生信息插入模塊學(xué)生信息輸出模塊課程成績(jī)統(tǒng)計(jì)模塊按單科成績(jī)排名次模塊功能描述:a.主菜單控制模塊:主菜單直接控制七個(gè)模塊(學(xué)生信息輸出模塊的兩個(gè)子模塊直接歸主菜單控制),在各模塊間起到紐帶的作用。在主菜單,可以通過(guò)選擇進(jìn)入其他模塊,其他模塊運(yùn)行結(jié)束后也可回到主菜單繼續(xù)選擇。b.學(xué)生信息錄入模塊:循環(huán)輸入學(xué)生信息,建立臨時(shí)的學(xué)生信息數(shù)據(jù)庫(kù)。c.學(xué)生信息查詢模塊

5、:可選擇按學(xué)號(hào)或者按姓名查詢學(xué)生信息,如學(xué)生信息不存在則給出提示。d.學(xué)生信息修改模塊:查找到要修改的學(xué)生信息后,可對(duì)該學(xué)生的信息進(jìn)行逐項(xiàng)修改。e.學(xué)生信息刪除模塊:查找到要?jiǎng)h除的學(xué)生信息后,可對(duì)其進(jìn)行刪除操作。f.學(xué)生信息插入模塊:在數(shù)據(jù)庫(kù)末尾插入學(xué)生信息,逐項(xiàng)輸入要插入的學(xué)生信息即可。g.學(xué)生信息輸出模塊:輸出優(yōu)秀學(xué)生信息模塊能夠輸出優(yōu)秀學(xué)生(平均成績(jī)大于等90分)的學(xué)號(hào)和姓名;輸出不及格學(xué)生信息模塊能夠輸出不及格學(xué)生的相關(guān)信息。h.課程成績(jī)統(tǒng)計(jì)模塊:可以得到每門課程的平均成績(jī),還可以任意抽取一門課按單科成績(jī)排定學(xué)生名次。五、程序設(shè)計(jì)思想結(jié)構(gòu)化的程序設(shè)計(jì)主要靠設(shè)計(jì)和調(diào)用各模塊的函數(shù)來(lái)實(shí)現(xiàn)。

6、本程序設(shè)計(jì)了多個(gè)函數(shù),每個(gè)函數(shù)自身能完成一個(gè)任務(wù),有的函數(shù)和別的函數(shù)結(jié)合能完成更大的任務(wù)。每一個(gè)模塊功能的實(shí)現(xiàn)其實(shí)就是對(duì)函數(shù)的調(diào)用,本說(shuō)明首先介紹本程序所涉及的子函數(shù),再介紹主函數(shù),最后介紹程序整體的實(shí)現(xiàn)過(guò)程。1 .voidInputfun()此函數(shù)較特別,它只進(jìn)行輸入操作,但由于此函數(shù)所包含的語(yǔ)句較長(zhǎng)且需要被其他三個(gè)函數(shù)使用,為方便調(diào)用單寫了一個(gè)函數(shù)。此函數(shù)在源程序中放在最前,所以在此先作說(shuō)明。此函數(shù)可細(xì)分為11個(gè)小塊,用來(lái)輸入學(xué)生的基本數(shù)據(jù)。每小塊的結(jié)構(gòu)基本相同即for(;)基本語(yǔ)句+一個(gè)continue語(yǔ)句+基本語(yǔ)句+一個(gè)break語(yǔ)句之所以用這個(gè)結(jié)構(gòu)為了使輸入的數(shù)據(jù)更加正規(guī)。比如在分?jǐn)?shù)

7、的輸入中就限定了只能輸入0至100之間的數(shù)值,這也符合分?jǐn)?shù)錄入規(guī)則。需要特別注意的是,這個(gè)函數(shù)完成了本程序中要做的兩個(gè)計(jì)算。其一是在每門課的考試試成績(jī)輸入后完成了對(duì)這門課的綜合成績(jī)的加權(quán)計(jì)算(考試成績(jī)*0.7+平時(shí)成績(jī)*0.3);其二是在最后一門課程的綜合成績(jī)算出后,計(jì)算了該學(xué)生四門課的平均成績(jī)。2 .voidGetinformation()此函數(shù)用來(lái)錄入學(xué)生信息。它調(diào)用了voidInputfun()函數(shù),其實(shí)它的主體部分就是voidInputfun()函數(shù)。這函數(shù)還用了一個(gè)for循環(huán)以達(dá)到循環(huán)輸入的目的。1.1 ntSearchbynum(intno)intSearchbyname(char

8、na50)這是兩個(gè)“兄弟函數(shù)”,是按學(xué)號(hào)查找和按姓名查詢模塊中的兩個(gè)重要函數(shù)。主要功能是根據(jù)用戶輸入的學(xué)號(hào)姓名返回改學(xué)生所在的的數(shù)組下標(biāo)。利用for循環(huán)嵌套一個(gè)if語(yǔ)句實(shí)現(xiàn),若找到學(xué)生該學(xué)生信息就返回?cái)?shù)組下標(biāo),若找不到就返回-1。4 .voidSeekinformation()voidPrintinformation(intx)這兩個(gè)函數(shù)關(guān)系緊密,所以一起介紹。voidSeekinformation()函數(shù)利用for循環(huán)和if語(yǔ)句使查找中能夠使用學(xué)號(hào)和姓名兩種方式。如源程序所示,在用if語(yǔ)句確定了查找方式后先后調(diào)用了intSearchbynum(intno)intSearchbyname(ch

9、arna50)和voidPrintinformation(intx)兩個(gè)函數(shù),根據(jù)intSearchbynum(intno)intSearchbyname(charna50)返回的數(shù)組下標(biāo),運(yùn)用voidPrintinformation(intx)輸出所查詢的內(nèi)容。所以intSearchbynum(intno)intSearchbyname(charna50)voidSeekinformation()voidPrintinformation(intx)這四個(gè)函數(shù)是查詢模塊的四個(gè)聯(lián)系緊密的重要函數(shù),在它們的共同作用下查詢模塊的功能得以實(shí)現(xiàn)。5 .voidModifyinformation()此函數(shù)

10、用于修改學(xué)生信息?;驹砭褪怯幂斎氲男聰?shù)據(jù)覆蓋原來(lái)的老數(shù)據(jù),達(dá)到修改的目的。本函數(shù)還調(diào)用了查找模塊的函數(shù),使修改前能按學(xué)號(hào)或姓名找到要修改的學(xué)生信息。修改過(guò)程中調(diào)用了Inputfun()函數(shù)6 .voidDeleteinformation()此函數(shù)用于刪除學(xué)生信息。同樣調(diào)用了查找模塊的函數(shù)。刪除模塊的關(guān)鍵語(yǔ)句是for(i=x;i<999;i+)studenti=studenti+1;從要?jiǎng)h除的那一個(gè)數(shù)據(jù)開始,用后一個(gè)數(shù)據(jù)覆蓋它,一直循環(huán)到最后,相當(dāng)于把開始的第一個(gè)數(shù)據(jù)刪除了。7 .voidInsertinformaton()此函數(shù)用于插入學(xué)生數(shù)據(jù)。由于沒有用鏈表,所以選擇插入在最后一個(gè)

11、有效數(shù)據(jù)之后。本函數(shù)運(yùn)用if(studentj.num=0)這個(gè)語(yǔ)句找到了最后一個(gè)有效數(shù)據(jù)之后的數(shù)組下標(biāo)j,然后將數(shù)據(jù)輸入到studentj中,便完成的了插入。插入過(guò)程中,調(diào)用了Inputfun()函數(shù)。8 .voidShowthefail()此函數(shù)用于顯示不及格學(xué)生的信息。能夠按要求輸出不及格學(xué)生的學(xué)號(hào)、姓名、各科成績(jī)以及平均成績(jī)。首先用這條if語(yǔ)句搜索該學(xué)生是否有成績(jī)不及格,當(dāng)四門課中至少有一門不及格時(shí)會(huì)輸出該學(xué)生的相關(guān)信息。9 .voidStu_p()此函數(shù)用于輸出優(yōu)秀學(xué)生(平均成績(jī)大于90分)的信息,利用for循環(huán)和條件判斷句輸出找出相應(yīng)的學(xué)生輸出相關(guān)信息。10 .voidChengj

12、itongji()此函數(shù)用于按要求統(tǒng)計(jì)成績(jī)。有分別統(tǒng)計(jì)每門課的平均成績(jī)的功能;還能夠按每門課程的成績(jī)對(duì)學(xué)生進(jìn)行排序,使學(xué)生在該門課的表現(xiàn)一目了然。排序中用到了冒泡排序的方法。9.voidmain()下面對(duì)主函數(shù)作簡(jiǎn)要說(shuō)明。Switch語(yǔ)句是函數(shù)的主體:switch(c)/*利用switch語(yǔ)句集成各個(gè)功能函數(shù)*/case 1 :Getinformation();break;/*獲得學(xué)生信息*/修改學(xué)生信息*/case 2 :Seekinformation();break;/*查找學(xué)生信息*/case 3 :Modifyinformation();break;/*case 4 :Deletein

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

14、實(shí)現(xiàn)過(guò)程作個(gè)簡(jiǎn)要說(shuō)明。源程序中多處運(yùn)用continue和break語(yǔ)句,同時(shí)配合scanf函數(shù)和if條件判斷語(yǔ)句,使用戶能夠根據(jù)提示通過(guò)簡(jiǎn)單的數(shù)值輸入來(lái)選擇下一步該做什么。中文界面,用戶很容易根據(jù)提示上手,簡(jiǎn)單易用。六、程序流程圖課程成績(jī)統(tǒng)計(jì)以上為主高數(shù)流程圖,主函笠?U供選擇的模塊只是簡(jiǎn)單的用一個(gè)執(zhí)行框表示現(xiàn)分別畫出八個(gè)模塊的流程圖:1、錄入學(xué)生成績(jī):0結(jié)束刪除學(xué)生信息:4、優(yōu)秀學(xué)生信息:6、8、成績(jī)統(tǒng)計(jì)模塊:輸出學(xué)生信息*/查詢學(xué)生信息*/修改學(xué)生信息*/刪除學(xué)生信息*/插入學(xué)生信息*/#include<string.h>#include<stdlib.h>#inc

15、lude<conio.h>voidInputfun();/*輸入學(xué)生信息模塊*/voidGetinformation();/*獲得學(xué)生信息*/intSearchbynum(intno);/*按學(xué)號(hào)查找*/intSearchbyname(charna50);/*按姓名查找*/voidPrintinformation(intx);/*voidSeekinformation();/*voidModifyinformation();/*voidDeleteinformation();/*voidInsertinformaton();/*voidpaixugs();/*排序1*/voidpa

16、ixudl();/*排序2*/voidpaixuyy();/*排序3*/voidpaixuwl();/*排序4*/voidShowthefail();/*顯示不及格學(xué)生的情況*/voidStu_p();/*優(yōu)秀學(xué)生(平均分大于等于90分)信息*/voidChengjitongji();/*按要求統(tǒng)計(jì)成績(jī)*/ltinclude"stdafx.h''ttinclude"a.h"ttinclude<stdio.h>*tnclude<5tring.h>ttinclude<stdlib_h>ttinclude<con

17、io.h>.cppstructstu/裳定義結(jié)構(gòu)體號(hào)<1intnun;charname5時(shí);/要定義學(xué)生姓有:/charclasses50;/*定乂學(xué),9印寫Fore;/嚏義竽gslis_score;/*定義學(xué)gszhGcorc;/*定義學(xué)dlpsscore;"doulbledoubledoubledoulbledoubledoubledoulbledoubledoubledoulbledoubledoubledouble班級(jí)dlks_score;/*正dlzh_score:定IWPjmmre;/虛義學(xué)99k5_score;/果定日廿iiyzh_score;/*定wips

18、score;wlks_score;Mlzhscore:班級(jí)H加繳*,班加/班級(jí)H如普/班級(jí)H班皴叼*/*/«/pj_score定義學(xué)生班級(jí)HstudentriOOO;intnum;charname50;/*charclasses50;/*doublegsps_score;/*doublegsks_score;/*doublegszh_score;/*doubledlps_score;/*doubledlks_score;/*doubledlzh_score;/*doubleyyps_score;/*doubleyyks_score;/*doubleyyzh_score;/*doubl

19、ewlps_score;/*doublewlks_score;/*doublewlzh_score;/*#include"stdafx.h#include"a.h"#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>structstu/*定義結(jié)構(gòu)體*/定義學(xué)生姓名*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)

20、生班級(jí)*/定義學(xué)生班級(jí)*/定義學(xué)生班級(jí)*/doublepj_score;/*定義學(xué)生班級(jí)*/student1000;inta,b,c,d,x,i,j,k,s,y,flag;chars150,c1;doublef,t,gp,dp,yp,wp;/*錄入、修改、插入學(xué)生信息三個(gè)模塊調(diào)用了輸入模塊*1voidInputfun()/*輸入學(xué)生信息模塊*/for(;)/*設(shè)計(jì)死循環(huán)以至于在輸入格式錯(cuò)誤時(shí)可以再次輸入*/printf("請(qǐng)輸入班級(jí)名稱:t");/*輸入班級(jí)名稱*/scanf("%s",&s1);if(strlen(s1)>20)print

21、f("您輸入的班級(jí)名稱過(guò)長(zhǎng)!n");continue;strcpy(studenti.classes,s1);break;/*格式正確后跳出死循環(huán)*/for(;)printf("請(qǐng)輸入學(xué)號(hào):t");/*輸入學(xué)號(hào)*/scanf("%d",&b);if(studenti.num<0)printf("您輸入的學(xué)號(hào)錯(cuò)誤!n");continue;studenti.num=b;break;for(;)printf("請(qǐng)輸入姓名:t");/*輸入姓名*/scanf("%s"

22、,&s1);if(strlen(s1)>20)printf("您輸入的姓名過(guò)長(zhǎng)!n");continue;strcpy(,s1);break;for(;)printf("請(qǐng)輸入該生高等數(shù)學(xué)平時(shí)成績(jī):t");/*輸入各科平時(shí)成績(jī)和考試成績(jī)*/scanf("%lf",&f);if(f>100|f<0)(printf("成績(jī)不合理!請(qǐng)您輸入合理的成績(jī).n");continue;studenti.gsps_score=f;break;for(;)(printf(&

23、quot;請(qǐng)輸入該生高等數(shù)學(xué)考試成績(jī):t");scanf("%lf",&f);if(f>100|f<0)(printf("成績(jī)不合理!請(qǐng)您輸入合理的成績(jī).n");continue;studenti.gsks_score=f;studenti.gszh_score=studenti.gsks_score*0.7+studenti.gsps_score*0.3;/*按考試成績(jī)70%F時(shí)成獲30%U該門課程白肯港成績(jī)*/一break;for(;)(printf("請(qǐng)輸入該生電路理論平時(shí)成績(jī):t");scanf(

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

25、=studenti.dlks_score*0.7+studenti.dlps_score*0.3;break;for(;)(printf("請(qǐng)輸入該生英語(yǔ)平時(shí)成績(jī):t");scanf("%lf",&f);if(f>100|f<0)(printf("成績(jī)不合理!請(qǐng)您輸入合理的成績(jī).n");continue;studenti.yyps_score=f;break;for(;)(printf("請(qǐng)輸入該生英語(yǔ)考試成績(jī):t");scanf("%lf",&f);if(f>

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

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

28、h_score+studenti.gszhe+studenti.wlzh_score)/4;/*計(jì)算每個(gè)學(xué)生的平均成績(jī)*/break;scorI*錄入學(xué)生信*/voidGetinformation()/*獲得學(xué)生信息*/(for(i=0;i<1000;i+)/*利用循環(huán)連續(xù)輸入學(xué)生信息*/(if(i=0)(system("cls");printf("請(qǐng)根據(jù)提示輸入學(xué)生的信息nn");elseprintf("請(qǐng)輸入下一個(gè)學(xué)生的信息nn");Inputfun();printf("繼續(xù)請(qǐng)按1,返回主菜單請(qǐng)按0.n"

29、);scanf("%d",&a);if(a=0)break;/*查詢模塊包含四個(gè)函數(shù),函數(shù)間有聯(lián)系*/*intSearchbynum(intno)/*按學(xué)號(hào)查找*/(for(j=0;j<1000;j+)(if(studentj.num=no)(returnj;return-1;intSearchbyname(charna50)/*按姓名查找*/(for(k=0;k<1000;k+)(if(strcmp(,na)=0)(returnk;return-1;)voidPrintinformation(intx)/*輸出學(xué)生信息*/(i

30、f(x=-1)printf("該學(xué)生信息不存在!n");else(printf("班級(jí):sn",studentx.classes);printf("學(xué)號(hào):dn",studentx.num);printf("姓名:snn",);printf("高數(shù)平時(shí)成績(jī):5.2fn",studentx.gsps_score);printf("高數(shù)考試成績(jī):5.2fn",studentx.gsks_score);printf("高數(shù)綜合成績(jī):5.2fnn&q

31、uot;,studentx.gszh_score);printf("電路平時(shí)成績(jī):%5.2fn",studentx.dlps_score);printf("電路考試成績(jī):5.2fn",studentx.dlks_score);printf("電路綜合成績(jī):5.2fnn",studentx.dlzh_score);printf("英語(yǔ)平時(shí)成績(jī):5.2fn",studentx.yyps_score);printf("英語(yǔ)考試成績(jī):5.2fn",studentx.yyks_score);printf(

32、"英語(yǔ)綜合成績(jī):5.2fnn",studentx.yyzh_score);printf("物理平時(shí)成績(jī):%5.2fn",studentx.wlps_score);printf("物理考試成績(jī):5.2fn",studentx.wlks_score);printf("物理綜合成績(jī):5.2fnn",studentx.wlzh_score);printf("平均成績(jī):5.2fn",studentx.pj_score);一)voidSeekinformation()/*查詢學(xué)生信息*/(for(;)(sy

33、stem("cls");printf("按學(xué)號(hào)查找請(qǐng)按1,按姓名查找請(qǐng)按2n");/*提供兩種查找方式*/scanf("%d",&a);if(a=1)(system("cls");printf("請(qǐng)輸入要查找的學(xué)生的學(xué)號(hào)n");scanf("%d",&d);x=Searchbynum(d);/*調(diào)用按學(xué)號(hào)查找函數(shù)*/Printinformation(x);elseif(a=2)(system("cls");printf("請(qǐng)輸入要

34、查找的學(xué)生的姓名n");scanf("%s",&s1);x=Searchbyname(s1);/*調(diào)用按姓名查找函數(shù)*/Printinformation(x);)printf("繼續(xù)請(qǐng)按1,返回主菜單請(qǐng)按0.n");scanf("%d",&a);if(a=0)break;I*學(xué)生信息刪改:包含三個(gè)相互獨(dú)立的函數(shù)*/voidModifyinformation()/*修改學(xué)生信息*/(for(;)(system("cls");printf("請(qǐng)先查找要修改的學(xué)生信息!nn"

35、);先查找后修改*/printf("按學(xué)號(hào)查找請(qǐng)按1,按姓名查找請(qǐng)按2n");/*scanf("%d",&a);if(a=1)(system("cls");printf("請(qǐng)輸入要查找的學(xué)生的學(xué)號(hào)n");scanf("%d",&d);x=Searchbynum(d);)elseif(a=2)(system("cls");printf("請(qǐng)輸入要查找的學(xué)生的姓名n");scanf("%s",&s1);x=Searc

36、hbyname(s1);)if(x=-1)printf("學(xué)生信息不存在!n");else(printf("您要修改的學(xué)生信息為:n");Printinformation(x);printf("請(qǐng)您輸入新值n");i=x;Inputfun();)printf("繼續(xù)請(qǐng)按1,返回主菜單請(qǐng)按0.n");scanf("%d",&a);if(a=0)break;)voidDeleteinformation()/*刪除學(xué)生信息*/(for(;)(system("cls");pr

37、intf("請(qǐng)先查找要?jiǎng)h除的學(xué)生信息!nn");printf("按學(xué)號(hào)查找請(qǐng)按1,按姓名查找請(qǐng)按2n");scanf("%d",&a);if(a=1)(system("cls");printf("請(qǐng)輸入要查找的學(xué)生的學(xué)號(hào)n");scanf("%d",&d);x=Searchbynum(d);elseif(a=2)(system("cls");printf("請(qǐng)輸入要查找的學(xué)生的姓名n");scanf("%s&q

38、uot;,&s1);x=Searchbyname(s1);if(x=-1)printf("學(xué)生信息不存在!n");else(printf("您要?jiǎng)h除的學(xué)生信息為:n");Printinformation(x);printf("是否真的要?jiǎng)h除該生信息?是請(qǐng)按1,否請(qǐng)按0.n");scanf("%d",&a);if(a=1)(for(i=x;i<999;i+)studenti=studenti+1;/*該數(shù)組后的數(shù)組向前移動(dòng)以覆蓋的方式刪除該數(shù)組*/printf("刪除成功!n"

39、;);printf("繼續(xù)請(qǐng)按1,返回主菜單請(qǐng)按0.n");scanf("%d",&a);if(a=0)break;voidInsertinformaton()/*插入學(xué)生信息*/(system("cls");for(j=0;j<1000;j+)(if(studentj.num=0)(x=j;break;)for(i=x;i<1000;i+)(system("cls");printf("請(qǐng)輸入要插入的學(xué)生信息nn");Inputfun();/*利用信息錄入函數(shù)把學(xué)生信息插在末

40、尾*/printf("繼續(xù)請(qǐng)按1,返回主菜單請(qǐng)按0.n");scanf("%d",&a);if(a=0)break;)/*各科成績(jī)排序的四個(gè)程序*/voidpaixugs()/*排序1*/(structstutemp;for(j=1;j<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(

41、"cls");printf("學(xué)生成績(jī)排序表:nn");for(i=0;i<1000;i+)if(studenti.num!=0)(printf("學(xué)號(hào):%dt",studenti.num);printf("姓名:st",);printf("第曲:5.2fn",(i+1),studenti.gszh_score);一printf("返回主菜單請(qǐng)按0n");scanf("%d",&a);voidpaixudl()/*排

42、序2*/(structstutemp;for(j=1;j<1000;j+)(for(k=0;k<999;k+)(if(studentk.dlzh_score<studentk+1.dlzh_score)(一一temp=studentk;studentk=studentk+1;studentk+1=temp;system("cls");printf("學(xué)生成績(jī)排序表:nn");for(i=0;i<1000;i+)if(studenti.num!=0)(printf("學(xué)號(hào):dt",studenti.num);pr

43、intf("姓名:st",);printf("第曲:5.2fn",(i+1),studenti.dlzh_score);一printf("返回主菜單請(qǐng)按0n");scanf("%d",&a);voidpaixuyy()/*排序3*/(structstutemp;for(j=1;j<1000;j+)(for(k=0;k<999;k+)(if(studentk.yyzh_score<studentk+1.yyzh_score)(一一temp=studentk;stud

44、entk=studentk+1;studentk+1=temp;system("cls");printf("學(xué)生成績(jī)排序表:nn");for(i=0;i<1000;i+)if(studenti.num!=0)(printf("學(xué)號(hào):dt",studenti.num);printf("姓名:st",);printf("第曲:5.2fn",(i+1),studenti.yyzh_score);一printf("返回主菜單請(qǐng)按0n");scanf(&

45、quot;%d",&a);)voidpaixuwl()/*排序4*/(structstutemp;for(j=1;j<1000;j+)(for(k=0;k<999;k+)(if(studentk.wlzh_score<studentk+1.wlzh_score)(一一temp=studentk;studentk=studentk+1;studentk+1=temp;)system("cls");printf("學(xué)生成績(jī)排序表:nn");for(i=0;i<1000;i+)if(studenti.num!=0)(p

46、rintf("學(xué)號(hào):dt",studenti.num);printf("姓名:st",);printf("第曲:5.2fn",(i+1),studenti.wlzh_score);)printf("返回主菜單請(qǐng)按0n");scanf("%d",&a);)voidShowthefail()/*顯示不及格學(xué)生的情況*/(system("cls");printf("不及格的學(xué)生:nn");for(i=0;i<1000;i+

47、)if(studenti.num!=0)if(studenti.gszh_score<60|studenti.dlzh_score<60|studenti.yyzh_score<60|studenti.wlzh_score<60)Printinformation(i);printf("n");printf("n返回主菜單請(qǐng)按0n");scanf("%d",&a);voidStu_p()/*優(yōu)秀學(xué)生(平均分大于等于90分)信息*/system("cls");printf("平

48、均分90以上的學(xué)生:nn");for(i=0;i<1000;i+)if(studenti.num!=0)if(studenti.pj_score>=90)printf("學(xué)號(hào):dn",studenti.num);printf("姓名:snn",);printf("n返回主菜單請(qǐng)按0n");scanf("%d",&a);voidChengjitongji()/*按要求統(tǒng)計(jì)成績(jī)*/intflag=0;doublegp=0,dp=0,yp=0,wp=0;system

49、("cls");printf("每門課程平均成績(jī)請(qǐng)按1,單科成績(jī)排序請(qǐng)按2n");scanf("%d",&s);if(s=1)for(i=0;i<1000;i+)gp+=studenti.gszh_score;dp+=studenti.dlzh_score;yp+=studenti.yyzh_score;wp+=studenti.wlzh_score;if(studenti.pj_score>0)flag+;gp=gp/flag;dp=dp/flag;yp=yp/flag;wp=wp/flag;system(&qu

50、ot;cls");printf("高等數(shù)學(xué)平均成績(jī):t%5.2fn",gp);printf("電路理論平均成績(jī):t%5.2fn",dp);printf("英語(yǔ)平均成績(jī):t%5.2fn",yp);printf("物理平均成績(jī):t%5.2fn",wp);printf("n返回主菜單請(qǐng)按0n");scanf("%d",&a);if(s=2)printf("請(qǐng)選擇nn");printf("高等數(shù)學(xué)成績(jī)排序請(qǐng)按1n");prin

51、tf("電路理論成績(jī)排序請(qǐng)按2n");printf("英語(yǔ)成績(jī)排序請(qǐng)按3n");printf("物理成績(jī)排序請(qǐng)按4n");scanf("%d",&y);if(y=1)paixugs();/*調(diào)用相應(yīng)的排序函數(shù)*/if(y=2)paixudl();if(y=3)paixuyy();if(y=4)paixuwl();/*/Main函數(shù)/shujujiegou2.cpp:Definestheentrypointfortheconsoleapplication./#include"stdafx.h&quo

52、t;#include"a.h"intmain(intargc,char*argv)inta;printf("tt*坨坨”);/*開始#®*/printf("tt*學(xué)生成績(jī)管理系統(tǒng)*nn");printf("tt*設(shè)頡婷婷*nn");printf("tt*信息安全*nn");printf("tt*2012年12月15日*nn");printf("tt*坨坨”);printf("nnnn");printf("請(qǐng)輸入系統(tǒng)啟動(dòng)口令n");/*啟動(dòng)口令*/scanf("%d",&a);if(a!=1)printf("口令錯(cuò)誤!系統(tǒng)即將關(guān)閉!n");exit(0);for(;)intc;system("cls");printf("請(qǐng)從主菜單選擇您所需要的操作nn");/*系統(tǒng)主菜單*/printf("1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論