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

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告書(shū)學(xué)生成績(jī)管理系統(tǒng)班級(jí)學(xué)號(hào):姓名:指導(dǎo)老師:21 / 19目錄1 題目要求 12 設(shè)計(jì)思想 33 系統(tǒng)完成功能及框圖 34 界面設(shè)計(jì) 45 核心算法及說(shuō)明 76 結(jié)論 167 參考資料 168 后記 16摘要:學(xué)生成績(jī)管理系統(tǒng)提供了強(qiáng)大的學(xué)生成績(jī)管理管理功能,方便系統(tǒng)管理員對(duì)學(xué)生成績(jī)等信息的添加,修改,刪除 ,查詢(xún) ,留言等操作,同時(shí)一樣的方面學(xué)生對(duì)自己各科成績(jī)查詢(xún) ,學(xué)習(xí)的交流.隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用.作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績(jī)信息進(jìn)行管理,有著手工管理所無(wú)法比

2、擬的優(yōu)點(diǎn) .1 、 題目要求題目七:學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)學(xué)生成績(jī)信息包括:學(xué)期,學(xué)號(hào),班別,姓名,四門(mén)課程成績(jī)( 語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)) 等。主要功能:(1) 能按學(xué)期、按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改(2) 能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分(3) 能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單(4) 能按班級(jí)輸出學(xué)生的成績(jī)單要求:使用二進(jìn)制文件方式存儲(chǔ)數(shù)據(jù),系統(tǒng)以菜單方式工作2、設(shè)計(jì)思想我們?cè)O(shè)計(jì)的學(xué)生成績(jī)管理系統(tǒng)共有7 個(gè)功能,所涉及到的函數(shù)有按回車(chē)返回主菜單、查詢(xún)、保存、輸入、修改、輸出、統(tǒng)計(jì)等等。這是一個(gè)關(guān)于學(xué)生成績(jī)的管理系統(tǒng),所以就會(huì)涉及到一系列問(wèn)題,例如:去各科成績(jī)的總和、平均

3、值、不幾個(gè)學(xué)生的科目及對(duì)應(yīng)的成績(jī)。這個(gè)程序的整個(gè)思路就是按照要求寫(xiě)出相應(yīng)的程序并使之能夠運(yùn)行。首先,寫(xiě)出所有能夠用到的庫(kù)函數(shù),并設(shè)計(jì)出能夠顯示主菜單的程序。其次按照主菜單設(shè)計(jì)出所有的有關(guān)程序。再次,由于這個(gè)程序會(huì)用到結(jié)構(gòu)體所以會(huì)涉及到“將數(shù)據(jù)從結(jié)構(gòu)體數(shù)組保存到文件中”、“將數(shù)據(jù)從文件讀到結(jié)構(gòu)體數(shù)組中”這兩個(gè)程序。為了使程序更完美還涉及了主函數(shù)的顯示。最后,就可以按照主菜單進(jìn)行一系列的操作。其實(shí),這些程序的設(shè)計(jì)都是根據(jù)以前學(xué)過(guò)的只是進(jìn)行的簡(jiǎn)單的程序的疊加。沒(méi)有什么可以害怕或是擔(dān)心的。3、系統(tǒng)完成功能及框圖成績(jī)統(tǒng)計(jì)查詢(xún)不及格同學(xué)按班級(jí)查詢(xún)成績(jī)修改學(xué)生記錄輸入學(xué)生記錄查看所有同學(xué)信息退出程序4、界面

4、設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)* * * *0退出*1查看所有學(xué)生信息,2輸入學(xué)生記錄*3 修改學(xué)生記錄*4 查詢(xún)C班0D*5 查詢(xún)t不及格記錄)*0成蛾統(tǒng)計(jì)單請(qǐng)輸入功或號(hào)s-/:*主菜單:、C;JBSOFTCTuTaiil)innt eap. exc請(qǐng)箍入功能號(hào)10-團(tuán);1破毀 學(xué)期 姓名京 *學(xué)生成筋營(yíng)展系統(tǒng)而¥退出*查看所有學(xué)生信息 *輸入學(xué)生記錄*修改學(xué)生記錄常苴詞班皴*宜詢(xún)(不及格記錄* 成矮線(xiàn)計(jì)收*- TJ TJ TJ J 1J 0rl23456t'+i*.;1,11京1*1+.1 4 i*fifufc寺|c學(xué)號(hào) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)算機(jī)3WO22T6065.0T8.0阻。

5、4bu34TS056 0T6099.0魚(yú)包車(chē)鍵返回主案單.運(yùn)行1后界面八 C: JBSOFTCYuYaxil)iiiTTt ea.p. ex e*蛻*算*4c*京京京*加求*4:*#猿常*率*!*jK*學(xué)生成纏營(yíng)理系堤布不*0退出*1存著所有學(xué)生信息*團(tuán)輸入學(xué)生記錄*3修改學(xué)生記錄*查詢(xún)(班敘)*5直詢(xún)【不及格記錄)*成建統(tǒng)計(jì)*4cj*c*卡:* 本* *淳宓4*4:* 巾* 巾#*宓4uK4oKt時(shí)功能號(hào)卬-叼:4請(qǐng)輸入要置詢(xún)成豉的田級(jí)0班破 學(xué)期 姓名 學(xué)號(hào) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 計(jì)篁機(jī)23,。2278 0C5.070.0 弗口按回車(chē)鍵返回主菜單運(yùn)行4后界面兼*申窠卓*京*京:*尤*笨*率*本

6、*:!(窠京*京*班第*中常才學(xué)生成能管理系線(xiàn)*魄率流01退出*洋m查看所有學(xué)生信息事胃U喻入學(xué)生記錄*31修改學(xué)生記錄*國(guó)查詢(xún)(班皴】*5J魚(yú)網(wǎng)C不及格記錄)*6成統(tǒng)統(tǒng)計(jì)*濯*覃*尊*:窠*章*胃*事*京*享京* *:*%*(京請(qǐng)輸入功能號(hào)【口-81二5 請(qǐng)輸入所要查詢(xún)的班級(jí):3 請(qǐng)輸入所要查詢(xún)的學(xué)期:4 姓名:卜山字號(hào):31的不及格科目有:數(shù)學(xué)闞 按回車(chē)隆返回主菜單一.運(yùn)行5后界面5、核心算法及說(shuō)明#include <stdio . h>#include <io . h>#include <stdlib . h>#include <string .

7、 h>#define MAX 300 struct student charcla10;/ 班級(jí)charterm10;/ 學(xué)期char name10;/ 姓名char no10;/ 學(xué)號(hào)float ch;/ 語(yǔ)文float ma;/ 數(shù)學(xué)float en;/ 英語(yǔ)float com; / 計(jì)算機(jī);struct dataint count;/ 當(dāng)前學(xué)生數(shù)組中學(xué)生的個(gè)數(shù)struct student stuMAX; / 學(xué)生數(shù)組 dd;/ 顯示主菜單void menu()system("cls" );printf("n" );printf("t

8、tt*n");printf("ttt*n");printf("ttt*學(xué)生成績(jī)管理系統(tǒng)*n");printf("ttt*n");printf("ttt*0退出*n");printf("ttt*1查看所有學(xué)生信息*n");printf("ttt*2輸入學(xué)生記錄*n");printf("ttt*3修改學(xué)生記錄*n");printf("ttt*4查詢(xún)(班級(jí))*n");printf("ttt*5查詢(xún)(不及格記錄) *n&qu

9、ot;);printf("ttt*6成績(jī)統(tǒng)計(jì)*n");printf("ttt*n");printf( "ttt*n");/ 等待用戶(hù)按回車(chē)后回到主菜單void to_menu()char c1,c2;printf( "nnn 按回車(chē)鍵返回主菜單." );scanf( "%c%c", &c1, &c2);menu();/ 查看所有學(xué)生信息void view_data()int i;printf("班級(jí)t 學(xué)期 t 姓名 t 學(xué)號(hào) t 語(yǔ)文 t 數(shù)學(xué) t 英語(yǔ) t 計(jì)算機(jī)

10、" );printf( "nn");for (i =0;i <dd. count;i +)printf( "%st%st%st%st%.1ft%.1ft%.1ft%.1fn" ,dd . stui . cla,dd . stui . term,dd . stui . name,dd. stui . no,dd . stui . ch,dd . stui . ma,d d. stui . en,dd . stui . com);/ 將數(shù)據(jù)從結(jié)構(gòu)體數(shù)組保存到文件中void save_data()FILE *fp;int i,k;k =dd.

11、count;fp =fopen( "c:/dada.txt" , "w" );fwrite( &k, sizeof ( int ),1,fp);for (i =0;i <k;i +)fwrite( &dd. stui, sizeof ( struct student),1,fp);fclose(fp);/ 輸入學(xué)生記錄(按班級(jí)和學(xué)期)void add_data()struct student st;int b;int i,k,j;char term10,cla10;printf("請(qǐng)輸入所要錄入的學(xué)生的班級(jí):"

12、);scanf( "%s",cla);printf("請(qǐng)輸入所要錄入的學(xué)期:" );scanf( "%s",term);while (1)j =0;printf( "n 請(qǐng)輸入學(xué)生信息:" );printf( "n 姓名 t 學(xué)號(hào) t 語(yǔ)文 t 數(shù)學(xué) t 英語(yǔ) t 計(jì)算機(jī) " );printf( "nn");scanf( "%s%s%f%f%f%f,"st . name,st . no, &st . ch, &st . ma,&st

13、 . en, &st . com);for (i =0;i <dd. count;i +)if (strcmp(dd . stui . no,st . no) =0&&strcmp(dd . stui . term,term) =0)if (strcmp(dd . stui . no,st . no) =0)printf( "n 信息已存在,請(qǐng)重新輸入!n" );j =1;break;if (j =1)continue ;if (j =0)k = dd . count;strcpy(dd . stuk . cla,cla);strcpy(dd

14、. stuk . term,term);strcpy(dd. stuk. name,st. name);strcpy(dd. stuk. no,st . no);dd. stuk. ch=st .ch;dd. stuk. ma=st .ma;dd. stuk. en=st .en;dd. stuk. com=st. com;dd. count +;printf("nn 繼續(xù)添加學(xué)生信息1-yes 0-no:");scanf("%d", &b);if (b =0) break;save_data();/ 將數(shù)據(jù)從文件讀到結(jié)構(gòu)體數(shù)組中void rea

15、d_data()FILE *fp;int i,k;struct student st;k=0;if (access( "c:/dada.txt" ,0) =-1) / 如果文件不存在fp =fopen( "c:/dada.txt" , "w" );fwrite( &k, sizeof ( int ),1,fp);fclose(fp);fp =fopen( "c:/dada.txt" , "r" );fread( &k, sizeof ( int ),1,fp);dd. count

16、 =k;for (i =0;i <k;i +)fread( &st, sizeof ( struct student),1,fp);strcpy(dd. stui. cla,st .cla);strcpy(dd. stui. term,st. term);strcpy(dd .stui. name,);strcpy(dd .stui. no,st . no);dd. stui .ch=st .ch;dd. stui. ma=st .ma;dd. stui. en=st .en;dd. stui. com=st. com;fclose(fp);/ 修改學(xué)生成績(jī)記錄(按

17、班級(jí)和學(xué)期)void edit_data()char cla10,term10;int i; float ch,ma,en,com;printf("請(qǐng)輸入所要修改記錄的班級(jí):" );scanf("%s",cla);printf("請(qǐng)輸入所要修改記錄的學(xué)期:" );scanf("%s",term);for (i =0;i <dd. count;i +)if (strcmp(dd . stui . cla,cla) =0&&strcmp(dd . stui . term,term) =0 )pri

18、ntf("n 姓名:s,學(xué)號(hào): %s",dd . stui . name,dd. stui . no);printf( "n 請(qǐng)修改學(xué)生數(shù)據(jù):" );printf("n 語(yǔ)文成績(jī):" );scanf("%f" , &ch);dd. stui . ch=ch;printf("n 數(shù)學(xué)成績(jī):");scanf("%f" ,&ma);dd. stui . ma=ma;printf("n 英語(yǔ)成績(jī):");scanf("%f" ,&

19、amp;en);dd. stui . en=en;printf("n 計(jì)算機(jī)成績(jī):");scanf("%f" , &com);dd. stui . com=com;printf( "nn 編輯學(xué)生記錄成功!" ); save_data(); / 按班級(jí)輸出成績(jī)單void query_data_cla()int i;char cla10;printf( "n 請(qǐng)輸入要查詢(xún)成績(jī)的班級(jí):" );scanf( "%s",cla);for (i =0;i <dd. count;i +)if

20、(strcmp(dd . stui . cla,cla) =0)數(shù)學(xué) t 英語(yǔ) t 計(jì)算機(jī),dd . stui . cla,dd . ch,dd . stui . ma,dprintf( "班級(jí) t 學(xué)期 t 姓名 t 學(xué)號(hào) t 語(yǔ)文 t ");printf( "nn");printf( "%st%st%st%st%.1ft%.1ft%.1ft%.1fn"stui . term,dd . stui . name,dd. stui . no,dd . stui d. stui . en,dd . stui . com);/ 查詢(xún)不及格科

21、目的學(xué)生名單void query_data_pass()int i,s =0;char cla10,term10;printf("請(qǐng)輸入所要查詢(xún)的班級(jí):");scanf("%s",cla);printf("請(qǐng)輸入所要查詢(xún)的學(xué)期:");scanf("%s",term);for (i =0;i <dd. count;i +) if (strcmp(dd . stui . term,term) =0&&strcmp(dd . stui . cla,cla) =0)printf("n姓名:%

22、s學(xué)號(hào):%s的不及格科目有:,dd . stui . name,dd. stui . no);" 語(yǔ)文t");s+;" 數(shù)學(xué)t");s+;" 英語(yǔ)t");s+;" 計(jì)算機(jī) t" );s +; if (dd . stui . ch<60) printf( s=0;if (dd . stui . ma<60) printf( s=0;if (dd . stui . en<60) printf( s=0;if (dd . stui . com<60) printf( s=0;if (s =0)pr

23、intf( "0 科 " );/ 成績(jī)統(tǒng)計(jì) ( 按班級(jí)和學(xué)期) 求總分和平均分void count_data()char cla10,term10;int i,k =0; float sum4 = 0.0 ,average4; printf("請(qǐng)輸入所要統(tǒng)計(jì)記錄的班級(jí):" );scanf("%s",cla);printf("請(qǐng)輸入所要統(tǒng)計(jì)記錄的學(xué)期:" );scanf("%s",term);for (i =0;i <dd. count;i +)if (strcmp(dd . stui. c

24、la,cla) =0&&strcmp(dd . stui . term,term) =0)k +;sum0+=dd. stui.ch;sum1+=dd. stui.ma;sum2+=dd. stui.en;sum3+=dd. ;average0=sum0 / k;average1=sum1 / k;average2=sum2 / k;average3=sum3 / k;printf( "n所查詢(xún)SH級(jí)學(xué)期的各科總分為:n" ,cla,term);printf( "語(yǔ)文 t 數(shù)學(xué) t 英語(yǔ) t 計(jì)算機(jī) " );printf(

25、 "nn");printf( "%.1ft%.1ft%.1ft%.1ft",sum0,sum1,sum2,sum3);printf( "n所查詢(xún)SH級(jí)學(xué)期的各科平均分為:n" ,cla,term);printf( "語(yǔ)文 t 數(shù)學(xué) t 英語(yǔ) t 計(jì)算機(jī) ");printf( "nn");printf( "%.1ft%.1ft%.1ft%.1ft" ,average0,average1,average2, average3);/ 主函數(shù)void main()int fun;re

26、ad_data();menu();while (1)printf( "請(qǐng)輸入功能號(hào)0-8:" , &fun);scanf( "%d", &fun);switch (fun)case 0:/ 退出break;case 1: / 查看所有學(xué)生信息view_data(); break;case 2: / 按班級(jí)和學(xué)期輸入學(xué)生記錄add_data(); break;case 3: / 按班級(jí)和學(xué)期修改學(xué)生記錄edit_data();break;case 4: / 查詢(xún)(按班級(jí))query_data_cla(); break;case 5: / 查詢(xún)不及格學(xué)生及科目(按照班級(jí)和學(xué)期)query_data_pass();break;case 6: / 成績(jī)統(tǒng)計(jì) ( 按班級(jí)和學(xué)期求平均分和總分)count_data();break;if (fun =0) break ;to_menu()

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論