C語言實驗學(xué)生成績管理系統(tǒng)中南大學(xué)_第1頁
C語言實驗學(xué)生成績管理系統(tǒng)中南大學(xué)_第2頁
C語言實驗學(xué)生成績管理系統(tǒng)中南大學(xué)_第3頁
C語言實驗學(xué)生成績管理系統(tǒng)中南大學(xué)_第4頁
C語言實驗學(xué)生成績管理系統(tǒng)中南大學(xué)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、X X大學(xué)c s uc語言程序設(shè)計實踐報告題 目學(xué)生成績管理系統(tǒng)學(xué)生姓名剽悍的小白兔指導(dǎo)教師L2學(xué) 院信息科學(xué)與工程學(xué)院專業(yè)班級 電氣信息類xxxx班完成時間20XX年X月、設(shè)計目的通過課程設(shè)計使學(xué)生綜合使用所學(xué)過的C語言程序設(shè)計知識,掌握結(jié)構(gòu)化程序設(shè)計的基本思路和方法,在所掌握的基本知識和技能的基礎(chǔ)上,進(jìn)一步提高自學(xué)能力和査找資料的能力,解 決一定程度的復(fù)雜的結(jié)構(gòu)化程序設(shè)計問題,加深對所學(xué)知識的理 解與掌握,增強(qiáng)學(xué)生我們利用自己所學(xué)知識解決實際問題的能力, 為以后的程序開發(fā)打下基礎(chǔ)。二. 系統(tǒng)分析隨著科學(xué)技術(shù)的不斷發(fā)展,對人們的工作水平要求也越來越 高,然而計算機(jī)就成了幫助人們解決這個問題的

2、工具,熟練的運 用計算機(jī),它能為人們解決許多工作上的難題。對與一個管理人 員來說,快而迅速的了解各種信息是很關(guān)鍵的。使用計算機(jī)在C 語言環(huán)境下編寫相關(guān)的管理系統(tǒng)就能達(dá)到對相關(guān)信息的錄入、顯 示;對記錄的査詢極其修改等目的。基于同樣的C語言環(huán)境,對其提供的頭文件切 (stdiOeh,stdlibh,stringh,malloch,memh,ctypeh,conioh 等)的 不同組合,能為我們解決許許多多的問題,因此,用它來編寫成 績管理管理系統(tǒng)是可行的。三、學(xué)生成績管理系統(tǒng)主要功能數(shù)據(jù)的錄入:如錄入學(xué)生的基本信息,以及該學(xué)生選修課程的 基本信息;數(shù)據(jù)的修改:如修改指定學(xué)號、或者指定姓名的學(xué)生信

3、息,或 者修改其選修課程信息;數(shù)據(jù)的插入:插入某個學(xué)生信息;數(shù)據(jù)的查詢:如按學(xué)號查詢、按姓名查詢等;數(shù)據(jù)的刪除:如刪除指定學(xué)號、或者指定姓名的學(xué)生及其選修 課程信息;平均成績的計算:計算每個學(xué)生各門功課的平均成績,并按平 均成績從高到低的次序輸出學(xué)生信息;列出不及格學(xué)生清單(學(xué)號、姓名、不及格的課程和成績)。四、功能的實現(xiàn)與要求1. 數(shù)據(jù)錄入:數(shù)據(jù)錄入的功能是將需要的數(shù)據(jù)進(jìn)行錄入,用于后面的各項操作。實現(xiàn):用輸入函數(shù)對數(shù)據(jù)進(jìn)行錄入,先確定學(xué)生的個:,再用一個循環(huán)進(jìn)行輸入,選修課程數(shù)量亦然。2. 數(shù)據(jù)修改:數(shù)據(jù)修改的主要功能是為修改數(shù)據(jù)輸入出現(xiàn)的錯誤,實現(xiàn):先指定該生的學(xué)號,找到該生,再輸出該生

4、當(dāng)前的信息,用一 個if語句對數(shù)據(jù)進(jìn)行修改,再用一個循環(huán)語句對選修課信息進(jìn)行修改。3. 數(shù)據(jù)插入:數(shù)據(jù)插入的主要功能是在數(shù)據(jù)錄入之后,為防止數(shù)據(jù)輸入的遺漏,實現(xiàn):分為兩個部分,第一個是插入第一個位置,第 二是插入第一個位置之后,把當(dāng)前的位置賦給后面的加以實現(xiàn)。4. 數(shù)據(jù)査詢:數(shù)據(jù)查詢的主要功能是在數(shù)據(jù)輸入之后進(jìn)行分類再現(xiàn), 實現(xiàn):分為輸出所有數(shù)據(jù),按學(xué)號查詢,按姓名查詢,當(dāng)輸入的數(shù)據(jù) 滿足條件時即輸出所要求的。5. 數(shù)據(jù)刪除:數(shù)據(jù)刪除的主要功能是在數(shù)據(jù)錄入、數(shù)據(jù)插入和數(shù)據(jù) 修改完成之后對無用數(shù)據(jù)進(jìn)行刪除,實現(xiàn):輸入學(xué)號,滿足條件時即 把后一個數(shù)值賦給前一個數(shù)值,達(dá)到刪除的目的。6. 平均值計算

5、:平均值計算的主要功能是求平均值,再對其進(jìn)行排 序,實現(xiàn):用公式進(jìn)行計算求平均值,之后便是排序問題,求最大值, 然后依次輸出各最大值,即實現(xiàn)了排序功能。7. 列出不及格學(xué)生清單:這部分的主要功能是列出不及格學(xué)生清 單,實現(xiàn):用一個判斷語句,當(dāng)分?jǐn)?shù)小于60時,即輸出相應(yīng)的學(xué)生 信息即可。五、系統(tǒng)扌匡圖査詢學(xué)生基本信息錄入修改班機(jī)信息管理輸入修改學(xué)生課程管理査詢輸入修改學(xué)生成績管理査詢退出系統(tǒng)六、系統(tǒng)流程圖七、界面設(shè)計系統(tǒng)運行界面(部分)如下:歡迎進(jìn)入學(xué)生成績管理系統(tǒng)設(shè)計者090909指導(dǎo)教師:夫?qū)W信息科學(xué)與工程學(xué)院電氣09班2010年?月Pvess Fntev to Continue圖1主界面系

6、統(tǒng)主菜卑(.錄入數(shù)據(jù)2. 修改數(shù)據(jù)3. 插入數(shù)據(jù)4-數(shù)據(jù)查詢5.刪除數(shù)據(jù)6 平均成績計算人列出不及裕學(xué)注清單8.退出系統(tǒng)請輸入一個數(shù)字來選擇目錄:圖2主菜單1 1 fi M 18請輸入此學(xué)生選修課程數(shù)量:1請輸入該學(xué)生第1門選修課程信息:課程編號諜程名稱學(xué)分考試成績平時成績1 Math 2 80 90請輸入第2個學(xué)生的基本信息: 班級學(xué)號姓名性別年齡2 2 B F 18請輸入此學(xué)生選修課程數(shù)量:1請輸入該學(xué)生第丄門選修課程信息:課程編號諜程名稱學(xué)分考試成績平時成績1 Math 2 30 60是否繼續(xù)輸入y/n?圖3錄入數(shù)據(jù)修改數(shù)據(jù)請輸入要修改數(shù)據(jù)的學(xué)生的學(xué)號:#學(xué)生當(dāng)前信息:班級次學(xué)號:1姓名

7、:a性別年齡:18卜班級2學(xué)號45 年齡6 選修課程信息請輸入修改后數(shù)據(jù): 是否繼續(xù)修改此學(xué)生信息n?圖4修改數(shù)據(jù)3 C M 18是否要將豔皺到笫一個位置是否添加該學(xué)生的選修課程信息n?y請輸入此學(xué)生選修課程數(shù)量:1請分別輸入該學(xué)生選修課程信息:課程編號課程名稱學(xué)分考試成績平吋成績1 Math 2 45 6?是否繼續(xù)插入下一學(xué)生信息n?圖5插入數(shù)據(jù)數(shù)據(jù)查詢1 顯示全部數(shù)據(jù)2. 按學(xué)號查詢3. 按姓名查詢4. 返回主菜單請輸入一個數(shù)字來選擇目錄:圖6數(shù)據(jù)査詢fez,安平均成次序輸岀學(xué)生信息:7 10 1 6 6 :號:號 責(zé)扁責(zé)扁 成程成程 均諜均課C 0 B 0 名:2名:2 姓分姓分 學(xué):

8、ulpthDIPth 學(xué)Ma學(xué)Ma性別汕年齡記&等試成宛45.0平吋成績:&7-0綜合成績516 性別:F年齡考試成績:30.0平時成績:60-0綜合成績390 是否返回王目錄y/n?圖7計算平均成績列岀不及格學(xué)生清單不及格學(xué)生清單:學(xué)號:3姓名:C不及愴課程:Math綣合成績:51.6學(xué)導(dǎo):2姓名:B不及榕課程:Math綜合成績是否返回主目錄Wn?圖8不及格學(xué)生統(tǒng)計八、程序代碼#include#include#include#include main()ini i.w=0,u/*被選中學(xué)生的下標(biāo)憶依科目數(shù)雖臥in( o=0嚴(yán)學(xué)生總數(shù)*/.p=O,g|5O/*每個學(xué)生的選修課程 數(shù)*Aa.x.

9、b/*新増學(xué)生個數(shù)Axx/*li前學(xué)生班級嘰char xm50/*p!前學(xué)生姓名*/.h10o char oo/套判斷是否 繼續(xù)如。float s|50/*平均成績*/,max,al(50o longqqostruct studentint io產(chǎn)班級引long j o嚴(yán)學(xué)號char m30。八姓名勺char n|10o嚴(yán)性別勺int Xo戶年齡引)c50ostruct scoreintqc /氣果程編號*/ char w50o嚴(yán)課程名稱 float e. 學(xué)分時 float rc /水考試成績勺float to嚴(yán)平時成績對 double y。嚴(yán)綜合成績勺)z|50|10|o歡迎進(jìn)入nn學(xué)生成

10、績管理系統(tǒng)nnn 設(shè)計者:剽悍的小白兔090909XXXXnn 指導(dǎo)教師:TZnn XX大學(xué)信息科學(xué)與丄程學(xué)院 電氣09XX班nnn2010 年 7 月Press Enter to Continue”)。getcharOo sys“m(CLS)。while( 1)系統(tǒng)主菜單nnl 錄入數(shù)據(jù)nn2 修改數(shù)據(jù)nn3 插入數(shù)據(jù)nn4擻據(jù)査 system(HCLS)o*n詢nn5 刪除數(shù)據(jù)nn6.平均成績計nn7.列出不及格學(xué)生清單nn8 退出系統(tǒng)nn”)。 printfC*請輸入一個數(shù)字來選擇目錄:niT)。scanf(H%d&i)csystem(MCLS)cif(i=l)嚴(yán)1.錄入數(shù)據(jù)*/prin

11、tfC*錄入數(shù)據(jù) nn”)。whiled)(printtVn請輸入要錄入的學(xué)生個數(shù):5“)。scanf(H%dM.&b)oif(bvl) prinlfC*n輸入錯誤! ! n請輸入要錄入的學(xué)生個數(shù)n“) else if(b=l)for(a=()o ab=. a+)primf(”n請輸入第d個學(xué)生的基木信息:nn班級學(xué)號姓名性別年齡n:a+l) scanf(%d %ld %s %s %dM,&co+a.i,&c(o+a.j,&co+aJ.m,&c(o+a.n,&co+a.x)o primf(“n請輸入此學(xué)生選修課程數(shù)雖:n“)。scanfT%cT&f)。g|o+a=fofor(i=0o i w=

12、w+lif(w=O) printfC*輸入錯誤! ”)。breakc while( 1)printfCAn請輸入數(shù)字選擇要修改的數(shù)彳處nl班級2學(xué)號3姓名4性別5年齡6選修課程信息Wscanf(M%d&i)cif(i!=6) printfCAn請輸入修改后數(shù)據(jù)An”)。if(i=l) scanf(%(r&cui)。else if(i=2)else if(i=3)else if(i=4)else if(i=5)else if(i=6)scanf(”kT&cuj)。 scanf(”s,&cu.m)。 scanf(%s”,&cu.n)o scanf(H%dM.&c(u|.x)oprintf(”n該學(xué)

13、生選修課為前信息:”)。for(i=Oo ig(u|o i+)prinif(”課程編號:d課程名稱:s學(xué)分:%3.If考試成績:%3.1f平時成績:%3fnR,zui.q,zui.wtzuJi.e,z(ui.r,zu(i.t)o)primf(“n請輸入要修改的數(shù)據(jù)的馮前選修課程編號:)。scanf(%dM.&x)o w=Ocfor(i=Oo ia. u-)cu+l=cuofor(i=0o iguo i+)zu+li=zu(iog|u+l=g|u)oscanf(H%d %ld %s %s %d;&ca+li,&ca+lj,&ca+l).m,&c(a+l.n,&ca+l.x)o0=0+1oprim

14、是否添加該學(xué)生的選修課程信息y/n?*)oscanfC,%sM.&h)oif(strcmp(hJ,y,)=O)(printft i請輸入此學(xué)生選修課程數(shù)量:)。scanfC*%dM.&f)og|a+l=foprintfCVn請分別輸入該學(xué)生選修課程信息:nii課程編號課程名稱學(xué)分 考試成績平時成績!)“)。for(i=0o i=()o u-)(cu+l=c|uofor(i=0o igu|o i+)zu+lix=zuig(u+l|=g|uoscanfC%d %ld %s %s %d“.&cOi,&cOj,&cOm,&cO.n,&cOx)。0=0+1 oprinifC是否添加該學(xué)生的選修課程信息y

15、/nW.scanfC%sR,&h)oif(strcmp(hJyH)=O)(printf(Mn請輸入此學(xué)生選修課程數(shù)址:2)。scanf(H%dM.&f)ogO=fcprimf(“n請分別輸入該學(xué)生選修課程信息:nn課程編號課程名稱學(xué)分考試成績平時成績ir)for(i=Oa iL i+)scanf(M%d %s %f %f %r&z(Oi.q,&zOi.w,&zO(i.e,&zOi.r&z0i)。printtVViAn是否繼續(xù)插入下一學(xué)生信息y/nAn) scanfT%s”,&h)。if(strcmp(h.nM)=O) breakelse if(strcmp(h.MyH)=O) system(M

16、CLSM)celse if(i=4)/*4.數(shù)據(jù)查詢勺prinlfC*數(shù)據(jù)査詢W)。for(a=Oc aOo a+)for(i=Oo igao i+)zai.y=zai.r*0.7+zai.t*03o)whiled)*nii 數(shù)據(jù)査詢nnnl顯示全部數(shù)據(jù)nn2按學(xué)號査詢nn3按姓名査詢nn4返回主菜訊”)。prinlf(Mjin請輸入一個數(shù)字來選擇目錄:nn”)。 scanf(H%dM.&p)o if(p=l)fdr(a=Oo avn a+)prinlf(”班級:%d學(xué)號:%Id 姓名:%s性別:%s 年齡:diT,cai,caj,cam,can,cax)。for(i=Oo igao i+)p

17、rintfC*課程編號:d課程名稱:s學(xué)分:%3.If考試成績:%3.If平時成績:3lf 綜合成績:%3Jfnz(ai.q,z(aiAv,zai.e,z(a(i.r,z|an.t,zai.y)。else if(p=2) primf(“請輸入要查詢學(xué)生的學(xué)號:W)。scanf(M%ldM.&qq)o w=0。fdr(a=Oo avn a+)Iif(qq=c(abj)primf(”班級:d學(xué)號:%Id姓名:s性別:%s年齡:diT,cai,caj,cam.can,cax)。for(i=()3 ig|alc i+)prinlfC課程編號咲d諛程名稱:s學(xué)分:%3.1f考試成績:%3.1f平時成績:

18、%3.if 綜合成績:%3lfn”.zai)qzaivvza|iezairzai2ai.y)。W=W+loif(w=0) primf(“此學(xué)號不存在! nM)oelse if(p=3)printf(”請輸入要查詢學(xué)生的姓名:n“)scanf(M%sH.&xm)o w=0ofor(a=0o avon a+)(if(slrcmp(xm.cam)=O)printfC*班級:d 學(xué)號:%Id 姓名:s 性別:%s年:%dn,c(a.i,ca.j,ca.m,c(a.n,ca).x)ofbr(i=Oo ig|a|c i+)printfC1課程編號:d課程名稱:s學(xué)分:3.If考試成績:3.1f平時成績:%

19、3.If 綜合成績%3.11nK,zai.q.z|ani.w,z|a|il.e.zai.nz(al|i.t,z|a|il.y)ow=w+lo)if(w=0) printf(H此姓名不存在! if)celse if(p=4)break aelse printf(H輸入錯誤!! n”)printf(Mnn是否返回數(shù)據(jù)査詢界面y/n?n)scanf(n%s&h)cif(slrcmp(h.HnM)=O) breakelse if(strcmp(h.MyH)=O) system(MCLS )oelse if(i=5)/*5.刪除數(shù)據(jù)燈printff 刪除數(shù)據(jù)”)。whiled)(primf(”n請輸入要

20、刪除的學(xué)生的學(xué)號:if)cscanf(%ld&qq)。w=0ofor(a=Oc aoo a+)if(qq=c|a.j)Ifor(i=a。ioo i+)c|i=c|i+lotbr(u=0n ug|ila ii卄) ziu=zi+l(u. gi=g|i+l。)printf(Mii 已刪除nnM) w=w+L0=0-1 o)if(w=0) prinlftAn 該學(xué)生不存在! n“)。 printf(Mnn是否繼續(xù)冊除學(xué)生數(shù)據(jù)y/nAn”)。 scanf(H%sH,&h)oif(strcmp(h,HnM)=O) break oelse if(strcmp(h.MyH)=O) sysiem(”CLS”)

21、。)else if(i=6)/*6.平均成績計算燈prinlfC*平均成績計算”)。prinltVn按平均成績從高到低的次序輸出學(xué)生信息:。2蘭冒 。二三zz+xw=z75 (+n。一EHVn oo=n)E oE=e(+E ovpdME)OJ(1)2三鄉(xiāng)oeF二二ZZ+UF二二巨 ZUA 三zz)(+.os8vco=-OJ(+E OOVEoHE)OJOM三 Mz 二二ZZM二HZM二巨 ZAV 三Hzb 三一 E52富瞭 徑如迷U&棗竦空E.A二?縣逗哲粟二空0綁p&oip甕圏殺)1記d(+一二 EOEvo)OJooczod邑Hu!E4sH【EH【eNMP% 曲題秦率遵妹裁2空即潞靂祭罷.8

22、-竦姿蟲4kgK)(+E OOVEoHE)OJOXEW丄E 一S。_三5丄三SUXEUI)(XEWAHSU 一(+n oovn OEUnMEossmxbui(+e OOVEoHEroJscanf(H%sw,&h)oif(slrcmp(h.,yM)=O) breakelse if(strcinp(h.MnM)=O) syslem(”CLS”)。else if(i=7)/*7.列出不及格學(xué)生清單勺printfC*列出不及格學(xué)生清單)for(a=Oc aOo a+)for(i=On igao i+)Izai.y=za(i.r*0.7+zai.t*03owhiled)IprintfC*nn不及格學(xué)生清單:niT)。x=0ofor(a=Oc aOo a+)Ifdr(u=On ug|ah u+)if(int)zau.y60)(printfC*學(xué)號:%Id姓

溫馨提示

  • 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

提交評論