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

下載本文檔

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

文檔簡(jiǎn)介

1、精品文檔機(jī)電工程學(xué)院中南大學(xué)本科生C語言課程設(shè)計(jì)題 目 學(xué)生成績(jī)管理系統(tǒng)精品文檔一、課程設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng)給出 n 個(gè)學(xué)生的 4 門考試的成績(jī)表,每個(gè)學(xué)生的信息由學(xué)號(hào)、姓 名以及各科成績(jī)組成。 對(duì)學(xué)生的考試成績(jī)進(jìn)行有關(guān)統(tǒng)計(jì): 按某一科分 數(shù)或平均分?jǐn)?shù)高低次序,列出名次表,分?jǐn)?shù)相同的為同一名次;按名 次打印出每個(gè)學(xué)生的學(xué)號(hào)、 姓名、總分以及各科成績(jī), 并打印統(tǒng)計(jì)表。三、概要設(shè)計(jì)程序要有的功能:1. 輸入學(xué)生成績(jī)2. 保存成績(jī)3. 學(xué)生成績(jī)排序4. 學(xué)生成績(jī)查詢5. 學(xué)生成績(jī)清單6. 退出管理系統(tǒng)程序運(yùn)行當(dāng)中, 通過選擇對(duì)應(yīng)的功能序號(hào)來實(shí)現(xiàn)所需功能。 對(duì)輸入的 數(shù)據(jù)要有事先的分析, 如果用

2、戶輸入的數(shù)據(jù)與實(shí)際不相符如輸入成績(jī) 的數(shù)值為負(fù),則程序應(yīng)輸出相應(yīng)的提示: “數(shù)據(jù)不存在” 。再者就是, 當(dāng)再輸入完相應(yīng)的數(shù)據(jù)后, 程序作出相應(yīng)的提示, 詢問用戶是否要繼 續(xù)輸入。在排列學(xué)生成績(jī)時(shí)候,如果出現(xiàn)成績(jī)相同的情況,程序自動(dòng) 作出處理。四、設(shè)計(jì)任務(wù)將程序分為六個(gè)方面: 1. 輸入學(xué)生成績(jī) 、2. 保存成績(jī) 、3. 學(xué)生成 績(jī)排序 、4. 學(xué)生成績(jī)查詢 、5. 學(xué)生成績(jī)清單 、6. 退出管理系統(tǒng)。 每個(gè)人負(fù)責(zé)兩個(gè)方面的程序,其中侯蒙召負(fù)責(zé) 1、2 兩個(gè)程序,楊天 靜負(fù)責(zé) 3、4 兩個(gè),張振陸負(fù)責(zé) 5、6兩個(gè),最后交由組長(zhǎng)侯蒙召組合 整理,形成現(xiàn)在的總的程序。流程圖:四、詳細(xì)設(shè)計(jì)源程序:#i

3、nclude<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct Studentchar name20;int no;int math;int program;int english;int chinese;int aver;stu100,t;int num=0;int menu()int a;char s20;system("cls");/* 程序介紹 */printf(" 歡迎使用學(xué)生成績(jī)管理系統(tǒng) , 該系統(tǒng)包括以下幾項(xiàng)功 能 ,

4、 請(qǐng)根據(jù)提示做相應(yīng)操作 n");printf(" 1->輸入學(xué)生成績(jī) n");printf(" 2->保存成績(jī) n");printf(" 3->學(xué)生成績(jī)排序 n");printf(" 4->學(xué)生成績(jī)查詢 n");printf(" 5->學(xué)生成績(jī)清單 n");printf(" 6->退出管理系統(tǒng) n");/* 選擇操作 */printf("n");printf(" 請(qǐng)選擇要進(jìn)行操作的編號(hào) :n"

5、;); doprintf("Enter you choice(06):"); scanf("%s",s); a=atoi(s);while (a<0 | a>6);return a;int enter()int i=0;printf(" 請(qǐng)輸入學(xué)生信息 n");printf("NO.:");scanf("%d",&stunum.no);printf(" 姓名 :");scanf("%10s",);printf(&q

6、uot; 數(shù)學(xué) :");scanf("%4d",&stunum.math);printf(" 程序設(shè)計(jì) :");scanf("%4d",&gram);printf(" 英語 :");scanf("%4d",&stunum.english);printf(" 語文 :");scanf("%4d",&stunum.chinese);stunum.aver=(stunum.math+stunum.pr

7、ogram+stunum.e nglish+stunum.chinese)/4;num=num+1;printf(" 是否繼續(xù)輸入? (y/n):n");if(getch()='y'|getch()='Y')enter();elsereturn(0);void save()FILE*fp;int i;if(fp=fopen("stu.dat","wb")=NULL)printf("The fire can not openn");return;for(i=0;i<num;i+)

8、if(fwrite(&stui,sizeof(struct Student),1,fp)!=1) printf("The wirte errorn");return;printf(" 數(shù)據(jù)保存成功 n"); system("pause");fclose(fp);void sort()int i, j, k;int sort_no;printf("1- 按數(shù)學(xué)成績(jī)排 n"); printf("2- 按程序設(shè)計(jì)成績(jī)排 n");printf("3- 按英語成績(jī)排 n");p

9、rintf("4- 按語文成績(jī)排 n");printf("5- 按平均分成績(jī)排 n"); printf("6- 返回主菜單 n"); scanf("%d",&sort_no);if(sort_no=1) / 數(shù)學(xué)成績(jī)排序for(i=0; i<num-1; i+)k = i;for(j=i+1; j<num; j+)if(stuj.math>stuk.math)k=j;t=stuk;stuk=stui;stui=t;printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 語文 均分n&qu

10、ot;);for(i=0; i<num; i+)printf("%4d %5s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);else if(sort_no = 2)/ 程序設(shè)計(jì)成績(jī)排序for(i=0; i<num-1; i+)k = i;for(j=i+1; j<num; j+) if(gram>gram) k=j

11、; t=stuk; stuk=stui; stui=t;語文printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 平均分 n");for(i=0; i<num; i+)printf("%4d %5s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);else if(sort_no = 3) / 英語成績(jī)排序for(i=0; i<num-1; i+)k

12、 = i;for(j=i+1; j<num; j+)if(stuj.english>stuk.english) k=j; t=stuk; stuk=stui; stui=t;printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 平均分 n");for(i=0; i<num; i+)printf("%4d %5s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, st

13、ui.aver);else if(sort_no = 4) / 語文績(jī)排序for(i=0; i<num-1; i+)k = i;for(j=i+1; j<num; j+)if(stuj.chinese>stuk.chinese) k=j; t=stuk; stuk=stui; stui=t;printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 平均分 n");語文語文for(i=0; i<num; i+)printf("%4d %5s %5d", stui.no, , stui.math);printf("%

14、5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);else if(sort_no=5) / 平均分排序for(i=0; i<num-1; i+)k = i; for(j=i+1; j<num; j+) if(stuj.aver>stuk.aver) k=j; t=stuk; stuk=stui; stui=t;語文printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 平均分 n");for(i=0; i<num; i+)printf("%4d %5

15、s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);else if(sort_no=6) / 返回上層return;elseprintf(" 錯(cuò)誤的排序方式 !n"); return;void list()int i;printf(" 學(xué)生成績(jī)清單 n");printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 語文 均分n");f

16、or(i=0; i<num; i+)printf("%4d %5s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);void search()char NAME20;int search_no;int no,i;printf("請(qǐng)選擇以下的方式對(duì)學(xué)生數(shù)據(jù)進(jìn)行查詢 :n");printf("1->學(xué)號(hào)查詢 n");print

17、f("2->姓名查詢 n");printf("3->返回主菜單 n");printf("請(qǐng)選擇要進(jìn)行查詢內(nèi)容的編號(hào) :n");scanf(" %d", &search_no); if(search_no=1)printf("請(qǐng)輸入要查詢的學(xué)號(hào) n");scanf("%d", &no);for(i=0; i<num; i+)if(no=stui.no)printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序 英語 語 文 平均分 n");p

18、rintf("%4d %5s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);elseprintf(" 數(shù)據(jù)不存在 ");return;else if(search_no=2)printf(" 請(qǐng)輸入要查詢的姓名 n"); scanf("%s", NAME);for(i=0; i<num; i+)if(str

19、cmp(NAME,)=0)printf(" 學(xué)號(hào) 姓名 數(shù)學(xué) 程序設(shè)計(jì) 英語 語文 平均分 n");printf("%4d %5s %5d", stui.no, , stui.math);printf("%5d %5d %4d %4dn",stui.english, stui.chinese, gram, stui.aver);elseprintf(" 數(shù)據(jù)不存在 ");return; elsereturn; void main()menu();while(1)s

20、witch(menu() case 1:enter();break;case 2:save();break;case 3:sort(); system("pause"); break;case 4:search(); system("pause"); break;case 5:list(); system("pause"); break;case 6:printf("baibai!n"); exit(0);break;五、程序使用說明、測(cè)試分析及結(jié)果程序的主要功能 :1- 輸入學(xué)生成績(jī)2- 保存成績(jī)3- 學(xué)生成績(jī)排

21、序4- 學(xué)生成績(jī)查詢5- 學(xué)生成績(jī)清單6- 退出管理系統(tǒng) 輸入程序?qū)?yīng)功能的相應(yīng)序號(hào),選擇相應(yīng)功能,然后根據(jù)提示繼續(xù)。 例如:想要輸入學(xué)生的相關(guān)信息,輸入 1,然后根據(jù)提示輸入學(xué)生相 關(guān)信息,再輸入 2,保存學(xué)生信息。2、對(duì)應(yīng)測(cè)試結(jié)果與分析:程序運(yùn)行當(dāng)中, 通過選擇對(duì)應(yīng)的功能序號(hào)來實(shí)現(xiàn)所需功能。 對(duì)輸入的 數(shù)據(jù)要有事先的分析, 如果用戶輸入的數(shù)據(jù)與實(shí)際不相符如輸入成績(jī) 的數(shù)值為負(fù),則程序應(yīng)輸出相應(yīng)的提示: “數(shù)據(jù)不存在”。當(dāng)再輸入 完相應(yīng)的數(shù)據(jù)后,程序作出相應(yīng)的提示,詢問用戶是否要保存數(shù)據(jù)。3、每個(gè)模塊設(shè)計(jì)和調(diào)試時(shí)存在問題的思考輸入完相應(yīng)的數(shù)據(jù)后, 程序不會(huì)自動(dòng)作出相應(yīng)的提示, 詢問用戶是否 要保存數(shù)據(jù)。在排列學(xué)生成績(jī)時(shí)候,如果出現(xiàn)成績(jī)相同的情況,程序 自動(dòng)作出處理。4、運(yùn)行界面(截圖)茨1-2-3-4-5-一月成成簽 塞生生出 A A $ A四生績(jī)績(jī)績(jī)雷系QUJ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論