數(shù)據(jù)結(jié)構(gòu)大作業(yè)實(shí)驗(yàn)報(bào)告_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)實(shí)驗(yàn)報(bào)告_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)實(shí)驗(yàn)報(bào)告_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)實(shí)驗(yàn)報(bào)告_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)大作業(yè)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)大作業(yè)實(shí)驗(yàn)報(bào)告數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告-學(xué)生成績(jī)分析系統(tǒng)學(xué)校 南京大學(xué)院系 工程管理學(xué)院專業(yè) 管理科學(xué)與工程類年級(jí) 2010級(jí)課題 學(xué)生成績(jī)分析系統(tǒng)指導(dǎo)老師 朱美琳小組成員信息姓名學(xué)號(hào)葉皓愷101279055殷承來101279056于嬰樸101279058周道航101279062摘要一 需求分析3二 概要設(shè)計(jì)4一 算法設(shè)計(jì)4二 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)5三 詳細(xì)設(shè)計(jì)5四 調(diào)試分析18一 調(diào)試結(jié)果18二 時(shí)間復(fù)雜度分析24三 程序中存在問題以及可能改進(jìn)的地方24五 總結(jié)25一 需求分析本成績(jī)分析管理系統(tǒng)可以實(shí)現(xiàn)以下主要功能:1.信息的輸入:建立學(xué)生檔案文件 (包括姓名,學(xué)號(hào),班級(jí),課程編號(hào),成績(jī))2.信息的

2、維護(hù): 添加:增加新學(xué)生 修改:學(xué)生信息的改變 刪除:學(xué)生減少 3.信息的處理 按要求檢索學(xué)生信息 按要求統(tǒng)計(jì)信息 本成績(jī)分析管理系統(tǒng)同時(shí)可以實(shí)現(xiàn)以下系統(tǒng)界面:1. 管理員進(jìn)入 請(qǐng)輸入密碼:2. 一級(jí)菜單 1.信息維護(hù) 輸入“1”進(jìn)入信息維護(hù)二級(jí)菜單2.信息檢索 輸入“2”進(jìn)入信息檢索二級(jí)菜單3.信息統(tǒng)計(jì) 輸入“3”進(jìn)入信息統(tǒng)計(jì)二級(jí)菜單4.退出 輸入“4”退出系統(tǒng)3. 二級(jí)菜單 信息維護(hù) 1.建立學(xué)生成績(jī)文件 2.添加學(xué)生紀(jì)錄 3.刪除學(xué)生紀(jì)錄 4.修改學(xué)生紀(jì)錄 5.返回上級(jí)菜單 信息檢索 1. 按姓名查找 2. 按班級(jí)查找 3. 返回上級(jí)菜單信息統(tǒng)計(jì) 1.成績(jī)統(tǒng)計(jì) 2.返回上級(jí)菜單 二 概要

3、設(shè)計(jì)一 算法設(shè)計(jì)1. 用口令(密碼)形式驗(yàn)證管理員身份(可輸入三次密碼),合法者進(jìn)入,否則程序結(jié)束。算法實(shí)現(xiàn)可以使用break和continue語句,使用一個(gè)變量計(jì)數(shù); 2. 有關(guān)功能說明(1)建立學(xué)生成績(jī)表 void establish(void); /建立學(xué)生成績(jī)表函數(shù)建立新的學(xué)生紀(jì)錄(包括姓名,學(xué)號(hào),班級(jí),課程編號(hào),成績(jī)) (暫定為2個(gè)班級(jí),2門課程,學(xué)生個(gè)數(shù)每班10人左右)算法實(shí)現(xiàn)可以使用fp頭文件指針,將指定的記錄寫入相應(yīng)的文本文件中;(2) 添加學(xué)生紀(jì)錄 void add(void); /添加學(xué)生紀(jì)錄函數(shù)在已存在的學(xué)生成績(jī)文件中添加新紀(jì)錄 算法實(shí)現(xiàn)同樣利用文件操作將新添加的記錄追加

4、到文件的尾部即可;(3) 刪除學(xué)生紀(jì)錄 void deleteinfo(void); /刪除學(xué)生記錄函數(shù)在學(xué)生成績(jī)文件中刪除2個(gè)課程沒有成績(jī)的學(xué)生紀(jì)錄 刪除前,逐條顯示符合刪除條件的學(xué)生姓名,成績(jī),確認(rèn)后再刪除 算法實(shí)現(xiàn)先在文件中將記錄讀出,再尋找刪除項(xiàng),最后將其重新寫入文本文件中;(4)修改學(xué)生信息 void modify(void); /修改學(xué)生記錄函數(shù)輸入學(xué)生學(xué)號(hào),在學(xué)生成績(jī)文件中找出該學(xué)生紀(jì)錄 在屏幕上逐條顯示該學(xué)生的各條紀(jì)錄 每顯示一條,詢問是否修改,如果“1,輸入修改后的數(shù)據(jù),文件原記錄刪除,保存新的記錄 算法實(shí)現(xiàn)與刪除學(xué)生記錄相似就是將原文件內(nèi)容讀出,后根據(jù)條件修改內(nèi)容,最后再重

5、新寫入文件中;判斷是否修改時(shí),利用if循環(huán)就可以了;(5) 按姓名和班級(jí)查找 輸入姓名,顯示該學(xué)生所有信息 void searchname(void); /按姓名查找學(xué)生記錄函數(shù)輸入班級(jí),顯示所有學(xué)生信息 void searchclass(void); /按班級(jí)查找學(xué)生記錄函數(shù)算法實(shí)現(xiàn)先將文本內(nèi)容讀出,利用條件查找相應(yīng)的記錄,再將相應(yīng)的記錄輸出(6) 信息統(tǒng)計(jì) void tongji(void); /統(tǒng)計(jì)學(xué)生成績(jī)信息函數(shù)同時(shí)按照班級(jí)和課程統(tǒng)計(jì)每門課程,每個(gè)課程每個(gè)班級(jí)的平均成績(jī),最高分,最低分 在屏幕上先依次顯示各門課程,對(duì)應(yīng)的各個(gè)班級(jí)的統(tǒng)計(jì)數(shù)據(jù)。 算法實(shí)現(xiàn)利用文件操作將學(xué)生成績(jī)表中內(nèi)容讀出,

6、然后利用循環(huán)語句將對(duì)應(yīng)的統(tǒng)計(jì)項(xiàng)找到,輸出結(jié)果(7)退出信息管理系統(tǒng),返回操作系統(tǒng)利用switch case語句二 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)因?yàn)槊總€(gè)學(xué)生紀(jì)錄包括姓名,學(xué)號(hào),班級(jí),課程編號(hào),成績(jī),所以要使用結(jié)構(gòu)變量,同時(shí)考慮到處理數(shù)據(jù)的數(shù)量,我們采用結(jié)構(gòu)數(shù)組來完成程序的實(shí)現(xiàn),具體定義如下;struct studentchar name20; /學(xué)生的姓名long n; /學(xué)生的學(xué)號(hào)char classnum10; /學(xué)生的班級(jí)char coursenum210; /學(xué)生的所有課程編號(hào)int grade2; /學(xué)生的各科的成績(jī) stumaxsize; /最大數(shù)據(jù)容量常數(shù)maxsize三 詳細(xì)設(shè)計(jì)c語言源代碼如下

7、:/*-頭文件定義-*/#include #include #include #include /*-*/#define maxsize 20 /定義最大數(shù)據(jù)容量常數(shù)maxsize/*-數(shù)據(jù)類型定義-*/ struct studentchar name20; /學(xué)生的姓名long n; /學(xué)生的學(xué)號(hào)char classnum10; /學(xué)生的班級(jí)char coursenum210; /學(xué)生的所有課程編號(hào)int grade2; /學(xué)生的各科的成績(jī) stumaxsize;/*-*/*-函數(shù)列表-*/void establish(void); /建立學(xué)生成績(jī)表函數(shù)void add(void); /添加

8、學(xué)生紀(jì)錄函數(shù)void deleteinfo(void); /刪除學(xué)生記錄函數(shù)void modify(void); /修改學(xué)生記錄函數(shù)void searchname(void); /按姓名查找學(xué)生記錄函數(shù)void searchclass(void); /按班級(jí)查找學(xué)生記錄函數(shù)void tongji(void); /統(tǒng)計(jì)學(xué)生成績(jī)信息函數(shù)/*-*/*=-主函數(shù)-*/int main(void)int count,i,j;char password15=1b620,password115; /其中password為管理員密碼;printf(-歡迎來到南京大學(xué)學(xué)生成績(jī)分析系統(tǒng)-n);/*-管理員密碼驗(yàn)證

9、-*/for(count=0;count3;count+) /用密碼形式驗(yàn)證管理員身份(可輸入三次密碼),合法者進(jìn)入,否則程序結(jié)束printf(-請(qǐng)輸入密碼:-n);gets(password1);if(strcmp(password1,password)=0)break;elsecontinue;/*-*/if(count=3) return 0; /身份驗(yàn)證次數(shù)超過3次,程序結(jié)束;else if(count3) /*-一級(jí)菜單-*/ loop: /loop是回到一級(jí)菜單的語句標(biāo)號(hào)printf(-1 信息維護(hù)-n);printf(-2 信息檢索-n);printf(-3 信息統(tǒng)計(jì)-n);pr

10、intf(-4 退出-n);/*-*/scanf(%d,&i);switch(i)case 1:/*-信息維護(hù)的二級(jí)菜單-*/ lo: /lo是回到信息維護(hù)二級(jí)菜單的語句標(biāo)號(hào)printf(-1 建立學(xué)生成績(jī)文件-n);printf(-2 添加學(xué)生記錄-n);printf(-3 刪除學(xué)生記錄-n);printf(-4 修改學(xué)生記錄-n); printf(-5 返回上級(jí)菜單-n);/*-*/scanf(%d,&j); switch(j)case 1:establish();goto lo; /調(diào)用建立學(xué)生成績(jī)表函數(shù);并且調(diào)用完之后返回信息維護(hù)二級(jí)菜單 case 2:add();goto lo; /

11、調(diào)用添加學(xué)生紀(jì)錄函數(shù);并且調(diào)用完之后返回信息維護(hù)二級(jí)菜單case 3:deleteinfo();goto lo; /調(diào)用刪除學(xué)生記錄函數(shù);并且調(diào)用完之后返回信息維護(hù)二級(jí)菜單case 4:modify();goto lo; /調(diào)用修改學(xué)生記錄函數(shù);并且調(diào)用完之后返回信息維護(hù)二級(jí)菜單case 5:goto loop; /回到一級(jí)菜單;break;case 2:/*-信息檢索的二級(jí)菜單-*/ op: /op是回到信息維護(hù)二級(jí)菜單的語句標(biāo)號(hào) printf(-1 按姓名查找-n);printf(-2 按班級(jí)查找-n);printf(-3 放回上級(jí)菜單-n);/*-*/scanf(%d,&j); swit

12、ch(j)case 1:searchname();goto op; /調(diào)用按姓名查找學(xué)生記錄函數(shù);并且調(diào)用完之后返回信息檢索二級(jí)菜單 case 2:searchclass();goto op; /調(diào)用按班級(jí)查找學(xué)生記錄函數(shù);并且調(diào)用完之后返回信息檢索二級(jí)菜單case 3:goto loop; /回到一級(jí)菜單break;case 3:/*-信息統(tǒng)計(jì)的二級(jí)菜單-*/ to: /to是返回到信息統(tǒng)計(jì)的二級(jí)菜單的語句標(biāo)號(hào) printf(-1 成績(jī)統(tǒng)計(jì)-n); printf(-2 放回上級(jí)菜單-n); /*-*/ scanf(%d,&j); switch(j) case 1:tongji();goto

13、to; /調(diào)用信息統(tǒng)計(jì)函數(shù);并且調(diào)用完之后返回信息統(tǒng)計(jì)二級(jí)菜單 case 2:goto loop; /回到一級(jí)菜單 break; case 4: break; return 0;/*-*/*-建立學(xué)生成績(jī)文件函數(shù)的具體實(shí)現(xiàn)-*/void establish(void) file *fp; /定義頭文件指針fp;int t,i; printf(please input a number:); /要輸入的學(xué)生記錄個(gè)數(shù)為t scanf(%d,&t);/*-輸入t條學(xué)生記錄-*/for(i=0;it;i+)scanf(%s%ld%s%s%s%d%d,stu,&stui.n,stui.cla

14、ssnum,stui.coursenum0,stui.coursenum1,&stui.grade0,&stui.grade1);/*-*/*-打開成績(jī)分析管理文本文件并添加學(xué)生記錄-*/if( ( fp=fopen(成績(jī)分析管理.txt,wb) )=null)printf(打開文件錯(cuò)誤n); return; /文件打開錯(cuò)誤直接返回;for(i=0;iname,&stu-n,stu-classnum,stu-coursenum0,stu-coursenum1,&stu-grade0,&stu-grade1);/*-將該結(jié)構(gòu)變量加到成績(jī)分析管理文本文件的末尾-*/if( fp=fopen(成績(jī)分

15、析管理.txt,ab) )=null) /*打開文件*/printf(打開文件錯(cuò)誤n); return;if(fwrite(stu,sizeof(struct student),1,fp)!=1)/*寫文件*/ printf(寫文件錯(cuò)誤n); return;fclose(fp); /*-關(guān)閉文件-*/ /*-*/return ;/*-*/*-刪除記錄函數(shù)的具體實(shí)現(xiàn)-*/void deleteinfo(void) file *fp; /定義頭文件指針fp int cnt=0,i=0,flag=0; /flag用作標(biāo)識(shí)符,cnt和i用作計(jì)數(shù)if(fp=fopen(成績(jī)分析管理.txt,rb)=nu

16、ll) /*打開文件*/printf(打開成績(jī)分析管理.txt文件失敗n);return;while(imaxsize)if(fread(&stui,sizeof(struct student),1,fp)=1) /*讀文件*/cnt+; /統(tǒng)計(jì)文件中記錄條數(shù)else if(i=0)printf(讀文件失敗n);break;i+;fclose(fp);/*關(guān)閉文件*/*-讀取文件中的記錄-*/if(fp=fopen(成績(jī)分析管理.txt,rb)=null) /*打開文件*/printf(刪除時(shí)打開文件失敗n);return;for(i=0;icnt;i+)if(fread(&stui,size

17、of(struct student),1,fp)!=1) /*先讀文件*/printf(讀文件錯(cuò)誤n);return; fclose(fp); /*關(guān)閉文件*/*-*/for(i=0;icnt;i+) if(stui.grade0=0)&(stui.grade1=0)/輸出各科成績(jī)?yōu)? 的學(xué)生記錄,并對(duì)學(xué)生的姓名做上標(biāo)記;printf(%s,%ld,%s,%s,%s,%d,%dn,stu,stui.n,stui.classnum,stui.coursenum0,stui.coursenum1,stui.grade0,stui.grade1);strcpy(stu,#),

18、flag=1;if(!flag) printf(nthere are no records to delete!n );/如果文件中沒有滿足條件的記錄輸出該信息/*-將刪除后的學(xué)生記錄寫入文件中-*/if(fp=fopen(成績(jī)分析管理.txt,wb)=null) /*打開文件*/printf(刪除時(shí)打開文件失敗n);return;for(i=0;icnt;i+) /*寫向成績(jī)分析管理文件寫內(nèi)容*/if( strcmp(stu,#)!=0 ) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) /*寫文件*/printf(刪除時(shí)寫文件錯(cuò)

19、誤n); return;fclose(fp);/*關(guān)閉文件*/*-*/return ;/*-*/*-修改學(xué)生記錄函數(shù)具體實(shí)現(xiàn)-*/void modify(void) file *fp; /定義頭文件指針fplong n1; char name120;char classnum110; char coursenum1210; int grade12,ch,cnt=0,i=0,flag=1; /定義變量 /*-打開成績(jī)分析管理文本文件并讀出文件中的學(xué)生記錄-*/ if(fp=fopen(成績(jī)分析管理.txt,rb)=null) /*打開文件*/printf(打開成績(jī)分析管理.txt文件失敗n);r

20、eturn;while(imaxsize)if(fread(&stui,sizeof(struct student),1,fp)=1) /*讀文件*/cnt+;else if(i=0)printf(讀文件失敗n);break;i+;fclose(fp);/*關(guān)閉文件*/*-*/printf(nplease input the students number: );scanf(%ld,&n1); /輸入要修改的學(xué)生記錄的學(xué)號(hào)for(i=0;icnt;i+)if(stui.n=n1) /找到匹配的學(xué)生記錄 /*-修改姓名的操作實(shí)現(xiàn)-*/printf(n%s,stu); /輸出原學(xué)生記錄

21、的姓名 printf(nplease input 1 or 0!n); /判斷是否改名,1代表改名,0代表不改scanf(%d,&ch);if(ch)printf(please input the new name:); scanf(%s,name1); /輸入新姓名; strcpy(stu,name1),flag=0;/flag用作是否改動(dòng)的判斷標(biāo)志/*-*/*-修改學(xué)號(hào)的操作實(shí)現(xiàn)-*/printf(n%ldnplease input 1 or 0!,stui.n);/輸出原學(xué)生記錄的學(xué)號(hào)并判斷是否改學(xué)號(hào),1代表改學(xué)號(hào),0代表不改scanf(%d,&ch);if(ch)print

22、f(please input the new xuehao:); scanf(%ld,&n1); /輸入新學(xué)號(hào) stui.n=n1,flag=0; /flag用作是否改動(dòng)的判斷標(biāo)志 /*-*/ /*-修改班級(jí)的操作實(shí)現(xiàn)-*/ printf(n%snplease input 1 or 0!,stui.classnum);/輸出原學(xué)生記錄的班級(jí)并判斷是否改班級(jí),1代表改班級(jí),0代表不改scanf(%d,&ch);if(ch)printf(please input the new the classnum:); scanf(%s,classnum1); /輸入新班級(jí) strcpy(stui.clas

23、snum,classnum1),flag=0;/flag用作是否改動(dòng)的判斷標(biāo)志/*-*/ /*-修改課程名的操作實(shí)現(xiàn)-*/printf(n%snplease input 1 or 0!,stui.coursenum0);/輸出原學(xué)生記錄的課程名并判斷是否改課程名,1代表改課程名,0代表不改scanf(%d,&ch);if(ch)printf(please input the new coursenum:); scanf(%s,coursenum10); /輸入新課程名 strcpy(stui.coursenum0,coursenum10),flag=0;/flag用作是否改動(dòng)的判斷標(biāo)志 pri

24、ntf(n%snplease input 1 or 0!,stui.coursenum1);/輸出原學(xué)生記錄的課程名并判斷是否改課程名,1代表改課程名,0代表不改scanf(%d,&ch);if(ch)printf(please input the new coursenum:); scanf(%s,coursenum11); /輸入新課程名 strcpy(stui.coursenum1,coursenum11),flag=0;/flag用作是否改動(dòng)的判斷標(biāo)志 /*-*/ /*-修改成績(jī)的操作實(shí)現(xiàn)-*/ printf(n%dnplease input 1 or 0!,stui.grade0);

25、 /輸出原學(xué)生記錄的成績(jī)并判斷是否改成績(jī),1代表改成績(jī),0代表不改scanf(%d,&ch); if(ch)printf(please input the new grade1: ); scanf(%d,grade1); /輸入新成績(jī) stui.grade0=grade10,flag=0;printf(n%dnplease input 1 or 0!,stui.grade1); /輸出原學(xué)生記錄的成績(jī)并判斷是否改成績(jī),1代表改成績(jī),0代表不改scanf(%d,&ch);if(ch)printf(please input the new grade2: ); scanf(%d,grade1+1)

26、; /輸入新成績(jī) stui.grade1=grade11,flag=0; /flag用作是否改動(dòng)的判斷標(biāo)志/*-*/if(flag)printf(can not find the data!); /如果沒有對(duì)應(yīng)的學(xué)生記錄的學(xué)號(hào)與已知的學(xué)號(hào)相匹配/*-將修改好的學(xué)生記錄重新寫入學(xué)生成績(jī)分析管理文本文件中-*/ if(fp=fopen(成績(jī)分析管理.txt,wb)=null) /*打開文件*/printf(修改時(shí)打開文件失敗n);return;for(i=0;icnt;i+) /*向成績(jī)分析管理文件中寫內(nèi)容*/ if(fwrite(&stui,sizeof(struct student),1,fp

27、)!=1) /*寫文件*/printf(刪除時(shí)寫文件錯(cuò)誤n); return;fclose(fp);/*關(guān)閉文件*/*-*/return ;/*-*/*-按姓名查找學(xué)生記錄函數(shù)的具體實(shí)現(xiàn)-*/ void searchname(void) file *fp;/定義頭文件指針fp char s120; int cnt=0,i=0,flag=1; /定義變量/*-打開成績(jī)分析管理文本文件并讀出文件中的學(xué)生記錄-*/ if(fp=fopen(成績(jī)分析管理.txt,rb)=null) /*打開文件*/printf(添加時(shí)打開成績(jī)分析管理.txt文件失敗n);return;while(imaxsize)i

28、f(fread(&stui,sizeof(struct student),1,fp)=1) /*讀文件*/cnt+;else if(i=0)printf(讀文件失敗n);break;i+;fclose(fp);/*關(guān)閉文件*/*-*/ printf(n-please input the students name:-n); scanf(%s,s1); /輸入要查找的學(xué)生姓名 for(i=0;icnt;i+) if(strcmp(stu,s1)=0) /找到匹配結(jié)果,輸出匹配記錄的內(nèi)容并用flag做標(biāo)記 flag=0,printf(%s,%ld,%s,%s,%s,%d,%dn,stu

29、,stui.n,stui.classnum,stui.coursenum0,stui.coursenum1,stui.grade0,stui.grade1); if(flag) printf(there are no information to modify!n); /如果未找到匹配記錄return ; /*-*/*-按班級(jí)查找函數(shù)的具體實(shí)現(xiàn)-*/void searchclass(void)file *fp; /定義頭文件指針fp char classnum210,flag=1; int cnt=0,i=0; /定義變量/*-打開成績(jī)分析管理文本文件并讀出文件中的學(xué)生記錄-*/

30、if(fp=fopen(成績(jī)分析管理.txt,rb)=null) /*打開文件*/printf(添加時(shí)打開成績(jī)分析管理.txt文件失敗n);return;while(imaxsize)if(fread(&stui,sizeof(struct student),1,fp)=1) /*讀文件*/cnt+;else if(i=0)printf(讀文件失敗n);break;i+;fclose(fp);/*關(guān)閉文件*/*-*/ printf(nplease input a classname:); scanf(%s,classnum2); /輸入要查找的班級(jí)名稱 for(i=0;icnt;i+)if(s

31、trcmp(stui.classnum,classnum2)=0) /找到匹配結(jié)果,輸出匹配記錄的內(nèi)容并用flag做標(biāo)記printf(%s,%ld,%s,%s,%s,%d,%dn,stu,stui.n,stui.classnum,stui.coursenum0,stui.coursenum1,stui.grade0,stui.grade1),flag=0; if(flag) printf(ncan not find the infomation!n); /如果未找到匹配記錄 return ;/*-*/*-信息統(tǒng)計(jì)函數(shù)的具體實(shí)現(xiàn)-*/void tongji(void)file *fp

32、; /定義頭文件指針fpint min1=101,min2=101,min3=101,min4=101,max1=0,max2=0,max3=0,max4=0,sum1=0,sum2=0,sum3=0,sum4=0,n1=0,n2=0,n3=0,n4=0,cnt=0,i=0;float a,b,c,d;char classnumber210, coursenumber210; /定義變量/*-打開成績(jī)分析管理文本文件并讀出文件中的學(xué)生記錄-*/if(fp=fopen(成績(jī)分析管理.txt,rb)=null) /*打開文件*/printf(打開成績(jī)分析管理.txt文件失敗n);return;wh

33、ile(imaxsize)if(fread(&stui,sizeof(struct student),1,fp)=1) /*讀文件*/cnt+;else if(i=0)printf(讀文件失敗n);break;i+;fclose(fp);/*關(guān)閉文件*/*-*/scanf(%s%s%s%s,classnumber0,classnumber1,coursenumber0,coursenumber1); /輸入要統(tǒng)計(jì)的班級(jí)和課程名稱,各兩個(gè)for(i=0;icnt;i+)if(strcmp(stui.classnum,classnumber0)=0)&(strcmp(stui.coursenum0

34、,coursenumber0)=0)sum1+=stui.grade0; /求某門課班級(jí)的成績(jī)總和if(stui.grade0max1)max1=stui.grade0; /找求某門課班級(jí)的成績(jī)最高值n1+; /計(jì)數(shù) if(strcmp(stui.classnum,classnumber0)=0)&(strcmp(stui.coursenum1,coursenumber1)=0)sum2+=stui.grade1;/求某門課班級(jí)的成績(jī)總和if(stui.grade1max2)max2=stui.grade1;/找求某門課班級(jí)的成績(jī)最高值n2+;/計(jì)數(shù) if(strcmp(stui.classn

35、um,classnumber1)=0)&(strcmp(stui.coursenum0,coursenumber0)=0)sum3+=stui.grade0;/求某門課班級(jí)的成績(jī)總和if(stui.grade0max3)max3=stui.grade0;/找求某門課班級(jí)的成績(jī)最高值n3+;/計(jì)數(shù) if(strcmp(stui.classnum,classnumber1)=0)&(strcmp(stui.coursenum1,coursenumber1)=0)sum4+=stui.grade1;/求某門課班級(jí)的成績(jī)總和if(stui.grade0max4)max4=stui.grade1;/找求某門課班級(jí)的成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論