




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)高級(jí)語(yǔ)言課程設(shè)計(jì)報(bào)告 學(xué)生成績(jī)管理系統(tǒng)班級(jí):191142班學(xué)號(hào):姓名:日期:2015年1月22日一 課程設(shè)計(jì)題目與要求 (包括題目與系統(tǒng)功能要求)【實(shí)習(xí)內(nèi)容】C+語(yǔ)言,面向?qū)ο蟮姆治雠c設(shè)計(jì)?!净疽蟆繉W(xué)生成績(jī)管理是高等學(xué)校教務(wù)管理的重要組成部分,主要包括學(xué)生成績(jī)的錄入、刪除、查找及修改、成績(jī)的統(tǒng)計(jì)分析等等。請(qǐng)?jiān)O(shè)計(jì)一個(gè)系統(tǒng)實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的管理。系統(tǒng)要求實(shí)現(xiàn)以下功能:(1)增加記錄:要求可以連續(xù)增加多條記錄。(2)刪除一個(gè)學(xué)生的記錄:要求可以先查找,再刪除。刪除前,要求用戶確認(rèn)。(3)成績(jī)修改:若輸入錯(cuò)誤可進(jìn)行修改;要求可以先查找,再修改。(4)查找:可以根據(jù)姓名(或?qū)W號(hào))查找某個(gè)學(xué)生的課
2、程成績(jī),查找某門課程成績(jī)處于指定分?jǐn)?shù)段內(nèi)的學(xué)生名單等等。(5)統(tǒng)計(jì)分析:對(duì)某個(gè)班級(jí)學(xué)生的單科成績(jī)進(jìn)行統(tǒng)計(jì),求出平均成績(jī);求平均成績(jī)要求實(shí)現(xiàn)函數(shù)的重載,既能求單科的平均成績(jī),又能求三科總分的平均成績(jī)。求出一門課程標(biāo)準(zhǔn)差和合格率;(6)排序功能:要求按總分進(jìn)行排序(從高到低),若總分相同,則按數(shù)學(xué)排序;若總分和數(shù)學(xué)相同,則按物理排序;若總分和各科成績(jī)都相同,則按學(xué)號(hào)排序;(7)文件操作:可以打開文件,顯示班級(jí)的所有學(xué)生信息;可以將增加或修改后的成績(jī)重新寫入文件;可以將排序好的信息寫入新的文件?!据^高要求】查找可以實(shí)現(xiàn)模糊查詢,即輸入名字的一部分,可以列出滿足條件的所有記錄。再?gòu)倪@個(gè)記錄中進(jìn)行二次選
3、擇。二 需求分析【問(wèn)題描述】在編寫過(guò)程中,主要的困難有:1. 模糊搜索(不能使用string中的find函數(shù))需要自定義一個(gè)函數(shù)。2. 排序,需要自己學(xué)習(xí)算法。【系統(tǒng)環(huán)境】Visual C+6.0三 概要設(shè)計(jì)流程圖如下:四 詳細(xì)設(shè)計(jì)【增加記錄】:【刪除記錄】:先查找出要?jiǎng)h除的信息,然后再刪除。刪除前要求用戶是否確認(rèn)刪除。確認(rèn)則在數(shù)據(jù)庫(kù)中刪除然后會(huì)主菜單。否則回主菜單。【成績(jī)修改】:查找出用戶所要修改的信息。然后在數(shù)據(jù)庫(kù)中將信息提取出來(lái),修改前要求用戶是否確認(rèn)修改,若要修改,修改后回主菜單。否則直接會(huì)主菜單?!静檎摇浚翰檎曳譃槟抽T成績(jī)分?jǐn)?shù)段查找和個(gè)人信息查找,個(gè)人信息查找支持模糊搜索??筛鶕?jù)學(xué)號(hào)
4、或姓名進(jìn)行查找,查找后支持二次搜索。【統(tǒng)計(jì)分析】:統(tǒng)計(jì)分析主要是了解各科的總體情況,平均分、及格率、以及標(biāo)準(zhǔn)差。即可查詢單科也可查詢?nèi)啤!九判颉吭谥鞑藛沃羞x擇排序,然后系統(tǒng)先根據(jù)總成績(jī)排序。若總成績(jī)相等,比較數(shù)學(xué)則按數(shù)學(xué)排序;若總成績(jī)和數(shù)學(xué)相同,則按物理排序;若總分和各科成績(jī)都相同,則按學(xué)號(hào)排序;【退出系統(tǒng)】:在主菜單中選擇退出系統(tǒng)。擇結(jié)束程序?!驹O(shè)計(jì)的類的代碼】:class managementprivate:vectorstu;public:void addtxt(); void deletetxt(); void changetxt(); void findtxt(); void fi
5、ndtxt1(); void ptxt(); void otxt(); void itxt(); void show(); void ttxt(); void ttxt(int,int); ;class studentprivate:string m_id, m_name;int m_math, m_eng, m_phy;public:student(string, string, int, int, int); student(const student &); student(); string getId(); string getName(); intgetMath(); int ge
6、tEng();int getPhy();int total();student operator=(const student &); / ;五 測(cè)試 【原有數(shù)據(jù)】20121000290 邊達(dá)宇 75 60 65 20121000424 王晨 85 95 9620121000553 高佳維 86 93 9020121000570 初國(guó)利 85 87 8520121000584 利振彬 70 88 8820121000818 孟珂 90 86 96 20121000921 羅云迪 86 90 7520121001121 田甜 95 85 8720121001248 王如男 90 89 94201
7、21001316 邵葉飛 80 84 8620121001375 周晨曦 87 86 9020121001695 王洪 96 88 9120121001842 尹笛露 85 90 9420121002002 劉宇坤 88 86 9020121002152 尹然宇 82 90 8820121002162 孫史磊 80 94 8020121002269 陳云鍋 83 95 8520121002321 于文濤 88 90 8620121002439 景揭俊 85 92 8520121002585 戴賢鐸 88 86 7820121002685 曹厚臻 90 87 9020121002775 馬晴 9
8、3 85 9020121003127 馮澤宇 80 89 7520121003358 肖寒 88 90 9020121003359 張賡 87 95 8420121003398 劉劍峰 88 84 8620121003399 龔方怡 90 93 9620121004233 賈國(guó)棟 88 90 8620121004415 孫一卓 86 95 90六 結(jié)論【亮點(diǎn)】1. 能夠二次模糊搜索2. 代碼簡(jiǎn)便、易懂?!静蛔恪?.算法比較粗糙。七 附錄#ifndef STUDENT_H#define STUDENT_H#include#include#include#include#include#inclu
9、deusing namespace std;class studentprivate:string m_id, m_name;int m_math, m_eng, m_phy;public:student(string, string, int, int, int); /構(gòu)造函數(shù)student(const student &); /復(fù)制構(gòu)造函數(shù)student(); / 析構(gòu)函數(shù)string getId(); /自定義接口string getName(); intgetMath(); int getEng();int getPhy();int total();student operator=(
10、const student &); / =號(hào)重載;#endif#ifndef MANAGEMENT_H#define MANAGEMENT_H#include student.hclass managementprivate:vectorstu;public:void addtxt(); /增加記錄void deletetxt(); /刪除記錄void changetxt(); /成績(jī)修改void findtxt(); /模糊搜索void findtxt1(); /分?jǐn)?shù)段搜索void ptxt(); /排序void otxt(); /文件輸出void itxt(); /文件寫入void sho
11、w(); /輸出void ttxt(); /統(tǒng)計(jì)分析void ttxt(int,int); /統(tǒng)計(jì)分析重載;#endif#includestudent.hstudent:student(string id=0, string name=0, int math=0, int eng=0, int phy=0)m_id=id;m_name=name;m_math=math;m_eng=eng;m_phy=phy;student:student(const student & s)m_id=s.m_id;m_name=s.m_name;m_math=s.m_math;m_eng=s.m_eng;m_
12、phy=s.m_phy;string student:getId()return m_id;string student:getName()return m_name;intstudent:getMath()return m_math;int student:getEng()return m_eng;int student:getPhy()return m_phy;int student:total()return (getMath()+getEng()+getPhy();student student:operator =(const student & s)m_id=s.m_id;m_na
13、me=s.m_name;m_math=s.m_math;m_eng=s.m_eng;m_phy=s.m_phy;return *this;#includemanagement.h#includevoid management:addtxt() /增加記錄string id, name;int math, eng, phy,m;int p(0);while(1) cout 請(qǐng)輸入您所添加的信息: id name math eng phy; student s(id, name, math, eng, phy);for(int i=0;istu.size();i+)if(s.getId()=stu
14、i.getId()&(s.getName()=stui.getName()cout數(shù)據(jù)庫(kù)已有此人!不能再添加!endl;p+;if(p=0) stu.push_back(s); otxt();cout是否繼續(xù)增加? (繼續(xù)回復(fù)1。否則回復(fù)0.)m;if(m=0) break;void management:itxt() /文件寫入ifstream ifile;ifile.open(D:data.txt);string id, name;int math, eng, phy;doifileidnamemathengphy;student s(id, name, math, eng, phy);s
15、tu.push_back(s); while (!ifile.eof();ifile.close();void management:otxt() /文件輸出ofstream ofile;ofile.open(D:date.txt);for (int i=0; istu.size();i+)ofilesetw(20)stui.getId()setw(6)stui.getName()setw(6)stui.getMath()setw(6)stui.getEng()setw(6)stui.getPhy()endl;ofile.close(); void management:show()cout學(xué)
16、號(hào)tt姓名t數(shù)學(xué)t英語(yǔ)t物理t總分endl;for(int i=0;istu.size();i+)coutstui.getId()tstui.getName()tstui.getMath()tstui.getEng()tstui.getPhy()t;coutstui.total()endl;void management:findtxt() /模糊搜索vectors;string m,n;int p(0),q(0);int i,j,k,x,a,b,c;cout請(qǐng)輸入您需要查找的學(xué)號(hào)或姓名:m;for(i=0;istu.size();i+)for(j=0;jm.size();j+) if(mj!
17、=stui.getId()j) break;if(j=m.size()s.push_back(stui); p+;coutstui.getId()tstui.getName()tstui.getMath()tstui.getEng()tstui.getPhy()endl;for(k=0;km.size();k+) if(mk!=stui.getName()k) break;if(k=m.size()s.push_back(stui); p+;coutstui.getId()tstui.getName()tstui.getMath()tstui.getEng()tstui.getPhy()end
18、l;if (p = 0) cout 對(duì)不起,沒(méi)有您所查找的信息! endl;cout是否進(jìn)行二次搜索?(回復(fù)1進(jìn)行。否則回復(fù)0.)x;if(x=1)cout請(qǐng)輸入您二次查找學(xué)生的學(xué)號(hào)或姓名:n;for(a=0;as.size();a+) for(b=0;bn.size();b+) if(nb!=sa.getId()b) break;if(b=n.size() q+;coutsa.getId()tsa.getName()tsa.getMath()tsa.getEng()tsa.getPhy()endl;for(c=0;cn.size();c+) if(nc!=sa.getName()c) bre
19、ak;if(c=n.size() q+;coutsa.getId()tsa.getName()tsa.getMath()tsa.getEng()tsa.getPhy()endl;if (q = 0) cout 對(duì)不起,沒(méi)有您所查找的信息! endl;void management:findtxt1() /分?jǐn)?shù)段搜索string m;int a,b,p(0);cout請(qǐng)輸入您查找的某一門課程名稱及分?jǐn)?shù)段:mab;if(m=數(shù)學(xué)) for(int i=0;i=a&stui.getMath()=b)coutstui.getId()tstui.getName()tstui.getMath()tstui
20、.getEng()tstui.getPhy()endl;p+;if (p = 0) cout 對(duì)不起,沒(méi)有您所查范圍的分?jǐn)?shù)! endl;else if(m=英語(yǔ))for(int j=0;j=a&stuj.getEng()=b)coutstuj.getId()tstuj.getName()tstuj.getMath()tstuj.getEng()tstuj.getPhy()endl;p+;if (p = 0) cout 對(duì)不起,沒(méi)有您所查范圍的分?jǐn)?shù)! endl;else if(m=物理)for(int k=0;k=a&stuk.getPhy()=b)coutstuk.getId()tstuk.g
21、etName()tstuk.getMath()tstuk.getEng()tstuk.getPhy()endl;p+;if (p = 0) cout 對(duì)不起,沒(méi)有您所查范圍的分?jǐn)?shù)! endl;else cout沒(méi)有其他的課程成績(jī)!endl;void management:deletetxt() /刪除記錄int i,x;string m;cout請(qǐng)輸入您所需要?jiǎng)h除的學(xué)生的姓名或?qū)W號(hào):m;for(i=0;istu.size();i+)if(m=stui.getId()|m =stui.getName()break;cout是否確定刪除?(是回復(fù)1. 否回復(fù)0.)x;if(x=1)vector:i
22、terator it=stu.begin()+i;stu.erase(it);otxt();cout刪除成功!endl;void management:ttxt() /統(tǒng)計(jì)分析int i,j;double sum1(0),sum2(0),sum3(0),p1(0),p2(0),p3(0),v1(0),v2(0),v3(0);for(i=0;i=60) p1+;if(stui.getEng()=60) p2+;if(stui.getPhy()=60) p3+;sum1/=i;sum2/=i;sum3/=i;p1/=i;p2/=i;p3/=i;for(j=0;jstu.size();j+)v1+=
23、(stui.getMath()-sum1)*(stui.getMath()-sum1);v2+=(stui.getEng()-sum2)*(stui.getEng()-sum2);v3+=(stui.getPhy()-sum3)*(stui.getPhy()-sum3);v1=sqrt(v1/i);v2=sqrt(v2/i);v3=sqrt(v3/i);string m;cout請(qǐng)輸入您要查的科目名稱:m;if(m=數(shù)學(xué))cout平均分:sum1t合格率:p1*100%t標(biāo)準(zhǔn)差:v1endl;else if(m=英語(yǔ))cout平均分:sum2t合格率:p2*100%t標(biāo)準(zhǔn)差:v2endl;el
24、se if(m=物理)cout平均分:sum3t合格率:p3*100%t標(biāo)準(zhǔn)差:v3endl;else cout對(duì)不起,沒(méi)有其它的課程成績(jī)!endl;void management:ttxt(int i,int j)double sum1(0),sum2(0),sum3(0),p1(0),p2(0),p3(0),v1(0),v2(0),v3(0);double total;for(i;i=60) p1+;if(stui.getEng()=60) p2+;if(stui.getPhy()=60) p3+;sum1/=i;sum2/=i;sum3/=i;p1/=i;p2/=i;p3/=i;tota
25、l=(sum1+sum2+sum3)/3;for(j;jstu.size();j+)v1+=(stui.getMath()-sum1)*(stui.getMath()-sum1);v2+=(stui.getEng()-sum2)*(stui.getEng()-sum2);v3+=(stui.getPhy()-sum3)*(stui.getPhy()-sum3);v1=sqrt(v1/i);v2=sqrt(v2/i);v3=sqrt(v3/i);cout數(shù)學(xué)平均分:sum1t數(shù)學(xué)合格率:p1*100%t數(shù)學(xué)標(biāo)準(zhǔn)差:v1endl;cout英語(yǔ)平均分:sum2t英語(yǔ)合格率:p2*100%t英語(yǔ)標(biāo)準(zhǔn)差
26、:v2endl;cout物理平均分:sum3t物理合格率:p3*100%t物理標(biāo)準(zhǔn)差:v3endl;cout總分平均分為:totalendl;void management:changetxt()string id,name,m;int math,eng,phy,i,x;cout請(qǐng)輸入您所要改學(xué)生的學(xué)號(hào)或姓名:m;cout請(qǐng)輸入您所改的全部信息!idnamemathengphy;student s(id,name,math,eng,phy);for(i=0;istu.size();i+)if(m=stui.getId()|m=stui.getName()break;cout是否確定修改? (回
27、復(fù)1則修改?;貜?fù)2則放棄修改)x;if(x=1)stui=s;otxt();cout修改成功!endl;void management:ptxt() /排序int i,j;student t(0,0,0,0,0);for(i=1;i=0;j-)if(stuj+1.total()stuj.total()t=stuj;stuj=stuj+1;stuj+1=t;else if(stuj+1.total()=stuj.total()if(stuj+1.getMath()stuj.getMath() /比較數(shù)學(xué)成績(jī)t=stuj; stuj=stuj+1; stuj+1=t;else if(stuj+1.getMath()=stuj.getMath() /比較物理成績(jī)if(stuj+1.getPhy
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 院感防護(hù)培訓(xùn)大綱
- 2025年醫(yī)療美容行業(yè)美容儀器市場(chǎng)新興技術(shù)應(yīng)用與市場(chǎng)潛力報(bào)告
- 2025年醫(yī)療健康大數(shù)據(jù)精準(zhǔn)營(yíng)銷策略分析報(bào)告
- 腫瘤患者安全管理
- 招商加盟標(biāo)準(zhǔn)化流程
- 幼兒園教師觀察記錄培訓(xùn)
- 送教下鄉(xiāng)培訓(xùn)心得體會(huì)
- 《電商直播運(yùn)營(yíng)》課件-任務(wù)1-1認(rèn)識(shí)直播電商
- 古玩鑒賞活動(dòng)方案
- 臺(tái)辦助學(xué)活動(dòng)方案
- 之中國(guó)泛娛樂(lè)直播用戶白皮書
- 2024屆四川涼山州數(shù)學(xué)高二第二學(xué)期期末考試試題含解析
- 醫(yī)療廢物交接與記錄的重要性
- 個(gè)人極端事件防范應(yīng)急預(yù)案
- 軍事訓(xùn)練傷的防治
- 國(guó)開《化工安全技術(shù)》形考任務(wù)1-4答案
- 安全生產(chǎn)月“一把手”講安全課件
- 產(chǎn)業(yè)命題賽道命題解決對(duì)策參考模板
- 985、211和雙一流大學(xué)名單
- 三人合伙經(jīng)營(yíng)協(xié)議書電子版(2篇)
- 汽車產(chǎn)品認(rèn)證
評(píng)論
0/150
提交評(píng)論