c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第1頁
c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第2頁
c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第3頁
c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第4頁
c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄學(xué)生成績管理程序題目要求 2設(shè)計(jì)目的 2總體設(shè)計(jì) 3詳細(xì)設(shè)計(jì) 3調(diào)試與測試 12源程序 14總結(jié) 30學(xué)生成績管理程序題目要求1. 問題描述:對在校學(xué)生幾門課程的考試成績進(jìn)行統(tǒng)一管理每個(gè)學(xué)生記錄包括學(xué)號,姓名,年齡,數(shù)學(xué),英語,物理成績,默認(rèn)以學(xué)號為序存放.2. 要求:(1) 一個(gè)文件按以班為單位存儲學(xué)生記錄.(2) 將允許的操作分為四種,以A,B,C,D,E,F為標(biāo)志:A:插入一個(gè)學(xué)生記錄;B:修改學(xué)生記錄;C:刪除一個(gè)學(xué)生記錄;D:查找一個(gè)學(xué)生記錄;E:瀏覽學(xué)生成績:F:退出3. 計(jì)算學(xué)生的總成績.4. 按學(xué)號排序輸出全班學(xué)生成績表. 設(shè)計(jì)目的根據(jù)題目要求,由于學(xué)生信息是存放在文件中,

2、所以應(yīng)提供文件的輸入,輸出等操作; 在程序中需要瀏覽學(xué)生的信息,應(yīng)提供顯示,查找,排序等操作;另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇三. 總體設(shè)計(jì)根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)分為以下模塊:輸入模塊,修改模塊,刪除模塊, 查找模塊,顯示模塊學(xué)生成績管理系統(tǒng)數(shù)據(jù)輸入數(shù)據(jù)顯示數(shù)據(jù)修改數(shù)據(jù)刪除數(shù)據(jù)查找四. 詳細(xì)設(shè)計(jì)1. 主函數(shù):主函數(shù)一般設(shè)計(jì)得比較簡單,只提供輸入,處理和輸出部分的函數(shù)調(diào)用,其中各 功能模塊用菜單方式選擇流程圖:顯示一系列功能模塊N輸入n,判斷n是否是<A-FY1根據(jù)n的值調(diào)用各功能模塊函數(shù)程序:#i nclude"head.h" in tme nu _

3、select() charc;prin tf("nn");prin tf("|1.增加學(xué)生記錄 prin tf("|2.查詢學(xué)生記錄 prin tf("|3 .修改學(xué)生記錄 prin tf("|4.學(xué)生紀(jì)錄排序15. 統(tǒng)計(jì)信息|n");6. 打開文件|n");7. 保存文件|n");8. 顯示記錄|n");printf("|O.退出系統(tǒng) |n");prin tf("nn");printf("請選擇(0-8):");c=getchar()

4、;getchar();return(c-'0');2. 輸入模塊:分析:單獨(dú)看各數(shù)據(jù)信息,學(xué)號,姓名是字符型,可以采用字符型數(shù)組;分?jǐn)?shù)為整數(shù),采用整 數(shù);數(shù)據(jù)信息存放在文件中,一條記錄對應(yīng)一個(gè)學(xué)生,既符合習(xí)慣又方便信息管理 如果要存放若干學(xué)生信息就用結(jié)構(gòu)體數(shù)組:voidaddrecord(stude ntstud)in ti=O,j, num;charstr5;if(nu mstus!=O)printf("已有記錄存在是否覆蓋?(y/n)n");gets(str);if(str0='Y'|str0='y')i=0;elsei=

5、nu mstus;printf("請輸入增加的學(xué)生信息條目數(shù):");sca nf("%d",&nu m);if(i=0)nu mstus=num;else nu mstus+=num;if(nu mstus>le ns)len s+=50;poi nter=(stude nt*)realloc(poi nter,le ns*LEN);printf("請輸入學(xué)生信息:n");for(;i< nu mstus;i+)getchar();printf("請輸入學(xué)號:");gets(po in teri

6、. nu mber);printf("請輸入姓名:");gets(poi nteri. name);printf("請輸入性別(男/女 1/0):");gets(po in teri.sex);”的順序 ):");if(pointeri.sex0='0')strcpy(pointeri.sex,"女"); elsestrcpy(poi nteri.sex,"男");printf("請輸入各科成績:(按“語文,數(shù)學(xué),英語,歷史,studi.score=0;for(j=0;j <

7、;nu msubs;j+)scanf("%f",&studi.subjectj);/* 計(jì)算總分 */ studi.score+=studi.subjectj;studi.average=studi.score/numsubs;/計(jì)算平均分 */coun t(stud);/* 附名次 */display(stud,0, nu mstus-1);getchar();intnu mstus;in tle ns;stude nt*po in ter;voidmai n()in ti=1;charstr2; len s=100;pointer=(student*)mallo

8、c(lens*LEN);/* 分配內(nèi)存 */nu mstus=0;welcome。;/*歡迎界面 */ while(i>0)i=menu_select();/*控制菜單 */switch(i) case1:addrecord(pointer);break;/增力卩學(xué)生信息 */ case2:findrecord(pointer);break;/喳詢學(xué)生信息 */ case3:amendrecord(pointer);break;/修改學(xué)生信息 */ case4:sort(pointer);break;/學(xué)生信息排序 */ case5:statistic(pointer);break;/統(tǒng)

9、計(jì)信息 */ case6:openfile(pointer);break;/*打開文件 */ case7:writetotext(pointer);break;/*保存文件 */ case8:display(pointer,0,numstus-1);break;/顯示記錄 */ case0:if(numstus!=0)printf("是否保存當(dāng)前記錄?(y/n)"); gets(str);if(str0='y'|str0='Y') writetotext(poi nter);i=-1;break;/*退出系統(tǒng) */ default:print

10、f("請輸入數(shù)字 08:n");i=1;/* 輸入錯(cuò)誤 */printf("tt歡迎再次使用本系統(tǒng)。nn");display1();3修改模塊:,并提示分析:用戶輸入要修改學(xué)生的學(xué)號,根據(jù)學(xué)生的學(xué)號等信息查找學(xué)生記錄 用戶修改該記錄的哪部分信息根據(jù)用戶選擇修改相應(yīng)的信息.流程圖:檢查是否出錯(cuò)*/sea nf("%d",&i);getchar();while(fread(&data,sizeof(data),1,fp)=1)j=atoi(data.xuehao);if(j=i)pri ntf("xuehao:%

11、snmin gzi:%snn ia nli ng:%sn",data.xuehao,data.mi ngzi,data. nian li ng);pri ntf("Pleaseshurum in gzi:");gets(data. min gzi);pri ntf("Pleaseshurushuxuescore:");gets(temp);data.score0=atof(temp);pri ntf("Please in puty in gyuscore:");gets(temp);data.score1=atof(temp

12、);pri ntf("Please in putwuliscore:");gets(temp);data.score2=atof(temp);data.score3=data.score0+data.score1+data.score2;fwrite(&data,sizeof(data),1,fp1);fseek(fp,0L,0);/*將位置指針移到離頭文件 0個(gè)字節(jié)處*/fseek(fp1,0L,0);while(fread(&data,sizeof(data),1,fp1)=1)fwrite(&data,sizeof(data),1,fp);fc

13、lose(fp);fclose(fp1);4. 刪除模塊:分析:該模塊的功能是,用戶輸入要?jiǎng)h除的學(xué)生的學(xué)號,根據(jù)學(xué)生學(xué)號查找記錄并刪除流程圖:printf(” 刪除成功!n”);voidcou nt(stude ntstud)in ti,j;for(i=0;i< numstus;i+)studi.i ndex=1;for(j=0;j <n umstus;j+)if(studj.score>studi.score) studi.i ndex+;5. 查找模塊:需求分析:該模塊的功能是根據(jù)輸入的學(xué)生的姓名查找對應(yīng)的記錄,找到以后,顯示相應(yīng)的學(xué)生信息.流程圖:輸入學(xué)生學(xué)YN號1是否

14、找到學(xué)生記錄NY#i nclude"head.h"intfindrecord(studentstud)/* 查找信息 */charstr2;in ti, num;if(nu mstus=O)printf("沒有可被查找的記錄n");return-1;elseprintf("以何種方式查找?n1.學(xué)號t2姓名t3.名次n");gets(str);if(str0='1')/* 按學(xué)號查找 */printf("請輸入學(xué)號:");gets(str);for(i=0;i<=nu mstus;i+)if(

15、strcmp(str,studi. nu mber)=0)display(stud,i,i);break;elsec on ti nue;elseif(str0='2')/* 按姓名查找 */printf("請輸入姓名:");gets(str);for(i=0;i<=nu mstus;i+)if(strcmp(str,studi. name)=0)display(stud,i,i);break;elsec on ti nue;elseif(str0='3')/* 按名次查找 */printf("請輸入名次:"); s

16、ea nf("%d",&nu m); getchar();for(i=0;i<=nu mstus;i+)if(num=studi.i ndex)display(stud,i,i);break;elsec on ti nue;if(i> nu mstus)printf("沒有查找所要的信息。n"); return-1;returni;6. 顯示模塊:需求分析:該模塊的功能是顯示所有學(xué)生記錄信息程序: voidwelcome() printf("t*n")printf("tttt*學(xué)生成績管理系統(tǒng)*ntttt

17、傾情奉獻(xiàn)歡迎使用!n");printf("t*n")voidshowtable() printf("n");printf("學(xué)號t姓名t性別t語文t數(shù)學(xué)t英語t歷史t政治t總分t平均分t名次n");printf("n"); voiddisplay(stude ntstud,i ntn 1,i ntn2)in ti;showtable();/*顯示表頭 */for(i=n 1;i<=n 2;i+)prin tf("%st%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft

18、%.2ft%dtn",studi. nu mber,stu di. name,studi.sex,studi.subject0,studi.subject1,studi.subject2,studi.subject3 ,studi.subject4,studi.score,studi.average,studi.i ndex);/*通過循環(huán)輸出數(shù)據(jù)*/voiddisplay1()printf("tt本系統(tǒng)由計(jì)科二班制作nn");printf("tt 制作人員列表:nn");printf("tt 殷增鋒 ttt 邵超 n");

19、prin tf("nn");getchar();五. 調(diào)試與測試在這次課程設(shè)計(jì)中,程序編寫過程中遇到了很多的問題,各種函數(shù)的運(yùn)用也讓人頭疼, 在上機(jī)編譯運(yùn)行過程中出現(xiàn)了很多的錯(cuò)誤,例如:各種數(shù)據(jù)類型的定義,函數(shù)的調(diào)用等等。但最終還是在老師同學(xué)的幫助下進(jìn)行了各種代碼的編寫與修改,最終程序成功的運(yùn)行。下面是各個(gè)模塊的界面圖(1)主菜單函數(shù)::輸入模塊:(3) :顯示模塊:(4) :刪除模塊:(5) :查找模塊:(6) :修改模塊:六. 程序源#ifndefH_STUDENT_HH#defi neH_STUDENT_HH#i nclude"stdio.h"#i

20、 nclude"stri ng.h"#i nclude"malloc.h"#defineLENsizeof(structmessage_student)/*個(gè)結(jié)構(gòu)體數(shù)組元素的長度 */#definenumsubs5/* 學(xué)科數(shù)目 */ typedefstructmessage_student/*結(jié)構(gòu)體定義 */char nu mber6;char name20;charsex4;floatsubject nu msubs;floatscore; floataverage;in ti ndex;stude nt;externintnumstus;/*學(xué)生數(shù)

21、目 */externstudent*pointer;/*指向結(jié)構(gòu)體數(shù)組 */exter nin tle ns;intmenu_select();/*函數(shù)聲明 */in tope nfile(stude ntstu); intfin drecord(stude ntstud); in twritetotext(stude ntstud); voidwelcome();voiddisplay1(); voidshowtable(); voidsort(stude ntstu); voiddeleterecord(stude ntstu,i nti); voidaddrecord(stude nts

22、tud); voiddisplay(stude ntstud,i ntn 1,i ntn 2); voidame ndrecord(stude ntstud); voidco un t(stude ntstud); voidsort nu m(stude ntstud); voidsort nu m2(stude ntstud); voidsort name(stude ntstud); voidsort name2(stude ntstud); voidsortco un t(stude ntstud);voidsortco un t2(stude ntstud);voidstatistic

23、(stude ntstud); voiddisplay1();#en dif/#i nclude"head.h" in tme nu _select() _charc;prin tf("nn");prin tf("|1. prin tf("|2.prin tf("|3.prin tf("|4. prin tf("|0.增加學(xué)生記錄5.統(tǒng)計(jì)信息|n"); 查詢學(xué)生記錄6.打開文件|n"); 修改學(xué)生記錄7保存文件|n"); 學(xué)生紀(jì)錄排序8.顯示記錄|n"); 退出系統(tǒng)

24、|n");prin tf("nn");printf("請選擇(0-8):");c=getchar(); getchar();return(c-'0'); /#i nclude"head.h"intfindrecord(studentstud)/*查找信息 */charstr2; in ti, num;if(nu mstus=O)printf("沒有可被查找的記錄n");return-1;elseprintf("以何種方式查找? n1.學(xué)號t2.姓名t3.名次n");ge

25、ts(str);if(str0='1')/* 按學(xué)號查找 */printf(" 請輸入學(xué)號:");gets(str);for(i=0;i<=nu mstus;i+)if(strcmp(str,studi. nu mber)=0)display(stud,i,i);break;elsec on ti nue;elseif(str0='2')/*按姓名查找 */printf(" 請輸入姓名:");gets(str);for(i=0;i<=nu mstus;i+)if(strcmp(str,studi. name)=

26、0)display(stud,i,i);break;elsec on ti nue;elseif(str0=3)/*按名次查找 */printf(" 請輸入名次:");sca nf("%d",&nu m);getchar();for(i=0;i<=nu mstus;i+)if(num=studi.i ndex)display(stud,i,i); break;elsec on ti nue;if(i> nu mstus)printf("沒有查找所要的信息。n"); return-1;returni;#i nclud

27、e"head.h"in tope nfile(stude ntstu)in ti=O,j;FILE*fp;charfile name20,str2;if(nu mstus!=0)printf("已經(jīng)有記錄存在,是否保存?(y/n)");gets(str);if(str0='y'|str0='Y')writetotext(stu);printf("請輸入文件名:");gets(file name);nu mstus=0;if(fp=fope n(file name,"rb+")=NUL

28、L)printf("無法打開該文件n");return(-1);fsca nf(fp,"%d",&n umstus);fgetc(fp);while(i< nu mstus)fsca nf(fp,"%s",stui. nu mber);fsca nf(fp,"%s",stui. name);fsca nf(fp,"%s",stui.sex);for(j=0;j <nu msubs;j+)fsca nf(fp,"%f",&stui.subjectj)

29、;fsca nf(fp,"%f", &stui.score);fsca nf(fp,"%f",&stui.average);fsca nf(fp,"%d",&stui.i ndex);i+;fclose(fp);printf("文件讀取成功n");printf("是否顯示紀(jì)錄?(y/n)");gets(str);if(str0='y'|str0='Y')display(stu,O, nu mstus-1);return(0);/#i ncl

30、ude"head.h"voidsort(stude ntstud)in ti,j=0;charstr5;stude nt*p;p=stud;if(nu mstus=0)printf(”沒有可供查詢的記錄!");while(1)for(i=0;i+)printf("請輸入查詢方式:");n");printf("(直接輸入回車則結(jié)束查詢操作)prin tf("1.按照學(xué)號 t");printf("2.按照姓名 t");prin tf("3.按照名次 n"); gets(

31、str);if(strle n( str)=0)break;if(str0='1')printf(" 請輸入排序次序:n");printf("1.升序排列 t");printf("2.降序排列 n"); gets(str);if(str0='1')sort nu m2(p);elsesort nu m(p); display(stud,O, nu mstus-1); elseif(str0=2)printf("請輸入排序次序:n");printf("1.升序排列 t&quo

32、t;); printf("2.降序排列 n"); gets(str);if(strO='1')sort name2(p);elsesort name(p); display(stud,O, nu mstus-1); elseif(str0=3)printf("請輸入排序次序:n");printf("1.升序排列 t"); printf("2.降序排列 n"); gets(str);if(strO='1')sortco un t2(p);elsesortco un t(p); disp

33、lay(stud,O, nu mstus-1);elsepri ntf("請輸入 13"); printf(" 是否退出排序?(y/n)"); gets(str);if(strO='y'|strO='Y')break;return;voidsort nu m(stude ntstud)in ti,j;stude nttemp;stude nt*p;p=stud;for(i=0;i <nu mstus;i+)for(j=0;j <nu mstus-i-1;j+)if(strcmp(studj+1. nu mber

34、,studj. nu mber)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(P+j+1)=temp;voidsort nu m2(stude ntstud)in ti,j;stude nttemp;stude nt*p;p=stud;for(i=0;i <nu mstus;i+)for(j=0;j <nu mstus-i-1;j+)if(strcmp(studj. nu mber,studj+1. nu mber)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;voidsort name(stude nts

35、tud)in ti,j;stude nttemp;stude nt*p;p=stud;for(i=0;i <nu mstus;i+)for(j=0;j <nu mstus-i-1;j+)if(strcmp(studj+1. name,studj. name)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;voidsort name2(stude ntstud)in ti,j;stude nttemp;stude nt*p;p=stud;for(i=0;i <nu mstus;i+)for(j=0;j <nu mstus-i

36、-1;j+)if(strcmp(studj. name,studj+1. name)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;voidsortco un t(stude ntstud)in ti,j;stude nttemp;stude nt*p;p=stud;for(i=0;i <nu mstus;i+)for(j=0;j <nu mstus-i-1;j+)if(studj+1.i ndex>studj.i ndex)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;voidsortco

37、 un t2(stude ntstud)in ti,j;stude nttemp;stude nt*p;p=stud;for(i=0;i <nu mstus;i+)for(j=0;j <nu mstus-i-1;j+)if(studj.i ndex>studj+1.i ndex)temp=*(p+j);*(P+j)=*(P+j+1);*(P+j+1)=temp;#i nclude"head.h"voidstatistic(studentstud)/*新增功能,輸出統(tǒng)計(jì)信息 */in ti,j=0,k=0;charc1,str2;floataverage n

38、u msubs,sum=0;if(nu mstus=0)printf("沒有可被查找的記錄n");elsewhile(1)printf("下面將統(tǒng)計(jì)考試成績n");prin tf("請選擇你要統(tǒng)計(jì)哪科的成績 1.At2.Bt3.Ct4.Dt5.En");c1=getchar();printf("t一共有個(gè)c記錄n",numstus);/*總共記錄數(shù)*/switch(c1)case'1':for(i=0;i<numstus;i+)/*循環(huán)輸入判斷 */sum+=studi.subject0;if

39、(studk.subject0>studi.subject0)k=i;if(studj.subject0<studi.subject0)j=i;average0=su m/nu mstus;prin tf("t科目A的最高分:n");/* 最高分*/prin tf("tt學(xué)號:%s姓名:%s分?jǐn)?shù):.2fn",studj. nu mber,studj. name,studj.subject0);prin tf("t科目A的最低分是:n");/* 最低分*/prin tf("tt學(xué)號:%s姓名:%s分?jǐn)?shù):.2fn&q

40、uot;,studk. nu mber,studk. name,studk.subject0);prin tf("t科目 A 的平均分是 %5.2fn",average0);/*平均分*/break;case'2':for(i=0;i<numstus;i+)/*循環(huán)輸入判斷 */sum+=studi.subject1; if(studk.subject1>studi.subject1)k=i; if(studj.subject1<studi.subject1)j=i;average1=su m/nu mstus;printf("t

41、 科目B的最高分:n");/* 最高分*/prin tf("tt學(xué) 號 :%s姓 名數(shù):%.2fn",studj. nu mber,studj. name,studj.subject1);printf("t 科目B的最低分是:n");/* 最低分*/prin tf("tt學(xué) 號 :%s姓 名數(shù):.2fn",studk. nu mber,studk. name,studk.subject1);printf("t 科目 B 的平均分是 5.2fn",average1);/* 平均分 */ break;case

42、'3':for(i=0;i<numstus;i+)/*循環(huán)輸入判斷 */sum+=studi.subject2;if(studk.subject2>studi.subject2)k=i; if(studj.subject2<studi.subject2)j=i;average2=sum/numstus;printf("t 科目C的最高分:n");/* 最高分*/prin tf("tt學(xué) 號 :%s姓 名數(shù):%.2fn",studj. nu mber,studj. name,studj.subject2);printf(&

43、quot;t 科目C的最低分是:n");/* 最低分*/prin tf("tt學(xué) 號 :%s姓 名數(shù):.2fn",studk. nu mber,studk. name,studk.subject2);printf("t 科目 C 的平均分是 %5.2fn",average2);/* 平均分 */ break;case'4':for(i=0;i<numstus;i+)/*循環(huán)輸入判斷 */sum+=studi.subject3; if(studk.subject3>studi.subject3)k=i; if(stud

44、j.subject3<studi.subject3)j=i;average3=su m/nu mstus;printf("t 科目D的最高分:n");/* 最高分*/:%s分:%s分:%s分:%s分:%s分prin tf("tt學(xué) 號 :%s姓 名數(shù):.2fn",studj. nu mber,studj. name,studj.subject3);printf("t 科目D的最低分是:n");/* 最低分*/prin tf("tt學(xué) 號 :%s姓 名數(shù):.2fn",studk. nu mber,studk.

45、name,studk.subject3);printf("t 科目 D 的平均分是 5.2fn",average3);/* 平均分 */ break;case'5':for(i=0;i<numstus;i+)/*循環(huán)輸入判斷 */sum+=studi.subject4; if(studk.subject4>studi.subject4)k=i; if(studj.subject4<studi.subject4)j=i;average4=sum/numstus;printf("t 科目E的最高分:n");/* 最高分*/p

46、rin tf("tt學(xué) 號 :%s姓 名數(shù):%.2fn",studj. nu mber,studj. name,studj.subject4);printf("t 科目E的最低分是:n");/* 最低分*/prin tf("tt學(xué) 號 :%s姓 名數(shù):.2fn",studk. nu mber,studk. name,studk.subject4);printf("t 科目 E 的平均分是 %5.2fn",average4);/* 平均分 */ break;default:pri ntf("輸入錯(cuò)誤!請輸入

47、15之間的數(shù)n");sum=0;getchar();printf("是否繼續(xù)進(jìn)行統(tǒng)計(jì)?(y/n)");gets(str);if(strO='y'|strO='Y');elsebreak;intwritetotext(studentstud)/*將所有記錄寫入文件 */in ti=0,j;FILE*fp;charfile name20;printf("輸入文件名稱:");gets(file name);fp=fope n(filen ame,"w");fprin tf(fp,"%dn&

48、quot; ,n umstus);:%s分:%s分:%s分while(i< nu mstus)fprin tf(fp,"%s%s%s",studi. nu mber,studi. name,studi.sex); for(j=0;j <nu msubs;j+)fprin tf(fp,"%f",studi.subjectj);fprin tf(fp,"%f%f%d",studi.score,studi.average,studi.i ndex); i+;fclose(fp);printf("已成功存儲!n"

49、;);display(stud,0, nu mstus-1);nu mstus=0;return。;voidwelcome()prin tf("t*n");printf("tttt*學(xué)生成績管理系統(tǒng)*ntttt傾情奉獻(xiàn)歡迎使用!n");prin tf("t*n"); voidshowtable()printf("n");printf("學(xué)號t姓名t性別tAtBtCtDtEt 總分t平均分t名次n");printf("n");voiddisplay(stude ntstud,i

50、 ntn 1,i ntn2)in ti;showtable();/*顯示表頭 */for(i=n 1;i<=n 2;i+)prin tf("%st%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%dtn",studi. nu mber,studi. name,studi.sex,studi.subject0,studi.subject1,studi.subject2,studi.subject3,studi.subject4,studi.score, studi.average,studi.i ndex);/*通過循環(huán)輸出數(shù)據(jù)*/ v

51、oiddisplay1()printf("tt本系統(tǒng)由計(jì)科二班制作nn");printf("tt制作人員列表:nn");prin tf("tt殷增鋒 ttt 邵超 n");prin tf("nn");getchar();#i ncludevstri ng.h>voidame ndrecord(stude ntstud)charstr;/*供用戶輸入*/in ti=-1,j;if(numstus=0)/*沒有記錄返回*/printf(”沒有可供修改的記錄!");while(i<0)i=fin d

52、record(stud);if(i>=0)printf("要?jiǎng)h除這個(gè)學(xué)生的信息嗎?(y/n)");gets(str);if(str0='y'|str0='Y')deleterecord(stud,i);coun t(stud);elseprintf("確定要修改這個(gè)學(xué)生的信息嗎?(y/n)");gets(str);if(str0='y'|str0='Y')printf("下面請重新輸入學(xué)生的信息:n");printf("請輸入學(xué)號:");gets

53、(studi. nu mber);printf("請輸入姓名:");gets(studi. name);printf("請輸入性別(男/女1/0):");gets(str);if(str0='0')strcpy(studi.sex,"女");elsestrcpy(studi.sex,"男");studi.score=0;printf("請按順序輸入成績:");for(j=0;j <nu msubs;j+)sca nf("%f",&studi.su

54、bjectj); studi.score+=studi.subjectj;getchar();studi.average=studi.score/nu msubs;coun t(stud);display(stud,0, nu mstus-1);printf(”是否繼續(xù)進(jìn)行其他修改?(y/n)n");gets(str);if(str0='y'|str0='Y')i=-1;elsei=1;刪除信息*/voiddeleterecord(stude ntstu,i nti)/*intj;while(i>=0)for(j=i;j <nu mstus;j+)stuj=stuj+1;nu mstus-;printf("刪除成功!n");voidco un t(stude ntstud)in ti,j;for(i=0;i <nu mstus;i+)studi.i ndex=1;for(j=0;j <nu mstus;j+)if(studj.score>studi.score)studi.i ndex+;voidaddrecord(stude ntstud)in ti=O,j, num;charstr5;if(nu mstus!=O)printf("

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論