c語言試驗研究報告學生學籍系統(tǒng)_第1頁
c語言試驗研究報告學生學籍系統(tǒng)_第2頁
c語言試驗研究報告學生學籍系統(tǒng)_第3頁
c語言試驗研究報告學生學籍系統(tǒng)_第4頁
c語言試驗研究報告學生學籍系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、個人收集整理僅供參考學習實驗報告學生學籍管理系統(tǒng)專業(yè): 信息管理與信息系統(tǒng)班級:學號:姓名:學生學籍管理系統(tǒng)一、實驗要求:一個班級有若干名學生(不超過10名),共有三門課程,分別是語文、數(shù)學、英語,要求編寫一個成績地管理系統(tǒng),每個學生要求有學號、姓名、性別、 三門課地成績以及平均成績,要實現(xiàn)從鍵盤上輸入學號(必須為數(shù)字)、姓名、性別、三門課程地成績,并求每一位學生地平均成績(即每一行地平均值)、每一位學生地最高分(每一行地最大值),求每一門課程地平均分(即每一列地平 均值)、每一門課地最高分(即每一列地最大值),并輸出全部結果根據(jù)學生地 平均成績進行排序,對語文、數(shù)學、英語成績進行排序,并輸出

2、排序結果,排序 必須使用冒泡排序法.并且具有如下地菜單:b5E2RGbCAP 學生學籍管理系統(tǒng)* MENU *1、Enter new data2、Browse all3、Search by num4、Order by average5、Exit用戶可以根據(jù)菜單來選擇操作,,菜單地含義如下:1、En ter new data輸入新數(shù)據(jù)2、Browse al瀏覽所有數(shù)據(jù)3、Search by num根據(jù)學號查詢學生信息4、Order by average根據(jù)平均成績排序5、Exit退出系統(tǒng)實驗步驟:二、實驗目地1、了解和熟悉Visual C+軟件編程開發(fā)環(huán)境2、熟練掌握結構化程序設計地步驟和模塊化

3、設計方法3、熟練掌握C語言數(shù)據(jù)類型,熟記字符型數(shù)據(jù)和整形數(shù)據(jù)地定義和使用4、熟練掌握用while語句、dowhile語句和for語句實現(xiàn)循環(huán)結構程序設計 地方法5、掌握一維數(shù)組、二維數(shù)組地定義、賦值和輸入輸出地方法6、掌握與數(shù)組有關地算法(特別是排序算法,熟練掌握冒泡排序法)7、 熟悉函數(shù)地定義、聲明方法及全局變量和局部變量地概念與用法,掌握函 數(shù)地調用方法&掌握結構體類型變量地定義和使用及結構體類型數(shù)組地概念和應用三、實驗步驟1、分析設計題目:根據(jù)題目要求,可以使用結構體數(shù)組來存儲學生地信息,包括學號、姓名、性別、各科成績、平均成績五個成員,分別使用字符數(shù)組、整型數(shù)組、浮點 型變量來

4、表示.在主函數(shù)之外,分別編寫菜單函數(shù) menu()、輸入函數(shù)enter()、 瀏覽函數(shù)browse()、查找函數(shù)search©排序函數(shù)order()等函數(shù),通過主函數(shù) 調用 menu來實現(xiàn).DXDiTa9E3d2、實驗流程圖:否結束3、實驗模塊:輸入模塊、瀏覽模塊、查找模塊、排序模塊、退出系統(tǒng)4、程序地調試與測試:所謂程序調試是指對程序地查錯與排錯.在編寫完一個源程序之后,不要 立即進行編譯,而應對程序進行全面地人工檢查一遍,檢查無誤后,可以開 始進行程序調試.由編譯系統(tǒng)進行檢查、發(fā)現(xiàn)錯誤,根據(jù)編譯系統(tǒng)提示地錯誤 類型和警告及出現(xiàn)地位置,我們可以定位到錯誤地點進行修改, 然后再編譯,

5、 如此反復進行,直至不再出現(xiàn)錯誤位置,最后才進行程序地連接于運行.調試完以后,下一步就是對程序進行測試,運行程序,向程序中輸入數(shù)據(jù),根據(jù) 輸出結果是否正確(是否符合自己地想法)來判斷程序是否正確,如果不正 確或不符合自己地目地,就需要對程序進行修改.然后再調試,再測試,直至 結果無誤或符合要求后,測試才算結束,此時,程序才算是滿足題目要求地 正確程序.RTCrpUDGiT5、運行結果:(1運行結果界面如下:6 / 21h . 一 I- 料<fl> - IJUhdL'F." 1.JMNuUh41 111.-呂(2選擇1號菜單,輸入10名同學信息,運行結果如下:1 鳥

6、4& «¥«- PteittdLW.B'J !;CW«1'|#HWii>E 取A也示(3)選擇2號菜單,瀏覽所有信息,運行結果如下:SI : i"卉 ar加i!MrrW"l4buEy ”NO 01 02 03 04 05 06 07 08 0910夏肺鳳晨陽敕堯磊柳嶷ChineseE08S767477676978 fifi89Math787886B484旳甜6987781592的鈕時907197&4純66S1Elaverage83.333亂0075.3375.3363.67 眥0090.6770.

7、3386,弟77.67MdJiL course929286fJ4906797789089ave_chitiese ave Math ave.EtielishB2.60 Si. 2079.40MaA_Chines LUii_Math Mai_Enjlish89B797There are 10 record.段腳拼音半:- tl J Agflajayt .HKit»dLWj關 i 世 7 心4閒耐世- DHtcrowfL 如 £曲 吐皀 23fl,'(4)選擇3號菜單,按學號查找學生信息,例如查找學號為03地同德信 息,輸入格式如下:nt er nan曙 that yo

8、u wng to search J numzOS搜狗拼音半:1=7.* A.4»Pj;p* 雀nil - j?fCyu/*i°r*wv* .J U也"iy.呂宅烏冷書(5)查詢學號為03地同學地信息運行結果如下:個人收集整理僅供參考學習(6)選擇4號菜單,進入學生成績排序功能菜單,運行結果如下:p 融 js 聯(lián)帯如灑 血冏ll. in 晦電:呂 零舟iia軋4 材/ *耳豈貼楚n'or. 電円 ZtS2(8)選擇2號功能菜單,按語文成績從小到大排序,運行結果如下:巴 IAwgpmaL4hugioxu.M-1 4 6 7 8 O 7 8 8 .9 9 h 7

9、 7 7 7 8 B 8 B B 6 恥fljue晨園陽磊夏政殊柳畫寒 績;n劉李孫李華主藏劉南韓 :+ * : T + :”;: gN00403Q5曲010602腫0710返回上一級請按數(shù)宇0I技狗爭音半:riI-mttU J i a44 juoyK - r*W6=4L 0.S J "tCiMrfinngc 亡J ««W«T1 0 嗟J US!電mH!旨1cr鶴邑22:比(9)選擇3號功能菜單,按數(shù)學成績從小到大排序,運行結果如下:8 / 21個人收集整理僅供參考學習IX01采結畤ttl冊J1at6978787882e48486eG87大到r腫噸番師夏

10、寒孜陽展鳳堯測繾n豐蠱華韓工和劉豐南劉谿NOQ302M10060-5M030709返回上一級請按數(shù)宇口- 時q 負40 MV1 -. 8門簾阿tfgr仲*fc-wdL Mtr.gt. 7目 嘰斜 2SF(10)選擇4號功能菜單,按英語成績從小到大排序,運行結果如下:En64e466祠門9090929297濟NO0308LO04060905020107(11)選擇5號功能菜單,返回主菜單,運行結果如下:9 / 21R卜 八 q a體 nar - He.*:kTL血m n札陽J AWF1MT 科目哎H嗨搜駒拼音羋:(MLT5 + (MC個人收集整理僅供參考學習7寸負ffl. A j 軻B Nkew

11、A 世丄S 電fl ns(12)選擇5號菜單,退出系統(tǒng),按任意鍵結束程序,運行結果如下:四、實驗體會通過完成這個綜合地設計實例,從中我熟悉了 Visual C+開發(fā)環(huán)境,熟練掌 握了在Visual C+軟件環(huán)境下編寫和調試程序.通過對程序地調試,我從學到了許 多知識,根據(jù)編譯時系統(tǒng)提供地錯誤提示,我能很快地找到錯誤并排除這些錯誤, 是程序能正確運行通過這個環(huán)節(jié)地不斷練習,我積累了豐富地經(jīng)驗,為以后編 程和調試程序奠定了基礎.通過運行程序,對程序不斷改動,仔細觀察和分析所 出現(xiàn)地情況,鍛煉了我對立思考地能力,而且增強了我對C語言應用這門課程地興趣.5PCzVD7HxA五、源程序#i nclude

12、<stdio.h> /* 頭文件 */#i nclude<stri ng.h>#i nclude<stdlib.h>#define N 100#define M 3typedef struct student /* 定義學生結構體 */char nu m11;char n ame20;char sex3;int scoreM;float ave;int Max_course;STU;-STU stuN,stu_ChineseN,stu_MathN,stu_EnglishN; jLBHrnAlLg int MaxM;float ave_Ch in ese;fl

13、oat ave_Math;float ave_E nglish;int n;/*實際存儲地學生個數(shù)*/void no_input(int i,int n)/*i表示第i個地學生信息,n表示比較到第n個學生*/xHAQX74J0Xint j,k,w1;dow仁0;prin tf("NO.:");sca nf("%s",&stui. num);for(j=0;stui.numj!='0'j+)/* 學號輸入函數(shù),作了嚴格規(guī)定 */ if(stui. nu mjv'0'|stui. numj>'9'

14、)/*判斷學號是否 為數(shù)字*/ LDAYtRyKfEputs("Input error! Only be made up of (0-9).Pleaserein put!n"); zzz6ZB2Ltkw1=1;break; if(w1!=1) for(k=0;k<n;k+)/*比較到第n個學生*/if(k!=i&&strcmp(stuk. nu m,stui. num )=0)puts("This record is exist.Please rei nput!n"); w1=1;break;while(w 1=1);void in

15、put(int i)/*輸入一個記錄函數(shù)*/int j,sum;no_input(i,i);/*調用學號輸入函數(shù)*/prin tf(" name:");scan f("%s",&stui. name);prin tf("sex:");scan f("%s",&stui.sex);for(j=0;j<M;j+)prin tf("score %d:",j+1); sca nf("%d",&stui.scorej); for(sum=0,j=0;j&l

16、t;M;j+) sum+=stui.scorej;stui.ave=sum*1.0/M;/*每一行地平均值,即每位同學地三門課總地平均 分*/void menu();/* 函數(shù)聲明 */void enter()/* 輸入模塊 */int i,j,f;system("CLS");/* 清屏 */printf("How many students(0-%d)?:",N);/* 要輸入地記錄個數(shù) */ scan f("%d",&n);prin tf("nEn ter data nownn ”); for(i=0;i <

17、;n ;i+)prin tf("n In put %dth stude nt record.n",i+1);input(i);/*調用輸入函數(shù)*/for(i=0;i<n;i+)/*求每一行地最大值,即求每一位學生地三門課中地最高 分*/ stui.Max_course=stui.score0; for(j=1;j<M;j+)if(stui.Max_course<stui.scorej)stui.Max_course=stui.scorej; _for(i=0;i< n;i+)/* 把輸入地信息分別復制到 stu_ChineseN,stu_MathN,

18、stu_EnglishN中*/ dvzfvkwMIl_ 一 一stu_Ch in esei=stui;stu_Mathi=stui;stu_E nglishi=stui;printf("返回主菜單請按數(shù)字0n");dosca nf("%d", &f);if(f=0)menu();break;else printf("輸入有誤,請重新輸入:");while(f!=0);void printf_one(int i)/* 顯示一個記錄函數(shù) */ _int j;prin tf("%3s :%3s",stui. nu

19、m,stui. name);for(j=0;j<M;j+)prin tf("%10d",stui.scorej);prin tf("%10.2f",stui.ave);prin tf("%9dn",stui.Max_course); _void browse()/* 瀏覽模塊 */int i,j,f,k=0;system("CLS");/* 清屏 */for(i=0;i<n;i+)/*求第一列地平均值,即求語文平均成績*/k=k+stui.score0;ave_Chi nese=(k*1.0)/n;k=

20、0;for(i=0;i<n;i+)/*求第二列地平均值,即求數(shù)學平均成績*/k=k+stui.score1; ave_Math=(k*1.0)/n; _k=0;for(i=0;i<n;i+)/*求第三列地平均值,即求英語平均成績*/k=k+stui.score2;ave_E nglish=(k*1.0)/n; _Max0=stu0.score0;/*第一列地最大值,即語文成績最高分*/for(i=1;i <n ;i+)if(Max0<stui.score0)Max0=stui.score0;Max1=stu0.score1;/*第二列地最大值,即數(shù)學成績最高分*/ fo

21、r(i=1;i <n ;i+)if(Max1<stui.score1)Max1=stui.score1;Max2=stu0.score2;/*第三列地最大值,即英語成績最高分*/ for(i=1;i <n ;i+)if(Max2<stui.score2)Max2=stui.score2;puts("n"); rqyn14ZNXIprintf("n NO :nameChinese MathEnglishaverageMax_coursen") ;EmxvxOtOcofor(i=0;i <n ;i+)if(i!=0)&&

22、amp;(i%10=0)/*目地是分屏顯示 */prin tf("nn Pass any key to con ti nu e."); getchar();puts("nn"); printf_one(i);/*調用顯示一個記錄函數(shù)*/ _puts("n"); SixE2yXPq5printf("ave_Chinese ave_Math ave_English'n");prin tf("%10.2f%10.2f%10.2fn",ave_Chi nese,ave_Math,ave_E ng

23、lish);/* 顯示 語文、數(shù)學、英語平均成績*/6ewMyirQFLputs("n") ;kavU42VRUsprintf(” Max_Chi neseMax_Math Max_E nglish'n");prin tf("%10d%10d%10dn",Max0,Max1,Max2);/* 顯示語文、數(shù)學、英語成績 */y6v3ALoS89puts("n"); M2ub6vSTnPprin tf("n'tThere are %d record.' n", n);puts(&quo

24、t;n"); 0YujCfmUCwprintf("返回主菜單請按數(shù)字0n");dosca nf("%d", &f);if(f=0)menu();break;else printf("輸入有誤,請重新輸入:");while(f!=0);void search。/*查找模塊 */int i,k,f;struct stude nt s;k=-1;system("CLS");/* 清屏 */printf("nnEnter name that you wang to search! num:&qu

25、ot;);euts8ZQVRdscanf("%s",&s.num);/*輸入要查找地學生地學號*/printf("nNO :nameChinese MathEnglishaverageMax_coursen");sQsAEjkW5Tfor (i=0;i<n;i+)/* 查找信息 */if(strcmp(s. nu m,stui. num)=0)k=i;/*找到要查找地學生記錄*/printf_one(k);/*調用顯示一個記錄函數(shù)*/break;if(k=-1)prin tf("nnNO exist!");printf(

26、"返回主菜單請按數(shù)字0n");dosca nf("%d", &f);if(f=0)menu(); break;else printf("輸入有誤,請重新輸入:"); while(f!=O);/*函數(shù)聲明*/void order_ave();void order_Chi nese();void order_Math();void order_E nglish();void order()/* 排序模塊 */int i,j,f,m,w1;struct stude nt s;system("CLS"); do s

27、ystem("CLS"); puts("ttt 學生成績排序nn");puts("t*ORDER*n" );GMslasNXkAputs("ttt1.對每一位學生地平均成績排序n");puts("ttt2.對語文課成績排序n");puts("ttt3.對數(shù)學課成績排序n");puts("ttt4.對英語課成績排序n");puts("ttt5.返回主菜單 n");puts("t*n");TlrRGchYzgprin t

28、f("Choice your number(1-5): bb");sca nf("%d",&m);if(m<0|m>5)w1=1;printf("your choice is not between 1 and 5,Please inputagai n: ");7EqzcWLZNxgetchar();else w1=0;while(w 1=1);switch(m)/* 選擇功能 */case 1:order_ave();break;case 2:order_Chi nese();break;case 3:order

29、_Math();break;case 4:order_E nglish();break;case 5:me nu ();prin tf("The ordered data is:n");browse();void order_ave()/*對平均成績從小到大進行冒泡排序法*/int i,j,f;struct stude nt s;system("CLS");for(i=0;i <n ;i+)for(j=i;j< n;j+)if(stui.ave>stuj.ave)s=stui;stui=stuj;stuj=s;puts("n&

30、quot;); lzq7IGfO2Eprintf("每位學生地平均成績從小到大地排序結果n");prin tf(" NO : n ameaverage n");for(i=0;i <n ;i+)prin tf("%3s :%3s%11fn",stui. num,stui. name,stui.ave); zvpgeqJ1hkputs("n"); NrpoJac3v1printf("返回上一級請按數(shù)字0n");dosca nf("%d", &f);if(f=0)o

31、rder();break;else printf("輸入有誤,請重新輸入:");while(f!=0);void order_Ch in ese()/*對語文成績從小到大進行冒泡排序法*/int i,j,f;struct stude nt s;system("CLS");for(i=0;i <n ;i+)for(j=i;j< n;j+)if(stu_Chi nesei.score0>stu_Chi nesej.score0)1nowfTG4KI 一 一s=stu_Ch in esei;stu_Chi nesei=stu_Chi nese

32、j;stu_Chi nesej=s; _puts("n"); fjnFLDa5Zoprintf("語文成績從小到大地排序結果n");prin tf("NO : nameChi nese n");for(i=0;i <n ;i+)prin tf("%3s :%5s%6dn",stu_Chi nesei. num,stu_Chi nesei. name,stu_Ch inesei.score0); tfnNhnE6e5puts("n") ; HbmVN777sLprintf("返回上

33、一級請按數(shù)字0n");dosca nf("%d", &f);if(f=0)order();break;else printf("輸入有誤,請重新輸入:");while(f!=0);void order_Math()/*對數(shù)學成績從小到大進行冒泡排序法 */int i,j,f;struct stude nt s;system("CLS");for(i=0;i <n ;i+)for(j=i;jv n;j+) if(stu_Mathi.score1>stu_Mathj.score1) 一 一s=stu_Math

34、i;stu_Mathi=stu_Mathj; stu_Mathj=s; _putS("n"); V7l4jRB8Hsprintf("數(shù)學成績從小到大地排序結果n");printf(" NO : name Math n");for(i=0;i <n ;i+)printf("%3s :%5s%6dn",stu_Mathi.num,stu_M,stu_Mathi.score1) ;83lcPA59W9puts("n"); mZkklkzaaPprintf("返回上一級

35、請按數(shù)字0n");dosca nf("%d", &f);if(f=0)order();break;else printf("輸入有誤,請重新輸入:");while(f!=0);void order_E nglish()/*對英語成績從小到大進行冒泡排序法*/int i,j,f;struct stude nt s;system("CLS");for(i=0;i< n;i+)for(j=i;j< n;j+)if(stu_Englishi.score2>stu_Englishj.score2) AVktR

36、43bpw 一 一s=stu_E nglishi;stu_E nglishi=stu_E nglishj;stu_E nglishj=s; _puts("n"); ORjBnOwcEdprintf("英語成績從小到大地排序結果n");prin tf(" NO : name En glish n");for(i=0;i <n ;i+)printf("%3s :%5s%6dn",stu_Englishi.num,stu_E,stu_Englishi.score2); 2MiJTy0dTTp

37、uts("n"); gliSpiue7Aprintf("返回上一級請按數(shù)字0n");dosca nf("%d", &f);if(f=0)order();break;else printf("輸入有誤,請重新輸入:");while(f!=0);void menu()int n,w1;dosystem("CLS");puts("ttt學生學籍管理系統(tǒng)nn");puts("t*MENU*n");uEh0U1Yfmhputs("ttt1.E nt

38、er new datan"); puts("ttt2.Browse alln"); puts("ttt3.Search by numn"); puts("ttt4.Order by average'n"); puts("ttt5.Exitn");puts("t*n");IAg9qLsgBXprin tf("Choice your number(1-5): bb"); sca nf("%d",&n);if(n<0|n>5)/*對選擇地數(shù)字作判斷*/w1=1;printf("your choice is not between 1 and 5,Please inputagai n:");WwghWvvhPEgetchar();else w1=0;while(w 1=1);switch(n)/* 選擇功能 */case 1:enter();break;/輸入模塊 */case 2:browse();break;/瀏覽模塊 */case 3:search();break;/查找模塊 */case 4:order();break;/*排序模塊 */case

溫馨提示

  • 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

提交評論