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

下載本文檔

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

文檔簡介

1、學生成績管理系統(tǒng)課程設計報 告目 錄一、系統(tǒng)軟件環(huán)境(3)二、課程設計題目(3)三、課程設計的基本要求(3)四、數(shù)據(jù)結(jié)構(gòu)設計描述(4)五、各變量的定義和作用(4)六、系統(tǒng)各函數(shù)的功能、相互調(diào)用關系(4)七、N-S 流程圖(5)八、課程設計過程中遇到的問題及解決過程(6)九、心得與體會(6)十、附頁源程序清單(6)十一、參考文獻(6)附錄學生成績管理系統(tǒng)課程設計報 告一系統(tǒng)軟件環(huán)境:本程序主要運行在: Visual C+ 6.0Turbo C/C+ 3.0 Turbo C 2.0二課程設計題目:(一)用梯形法求定積分(數(shù)值求解算法)用梯形法編程求函數(shù)f(x)=x2+2x+1的定積分提示:把積分區(qū)

2、間a,b等分為n等分(a,b,n的值由程序輸入。),可得到若干個小梯形,積分面積就近似為這些小梯形面積之和。(二)綜合訓練學生成績管理程序說明:有N個學生,每個學生的數(shù)據(jù)包含學號(不重復)、姓名、三門課的成績及平均成績,試設計一學生成績管理系統(tǒng),使之能提供以下功能:(1)主菜單學生成績管理系統(tǒng)1、 成績錄入2、 成績查詢3、 成績統(tǒng)計4、 退出(2)各菜單項功能 成績錄入:輸入學生的學號、姓名及三門課的成績; 成績查詢:v 按學號查詢學生記錄。 績統(tǒng)計:v 計算學生的平均分;OKv 根據(jù)學生的平均分高低,對學生的數(shù)據(jù)進行排序后輸出;OK 退出系統(tǒng):退出整個系統(tǒng)(即主菜單)。三課程設計的基本要求

3、設計步驟的規(guī)范不但可以培養(yǎng)學生科學的工作方法和作風,而且還能有效地減少錯誤,提高工作效率。因此必須嚴格執(zhí)行良好的實驗步驟規(guī)范(包括上級操作規(guī)范)。本課程設計的基本步驟與要求是:1、問題分析及解決方案框架確定充分地分析和理解問題本身,弄清要求做什么。在確定解決方案框架過程中,考慮怎樣使程序結(jié)構(gòu)清晰、合理、簡單和易于調(diào)試,并確定每個函數(shù)的簡單功能,以及函數(shù)之間的調(diào)用關系。2、詳細設計和編碼確定算法的主要流程,再此基礎上進行代碼設計(Coding),每個明確的功能模塊程序一般不超過60行,否則要進一步劃分。3、上機前編寫程序與檢查上機前程序檢查可有效提高調(diào)試效率,減少上機調(diào)試程序時的無謂錯誤。程序檢

4、查主要有兩種途徑:用一組測試數(shù)據(jù)手工執(zhí)行程序;通過閱讀或給別人講解自己的程序而深入全面地理解程序邏輯。把程序中的明顯錯誤事先排除。4、上機調(diào)試程序5、完成課程設計報告四數(shù)據(jù)結(jié)構(gòu)設計描述五各變量的定義和作用int num; /*定義學號,變量為整型*/char name; /*定義姓名,變量為字符型*/int score; /*定義課程的成績,變量為整型*/float average; /*定義平均分,變量為浮點型*/六系統(tǒng)各函數(shù)的功能、相互調(diào)用關系1函數(shù)實現(xiàn)功能說明:(1)、menu函數(shù)是定義一個菜單函數(shù),其功能在于輸出菜單界面供使用者選擇。(2)、input函數(shù)是定義用于輸入學生信息。(3)

5、、select函數(shù)是定義義用于查詢學生信息。包括學號、姓名及各科成績。(4)、statistics函數(shù)計算學生的平均分。根據(jù)學生的平均分高低,對學生的數(shù)據(jù)進行排序后輸出。2相互調(diào)用關系:Main函數(shù)調(diào)用menu函數(shù)。Menu函數(shù)可以調(diào)用input函數(shù)、select函數(shù)和statistics函數(shù) 七N-S流程圖(一)、用梯形法求定積分流程圖:輸入a,b,n;h=(b-a)/nf0=a*a+2.0*a+1.0for i=0 to na=a+hf1=a*a+2.0*a+1.0s=(f0+f1)*h/2.0+sf0=f1輸出s(二)、學生成績管理系統(tǒng)的NS流程圖:1、輸入函數(shù):for i=0 to N

6、輸入學號、姓名for j=0 to M輸入3門成績分數(shù)輸入完畢!按任意鍵返回主菜單例如輸入: 1 王 90 80 75;2 李 80 85 60;3 趙 65 75 902、查詢函數(shù):輸入要查詢學生號碼輸出學生學號輸出學生姓名for i=0 to M顯示該學生的3門課程成績按任意鍵返回主菜單3、統(tǒng)計函數(shù):For j=0 to NFor i=0 to Mtemp=temp+stuj.scoreistuj.average=temp/N求平均成績并輸出排序(冒泡法)輸出學生平均成績前三名按任意鍵返回主菜單4、菜單函數(shù):輸出“學生成績管理系統(tǒng)”及功能菜單 1真 2真 3真 4真清屏并調(diào)用“輸入函數(shù)”清

7、屏并調(diào)用“查詢函數(shù)”清屏并調(diào)用“統(tǒng)計函數(shù)”退出系統(tǒng)5、主函數(shù):清屏并調(diào)用“菜單函數(shù)”八課程設計過程中遇到的問題及解決過程1、For(i=0;i>n;i+)經(jīng)常寫成For(i=0,i>n,i+),導致運行錯誤。解決方法:編程時候需要仔細和耐心。2、對菜單切換的方法不了解,編寫的程序運行時候是一豎行向下排列,很影響使用者的視覺范圍,通過搜索一些相關資料得知system("cls")的作用。3、對一些知識的不熟悉,導致剛開始編程的時候很難下手。 解決方法:重新掌握不熟悉的知識并收集相關資料。九心得與體會:一周的課程設計很快結(jié)束了,一開始拿起題目時什么都不懂,真不知道從

8、何下手到后來覺得它很有趣,很想去做并希望能把它做得更好。剛開始錯誤實在太多,改錯誤真的很頭疼,不過當經(jīng)過一次又一次的調(diào)試后,終于弄好了,那時卻是特別的高興。總的來說就是這次的課程讓我學了不少東西,也讓我對編程更有興趣,雖然學的不是很好,不過以后會努力的。十源程序(請見附錄)附錄1:用梯形法求定積分(數(shù)值求解算法)附錄2:學生成績管理系統(tǒng)十一.參考文獻C程序設計(第三版)附錄1:用梯形法求定積分(數(shù)值求解算法)#include<stdio.h> main() int i; float s=0,h,f0,f1,a,b,n; printf("Plreas Enter a,b,n

9、:"); scanf("%f,%f,%f",&a,&b,&n); h=(b-a)/n; f0=a*a+2.0*a+1.0; for(i=0;i<=n;i+) a=a+h; f1=a*a+2.0*a+1.0; s=(f0+f1)*h/2.0+s; f0=f1; printf("%fn",s); getch(); 附錄2:學生成績管理系統(tǒng)#include <stdio.h>#include<stdlib.h> #include<conio.h> #define N 3 /*學生人數(shù)*

10、/ #define M 3 /*課程門數(shù)*/ struct student int num; /*學號*/char name20; /*姓名*/int score3; /*三門課成績*/float average;stuN; /*學生數(shù)*/void input(); void select(); /*查詢*/void statistics(); /*統(tǒng)計*/void menu(); void input()int i,j;printf("tt成績錄入nn");for(i=0;i<N;i+)printf("請輸入學號:");scanf("%

11、d",&stui.num);printf("請輸入姓名:");scanf("%s",&);for(j=0;j<M;j+)printf("第%d門成績的分數(shù)為:",j+1); scanf("%d",&stui.scorej);printf("nn");printf("nn"); printf("輸入完畢!按任意鍵返回主菜單!"); getch(); /*2.查詢*/void select(int no

12、) int i;printf("學生%d號:n",no); printf("學號:%dn",stuno-1.num);printf("姓名:%sn",);for(i=0;i<M;i+) printf("第%d門課程的成績?yōu)椋?quot;,i+1);printf("%dn",stuno-1.scorei); printf("n按任意鍵返回主菜單!"); getch(); /*3.統(tǒng)計*/void statistics() float temp=0;int i

13、=0; int j=0;/*學生成績平均分*/ temp=0;printf("tt成績統(tǒng)計nn");printf("n學生成績平均分:"); for(j=0;j<N;j+) for(i=0;i<M;i+) temp=temp+stuj.scorei; stuj.average=temp/N; printf("n學生%s的成績平均成績?yōu)椋?quot;,);printf("%0.2f分",stuj.average); temp=0; /*排序(冒泡法)*/ for(j=0;j<N;j+) fo

14、r(i=0;i<N-j-1;i+)if(stui.average<stui+1.average) temp=stui.average; stui.average=stui+1.average; stui+1.average=temp; printf("nn學生平均成績前三名:"); for(i=0;i<3;i+) printf("n第%d名:%0.2f分",i+1,stui.average); printf("nn按任意鍵返回主菜單!"); getch(); void menu() int num=0; int n=0; printf("nttt學生成績管理系統(tǒng)nn"); printf("ttt成績錄入nttt成績查詢nttt成績統(tǒng)計nttt退出系統(tǒng)n"); printf("tttchoose:"); scanf("%d",&num); switch(num) case 1: system("cls"); input(); break; case 2: system("cls"); printf("tt成績查詢nn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論