




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報告書學生成績管理系統1.選擇題目題目:學生成績管理系統2.內容摘要摘要:對于學校而言,學生成績體現了學生綜合素質的某一方面。而學生成績管理又是體現學校的綜合管理能力的一個重要標準。實行電子化的學生成績管理,可以讓學生成績管理人員從繁重瑣碎的案頭工作解脫出來,去完成更重要的工作。本文介紹課程設計課題的選題意義,說明了本系統提供的主要功能,并畫出功能框圖,對設計思路、數據庫設計、研究開發的過程、實現細節、開發工作進行了比較完整的綜述,最后給出了作者在小學期設計過程的體會。 3.索引關鍵字關鍵詞:數據庫,學生成績管理,功能框圖4.目錄1. 題目要求-42. 設計思想-53. 系統完成功能及
2、框圖-64. 界面設計-65. 核心算法及說明-86. 結論-107. 后記-158. 參考資料-179. 附錄-185正文(1) 題目要求能夠實現輸入記錄,查詢記錄,更新記錄,統計記錄,輸出記錄等功能。(2) 設計思想在設計時考慮以下幾個方面:1. 操作簡單。因為使用者多為非計算機專業人員,所以該系統要求設計的界面美觀,操作方便。要充分考軟件界面友好和操作方便,便愈使用人員快速上手。易于維護。一個軟件的好壞,關鍵在于產品的可靠,穩定,便于維護。易于升級。隨著社會的發展,對系統的要求會越來越高。要求系統具有更高的安全性;更豐富的功能以及更快的操作速度。所以在設計時要考慮到到以后的升級問題。2開
3、發語言的選擇 運用高級語言編程技巧,visualc+中提供的標準庫函數,特殊的編程軟件工具及數組,指針,結構體,文件等相關操作實現對程序的優化,使編程語言簡單易懂且便于操作。(3) 系統完成功能及框圖學生成績管理系統主要利用數組來實現,其數組元素是結構體類型。整個系統由五項功能1 輸入記錄模塊主要完成將數據存入結構體數組中,從鍵盤逐個輸入記錄。記錄由學生的基本信息和成績信息字段組成。當從數據文件中讀入記錄時,它就是在以記錄為單位存儲在數據文件中將記錄逐條復制到數組元素中。void input() file *fp; stu xs; /*定義一個結構體變量來裝從文件中讀出來的數據*/ if(fp
4、=fopen(student.dat,ab)=null) printf(cant open file!n);exit(0); printf(n 姓名 學號 計算機 數學 英語 當輸入姓名為ps結束錄入n); while(1) /*中間加入break,可使循環中斷*/ 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 更新記錄模塊主要完成對記錄的維護。實現對記錄的修改,刪除,插入和統計操作1.對記錄的修改void modi() stu xs; file *fp; char name21; system(cls); printf(n輸入要修改學生的姓名: );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( 修改前學生的信息如下:n); printf(n%10s %6d %6.2f %6.2f %6.2f n,姓名,學號,計算機,數學, 英語); printf(%10s %6d %6.2f %6.2f %6.2f n,,xs.num,puter,xs.math,xs.english); printf(n請輸入該生的計算機成績:);scanf(%f,&puter); printf(n數學成績:);scanf(%f,&xs.math); printf(n英語成績:);scanf(%f,&xs.english); break; if(!feof(fp) s
7、ystem(cls); printf( n 修改后的學生的信息如下:n); printf(n 姓名 學號 計算機 數學 英語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表示文件當前位置*/ fwrite(&xs,sizeof(stu),1,fp);/*再寫入,同時把要修改的那個覆蓋掉*/ fread(&xs,sizeof(stu),1,fp);/*把數據讀入到結構體數組中*/ getchar();
8、else printf(n學生不存在,修改失敗!); fclose(fp); getchar();/添加:輸入學生的平時的各項成績,插入到指定位置;當指定的位置超出范圍時,將其插入到全班的最后,并顯示插入成功后的結果。2添加記錄void insert() int i=0,j,k,lenth; file *fp; stu s,xsn; system(cls); printf(n請輸入添加的學生的姓名:);scanf(%s,&); printf(n學生的學號:);scanf(%d,&s.num); printf(n學生的計算機成績:);scanf(%f,&puter); printf(
9、n數學成績:);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);/*把數據讀入到結構體數組中*/ if(feof(fp) break; i+; fclose(fp); lenth=i; if(k=0)/*k的位置要位于數組范圍之內*/ /插
10、入 for(j=lenth-1;j=k;j-) xsj+1=xsj;/*一開始j是最大的,往后移一個這樣移動避免數據被覆蓋*/ /*循環是只循環這一句的*/ xsk=s;/*將輸入的學生信息加入這個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/*不再數組范圍之內*/ if(fp=fopen(student.dat,ab)=null) printf(不能建立文件!
11、n);exit(0); fwrite(&s,sizeof(stu),1,fp); fclose(fp);/刪除:輸入學生姓名,若該學生存在,則刪除,并顯示刪除后余下的學生成績信息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,姓名,學號,計算機,數學, 英語); 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說明找到刪除學生位置*/ 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 查詢記錄模塊主要完成在數組中查找滿足相關條件的記錄。在此系統中,用戶可按學號或姓名查找若找到該記錄則以表格形式打印出此記錄的信息否則返回一個-1的值,并打印出未找到該記錄的提示信息。/查詢1按姓名void xingming() file *fp; stu xs; char name21; printf(n輸入要查學生的姓名: );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)/*按姓名查詢時判斷輸入的姓名是否存在,會循環從數據中找取*/ printf( 學生的信息如下:n); printf(n%10s %6s %6s %6s %6s n,姓名,學號,計算機,數學, 英語); printf(%10s %6d %6.2f %6.2f %6.2f n,,
15、xs.num,puter,xs.math,xs.english); break; if(feof(fp) printf(查找失敗!); /*學生不存在*/ fclose(fp);2按學號void xuehao() file *fp; stu xs; int num; printf(n輸入要查學生的學號: );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、按學號查詢時判斷輸入的學號是否存在,會循環從數據中找取*/ printf( 學生的信息如下:n);printf(n%10s %6s %6s %6s %6s n,姓名,學號,c語言,高數, 英語); 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-學號:n); scanf(%d,&select); if(select=1) xingming(); if(select=2) xuehao();getchar(); printf(press any key to continuen); getchar();/*讓屏幕停留同時按任意鍵返回*/4 統計記錄模塊主要完成對學生最高分及不及格人數的統計1統計不及格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;/*用指針數組*/ 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);/*讀入數據*/ if(feof(fp) break; t=i;i=0; for(u=0;ut;u+)/*以下每個指針數組用于指向每門不及格的學生信息*/ 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(數學不及格:n); for(p=0;pname,p2p-num,p2p-math); printf(計算機不及格:n); for(q=0;qname,p3q-num,p3q-computer); getchar(); printf(press any key to continue:n); fclose(fp); getchar();2統計最高分 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)/*文件讀入內存,讀取指針未到文件尾時返回值為0,讀到尾時返回值為1,加!取反后,結束即為0*/ fread(&xsi,sizeof(stu),1,fp);/*讀入結構體變量*/ if(feof(fp) break;/*上面while循環那個會多讀一次因為讀到尾時那個0還沒返回,這里判斷如果以讀到文件尾,則直接停止,避免重復輸入*/ 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,數學最高分%f,計算機最高分%fn,maxenglish,maxmath,maxcomputer); getchar(); /*把i的末尾值給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學生成績管理系統學生成績管理系統=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.統計:n不及格人數:n英語: 數學: 計算機:n); printf(*n); printf( 7.各科最高分:n英語: 數學: 計算機:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學內容持續更新計劃
- 個人建房建筑合同樣本
- 出售器材合同標準文本
- 供門窗合同標準文本
- 入職協議合同范例
- 企業與學校合同樣本格式
- 上海預售合同標準文本
- Epc合同樣本 課程
- 庭院花卉草坪施工方案
- 電池設計仿真考核試卷
- 中藥的道地藥材課件
- 《跋傅給事帖》2020年浙江嘉興中考文言文閱讀真題(含答案與翻譯)
- 幼兒園《3-6歲兒童學習與發展指南》健康領域知識試題及答案
- 國家職業技能標準 (2021年版) 嬰幼兒發展引導員
- 幼兒園小班科學:《小雞和小鴨》 PPT課件
- 伯努利方程-ppt課件
- 銀行從業資格考試題庫附參考答案(共791題精心整理)
- 年產20噸阿齊沙坦原料藥生產車間的設計和實現材料學專業
- 電子公章模板
- 第3章軌道車輛牽引計算
- 基于JSP的校園網站的設計與實現論文
評論
0/150
提交評論