最新C語言課程設計報告學生成績管理系統(tǒng)_第1頁
最新C語言課程設計報告學生成績管理系統(tǒng)_第2頁
最新C語言課程設計報告學生成績管理系統(tǒng)_第3頁
最新C語言課程設計報告學生成績管理系統(tǒng)_第4頁
最新C語言課程設計報告學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、戶輸入的數(shù)據(jù)與實際不相符如輸入成績 的數(shù)值為負,則程序應輸出相應的提示: “數(shù)據(jù)不存在” 。再者就是, 當再輸入完相應的數(shù)據(jù)后, 程序作出相應的提示, 詢問用戶是否要繼 續(xù)輸入。在排列學生成績時候,如果出現(xiàn)成績相同的情況,程序自動 作出處理。四、設計任務將程序分為六個方面: 1. 輸入學生成績 、2. 保存成績 、3. 學生成 績排序 、4. 學生成績查詢 、5. 學生成績清單 、6. 退出管理系統(tǒng)。 每個人負責兩個方面的程序,其中侯蒙召負責 1、2 兩個程序,楊天 靜負責 3、4 兩個,張振陸負責 5、6兩個,最后交由組長侯蒙召組合 整理,形成現(xiàn)在的總的程序。流程圖:四、詳細設計源程序:#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(" 歡迎使用學生成績管理系統(tǒng) , 該系統(tǒng)包括以下幾項功 能 ,

4、 請根據(jù)提示做相應操作 n");printf(" 1->輸入學生成績 n");printf(" 2->保存成績 n");printf(" 3->學生成績排序 n");printf(" 4->學生成績查詢 n");printf(" 5->學生成績清單 n");printf(" 6->退出管理系統(tǒng) n");/* 選擇操作 */printf("n");printf(" 請選擇要進行操作的編號 :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(" 請輸入學生信息 n");printf("NO.:");scanf("%d",&stunum.no);printf(" 姓名 :");scanf("%10s",);printf(&q

6、uot; 數(shù)學 :");scanf("%4d",&stunum.math);printf(" 程序設計 :");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ù)學成績排 n"); printf("2- 按程序設計成績排 n");printf("3- 按英語成績排 n");p

9、rintf("4- 按語文成績排 n");printf("5- 按平均分成績排 n"); printf("6- 返回主菜單 n"); scanf("%d",&sort_no);if(sort_no=1) / 數(shù)學成績排序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(" 學號 姓名 數(shù)學 程序 英語 語文 均分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)/ 程序設計成績排序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(" 學號 姓名 數(shù)學 程序 英語 平均分 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) / 英語成績排序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(" 學號 姓名 數(shù)學 程序 英語 平均分 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) / 語文績排序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(" 學號 姓名 數(shù)學 程序 英語 平均分 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(" 學號 姓名 數(shù)學 程序 英語 平均分 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(" 錯誤的排序方式 !n"); return;void list()int i;printf(" 學生成績清單 n");printf(" 學號 姓名 數(shù)學 程序 英語 語文 均分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("請選擇以下的方式對學生數(shù)據(jù)進行查詢 :n");printf("1->學號查詢 n");print

17、f("2->姓名查詢 n");printf("3->返回主菜單 n");printf("請選擇要進行查詢內容的編號 :n");scanf(" %d", &search_no); if(search_no=1)printf("請輸入要查詢的學號 n");scanf("%d", &no);for(i=0; i<num; i+)if(no=stui.no)printf(" 學號 姓名 數(shù)學 程序 英語 語 文 平均分 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(" 請輸入要查詢的姓名 n"); scanf("%s", NAME);for(i=0; i<num; i+)if(str

19、cmp(NAME,)=0)printf(" 學號 姓名 數(shù)學 程序設計 英語 語文 平均分 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;五、程序使用說明、測試分析及結果程序的主要功能 :1- 輸入學生成績2- 保存成績3- 學生成績排

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

溫馨提示

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

最新文檔

評論

0/150

提交評論