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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、淮海 工學院 計算機工程學院課程設計報告設計名稱:數(shù)據(jù)結構課程設計選題名稱:學生成績管理系統(tǒng)系(院):計算機工程學院設計時間: 2013.12.232013.1.5設計地點:軟件工程實驗室、教室指導教師評語:簽名:年 月 日數(shù)據(jù)結構課程設計報告第 13 頁,共 頁1 .課程設計目的, 一*!加*, 一*!加*,一*!) 1:*,0*,加*,加*:,* ,!一加*:,*,:一加:一I1、訓練學生靈活應用所學數(shù)據(jù)結構知識,獨立完成問題分析,結合數(shù)據(jù)結構理論知識,編寫程 序求解指定問題。2 .初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等基本方法和技能;3 .提高綜合運用所學的理論知識和

2、方法獨立分析和解決問題的能力;4 .訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),鞏固、深化學生的理論知識,提高編程水平,并在此過程中培養(yǎng)他們嚴謹?shù)目茖W態(tài)度和良好的工作作風。2 .課程設計任務與要求:任務根據(jù)教材數(shù)據(jù)結構-C語言描述(耿國華主編)和參考書數(shù)據(jù)結構題集(C語言版)(嚴蔚敏、吳偉民主編)選擇課程設計題目,要求通過設計,在數(shù)據(jù)結構的邏輯特性和物理表示、數(shù)據(jù)結構 的選擇應用、算法的設計及其實現(xiàn)等方面加深對課程基本內容的理解和綜合運用。設計題目從任務書所列選題表中選取,每班每題不得超過2人。學生自選課題學生原則上可以結合個人愛好自選課題,要求課題有一定的深度與難度,有一定的算法復雜性,

3、能夠鞏固數(shù)據(jù)結構課程所學的知識。學生自選課題需在18周前報課程設計指導教師批準方可生效。要求:1、在處理每個題目時,要求從分析題目的需求入手,按設計抽象數(shù)據(jù)類型、構思算法、通過設計實現(xiàn)抽象數(shù)據(jù)類型、編制上機程序和上機調試等若干步驟完成題目,最終寫出完整的分析報告。前期準備工作完備與否直接影響到后序上機調試工作的效率。在程序設計階段應盡量利用已有的標準函數(shù),加大代碼的重用率。2、 .設計的題目要求達到一定工作量(300行以上代碼),并具有一定的深度和難度。3、程序設計語言推薦使用 C/C+,程序書寫規(guī)范,源程序需加必要的注釋;4、每位同學需提交可獨立運行的程序;5、每位同學需獨立提交設計報告書(

4、每人一份),要求編排格式統(tǒng)一、規(guī)范、內容充實,不少于10頁(代碼不算);6、課程設計實踐作為培養(yǎng)學生動手能力的一種手段,單獨考核。3 .課程設計說明書¥ 一 !»E rT (1 L» ! n 1*” HT n IK HW 1一需求分析該程序是模擬成績管理系統(tǒng),實現(xiàn)對學生成績的錄入,修改,插入,查詢,刪除,排序,統(tǒng)計等基本 功能,本程序有以下規(guī)定:1 .管理員可以進行學生信息的錄入,包括姓名,學號,班級,性別,各科成績等信息2 .管理員和學生都可以進行成績的查詢(通過姓名,學號進行查詢)3 .管理員還可以對學生信息進行管理(修改(整個或者單個記錄項進行修改),插入(

5、在已有的信息下進行有順序的插入),刪除(將整個記錄刪除),排序(按各科成績高低進行排序,或者按 姓名進行排序,或者是按學號進行排序),統(tǒng)計(各個學科的最高分,最低分,及格率)。二概要設計系統(tǒng)用到的抽象數(shù)據(jù)類型定義:ADT LinearList數(shù)據(jù)元素:D=a i|ai Do,i=1,2,,n,n 0為短一數(shù)據(jù)對象關系:S=<ai,ai+i>|a,a+i e Do,i=1,2,-in基本操作:Locate (L , e)DestroyList (L)ClearList (L)GetData ( L,i)InsList ( L,i , e)DelList ( L,i , &e)

6、ADT LinearList系統(tǒng)中的子程序和功能說明:fprint(StudentList *st)保存到文件StudentList *create(StudentList *st,int n)Createseq(StudentList *st)錄入學生信息Amst(StudentList *st, char name口)修改學生信息Insertst (StudentList *st )插入學生信息Deletest(StudentList *st,StudentType *e)刪除學生信息Search(StudentList *st,char n20)學生信息查詢系統(tǒng)Sort(StudentL

7、ist *st,char sc20)學生信息排序系統(tǒng)Jige(StudentList st,char subnum20) 統(tǒng)計學科及格率Bestscore(StudentList st,char subnum)統(tǒng)計學科最高分Leastscore (StudentList st, char subnum口)統(tǒng)計學科最低分Menu ()主菜單menu(StudentList *st)小菜單main ()主函數(shù)功能實現(xiàn)過程void Createseq(StudentList *st)錄入學生信息輸入學生的個數(shù);輸入學生信息項的個數(shù);輸入學生信息項的表頭;for(j=1;j<=len;j+)輸入

8、表頭信息;依次錄入學生信息:for(i=1;i<=a;i+)for(j=1;j<=學生信息項的個數(shù);j+)輸入學生信息;是否保存信息(輸入1或者2):輸入選擇;if (選擇為1)調用保存函數(shù);if (選擇為2)輸出未保存;輸出學生信息;void Amst(StudentList *st, char name口)修改學生信息for(i=1;i<=len;i+)if(輸入的修改名字和記錄中的學生的名字相同)找到該學生的位置;輸入你要修改的該學生記錄項;for(j=1;j<=a;j+)找到該記錄項;輸入修改后的信息;顯示修改的學生的信息;int Deletest(Studen

9、tList *st,StudentType *e)刪除學生信息輸入刪除的位置;if(刪除的位置不在范圍內)輸出刪除的位置不合法;找到該位置進行刪除;輸出刪除后全部學生信息;int Search(StudentList *st,char n20)查詢學生信息for(int i=1;i<=st->length;i+)for(j=1;j<=st->stunum;j+)if(學生某個信息與記錄項相同)找到該位置;輸出查找到的學生的信息;否則的話輸出你查找的學生不存在;int Sort(StudentList *st,char sc20)對學生信息排序for(j=1;j<=

10、st->stunum;j+)找到要進行排序的那一列;進行該列排序洪冒泡排序*/輸出排序結果;void Jige(StudentList st,char subnum20)統(tǒng)計學科及格率for(j=1;j<=st->stunum;j+)找到要統(tǒng)計的成績的那一列;for(int i=1;i<=n;i+)if (分數(shù)大于等于六十)a+;求出及格率;輸出該學科的及格率;系統(tǒng)程序功能流程圖丁成績管理系統(tǒng)信息錄入信息管理信息查找功能實現(xiàn)過程三詳細設計void Createseq(StudentList *st)錄入學生信息int k;int i;int len;學生的個數(shù)int a

11、;學生信息項的個數(shù)int j;printf("輸入學生的個數(shù):");scanf("%d",&len);st->length=len;printf("輸入學生信息項的個數(shù):");scanf("%d",&a);st->stunum=a;printf("輸入學生信息項的表頭:"力for(j=1;j<=a;j+)scanf("%s",&st->r0.dataj);printf("依次錄入學生信息:n");for(i=

12、1;i<=len;i+)for(j=1;j<=a;j+)scanf("%s",&st->ri.dataj);printf("是否保存信息(輸入1或者2):");scanf("%d",&k);if(k=1)fprint(st);printf("保存成功!!");if(k=2)printf("未保存!");printf("輸出學生信息:n");for(j=1;j<=a;j+)printf("%st",st->r0.

13、dataj);printf("n");for(i=1;i<=len;i+)for(j=1;j<=a;j+)printf("%st",st->ri.dataj);printf("n");void Amst(StudentList *st, char name口)修改學生信息int i,j;int len=st->length;int a=st->stunum;int k,p;char str20; 修改的項目char ne20;for(i=1;i<=len;i+)if(strcmp(st->ri

14、.data1,name)=0) p=i;for(i=0;i<=len;i+)for(j=1;j<=a;j+)printf("%st",st->ri.dataj);printf("n");printf("輸入你要修改的學生信息項目:scanf("%s",&str);for(j=1;j<=a;j+)if(strcmp(st->r0.dataj,str)=0) k=j;printf("n輸入修改信息:");scanf("%s",&ne);strc

15、py(st->rp.datak,ne);printf("n修改的學生信息為:n");for(j=1;j<=a;j+)printf("%st",st->r0.dataj);printf("%st",st->rp.dataj);int Deletest(StudentList *st,StudentType *e)int i;printf("n輸入你要刪除的位置:");scanf("%d",&i);if(i<1)ll(i>st->length)pri

16、ntf("刪除的位置不合法!!"); return(ERROR);*e=st->ri;for(int k=i;k<=st->length;k+)st->rk=st->rk+1;");刪除學生信息st->length-;for(int p=0;p<=st->length;p+)for(int j=1產st->stunum;j+)printf("%st",st->r0.dataj);printf("%st",st->rp.dataj);printf("n

17、");return(OK);int Search(StudentList *st,char n20) 查找int a=0;int r;int k;int j;for(int i=1;i<=st->length;i+)for(j=1;j<=st->stunum;j+)if(strcmp(st->ri.dataj,n)=0)k=i;r=j;a=1;if(a=1)printf("n查找的學生信息為:n");for(j=1;j<=st->stunum;j+)printf("%st",st->rk.data

18、j);else if(a=0)printf("你查找的學生不存在!!"); return(OK);int Sort(StudentList *st,char sc20) / 冒泡排序StudentType x;int j,i;int p;int n;for(j=1;j<=st->stunum;j+)if(strcmp(st->r0.dataj,sc)=0) P=j;n=st->length;int change=1;for(i=1;i<=n-1&&change;i+)change=0;for(int k=1;k<=n-i;

19、k+)if(strcmp(st->rk.datap,st->rk+1.datap)>0)x=st->rk;st->rk=st->rk+1;st->rk+1=x; change=1;for(i=1;i<=st->length;i+)for(j=1產st->stunum;j+) printf("%st",st->ri.datajD;printf("n");return(OK);void Jige(StudentList st,char subnum20) 統(tǒng)計學科及格率 char b10=&q

20、uot;60"double s;int a=0;int p;int n=st.length;for(int j=1;j<=st.stunum;j+)if(strcmp(st.r0.dataj,subnum)=0) p=j;for(int i=1;i<=n;i+)if(strcmp(st.ri.datap,b)>=0)a+;s=(a*(1.0)/(n*1.0);printf("%s 的學將反格孝為 %f",st.r0.datap,s);四設計與調試分析1 .這個程序采用一個結構體:學生信息結構體。采用的是順序表的存儲結構,順序表的長度表示學生的個數(shù)

21、。每個數(shù)組里面還有一個二維數(shù)組,表示每個學生含有的數(shù)據(jù)項。2 .由于前期工作考慮的不是很周全,采用了順序表,這對于實現(xiàn)程序的插入和刪除的功能顯然效率不是很高3 .由于先前成績定義成了字符型,所以對于成績的比大小有些麻煩。我對于字符型轉化成數(shù)字進行加減不是很清楚,所以在實現(xiàn)統(tǒng)計功能中并沒有包括成績的總分計算以及平均分的計算,這是該系統(tǒng)的漏洞。五用戶手冊【使用說明】1 .進入學生成績管理系統(tǒng)主頁面2 .根據(jù)身份的不同進入不同的系統(tǒng)界面(如果是管理員則進入含有五個子系統(tǒng)選擇的界面,而學生 則只可以進入查詢學生信息的界面)3 .如果要錄入學生的信息,則選擇 1,可以人工的控制要輸入的學生個數(shù)以及每個學

22、生含有的記錄 項,注意輸完了保存進文件4 .如果要對學生進行管理,就選擇 2,將進入對學生管理的三項選擇界面。如果要修改學生信息, 選才i 1,輸入要修改的學生的名字,找到該學生并輸入要修改的學生的記錄項,進行修改。如果 要插入學生信息,選擇2,選擇插入的位置,當你插入的位置不合法時,會有提示。如果要刪除學生信息,輸入你要刪除的學生的位置,如果沒該學生則刪除不合法。5 .如果要查找學生信息,則選擇 3,輸入你要查找的學生的姓名或者學號,如果沒有該學生就提示 你查找的學生不存在。有該學生就會輸出該學生的所以信息。6 .如果要對學生信息進行排序,就選擇4,輸入你要進行排序的學生的記錄項,它就會將該

23、記錄項把學生信息進行升序排列7 .如果要對學生信息進行統(tǒng)計,就選擇5.如果要對學科成績進行最高分統(tǒng)計,就選擇 1,然后輸入你要統(tǒng)計的學科名,系統(tǒng)會找出該學科的最高分。如果要對學科成績進行及格率的統(tǒng)計,則選擇 2,輸入你要統(tǒng)計的學科名,系統(tǒng)會算出該學科的及格率。如果要對學科成績進行最低分統(tǒng)計, 則選擇3,輸入你要統(tǒng)計的學科名,系統(tǒng)會找出該學科的最低分。8 .如果系統(tǒng)結束,則按 6結束?!境绦蛑械念^文件】#include<stdio.h>#include<stdlib.h>#include<string.h>#include<fstream.h>#d

24、efine ERROR 0#define OK 1#define MAXsize 20#define LIST_SIZE 100/ 線性表長度typedef char KeyType;FILE *fp;/*定義全局變量*/六測試成果1 .錄入學生信息生星請輸入你的身份:提示:管理員為0,數(shù)§578強高67贓79507生學的100±的箸女士成第; 1,丸12121212- 息功 一 信珈 生支距丫兒r9 S8 707071 H仿生生生入2121 拿學學錄11入人次耨丫兒否 -L=> /.、- -eq 19 a甲-1量 號 4£ 序.一的的息 的強預與信 T?年

25、小目3白3生 園©1于7 M6 M-9 U0 19車5 X 3E £31 -SJ. 2七1保錄對杳*123息理f 8 7在仃立仃一的息盲M息,4干圾£由2 .插入學生信息"MX MiJOtyHfrMHUfrUt-atMM梵 M案Hat *射 餐 MK MMMM M清mJ g) 理*片火*M-M-MWlC-M注聾U*»1:豪我=j入序號二*1二 二 二 二 二胃息進進息心息號學09inI數(shù)據(jù)結構897«nt 萬千撥式市 一錄對杳gg教 高需生息息息ffls岸回15r生生黑人除蠹1 構 你馬12M7B結入京口 名耨3.修改學生f Aif

26、圣*箕*類*崎穗著麓*昔科安/*有事碑赭有苒斌*X XH HMW* XX箕M M: AXH肯M _r t_r u _r xj驀耳 MM-范禮麟注:最箴券諭入修改存息、,79數(shù)據(jù)浩構2010例及 工2工學號 03高數(shù) KKiMiCiMMM KMKJt M 違碑真”*MN TCWOTlOf看蕭看料中中若科隆NX*中茂* 1 "C:LI 5«rsAd m ini stra torSDe 5 kto pDeb ucValIS i$texe"錄對杳_*1-, 】一 -0 8 9 9 rm 8 7 8 SEL.10蜘01陰生8 6U。7 5?1111 要班1212121212

27、修你 要 人 你白球芝k避HHJHH生系安食千盤或由鱉晝 但;j1I伯 量孽 力於除 請打2.3.I數(shù)89 -.數(shù) 省品 姓 的 生號 改丫兒工 輸I廛小W馬二翼廖改的學生信息為 菊L .數(shù)據(jù)結構課程設計報告第15頁,共 頁4.刪除學生信息MMKMMMMMMMMMMKMY H Y T' H *FT Y L Y rT 1 10* T 尸 T TT TMMKMKMKWKM41tMiMH< IKHiE *幃 M M 舞 MMMMM*MNM MX :M * * M XMX前入序號:高效ES 93GS 54姜健已理好里代students_lis t txt 中!2&L&錄對

28、杳1 2 3 4 5 67 4 08 5 7M:舞展MiK AMMM WT WtXIX WM狂注*Jf XX XX HUM力息息B. 口 F J J , 生痘痘信- SHSSHS 選罡辜 居於除 fe_H* -你入名差+ten號一學1061呢的數(shù)揖結構5S5.對學生信息排序(1)學號排序 : *C;' U sersd m i ii st rate n Des ktopD ebe kp '1 0 1 回”薜,*1<*魏薜鰲iMMMMMMX,薜3<梵:M,XMJIJCNXJCXJCMJCMM:M 有舞 M ABCM,拜利XMW*»EAK:MMM iCMrMJf

29、 W MM*蕤X HM MM- MM M WMWMWM-WM MM M錄對杳! 1 2 3 4 5 &靠進 也的息息 £*感叁本生系行KX MXMJt MWX XXXKM MXMH M:違XMEWtXltltSWMSatfMfcf請輸空孫鄧算擇SI工1工 選按12K1 212 你要人儕®A8±®夕號條:北-9 6 5-6 序; Fr(2) 姓名排序數(shù)據(jù)結構課程設計報告第 21 頁,共 頁MME KM M KM M MM M MMMM MMMWMMMMHMM柳 蕭蠲 帶黃 野鶯 弊 青科 蕾 M*=,M第苴MX 苴 M HX Jf M:M二姓不65

30、996554錄對查12 3 4 5 6卷秀香市籍童息進進的i.1411 管a 生星信w請柳SIS評:4用牛剌10胤配配的什擇照1工-1 1 選按12121212 17要(3)成績排序錄對查 1 2 3 4 5 6火華地聿*一息理E普二L交仃- 樂童息進進 理的皇心息6.查找學生(1)學號查找“C; U sersAd miii strato rDe s ktopD eb u 或成活管是至練 exe'*口*胃鼻瞳聲電計首辭Ji M Ji Ji TM EX nxEM-X /穴 看找的學生信息為:12110?91«W是對直 B B _) 12 3 4 5 6否運回主菜單?是Y不是N.

31、86就毒息進進 理的息意 擎星11!譯 i 亍亍 4 12M- IWM MK W* KTt =*w *xkxE* N史W曲的人查找的序號門名者學號的2010(2)姓名查找MM% ME MH 魏腎,:MWBEWXJf9或叁HHW系生拿墓由鱉矗息瞿 理的息lnl心息 造生厘信”.亶照勰曙界號林查找的學生信息為:12101,二 _M:M y XWMEiMiCiMM* MMMJt M違JKXiCNKM KXM 梵 MWMMHri-M4E-M-Mn*Iff =M: = * * M 胃,黨蕭首W謫嶂*薛首茂MUX%”MX M-HH.K MM MMKM KM M MH M H H.7.統(tǒng)計(1) 最高分七;

32、U sersAd miiist rate nDe s ktopD eb u /成曲管理率纖,exe,I 0 | 回|C M MX MK M MK M M M M MXKJI!:MM:MM:M.XM.M:MKHXJHM爭錄對查12 3 4 5 6K硒4進進 現(xiàn)的自心息 暗生星一一 £k師爰重生系?8f行IIOMMIOCJHM MJUKJI MM8MKJCJtMItJCKMMHifMb*EtWKK茁量專選技=<的一入普浦號學選最.SEB(2)及格率契刀1替甌數(shù),息理8 1 以二丁亍一丁 理的囪一息 旌生星i-N bb日一 L. 66不fc世通 /八睪7 擇國,夙零 選按:<科

33、T. 你mJ子回生系錄對查(3) 最低分JCJKK KMUX M:胃13I SIM UJ>:MKM MKHMK MMIOCNK KMiKM M,Iai於千乃宜1t HK *It M H M M H J4 H M. M JtM M: M It M3>3X * XiMAMMMMMNMMMMMilWX* *X %X MHKX W*;HH iMUMHiMH,K 制:MM:MW:<XM.M:MKJ<:MJHK>I而 I Ebi錄對查F-|_ JM 于jfc.彳 茨的基本信息f餐帔 KXKXMMI盤善行譽顯擇唐哥委次 選按:<的王你Mt5回立 八京篦山 %金不 E-l?

34、 kGuhnMK.1-I II 回 I8.學生查詢'C:Us ersAd min i stratorDesktopD e buexe"敲,露詼精爐面函艇啊彗統(tǒng)*甘赭薜整片著餐片餐餐茶餐青費蕭黃黃青蕭神悔*X漱'lPffill 杳1誼1宏充M* MX iM *題1*1若1:1*班堇*11注1*正1注 強鎏4翻整孽變更者學號,加"一H爾杳我小+牛小行.H,!Fj*ess Any key to co nt inue-七附錄(源程序清單)#include<stdio.h>#include<stdlib.h>#include<string

35、.h>#include<fstream.h>#define ERROR 0#define OK 1#define MAX_size 20#define LIST_SIZE 100/ 線性表長度typedef char KeyType;typedef structKeyType dataMAX_sizeMAX_size;StudentType;typedef struct數(shù)據(jù)結構課程設計報告第23頁,共 頁StudentType rLIST_SIZE+1;int length;int stunum;StudentList;FILE *fp;void Menu()學生成績管理系統(tǒng)

36、 *n");*n,);*n")*n,);*n")*n");*n");printf(''*1.錄入學生的基本信息printf("*2.對學生信息進行管理printf("*3.查找學生信息printf("*4.對學生信息進行排序printf(''*5.對學生信息進行統(tǒng)計printf("*6.退出系統(tǒng)printf("n *void fprint(StudentList *st) / 保存到文件 int len=st->length;int a=st->stu

37、num;if(fp=fopen("students_list.txt","wb")尸NULL) printf("File open error!n"); exit(0);for(int i=0;i<=len;i+)fwrite(&st->ri,sizeof(StudentList),1,fp);/*將學生信息寫入文件*/fclose(fp);/*關閉文件*/printf("n學生信息已成功保存到文件studentsgetchar();list.txt中! n");StudentList *cre

38、ate(StudentList *st,int n)/ 讀出文件if(fp=fopen("students_list.txt","rb")尸NULL) printf("File open error!n");exit(0);for(int i=0;i<=n;i+)fread(&st->ri,sizeof(StudentList),1,fp);fclose(fp);return st;void Createseq(StudentList *st)錄入學生信息int k;int i;int len; /學生的個數(shù)int

39、 a;學生信息項的個數(shù)int j;printf("輸入學生的個數(shù):");scanf("%d",&len);st->length=len;printf("輸入學生信息項的個數(shù):");scanf("%d",&a);st->stunum=a;printf("輸入學生信息項的表頭:");for(j=1;j<=a;j+)scanf("%s",&st->r0.dataj);printf("依次錄入學生信息:n");for

40、(i=1;i<=len;i+)for(j=1;j<=a;j+)scanf("%s",&st->ri.dataj);printf("是否保存信息(輸入1或者2):");scanf("%d",&k);if(k=1)fprint(st);printf("保存成功!!");if(k=2)printf("未保存!");printf("輸出學生信息:n");for(j=1;j<=a;j+)printf("%st",st->

41、r0.dataj);printf("n");for(i=1;i<=len;i+)for(j=1;j<=a;j+)printf("%st",st->ri.dataj);printf("n");void Amst(StudentList *st, char name) 修改學生信息數(shù)據(jù)結構課程設計報告第 26 頁,共 頁int i,j;int len=st->length;int a=st->stunum;int k,p;char str20;/修改的項目char ne20;for(i=1;i<=len

42、;i+)if(strcmp(st->ri.data1,name)=0) p=i;for(i=0;i<=len;i+)for(j=1;j<=a;j+)printf("%st",st->ri.dataj);printf("n");printf("輸入你要修改的學生信息項目:");scanf("%s",&str);for(j=1;j<=a;j+)if(strcmp(st->r0.dataj,str)=0) k=j;printf("n輸入修改信息:");sca

43、nf("%s",&ne);strcpy(st->rp.datak,ne);printf("n修改的學生信息為:n");for(j=1;j<=a;j+)printf("%st",st->r0.dataj);printf("%st",st->rp.dataj);int Insertst(StudentList *st)插入學生信息int i;printf("n輸入你要插入的位置:");scanf("%d",&i);if(i<1)|(i

44、>st->length+1)printf("插入的位置不合法!!"); return(ERROR);if(st->length>=LIST SIZE)printf("表已滿,無法插入");return(ERROR);for(int k=st->length;k>=i;k-)st->rk+1=st->rk;for(int j=1;j<=st->stunum;j+)printf("%s”,st->r0.dataj);scanf("%s",&st->r

45、i.dataj);st->length+;for(int p=0;p<=st->length;p+)for(j=1;j<=st->stunum;j+)printf("%st",st->rp.dataj);printf("n");fprint(st);return(OK);int Deletest(StudentList *st,StudentType *e)/ 刪除學生信息 int i;printf("n輸入你要刪除的位置:");scanf("%d",&i);if(i&l

46、t;1)|(i>st->length)printf("刪除的位置不合法!!"); return(ERROR);*e=st->ri;for(int k=i;k<=st->length;k+)st->rk=st->rk+1;st->length-;for(int p=0;p<=st->length;p+)for(int j=1產st->stunum;j+)printf("%st",st->rp.dataj);printf("n");fprint(st);return(

47、OK);int Search(StudentList *st,char n20) 查找 int a=0;int r;int k;int j;for(int i=1;i<=st->length;i+) for(j=1;j<=st->stunum;j+)if(strcmp(st->ri.dataj,n)=0)k=i;r=j;a=1; if(a=1) printf("n查找的學生信息為:n");for(j=1;j<=st->stunum;j+) printf("%st",st->rk.dataj);else if

48、(a=0)printf("你查找的學生不存在!!"); return(OK);int Sort(StudentList *st,char sc20) / 冒泡排序 StudentType x;int j,i;int p;int n;for(j=1;j<=st->stunum;j+)if(strcmp(st->r0.dataj,sc)=0) p=j;n=st->length;int change=1;for(i=1;i<=n-1&&change;i+)change=0;for(int k=1;k<=n-i;k+)數(shù)據(jù)結構課程

49、設計報告第29頁,共 頁if(strcmp(st->rk.datap,st->rk+1.datap)>0)x=st->rk;st->rk=st->rk+1;st->rk+1=x;change=1;for(i=1;i<=st->length;i+)for(j=1;j<=st->stunum;j+)printf("%st",st->ri.datajD;printf("n");return(OK);void Jige(StudentList st,char subnum20) 統(tǒng)計學科及格

50、率char b10="60"double s;int a=0;int p;int n=st.length;for(int j=1;j<=st.stunum;j+)if(strcmp(st.r0.dataj,subnum)=0)p=j;for(int i=1;i<=n;i+)if(strcmp(st.ri.datap,b)>=0)a+;s=(a*(1.0)/(n*1.0);printf("%s 的學科及格率為 %f",st.r0.datap,s);void Bestscore(StudentList st,char subnum)統(tǒng)計學科

51、最高分int max=1;int j;int p;int n=st.length;for(j=1;j<=st.stunum;j+)if(strcmp(st.r0.dataj,subnum)=0) P=j;for(int i=1;i<=n;i+) if(strcmp(st.ri.datap,st.rmax.datap)>0) max=i;printf("%s 的學科的最高分為 %s",st.r0.datap,st.rmax.datap);void Leastscore(StudentList st,char subnum)統(tǒng)計學科最低分int min=st.

52、length;int j;int p;int n=st.length;for(j=1;j<=st.stunum;j+) if(strcmp(st.r0.dataj,subnum)=0) p=j;for(int i=1;i<=n;i+) if(strcmp(st.ri.datap,st.rmin.datap)<0) min=i;printf("%s 的學科的最低分為 %s",st.r0.datap,st.rmin.datap);void menu(StudentList *st) StudentType *x;x=(StudentType*)malloc(s

53、izeof(StudentType);int a;printf("1.修改 學生信 息n");printf("2.插入學生信息n");printf("3.刪除學生信息n");printf("n 輸入序號:n");scanf("%d",&a);switch(a) case 1:char na20;printf("請輸入你要修改的學生的姓名:");scanf("%s",&na);Amst(st,na);break;case 2:Insertst(st);break;case 3:Deletest(st,x);break;void main() / 主函數(shù)int a;int e;int flag=1;char i;StudentList *st;st=(StudentList*)malloc(sizeof(StudentList);printf(" 歡迎使用學生管理系統(tǒng) n");printf("請輸入你

溫馨提示

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

評論

0/150

提交評論