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

下載本文檔

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

文檔簡介

1、信息科學(xué)與技術(shù)學(xué)院程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告題目名稱: 學(xué)生成績管理 學(xué)生姓名: 駱聰非 學(xué) 號: 2011508019 專業(yè)班級:計(jì)算機(jī)科學(xué)與技術(shù) 2011級 1班指導(dǎo)教師: 郭理 2012年 7月 5日1. 課程設(shè)計(jì)題目與要求21.1. 課程設(shè)計(jì)題目:21.2. 課程設(shè)計(jì)要求:21.3. 其他要求:22. 總體設(shè)計(jì)23. 詳細(xì)設(shè)計(jì)33.1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)33.2. 主模塊功能設(shè)計(jì)43.3. 部分功能模塊代碼53.3.1. 實(shí)現(xiàn)錄入學(xué)生信息53.3.2. 實(shí)現(xiàn)修改學(xué)生成績53.3.3. 實(shí)現(xiàn)對學(xué)生成績的查詢64. 運(yùn)行結(jié)果64.1. 調(diào)試過程64.2. 調(diào)試結(jié)果說明115. 課程設(shè)計(jì)總結(jié)11朗

2、讀顯示對應(yīng)的拉丁字符的拼音字典 - 查看字典詳細(xì)內(nèi)容1. 課程設(shè)計(jì)題目與要求1.1. 課程設(shè)計(jì)題目:學(xué)生成績管理1.2. 課程設(shè)計(jì)要求:1、問題描述(功能要求): (1)能按學(xué)期,按班級完成對學(xué)生成績的錄入,修改(2)能按班級統(tǒng)計(jì)學(xué)生的成績,求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績進(jìn)行排序(3)能查詢學(xué)生成績,不及格科目及學(xué)生名單(4)能按班級輸出學(xué)生的成績單 2、問題的解決方案: 根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: (1)分析系統(tǒng)中的各個實(shí)體之間的關(guān)系及其屬性和行為; (2)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次; (3)完成類層次中各個類的描述(包括屬性和方法); (4)完成類中各

3、個成員函數(shù)的定義; (5)完成系統(tǒng)的應(yīng)用模塊; (6)功能調(diào)試; (7)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書。 1.3. 其他要求: (1)只能使用c/c+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀 (2)至少采用文本菜單界面(如果能采用圖形菜單界面更好) (3)學(xué)生可自動增加新功能模塊2. 總體設(shè)計(jì)該系統(tǒng)實(shí)現(xiàn)對若干大學(xué)生的學(xué)習(xí)成績進(jìn)行管理,能實(shí)現(xiàn)按學(xué)期、按班級完成對學(xué)生成績的錄入、修改,能按班級統(tǒng)計(jì)學(xué)生的成績,求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績進(jìn)行排序能查詢學(xué)生成績,不及格科目及學(xué)生名單,能按班級輸出學(xué)生的成績單等。整個系統(tǒng)用vc+進(jìn)行實(shí)現(xiàn),用指針、鏈表來實(shí)現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),

4、系統(tǒng)具有錄入、修改、求總、求平均分、輸出等功能。系統(tǒng)的各個功能模塊都用類的形式來實(shí)現(xiàn),可以將學(xué)生成績按照分?jǐn)?shù)的高低進(jìn)行排序。學(xué) 生 成 績 管理 系 統(tǒng)對 信 息 進(jìn) 行 處理輸 出 處 理后 的 信 息接 收 輸 入 信 息顯示數(shù)據(jù)庫中的相關(guān) 信 息顯示操作完成 的 情況根 據(jù) 用 戶 的 需 求 調(diào) 用 相 應(yīng) 的 功 能 模 塊將 輸 入的 數(shù) 據(jù)添 加 到數(shù) 據(jù) 庫中 修改相應(yīng)的信 息匯總相應(yīng)的信息統(tǒng)計(jì)相應(yīng)的信息刪除相應(yīng)的信 息3. 詳細(xì)設(shè)計(jì)3.1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)采用c+程序設(shè)計(jì)語言,從鍵盤輸入學(xué)生的基本信息(學(xué)號,姓名,英語成績,高數(shù)成績),計(jì)算每個學(xué)生的平均成績,并將數(shù)據(jù)存入文件s

5、tudent.txt中。按如下格式輸出大于等于平均成績的學(xué)生信息: 學(xué)號 姓名 英語 數(shù)學(xué) c+ 平均成績。提供按學(xué)期、按班級進(jìn)行查詢的功能。盡可能使用運(yùn)算符重載以簡化操作。使用多文件結(jié)構(gòu)和菜單操作,并考慮相應(yīng)的操作權(quán)限(每個教師輸入“自己的學(xué)生”的“某門課程”的成績,而其他學(xué)生的其他課程不能輸入,只有教務(wù)老師才能執(zhí)行歸檔類的操作),以提高程序的實(shí)用性3.2. 主模塊功能設(shè)計(jì)“學(xué)生成績管理信息系統(tǒng)”主要分為學(xué)生瀏覽和后臺管理兩個子系統(tǒng)。設(shè)計(jì)主要功能:能按學(xué)期、按班級完成對學(xué)生成績的錄入、修改;能按班級統(tǒng)計(jì)學(xué)生的成績,求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績進(jìn)行排序;能查詢學(xué)生成績,不及格科

6、目及學(xué)生名單;能按班級輸出學(xué)生的成績單。 顯 示學(xué)生瀏覽查 詢錄 入學(xué)生成績管理系統(tǒng)統(tǒng)修 改后臺管理刪 除統(tǒng) 計(jì)排 序 “學(xué)生成績管理”系統(tǒng)主模塊功能圖 系統(tǒng)界面 輸入信息 信息正確 繼續(xù) 結(jié)束3.3. 部分功能模塊代碼3.3.1. 實(shí)現(xiàn)錄入學(xué)生信息 否 是 錄入學(xué)生信息功能模塊圖3.3.2. 實(shí)現(xiàn)修改學(xué)生成績修改學(xué)生信息輸入學(xué)號輸入信息錯誤修改c+成績修改數(shù)學(xué)成績修改姓名修改英語成績輸入新的成績 修改學(xué)生成績功能模塊圖3.3.3. 實(shí)現(xiàn)對學(xué)生成績的查詢系統(tǒng)界面查找學(xué)生信息按姓名查找按學(xué)號查找輸入錯誤顯示信息學(xué)生成績查詢功能模塊圖4. 運(yùn)行結(jié)果4.1. 調(diào)試過程 首先是學(xué)生成績信息的錄入顯示錄

7、入學(xué)生成績信息 查詢平均成績排名 查詢個人情況 查詢各科平均成績輸出班級成績單修改個人成績統(tǒng)計(jì)有不及格科目的同學(xué)退出系統(tǒng)菜單(1) 錄入學(xué)生信息模塊。完成數(shù)據(jù)儲存工作,從鍵盤輸入學(xué)生紀(jì)錄,學(xué)生紀(jì)錄由學(xué)生的基本信息和成績信息字段構(gòu)成,當(dāng)讀取紀(jì)錄時也就是把儲存的數(shù)據(jù)文件復(fù)制到單鏈表中。(2) 修改成績模塊。完成對學(xué)生紀(jì)錄的維護(hù),它實(shí)現(xiàn)了對學(xué)生成績的更新,修改,刪除,并將修改后的數(shù)據(jù)存入源數(shù)據(jù)文件。(3)查詢成績模塊。完成在列表中滿足相關(guān)條件的學(xué)生紀(jì)錄,用戶可以按照學(xué)號或姓名進(jìn)行查找,若找到該學(xué)生的紀(jì)錄,則返回指向該學(xué)生的記錄指針。4.2. 調(diào)試結(jié)果說明 本文所闡述的學(xué)生成績管理系統(tǒng),具有對學(xué)生成績

8、信息的輸入功能,但是輸入格式有所限制,比如學(xué)號的輸入只能是四個數(shù)字,不是四個數(shù)字,此系統(tǒng)就不予識別,調(diào)試無法再進(jìn)行下去,而且學(xué)號不能相同,相同也會影響程序的調(diào)試。輸入的學(xué)生數(shù)不能少于六個,否則也無法調(diào)試下去。在輸出班級成績單的模塊中,系統(tǒng)將成績單保存到了文件夾中,方便進(jìn)行查看,統(tǒng)計(jì)學(xué)生是否有不及格科目的過程,可以將學(xué)生的姓名學(xué)號成績等都顯示出來,非常方便查看。各功能模塊在主菜單中都有選擇序號,操作人員可以根據(jù)序號選擇要進(jìn)行的操作,退出的時候只要選擇0,即可方便退出。5. 課程設(shè)計(jì)總結(jié) 經(jīng)過兩個星期的c+程序設(shè)計(jì),讓我明白到了c+這門課的重要性,c+作為一門電腦學(xué)的基礎(chǔ)課,是我們必須掌握的順電腦

9、飛速發(fā)展的今天,掌握電腦的應(yīng)用是如今每一位大學(xué)生所必須掌握的,掌握電腦有對各人來說有我種好處,學(xué)習(xí)電腦是一種本領(lǐng),也是一種生存的技能,而c+做為電腦的基礎(chǔ),掌握它更是我們這些大學(xué)生所必須掌握的。拿到題目,我真的不知道該怎么辦,但隨著慢慢的設(shè)計(jì),思路也總算有了,這樣才能繼續(xù)進(jìn)行下去,這時我才真正認(rèn)識到了c+的功能原來是那么的多。一個復(fù)雜的成績管理系統(tǒng),經(jīng)過500-600行的代碼就可以完完全全的達(dá)到,這是讓我非常驚訝的,但相對,如今的c+也是非常難的,這學(xué)期學(xué)到的i/o流,類,都是c+的重點(diǎn),但學(xué)下來以后感覺還是很難所以必須先打好基礎(chǔ),基礎(chǔ)好了,學(xué)什么都會容易很多。這次的程序設(shè)計(jì)讓我重新認(rèn)識到了c

10、+,這是一門非常重要的科目,我們必須付出很多倍的努力學(xué)習(xí)它,才能熟練地掌握它。參考文獻(xiàn)1. 鄭莉,董淵,何江舟c+語言程序設(shè)計(jì)(第四版)清華大學(xué)出版社2. 嚴(yán)蔚敏,吳偉民 數(shù)據(jù)結(jié)構(gòu)(c語言版)清華大學(xué)出版社3. 教師教案ppt(指針,鏈表,數(shù)組)4. c+語言上機(jī)指導(dǎo)書5. 網(wǎng)絡(luò)資源(c+語言程序設(shè)計(jì)視頻教程)3.2主要代碼描述#include#include#include#includeusing namespace std;class stupublic:char name8;int number;double english,math,cjj,total,average; stu()e

11、nglish=0;math=0;cjj=0;total=0;average=0;strcpy(name,無);number=0;return;stu()stu(double eng,double mat,double c,int num,char s38);void getname();void getnumber();void getenglish();void getmath();void getcjj();double gettotal();double getaverage();stu:stu(double eng,double mat,double c,int num,char s3

12、8)english=eng;math=mat;cjj=c;number=num;strcpy(name,s3);void stu:getname()char s8;couts;strcpy(name,s);void stu:getnumber()int n;coutn;number=n;void stu:getenglish()double e;coute;english=e;void stu:getmath()double m;coutm;math=m;void stu:getcjj()double c;coutc;cjj=c;double stu:gettotal()return tota

13、l=english+math+cjj;double stu:getaverage()return average=total/3.0;void output1(stu &p)tp.numbertp.englishtp.mathtp.cjjn;void output2(stu &p)tp.numbertp.englishtp.mathtp.cjjtp.averagetp.totaln;void input(stu &p)p.getname();p.getnumber();p.getenglish();p.getmath();p.getcjj();p.

14、gettotal();p.getaverage();void order(stu &p1,stu &p2,stu &p3,stu &p4,stu &p5,stu &p6)sheji:char *name6=,,,,,;int number6=p1.number,p2.number,p3.number,p4.number,p5.number,p6.number;double english6=p1.english,p2.english,p3.english,p4.english,p5.english,p6.eng

15、lish;double math6=p1.math,p2.math,p3.math,p4.math,p5.math,p6.math;double cjj6=p1.cjj,p2.cjj,p3.cjj,p4.cjj,p5.cjj,p6.cjj;double total6=p1.total,p2.total,p3.total,p4.total,p5.total,p6.total;double average6=p1.average,p2.average,p3.average,p4.average,p5.average,p6.average;stu soure6=p1,p2,p3,p4,p5,p6;c

16、har *s1,s28;double *p;int n;double mat;couttt主菜單endl;coutt1.查詢平均分排名;endl;coutt2.查詢個人情況;endl;coutt3.查詢各科平均成績;endl;coutt4.輸出班級成績;endl;coutt5.修改各人成績;endl;coutt6.查詢不及格成績;endl;coutt0.退出;endl;int q;coutq;if(q=1)p=average;coutt*以平均成績進(jìn)行排名*endl;strcpy(s2,均分);for(int i1=1;i16;i1+) for(int j1=0;j16-i1;j1+)if(p

17、j1=pj1+1) mat=pj1,pj1=pj1+1,pj1+1=mat;s1=namej1,namej1=namej1+1,namej1+1=s1;n=numberj1,numberj1=numberj1+1,numberj1+1=n;couttt名次t姓名t學(xué)號ts2n;for(i1=0;i16;i1+) couttti1+1tnamei1tnumberi1tpi1endl;coutendl;goto sheji;if(q=2)int w;coutw;coutt姓名t學(xué)號t英語t數(shù)學(xué)tc+t均分t總分n;for(int i=0;i6;i+)if(w=numberi)output2(sou

18、rei);goto sheji;else if(q=3)coutt*各科平均成績*endl;double a1=0,b=0,d=0,e=0,h=0;for(int j=0;j6;j+)a1+=englishj;coutt英語的平均分為t(double(a1/5.0)endl;for(int i=0;i6;i+)b+=mathi;coutt數(shù)學(xué)的平均分為t(double(b/5.0)endl;for(int k=0;k6;k+)e+=cjjk;couttc+的平均分為t(double(e/5.0)endl;goto sheji;else if(q=4)ofstream file(d:studen

19、t.txt);if(!file)coutstudent.txt cant open.n;abort();filet姓名t學(xué)號t英語t數(shù)學(xué)tc+t均分t總分n;for(int i=0;i6;i+)filetnameitnumberitenglishitmathitcjjitaverageittotalin;file.close();cout計(jì)算機(jī)-1的成績單已輸入到了d:student.txt中。希望你查看!endl;goto sheji;else if(q=5)coutt*在這里對學(xué)生成績進(jìn)行修改*endl;int b1;cout請輸入你要修改學(xué)生的學(xué)號:b1;if(b1=p1.number)p1=stu();input(p1);coutt修改成功!endl; else if(b1=p2.number)p2=stu();input(p2);coutt修改成功!endl; else if(b1=p3.number)p3=stu();input(p3);coutt修改成功!endl; else if(b1=p4.number)p4=stu();input(p4);coutt修改成功!endl; else if(b1=p5.number)p5=stu();input(p5);coutt修改成功!endl; else if(

溫馨提示

  • 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

提交評論