




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告書學(xué)生成績(jī)管理系統(tǒng)1.選擇題目題目:學(xué)生成績(jī)管理系統(tǒng)2.內(nèi)容摘要摘要:對(duì)于學(xué)校而言,學(xué)生成績(jī)體現(xiàn)了學(xué)生綜合素質(zhì)的某一方面。而學(xué)生成績(jī)管理又是體現(xiàn)學(xué)校的綜合管理能力的一個(gè)重要標(biāo)準(zhǔn)。實(shí)行電子化的學(xué)生成績(jī)管理,可以讓學(xué)生成績(jī)管理人員從繁重瑣碎的案頭工作解脫出來,去完成更重要的工作。本文介紹課程設(shè)計(jì)課題的選題意義,說明了本系統(tǒng)提供的主要功能,并畫出功能框圖,對(duì)設(shè)計(jì)思路、數(shù)據(jù)庫設(shè)計(jì)、研究開發(fā)的過程、實(shí)現(xiàn)細(xì)節(jié)、開發(fā)工作進(jìn)行了比較完整的綜述,最后給出了作者在小學(xué)期設(shè)計(jì)過程的體會(huì)。 3.索引關(guān)鍵字關(guān)鍵詞:數(shù)據(jù)庫,學(xué)生成績(jī)管理,功能框圖4.目錄1. 題目要求-42. 設(shè)計(jì)思想-53. 系統(tǒng)完成功能及
2、框圖-64. 界面設(shè)計(jì)-65. 核心算法及說明-86. 結(jié)論-107. 后記-158. 參考資料-179. 附錄-185正文(1) 題目要求能夠?qū)崿F(xiàn)輸入記錄,查詢記錄,更新記錄,統(tǒng)計(jì)記錄,輸出記錄等功能。(2) 設(shè)計(jì)思想在設(shè)計(jì)時(shí)考慮以下幾個(gè)方面:1. 操作簡(jiǎn)單。因?yàn)槭褂谜叨酁榉怯?jì)算機(jī)專業(yè)人員,所以該系統(tǒng)要求設(shè)計(jì)的界面美觀,操作方便。要充分考軟件界面友好和操作方便,便愈使用人員快速上手。易于維護(hù)。一個(gè)軟件的好壞,關(guān)鍵在于產(chǎn)品的可靠,穩(wěn)定,便于維護(hù)。易于升級(jí)。隨著社會(huì)的發(fā)展,對(duì)系統(tǒng)的要求會(huì)越來越高。要求系統(tǒng)具有更高的安全性;更豐富的功能以及更快的操作速度。所以在設(shè)計(jì)時(shí)要考慮到到以后的升級(jí)問題。2開
3、發(fā)語言的選擇 運(yùn)用高級(jí)語言編程技巧,visualc+中提供的標(biāo)準(zhǔn)庫函數(shù),特殊的編程軟件工具及數(shù)組,指針,結(jié)構(gòu)體,文件等相關(guān)操作實(shí)現(xiàn)對(duì)程序的優(yōu)化,使編程語言簡(jiǎn)單易懂且便于操作。(3) 系統(tǒng)完成功能及框圖學(xué)生成績(jī)管理系統(tǒng)主要利用數(shù)組來實(shí)現(xiàn),其數(shù)組元素是結(jié)構(gòu)體類型。整個(gè)系統(tǒng)由五項(xiàng)功能1 輸入記錄模塊主要完成將數(shù)據(jù)存入結(jié)構(gòu)體數(shù)組中,從鍵盤逐個(gè)輸入記錄。記錄由學(xué)生的基本信息和成績(jī)信息字段組成。當(dāng)從數(shù)據(jù)文件中讀入記錄時(shí),它就是在以記錄為單位存儲(chǔ)在數(shù)據(jù)文件中將記錄逐條復(fù)制到數(shù)組元素中。void input() file *fp; stu xs; /*定義一個(gè)結(jié)構(gòu)體變量來裝從文件中讀出來的數(shù)據(jù)*/ if(fp
4、=fopen(student.dat,ab)=null) printf(cant open file!n);exit(0); printf(n 姓名 學(xué)號(hào) 計(jì)算機(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); /將成績(jī)信息寫入文件 f
5、close(fp);2 更新記錄模塊主要完成對(duì)記錄的維護(hù)。實(shí)現(xiàn)對(duì)記錄的修改,刪除,插入和統(tǒng)計(jì)操作1.對(duì)記錄的修改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é)號(hào),計(jì)算機(jī),數(shù)學(xué), 英語); printf(%10s %6d %6.2f %6.2f %6.2f n,,xs.num,puter,xs.math,xs.english); printf(n請(qǐng)輸入該生的計(jì)算機(jī)成績(jī):);scanf(%f,&puter); printf(n數(shù)學(xué)成績(jī):);scanf(%f,&xs.math); printf(n英語成績(jī):);scanf(%f,&xs.english); break; if(!feof(fp) s
7、ystem(cls); printf( n 修改后的學(xué)生的信息如下:n); printf(n 姓名 學(xué)號(hào) 計(jì)算機(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);/*再寫入,同時(shí)把要修改的那個(gè)覆蓋掉*/ fread(&xs,sizeof(stu),1,fp);/*把數(shù)據(jù)讀入到結(jié)構(gòu)體數(shù)組中*/ getchar();
8、else printf(n學(xué)生不存在,修改失敗!); fclose(fp); getchar();/添加:輸入學(xué)生的平時(shí)的各項(xiàng)成績(jī),插入到指定位置;當(dāng)指定的位置超出范圍時(shí),將其插入到全班的最后,并顯示插入成功后的結(jié)果。2添加記錄void insert() int i=0,j,k,lenth; file *fp; stu s,xsn; system(cls); printf(n請(qǐng)輸入添加的學(xué)生的姓名:);scanf(%s,&); printf(n學(xué)生的學(xué)號(hào):);scanf(%d,&s.num); printf(n學(xué)生的計(jì)算機(jī)成績(jī):);scanf(%f,&puter); printf(
9、n數(shù)學(xué)成績(jī):);scanf(%f,&s.math); printf(n英語成績(jī):);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是最大的,往后移一個(gè)這樣移動(dòng)避免數(shù)據(jù)被覆蓋*/ /*循環(huán)是只循環(huán)這一句的*/ xsk=s;/*將輸入的學(xué)生信息加入這個(gè)k位置*/ lenth+;/*長(zhǎng)度+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é)生成績(jī)信息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é)號(hào),計(jì)算機(jī),數(shù)學(xué), 英語); while(!feof(fp) fread(&s,sizeof(stu),1,fp);/從文
12、件中讀取成績(jī)信息 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;/*從這個(gè)位置開始寫入*/ fwrite(&xsi,sizeof(stu),1,fp); fclose(fp); else printf(刪除失敗!n);getch(); /*失敗后重新返回菜單*/ print();3 查詢記錄模塊主要完成在數(shù)組中查找滿足相關(guān)條件的記錄。在此系統(tǒng)中,用戶可按學(xué)號(hào)或姓名查找若找到該記錄則以表格形式打印出此記錄的信息否則返回一個(gè)-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)/*按姓名查詢時(shí)判斷輸入的姓名是否存在,會(huì)循環(huán)從數(shù)據(jù)中找取*/ printf( 學(xué)生的信息如下:n); printf(n%10s %6s %6s %6s %6s n,姓名,學(xué)號(hào),計(jì)算機(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é)號(hào)void xuehao() file *fp; stu xs; int num; printf(n輸入要查學(xué)生的學(xué)號(hào): );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é)號(hào)查詢時(shí)判斷輸入的學(xué)號(hào)是否存在,會(huì)循環(huán)從數(shù)據(jù)中找取*/ printf( 學(xué)生的信息如下:n);printf(n%10s %6s %6s %6s %6s n,姓名,學(xué)號(hào),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(請(qǐng)輸入按何種方式查詢:n); printf(1-姓名,
17、2-學(xué)號(hào):n); scanf(%d,&select); if(select=1) xingming(); if(select=2) xuehao();getchar(); printf(press any key to continuen); getchar();/*讓屏幕停留同時(shí)按任意鍵返回*/4 統(tǒng)計(jì)記錄模塊主要完成對(duì)學(xué)生最高分及不及格人數(shù)的統(tǒng)計(jì)1統(tǒng)計(jì)不及格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+)/*以下每個(gè)指針數(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ì)算機(jī)不及格:n); for(q=0;qname,p3q-num,p3q-computer); getchar(); printf(press any key to continue:n); fclose(fp); getchar();2統(tǒng)計(jì)最高分 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)存,讀取指針未到文件尾時(shí)返回值為0,讀到尾時(shí)返回值為1,加!取反后,結(jié)束即為0*/ fread(&xsi,sizeof(stu),1,fp);/*讀入結(jié)構(gòu)體變量*/ if(feof(fp) break;/*上面while循環(huán)那個(gè)會(huì)多讀一次因?yàn)樽x到尾時(shí)那個(gè)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ì)算機(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é)生成績(jī)管理系統(tǒng)學(xué)生成績(jī)管理系統(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)計(jì):n不及格人數(shù):n英語: 數(shù)學(xué): 計(jì)算機(jī):n); printf(*n); printf( 7.各科最高分:n英語: 數(shù)學(xué): 計(jì)算機(jī):
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年資產(chǎn)評(píng)估師真題答案解析
- 社區(qū)輿情監(jiān)控與分析-全面剖析
- 綠色制造技術(shù)演進(jìn)-全面剖析
- 產(chǎn)品供應(yīng)與銷售代理合同范本9篇
- 城市綠化對(duì)空氣質(zhì)量的影響研究-全面剖析
- 紡織材料智能傳感-全面剖析
- 大數(shù)據(jù)場(chǎng)景下的機(jī)器學(xué)習(xí)-全面剖析
- 如何選擇工程合同范本
- 便攜式醫(yī)療器械技術(shù)革新-全面剖析
- 市政工程材料試驗(yàn)檢測(cè)計(jì)劃
- 平面向量在三角函數(shù)中的應(yīng)用(學(xué)案)
- 中藥的道地藥材課件
- 《跋傅給事帖》2020年浙江嘉興中考文言文閱讀真題(含答案與翻譯)
- 幼兒園《3-6歲兒童學(xué)習(xí)與發(fā)展指南》健康領(lǐng)域知識(shí)試題及答案
- 國(guó)家職業(yè)技能標(biāo)準(zhǔn) (2021年版) 嬰幼兒發(fā)展引導(dǎo)員
- 幼兒園小班科學(xué):《小雞和小鴨》 PPT課件
- 伯努利方程-ppt課件
- 年產(chǎn)20噸阿齊沙坦原料藥生產(chǎn)車間的設(shè)計(jì)和實(shí)現(xiàn)材料學(xué)專業(yè)
- 電子公章模板
- 第3章軌道車輛牽引計(jì)算
- 基于JSP的校園網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)論文
評(píng)論
0/150
提交評(píng)論