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

下載本文檔

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

文檔簡介

1、百度文庫好好學習,天天向上c語言程序設(shè)計課程設(shè)計報告題目(中文)學生成績管理系統(tǒng)姓名學號學部專業(yè)、年級指導(dǎo)教師2010年12月31日學生成績管理系統(tǒng)設(shè)計報告1.組內(nèi)成員基本情況2.與課程設(shè)計相關(guān)的課程學習情況(分別列出已學過的課程)課程1:計算機科學導(dǎo)論C課程2:C語言程序設(shè)計。3.組內(nèi)成員中當任班干部的姓名與職務(wù)情況目錄一、問題描述二、需求分析模塊1:添加學生信息模塊2:添加課程信息3 4 5 6 7 8 0 H與 uHH=-HyH個 模模模模模模模添加成績信息查詢成績信息統(tǒng)計學生成績信息修改學生成績刪除學生成績恢復(fù)刪除成績退出三、算法設(shè)計1 2 3 4 5 6 去法法去去去 算算算算算算主

2、函數(shù)的算法添加記錄函數(shù)根據(jù)學號修改成績記錄查找函數(shù)刪除記錄恢復(fù)記錄四、調(diào)試分析入程序?qū)崿F(xiàn)實現(xiàn)1:添加學生信息實現(xiàn)2:添加課程信息實現(xiàn)3:添加成績信息實現(xiàn)4:查詢成績信息A個人成績B班級成績實現(xiàn)5:統(tǒng)計學生成績信息A個人平均成績B班級某門課程及排名實現(xiàn)6:修改學生成績實現(xiàn)7:刪除學生成績實現(xiàn)8:恢復(fù)刪除成績實現(xiàn)0:退出六、總結(jié)與體會七、程序附錄八、存在的問題問題1在輸入學生成績信息時,不能對未有信息的識別。問題2在輸入的學生成績的函數(shù)里,存放的是課程名。問題3不能對全班的總成績進行排名-3百度文庫好好學習,天天向上九、指導(dǎo)教師對課程設(shè)計的評語一、問題描述做三個簡單的文件系統(tǒng)。第一個文件包括的信息

3、有學生的姓名、性別、學號、專業(yè)、班級、所在系部。能夠?qū)W生信息進行儲存、添加。第二個文件包括學號、課程名和成績。能夠?qū)W生的成績進行存儲、查詢、修改、添加和恢復(fù)。在查找里而能夠以學生的學號進行學生成績的查找。在學生成績的修改里而不能對學生的學號和課程名進行修改。能夠隨時對學生的成績進行添加。且不會覆蓋以前的學生記錄。第三個文件包括課程的代碼和課程名稱。能夠?qū)φn程的信息進行儲存。結(jié)構(gòu)體1(課程信息)字符串變量(課程代碼)最大長度為10字符串變量(課程名)最大長度為10結(jié)構(gòu)體2(學生信息)整型 字符串 字符型 字符串 字符串 字符串變量(學號)變量(姓名)變量(性別)變量(專業(yè))變量(班級)變量(

4、系部)四個字節(jié) 最大長度為11 一個字節(jié) 最大長度為12 最大長度為12 最大長度為12結(jié)構(gòu)體3(學生成績信息)字符型變量(標志)一個字節(jié)整型變量(學號)四個字節(jié)字符串變量(課程名)最大長度為10實型變量(成績)四個字節(jié)運用的文件:二、需求分析模塊1:添加學生信息本模塊主要是負責對學生信息文件”進行添加,也能實現(xiàn)對學生記錄的追加。在添加記錄的時候,能通過一個輸出函數(shù)。屏幕會主動提示。用戶可以根據(jù)提示通過一個輸入函數(shù),輸入要添加的學生記錄的數(shù)目來定量的對學生記錄進行添加。然后對照屏幕上的格式,依次對每一條記錄進行錄入。每一條記錄錄入完了后,用回車鍵結(jié)束本條記錄的輸入工作。接著對下一條記錄進行輸入

5、。直到百度文庫好好學習,天天向上輸入的記錄和定量輸入的學生記錄數(shù)相同。程序自動跳出。模塊2:添加課程信息本模塊主要是負責對課程信息文件“”添加,也能實現(xiàn)對課程記錄的追加。加入記錄的時候,能通過一個輸出函數(shù)。屏幕會主動提示。用戶可以根據(jù)提示通過一個輸入函數(shù),輸入要添加的課程記錄的數(shù)目來定量的對課程記錄進行添加。然后對照屏幕上的格式,依次對每一條記錄進行錄入。每一條記錄錄入完了后,用回車鍵結(jié)束本條記錄的輸入工作。接著對下一條記錄進行輸入。直到輸入的記錄和定量輸入的課程記錄數(shù)相同。程序自動跳出。模塊3:添加成績信息本模塊主要是負責對學生成績信息文件“”進行添加,也能實現(xiàn)對學生成績記錄的追加。加入記錄

6、的時候,能通過一個輸出函數(shù)。屏幕會主動提示。用戶可以根據(jù)提示通過一個輸入函數(shù),輸入要添加的學生成績記錄的數(shù)目來定量的對學生成績記錄進行添加。然后對照屏幕上的格式,依次對每一條記錄進行錄入。每一條記錄錄入完了后,用回車鍵結(jié)束本條記錄的輸入工作。接著對下一條記錄進行輸入。直到輸入的記錄和定量輸入的學生成績記錄數(shù)相同。程序自動跳出。模塊4:查詢成績信息因為對一個比較大的學生成績進行管理,如果沒有查找功能,那就不能方便的對學生成績進行各種處理。查找功能能夠?qū)W生成績高速定位。能對有相同屬性的學生進行查看。很快速定位和對相同屬性的學生進行分類能查看更好的滿足用戶對程序要求。同樣。用戶只要根據(jù)提示,輸入學

7、生的姓名就能定位到要查找的學生的成績。程序再通過一輸出函數(shù),把要查找的信息顯示到屏幕上。模塊5:統(tǒng)計學生成績按照提示,通過輸入學生的學號、班級、課程,實現(xiàn)對學生個人平均成績,對班級某門課程的平均分及排名的統(tǒng)計功能。模塊6:修改學生成績本模塊實現(xiàn)對已有的學生成績的修改,因為學生的信息中學號和課程一般是不會變的,在修改的過程中,出于對事實的考慮,以學生的學號和課程對學生成績進行定點查詢修改和模塊2添加記錄一樣,在修改之前,程序會主動提示要進行修改的內(nèi)容。用戶可以根據(jù)程序的提示。通過輸入學生的學號、課程名,再按程序提示的格式依次對學生的成績進行修改。修改完閉以后程序會自動跳出。以便進行其它工作。模塊

8、7:刪除學生成績本模塊可以實現(xiàn)對已有學生成績的刪除,程序會主動提示要進行刪除的-7內(nèi)容。用戶可以根據(jù)程序的提示。通過輸入學生的學號,再按程序提示進行刪除操作。以便進行其它工作。模塊8:恢復(fù)刪除成績本模塊可以實現(xiàn)對已刪除的學生的成績進行恢復(fù)工作。程序會主動提示要進行恢復(fù)的內(nèi)容。用戶可以根據(jù)程序的提示。通過輸入學生的學號,再按程序提示進行恢復(fù)操作。以便進行其它工作。模塊0:退出在需要進行的操作都完成后,調(diào)用模塊0退出本程序。三、算法設(shè)計1.主函數(shù)的算法A.用system用cls);實現(xiàn)清屏;B.用printf(請輸入對應(yīng)操作的數(shù)字進行您要進行的操作:n);提示要進行的操作;C.printf(1、p

9、rintf(“2、printf(“3、printf(4、添加學生信息n)添加課程信息n)添加成績信息n)查詢成績信息n)printf(5、統(tǒng)計學生成績信息n);printf(6、printf(“7、printf(“8、printf(0、修改學生成績n);刪除學生成績n);恢復(fù)刪除成績n);退出n);printf(請選擇:);函數(shù)提供選項,提示用戶進行下一步的操作D.定義變量ch;E.輸入一個ch的值;F.用switch。進行條件跳轉(zhuǎn);實行相映的操作;即調(diào)用從函數(shù);2.添加記錄函數(shù)A:添加學生信息函數(shù):百度文庫好好學習,天天向上開始FILE*fp;Inti;if(fp=fopen(MH;abH)

10、=NULL)printf(cannotopenfilen);用for循環(huán)追加記錄Fclose(fp);結(jié)束2、添加課程信息函數(shù):開始FILE*fp;Inti;if(fp=fopen(MH;abH)=NULL)printf(cannotopenfilen);用for循環(huán)追加記錄Fclose(fp);結(jié)束3、添加學生成績的函數(shù):開始FILE*fp;Inti;Jf(fp=fopenT是abH)=NULL)printf(cannotopenfilen);用for循環(huán)追加記錄Fclose(fp);結(jié)束9百度文庫好好學習,天天向上4.查詢成績函數(shù)A:個人成績函數(shù)開始FILE*fpl*fp2;SCOSt2;

11、CORstl;Longnum;shortfg=l,fgl;是否printf(cannotopenfilen);輸入num的值fgl=0;While(!feof(fpl)fread(&stu2,sizeof(STU)1,fp);Jif=number)是Fgl=l;printf(姓名:%srT,;Break;While(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2);if=num&=*)是printf(,z%s:%.2fn,st2.course,;Break;_if(getch()!=是-y)一一否Fclose(fpl);Fclose(fp2);fg=0;Fg=O;

12、if(fpl=fopm(H,0rb)=NULL)if(fp2=fop:n(”TTb)=NULL)結(jié)束B:班級成績函數(shù)百度文庫好好學習,天天向上-15開始FILE*fpl*fp2;SCOst2;CORstl;Longnum;charclasflO;結(jié)束5、統(tǒng)計學生成績A、個人平均分函數(shù)開始FILE*fpl*fp2;SCOst2;CORstl;Longnum;Floatave;shortfg=l,fgl,i;=fopen(,M,Hrbu)=NULL)=fopen(,M,Hrbu)=否printf(z,cannotopenfilen);輸入num的值;fgl=0;i=l;ave=0;While(!f

13、eof(fpl)fread(&stul,sizeof(STU)1,fp);if=num)是Xfgl=l;printf(%d%s的平均分為:“、num,;continueWhile(!feof(fp2)fread(&stu2,sizeof(SCO),1,fp);jf=num)ave+=;i+;Continue;printf(飛.2fn,ave/i);break;J!(Fclose(fpl);Fclose(fp2);fg=o;iFg=0;結(jié)束B:班級某一門課程的平均分及排名開始百度文庫好好學習,天天向上平均分為:%.2fn,clas,course,ave/i);Rewind(fp2);for(k=

14、O;ki-l;k+)t=sk;sk=sj;sj=t;b=ak;ak=aj;aj=b;for(j=k+l;ji;j+if(s(ksUD是否t=sk;sk=sj;sj=t;b=ak;ak=aj;aj=b;Continuefor(k=0;ki;k+)while(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2)J_if(sk=&ak=是printf(,z%d%s:%.2fn,;Continueif(getch()!=y)/Fclose(fpl);Fclose(fp2);fg=o;ContinueFg=O;結(jié)束6根據(jù)學號修改學生成績開始FILE*fp;SCOst;longn

15、um;floats;shortfg=l,fgl;charcourse10;if(iplifW=fopen”Jrb)=NULL)=fopen(“Jrb)=NULL)_printf(cannotopenfilen,/);i=0;iSIZE;i;i.num=stu_num是ber)否strcpy(studli.addr,stu_addr);studlil.age=stu_age;strcpy(,name);if直到iSIZEFclose(fp);結(jié)束7.刪除記錄開始FILE *fp;-19請輸入刪除的學號numfread(&st,sizeof(SCO),1,fp);if=&=n

16、ui是n)1gl=l;printf(飛dn”,;prirrtf(飛sn”,;printf(*%.2fn”,;pnntf(是刪除該成績嗎?(y/n)是seek(fp,-(long)(sizeof(SCO),SEEK_CUR);fputc(,*,fp);忝忝W流彥刪配33303334萬口1、4A.個人成績:B:班級成績:E:Ebook程序ll.exe查詢學生成蒲請轍人查詢學號:1001接K期冬:yi輸入一名課堂:shuxueyi的shuxue成績?yōu)椋?601shuxuo:99.001002shuxue:87.001003shuxue:98.00繼續(xù)查詢嗎?)5、統(tǒng)計學生成績信息:除學生成績復(fù)刪除成

17、績亙皆言息二25彩晶舞信息本加學生,11;纏鸛課程的平均分及排名123456780_A、個人平均B:班級內(nèi)一門課程的平均分及排名:,E:Ebook程序ll.exe學生成績統(tǒng)計請輸入珊級各請輸入一名,“一初擻久謨程為shu1001shuxue:90.001002shuxuo:88.00繼續(xù)統(tǒng)計嗎?(必)=yi:shuxucxue的平均分為:89.006、修改學生成績:序號:1001:shuxuc:98.00維續(xù)修改嗚?“n)7、刪除學生成績:百度文庫好好學習,天天向上-33CD 回I8、恢復(fù)學生成績:E:Ebookll.exe恒復(fù)刪除養(yǎng)生座落請輸入已刪除學生學號:10011001shuxue99

18、.00息恢復(fù)邃成績嗎?y/n繼續(xù)恢復(fù)嗚?y/n六.用戶使用說明可以用windowsXP、win7等操作系統(tǒng),可以在DEVCPP等軟件運行。啟動程序按照提示進行操作即可。七.總結(jié)與體會通過這次課程設(shè)計,才知道我們存在的問題有很多。起初以為自己的C語言學的挺不錯的,而且平常在C語言這門課程上下了很多功夫。書看了很多次,可當正式去編寫課程設(shè)計的時候,才知道理論和實踐是存在很大差距的。像老師所說的一樣,學一門語言沒有別的捷徑可走,唯一能提高自己編程能力的只有去多看算法,最重要的是要自己多動手去實現(xiàn)一些源代碼。主動去編一些程序,從實踐中學到東西.在編程的過程中,流程圖的編寫困難很大,在編寫程序的過程中,

19、出現(xiàn)了很多問題,經(jīng)過老師的幫助以及同學之間的討論,多次修改后才能夠順利運行。通過這次課程設(shè)計,我們學到了很多,至少讓我們明白要學好一名語言,一定要多多練習,僅僅去看書是沒有多大作用的.只有靠多做,多練才可能有所收獲。這次的課程設(shè)計,我們的組員和組長同心協(xié)力,分工合作,受益匪淺。八.分工情況封輝玲:設(shè)計源代碼,參與報告的編寫。許曉艷:參與報告的編寫。劉文澤:參與報告的編寫。劉興斌:輸入代碼工作九.程序附錄#include#include#include#include#includetypedefstructcharnumber10;charcourse10;COU;typedefstruct(

20、intnumber;charname11;charsex;charmajor12;charclas12;charxi12;STU;typedefstructcharflag;intnumber;charcourse10;floatscore;SCO;intmain(intargc,char*argv)(charch;voidAddstuden();voidAddcours();voidAddscor();voidQuerystuden();voidQuerycount();voidDeletestudent();voidUpdatestudent();voidRestorestudent();

21、dosystem(HclsM);printf(l添加學生信息n”);printf(2添加課程信息n”);printf(3添加成績信息n”);printf(4、查詢成績信息n”);printf(5統(tǒng)計學生成績信息n);printf(6修改學生成績nn);printf(7.刪除學生成績n”);printf(8恢復(fù)刪除成績n”);printf(O、退出n”);pnntf(=ii);printf(請選擇:);ch=getch();printf(H%ciich);switch(ch)case*1*:Addstuden();break;case2:Addcours();break;case3*:Addsc

22、or();break;case4:Querystuden();break;case5:Querycount();break;case6:Updatestudent();break;case171:Deletestudent();break;百度文庫好好學習,天天向上case8:Restorestudent();break;caseVxxiO);)while(l);return0;)voidAddstuden().2f.2f.2f.2fnn);printf(繼續(xù)查詢嗎?(y/n);if(getch()!=y)(fclose(fpl);fclose(fp2);fg=o;)1)voidQueryco

23、unt()統(tǒng)計成績charch;voidc();個人平均分voidd();/排名printfCK個人平均分n);printf(2班級內(nèi)一名課程的平均分及排名n”);printf(HO退出n);printf(=n);printf(請選擇:);ch=getch();printf(M%cn,ch);switch(ch)caseT:c();break;case2:d();break;case0:exit(0);)voidc()個人平均分STUstl;SCOst2;longnum;FILE*fpl,*fp2;shortfg=l,fgl;floatave;inti;if(fpl=fopen(,rb)=NU

24、LL)printf(文件不存在!)getch();return;)if(fp2=fopen(HH;,rbn)=NULL)printf(文件不存在!”);getch();return;)while(fg)(system(HclsH);ave=0;printf(學生成績統(tǒng)計n”);printf(請輸入查詢學號:”);scanf(%d”,&iwm);rewind(fp1);rewind(fp2);fg=1;while(!feof(fpl)i=0;ave=0;fread(&stl,sizeof(STU),1,fp1);if=num)fgl=hprintf(H%d-%s的平均分為:,num,;while

25、(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2);if=num)(ave+=;i+;)1printf(M%.2fn,ave/i);break;)if(fgl=O)printf(“該學號的學生不存在。n)printf(是否繼續(xù)(yn)”);if(getch()!=y)fclose(fpl);fclose(fp2);fg=o;1)voidd()排名(STUstl;SCOst2;FILE*fpl,*fp2;shortfg=l,fgl;floatave,s100=0,t;charclasl0,coursefl0;inti,k,j,b,a100=0|;if(fpl=fop

26、en(,rb)=NULL)(printf(文件不存在!n);getch();return;)if(fp2=fopen(,H,/rbn)=NULL)(printf(文件不存在!H);getch();return;)while(fg)system(HclsH);printf(學生成績統(tǒng)計n”);printf(”請輸入班級名稱:);scanf(n%sH,clas);printf(”請輸入一名課程名:”);scanf(,%s,course);rewind(fpl);rewind(fp2);fgl=O;ave=0;i=0;while(!feof(fpl)if(fread(&stl,sizeof(STU)

27、,1,fp1)=O)break;if(strcmp(clas,=O)while(!feof(fp2)fgl=l;if(fread(&st2,sizeof(SCO),1,fp2)=0)break;if(strcmp,course)=0)(ave+=;si=;ai=;i+;)printf(班級$課程s的平均分為:%.2fn,clas,course,ave/i);rewind(fp2);for(k=0;ki-1;k+)for(j=k+l;ji;j+)if(sksj)(t=sk;sk=sU;sj=t;b=ak;ak=aj;aj=b;)for(k=0;ki;k+)(while(!feof(fp2)if(fread(&st2,sizeof(SCO),1,fp2)=0)break;if(sk=&ak=printf(%d-%s:%.2fn,;)rewind(fp2);)if(fgl=O)printf(班級不存在0nH);printf(繼續(xù)統(tǒng)計嗎?(y/n);if(getch()!=y)(fclose(fpl);

溫馨提示

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

評論

0/150

提交評論