學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第1頁
學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第2頁
學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第3頁
學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第4頁
學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計報告書學(xué)生成績管理系統(tǒng)1.選擇題目題目:學(xué)生成績管理系統(tǒng)2.內(nèi)容摘要摘要:對于學(xué)校而言,學(xué)生成績體現(xiàn)了學(xué)生綜合素質(zhì)的某一方面。而學(xué)生成績管理又是體現(xiàn)學(xué)校的綜合管理能力的一個重要標(biāo)準(zhǔn)。實行電子化的學(xué)生成績管理,可以讓學(xué)生成績管理人員從繁重瑣碎的案頭工作解脫出來,去完成更重要的工作。本文介紹課程設(shè)計課題的選題意義,說明了本系統(tǒng)提供的主要功能,并畫出功能框圖,對設(shè)計思路、數(shù)據(jù)庫設(shè)計、研究開發(fā)的過程、實現(xiàn)細(xì)節(jié)、開發(fā)工作進(jìn)行了比較完整的綜述,最后給出了作者在小學(xué)期設(shè)計過程的體會。 3.索引關(guān)鍵字關(guān)鍵詞:數(shù)據(jù)庫,學(xué)生成績管理,功能框圖4.目錄1. 題目要求-42. 設(shè)計思想-53. 系統(tǒng)完成功能及

2、框圖-64. 界面設(shè)計-65. 核心算法及說明-86. 結(jié)論-107. 后記-158. 參考資料-179. 附錄-185正文(1) 題目要求能夠?qū)崿F(xiàn)輸入記錄,查詢記錄,更新記錄,統(tǒng)計記錄,輸出記錄等功能。(2) 設(shè)計思想在設(shè)計時考慮以下幾個方面:1. 操作簡單。因為使用者多為非計算機(jī)專業(yè)人員,所以該系統(tǒng)要求設(shè)計的界面美觀,操作方便。要充分考軟件界面友好和操作方便,便愈使用人員快速上手。易于維護(hù)。一個軟件的好壞,關(guān)鍵在于產(chǎn)品的可靠,穩(wěn)定,便于維護(hù)。易于升級。隨著社會的發(fā)展,對系統(tǒng)的要求會越來越高。要求系統(tǒng)具有更高的安全性;更豐富的功能以及更快的操作速度。所以在設(shè)計時要考慮到到以后的升級問題。2開

3、發(fā)語言的選擇 運(yùn)用高級語言編程技巧,visualc+中提供的標(biāo)準(zhǔn)庫函數(shù),特殊的編程軟件工具及數(shù)組,指針,結(jié)構(gòu)體,文件等相關(guān)操作實現(xiàn)對程序的優(yōu)化,使編程語言簡單易懂且便于操作。(3) 系統(tǒng)完成功能及框圖學(xué)生成績管理系統(tǒng)主要利用數(shù)組來實現(xiàn),其數(shù)組元素是結(jié)構(gòu)體類型。整個系統(tǒng)由五項功能1 輸入記錄模塊主要完成將數(shù)據(jù)存入結(jié)構(gòu)體數(shù)組中,從鍵盤逐個輸入記錄。記錄由學(xué)生的基本信息和成績信息字段組成。當(dāng)從數(shù)據(jù)文件中讀入記錄時,它就是在以記錄為單位存儲在數(shù)據(jù)文件中將記錄逐條復(fù)制到數(shù)組元素中。void input() file *fp; stu xs; /*定義一個結(jié)構(gòu)體變量來裝從文件中讀出來的數(shù)據(jù)*/ if(fp

4、=fopen(student.dat,ab)=null) printf(cant open file!n);exit(0); printf(n 姓名 學(xué)號 計算機(jī) 數(shù)學(xué) 英語 當(dāng)輸入姓名為ps結(jié)束錄入n); while(1) /*中間加入break,可使循環(huán)中斷*/ scanf(%s,); if(strcmp(,ps)=0) break;/*判斷姓名是否為ps,用字符串判斷*/ scanf(%d%f%f%f,&xs.num,&puter,&xs.math,&xs.english); fwrite(&xs,sizeof(stu),1,fp); /將成績信息寫入文件 f

5、close(fp);2 更新記錄模塊主要完成對記錄的維護(hù)。實現(xiàn)對記錄的修改,刪除,插入和統(tǒng)計操作1.對記錄的修改void modi() stu xs; file *fp; char name21; system(cls); printf(n輸入要修改學(xué)生的姓名: );scanf(%s,name); if(fp=fopen(student.dat,rb+)=null) printf(cant open file!n);exit(0); while(!feof(fp) fread(&xs,sizeof(stu),1,fp); if(strcmp(,name)=0)/*判斷輸入要修改的

6、姓名是否存在*/ printf( 修改前學(xué)生的信息如下:n); printf(n%10s %6d %6.2f %6.2f %6.2f n,姓名,學(xué)號,計算機(jī),數(shù)學(xué), 英語); printf(%10s %6d %6.2f %6.2f %6.2f n,,xs.num,puter,xs.math,xs.english); printf(n請輸入該生的計算機(jī)成績:);scanf(%f,&puter); printf(n數(shù)學(xué)成績:);scanf(%f,&xs.math); printf(n英語成績:);scanf(%f,&xs.english); break; if(!feof(fp) s

7、ystem(cls); printf( n 修改后的學(xué)生的信息如下:n); printf(n 姓名 學(xué)號 計算機(jī) 數(shù)學(xué) 英語n); printf(%10s %6d %6.2f %6.2f %6.2f n,,xs.num,puter,xs.math,xs.english); getchar(); fseek(fp,sizeof(stu),1);/*,1表示文件當(dāng)前位置*/ fwrite(&xs,sizeof(stu),1,fp);/*再寫入,同時把要修改的那個覆蓋掉*/ fread(&xs,sizeof(stu),1,fp);/*把數(shù)據(jù)讀入到結(jié)構(gòu)體數(shù)組中*/ getchar();

8、else printf(n學(xué)生不存在,修改失敗!); fclose(fp); getchar();/添加:輸入學(xué)生的平時的各項成績,插入到指定位置;當(dāng)指定的位置超出范圍時,將其插入到全班的最后,并顯示插入成功后的結(jié)果。2添加記錄void insert() int i=0,j,k,lenth; file *fp; stu s,xsn; system(cls); printf(n請輸入添加的學(xué)生的姓名:);scanf(%s,&); printf(n學(xué)生的學(xué)號:);scanf(%d,&s.num); printf(n學(xué)生的計算機(jī)成績:);scanf(%f,&puter); printf(

9、n數(shù)學(xué)成績:);scanf(%f,&s.math); printf(n英語成績:);scanf(%f,&s.english); printf(n插入位置:);scanf(%d,&k);/ i=0; if(fp=fopen(student.dat,rb)=null) printf(cant open file!n);exit(0); while(!feof(fp) fread(&xsi,sizeof(stu),1,fp);/*把數(shù)據(jù)讀入到結(jié)構(gòu)體數(shù)組中*/ if(feof(fp) break; i+; fclose(fp); lenth=i; if(k=0)/*k的位置要位于數(shù)組范圍之內(nèi)*/ /插

10、入 for(j=lenth-1;j=k;j-) xsj+1=xsj;/*一開始j是最大的,往后移一個這樣移動避免數(shù)據(jù)被覆蓋*/ /*循環(huán)是只循環(huán)這一句的*/ xsk=s;/*將輸入的學(xué)生信息加入這個k位置*/ lenth+;/*長度+1*/ /寫回 if(fp=fopen(student.dat,wb)=null) printf(不能建立文件!n);exit(0); for(i=0;ilenth;i+) fwrite(&xsi,sizeof(stu),1,fp); else/*不再數(shù)組范圍之內(nèi)*/ if(fp=fopen(student.dat,ab)=null) printf(不能建立文件!

11、n);exit(0); fwrite(&s,sizeof(stu),1,fp); fclose(fp);/刪除:輸入學(xué)生姓名,若該學(xué)生存在,則刪除,并顯示刪除后余下的學(xué)生成績信息3輸出記錄void print() file *fp; stu s; system(cls); if(fp=fopen(student.dat,rb)=null) printf(cant open file!n);exit(0); printf(n%10s %s %6s %6s %6s n,姓名,學(xué)號,計算機(jī),數(shù)學(xué), 英語); while(!feof(fp) fread(&s,sizeof(stu),1,fp);/從文

12、件中讀取成績信息 if(feof(fp) break;/判斷是否文件尾 printf(%10s %6d %6.2f %6.2f %6.2f n,,s.num,puter,s.math,s.english); fclose(fp); getchar();4刪除記錄void dele() stu xsn; file *fp; char name10; int i=0,len,k=-1/*k=0)/*k0說明找到刪除學(xué)生位置*/ if(fp=fopen(student.dat,wb+)=null) printf(cant open file!n);exit(0); for(i=0;ile

13、n;i+) if(i=k) continue;/*從這個位置開始寫入*/ fwrite(&xsi,sizeof(stu),1,fp); fclose(fp); else printf(刪除失敗!n);getch(); /*失敗后重新返回菜單*/ print();3 查詢記錄模塊主要完成在數(shù)組中查找滿足相關(guān)條件的記錄。在此系統(tǒng)中,用戶可按學(xué)號或姓名查找若找到該記錄則以表格形式打印出此記錄的信息否則返回一個-1的值,并打印出未找到該記錄的提示信息。/查詢1按姓名void xingming() file *fp; stu xs; char name21; printf(n輸入要查學(xué)生的姓名: );s

14、canf(%s,name); if(fp=fopen(student.dat,rb)=null) printf(cant open file!n);exit(0); while(!feof(fp) fread(&xs,sizeof(stu),1,fp); if(strcmp(,name)=0)/*按姓名查詢時判斷輸入的姓名是否存在,會循環(huán)從數(shù)據(jù)中找取*/ printf( 學(xué)生的信息如下:n); printf(n%10s %6s %6s %6s %6s n,姓名,學(xué)號,計算機(jī),數(shù)學(xué), 英語); printf(%10s %6d %6.2f %6.2f %6.2f n,,

15、xs.num,puter,xs.math,xs.english); break; if(feof(fp) printf(查找失敗!); /*學(xué)生不存在*/ fclose(fp);2按學(xué)號void xuehao() file *fp; stu xs; int num; printf(n輸入要查學(xué)生的學(xué)號: );scanf(%d,&num); if(fp=fopen(student.dat,rb)=null) printf(cant open file!n);exit(0); while(!feof(fp) fread(&xs,sizeof(stu),1,fp); if(xs.num=num)/*

16、按學(xué)號查詢時判斷輸入的學(xué)號是否存在,會循環(huán)從數(shù)據(jù)中找取*/ printf( 學(xué)生的信息如下:n);printf(n%10s %6s %6s %6s %6s n,姓名,學(xué)號,c語言,高數(shù), 英語); printf(%10s %6d %6.2f %6.2f %6.2f n,,xs.num,puter,xs.math,xs.english); break; if(feof(fp) printf(查找失敗!); fclose(fp);3查詢記錄void search() int select; system(cls); printf(請輸入按何種方式查詢:n); printf(1-姓名,

17、2-學(xué)號:n); scanf(%d,&select); if(select=1) xingming(); if(select=2) xuehao();getchar(); printf(press any key to continuen); getchar();/*讓屏幕停留同時按任意鍵返回*/4 統(tǒng)計記錄模塊主要完成對學(xué)生最高分及不及格人數(shù)的統(tǒng)計1統(tǒng)計不及格void tongji() int i=0,j=0,k=0,l=0,m=0,n,p,q,t,u; file *fp; stu sn, *p1n,*p2n,*p3n;/*用指針數(shù)組*/ system(cls); if(fp=fopen(s

18、tudent.dat,rb)=null) printf(cantt open file!n);exit(0); while(!feof(fp) fread(&si+,sizeof(stu),1,fp);/*讀入數(shù)據(jù)*/ if(feof(fp) break; t=i;i=0; for(u=0;ut;u+)/*以下每個指針數(shù)組用于指向每門不及格的學(xué)生信息*/ if(puter60) p1j=&si;j+; if(si.math60) p2k=&si;k+; if(si.english60) p3l=&si;l+; i+; printf(英語不及格:n); for(n=0;nname,p

19、1n-num,p1n-english); printf(數(shù)學(xué)不及格:n); for(p=0;pname,p2p-num,p2p-math); printf(計算機(jī)不及格:n); for(q=0;qname,p3q-num,p3q-computer); getchar(); printf(press any key to continue:n); fclose(fp); getchar();2統(tǒng)計最高分 void higest() int i=0,n,max1i=0,max2i=0,max3i=0; float maxenglish,maxmath,maxcomputer; stu xsn; f

20、ile *fp; if(fp=fopen(student.dat,rb+)=null) printf(cant open file!n);exit(0); while(!feof(fp)/*文件讀入內(nèi)存,讀取指針未到文件尾時返回值為0,讀到尾時返回值為1,加!取反后,結(jié)束即為0*/ fread(&xsi,sizeof(stu),1,fp);/*讀入結(jié)構(gòu)體變量*/ if(feof(fp) break;/*上面while循環(huán)那個會多讀一次因為讀到尾時那個0還沒返回,這里判斷如果以讀到文件尾,則直接停止,避免重復(fù)輸入*/ maxenglish=xs0.english; maxmath=xs0.mat

21、h; maxcomputer=puter; for(i=0;imaxenglish) maxenglish=xsi.english; max1i=i; if(xsi.mathmaxmath) maxmath=xsi.math; max2i=i; if(putermaxcomputer) maxcomputer=puter; max3i=i; printf(英語最高分%f,數(shù)學(xué)最高分%f,計算機(jī)最高分%fn,maxenglish,maxmath,maxcomputer); getchar(); /*把i的末尾值給n,用于下面循環(huán)寫入*/ i=0; n=i

22、; fclose(fp); getchar(); if(fp=fopen(student.dat,wb)=null) printf(cant open file!n);exit(0); while(i學(xué)生成績管理系統(tǒng)學(xué)生成績管理系統(tǒng)=n); printf(=n); printf( 1.輸入記錄n); printf(*n); printf( 2.修改n); printf(*n); printf( 3.添加n); printf(*n); printf( 4.刪除n); printf(*n); printf( 5.查詢n); printf(*n); printf( 6.統(tǒng)計:n不及格人數(shù):n英語: 數(shù)學(xué): 計算機(jī):n); printf(*n); printf( 7.各科最高分:n英語: 數(shù)學(xué): 計算機(jī):n)

溫馨提示

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

最新文檔

評論

0/150

提交評論