版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
-.z."C++程序設(shè)計(jì)"課程設(shè)計(jì)說明書題目學(xué)生成績管理系統(tǒng)學(xué)號姓名指導(dǎo)教師日期**科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱C++面向?qū)ο蟪绦蛟O(shè)計(jì)A課程設(shè)計(jì)設(shè)計(jì)題目學(xué)生成績管理系統(tǒng)指導(dǎo)教師時(shí)間一、教學(xué)要求1.穩(wěn)固和加深學(xué)生對C++語言課程的根本知識的理解和掌握
2.掌握C++語言編程和程序調(diào)試的根本技能
3.利用C++語言進(jìn)展根本的軟件設(shè)計(jì)
4.掌握書寫程序設(shè)計(jì)說明文檔的能力
5.提高運(yùn)用C++語言解決實(shí)際問題的能力二、設(shè)計(jì)資料及參數(shù)用C++設(shè)計(jì)一個(gè)程序,能提供以下功能:錄入學(xué)生成績。按照**,,語文,數(shù)學(xué),英語的格式錄入學(xué)生的成績。查詢成績。根據(jù)學(xué)生的**或**查詢學(xué)生的成績。修改。通過查詢找到相應(yīng)的學(xué)生記錄進(jìn)展修改。統(tǒng)計(jì)。計(jì)算學(xué)生的總分并排序顯示輸出。統(tǒng)計(jì)班級學(xué)生的每門課程的平均分和總分的平均分并顯示;統(tǒng)計(jì)得分小于班級總分的學(xué)生并顯示;顯示不及格學(xué)生的。三、設(shè)計(jì)要求及成果根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:〔1〕分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為;〔2〕根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;〔3〕完成類層次中各個(gè)類的描述(包括屬性和力一法);〔4〕完成類中各個(gè)成員函數(shù)的定義;〔5〕完成系統(tǒng)的應(yīng)用模塊;〔6〕功能調(diào)試;〔7〕提交課程設(shè)計(jì)報(bào)告:完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書目錄**科技大學(xué)課程設(shè)計(jì)任務(wù)書2第1章需求分析4第2章總體設(shè)計(jì)5第3章類的設(shè)計(jì)63.1學(xué)生成績管理系統(tǒng)類的設(shè)計(jì)〔第一個(gè)類〕6第4章詳細(xì)設(shè)計(jì)84.1工程視圖84.2類圖視圖84.3主程序流程圖94.4主要算法的流程圖9第5章測試11第6章總結(jié)15附錄:程序代碼15需求分析用C++設(shè)計(jì)一個(gè)程序,能提供以下功能:錄入學(xué)生成績。按照**,,語文,數(shù)學(xué),英語的格式錄入學(xué)生的成績。查詢成績。根據(jù)學(xué)生的**或**查詢學(xué)生的成績。修改。通過查詢找到相應(yīng)的學(xué)生記錄進(jìn)展修改。統(tǒng)計(jì)。計(jì)算學(xué)生的總分并排序顯示輸出。統(tǒng)計(jì)班級學(xué)生的每門課程的平均分和總分的平均分并顯示;統(tǒng)計(jì)得分小于班級總分的學(xué)生并顯示;顯示不及格學(xué)生的。總體設(shè)計(jì)1.用構(gòu)造框圖表示各個(gè)功能之間的關(guān)系。主菜單主菜單錄入學(xué)生信息顯示學(xué)生信息查找并修改按總分排序顯示得分小于班級總分的人顯示不及格學(xué)生退出圖1功能關(guān)系圖2.將框圖中系統(tǒng)的各個(gè)功能用文字詳細(xì)的描述。(1)錄入學(xué)生信息:通過選擇主菜單中的選項(xiàng),選擇該項(xiàng),將出現(xiàn)錄入學(xué)生信息的提示,根據(jù)提示錄入學(xué)生成績及信息。(2)顯示學(xué)生信息:錄入完成輸入N,完畢錄入選擇下一項(xiàng),則顯示出已錄入學(xué)生的信息及各門功課成績、總分及平均分。(3)查找并修改:查找分為按**查找和按**查找,輸入你想要的查找方式進(jìn)展查找,然后是否要進(jìn)展修改,選擇Y/N,對其進(jìn)展修改操作。(4)按總分排序:計(jì)算總分并按照由高到低的順序進(jìn)展排序。(5)顯示得分小于班級總分的人:由以上信息中學(xué)生的總分與班級總分進(jìn)展比擬,顯示出得分小于班級總分的學(xué)生。(6)顯示不及格學(xué)生:顯示出得分小于60分的學(xué)生。(7)退出:退出系統(tǒng)。類的設(shè)計(jì)學(xué)生成績管理系統(tǒng)類的設(shè)計(jì)〔第一個(gè)類〕畫出類圖表1:類關(guān)系表類名:classstudentstringname;longid;數(shù)據(jù)成員:floatChinese;floatmath;floatEnglish;floatsum;floatave;student();voidinput();voidshow();voidcopy(studenta);函數(shù)成員:stringNAME();longID();floatchi();floatmat();floateng();floatSUM();floatAVE();2.對類的函數(shù)成員的說明 不用寫出代碼,用文字描述 函數(shù)的首部 //說明:輸入什么參數(shù); //進(jìn)展什么操作; //返回什么結(jié)果;stringNAME();:獲取私有數(shù)據(jù)成員name。longID();:獲取私有數(shù)據(jù)成員id。floatchi();:獲取私有數(shù)據(jù)成員Chinese。floatmat();:獲取私有數(shù)據(jù)成員math。floateng();:獲取私有數(shù)據(jù)成員English。floatSUM();:獲取私有數(shù)據(jù)成員sum。floatAVE();:獲取私有數(shù)據(jù)成員ave。student();:是構(gòu)造函數(shù),對數(shù)據(jù)進(jìn)展初始化。voidinput();:無返回值,無需參數(shù),輸入數(shù)據(jù)。voidshow();:無返回值,無需參數(shù),輸出數(shù)據(jù)。voidcopy(studenta);:無返回值,參數(shù)為一個(gè)student類型的參數(shù)a,操作為一個(gè)自定義的拷貝函數(shù)。詳細(xì)設(shè)計(jì)工程視圖說明有幾個(gè)源代碼文件,可以截取工程文件視圖表示圖2工作區(qū)文件視圖類圖視圖每個(gè)文件包含哪些類和函數(shù),可以截圖說明圖3類圖視圖1圖4類圖視圖2主程序流程圖開始開始Select=0?輸入菜單項(xiàng)選擇項(xiàng)Select輸入數(shù)據(jù)輸出并查詢學(xué)生信息顯示得分小于班級總分且不及格的學(xué)生結(jié)束顯示菜單Case1:Case2:Switch〔select〕Case3:Case4:排序圖5主程序流程圖YN主要算法的流程圖流程圖流程圖錄入學(xué)生信息:通過選擇主菜單中的選項(xiàng),選擇該項(xiàng),將出現(xiàn)錄入學(xué)生信息的提示,根據(jù)提示錄入學(xué)生成績及信息。顯示學(xué)生信息:這里由于沒有其它要求,只要將每個(gè)數(shù)據(jù)成員輸出到屏幕即可,因此這里主要是調(diào)用對象的成員函數(shù)將數(shù)據(jù)輸出。查找并修改:查找分為按**查找和按**查找,輸入你想要的查找方式進(jìn)展查找,然后是否要進(jìn)展修改,選擇Y/N,對其進(jìn)展修改操作。按總分排序:計(jì)算總分并按照由高到低的順序進(jìn)展排序。均分小于班級總平均分且不及格的學(xué)生:調(diào)用信息中學(xué)生的總分與班級總分進(jìn)展比擬,顯示出得分小于班級總分的學(xué)生,顯示出得分小于60分的學(xué)生。退出:退出系統(tǒng)。圖6主要算法流程圖測試主菜單:圖7學(xué)生成績管理系統(tǒng)主菜單錄入學(xué)生成績:圖8錄入學(xué)生成績查詢成績:圖9按**查找圖10按**查找修改成績:圖11修改學(xué)生成績按總分排序:圖12按總分排序顯示平均分小于班級總平均分且不及格的學(xué)生:圖13均分小于班級總平均分且不及格的學(xué)生總結(jié)這個(gè)學(xué)生成績管理系統(tǒng)存在著很多缺乏之處,由于自己本身編程能力的問題,這個(gè)系統(tǒng)可以實(shí)現(xiàn)的功能非常有限。只能實(shí)現(xiàn)學(xué)生管理系統(tǒng)最根本的功能,可以進(jìn)展簡單的輸入、輸出學(xué)生資料,查詢和修改學(xué)生信息。課程設(shè)計(jì)不僅讓我們穩(wěn)固了所學(xué)的知識,還使得我們學(xué)習(xí)到了更多平時(shí)所忽略的,最重要的是,它磨礪了我們,讓我們在大學(xué)的下一個(gè)階段能更好的成長。我要將C++學(xué)好,在將來能為我的就業(yè)加分。附錄:程序代碼#include<iostream>#include<string>usingnamespacestd;classstudent{private: stringname; longid; floatChinese; floatmath; floatEnglish; floatsum; floatave;public: student(); voidinput(); voidshow(); voidcopy(studenta); stringNAME(){returnname;} longID(){returnid;} floatchi(){returnChinese;} floatmat(){returnmath;} floateng(){returnEnglish;} floatSUM(){returnsum;} floatAVE(){returnave;} };voidstudent::input(){cout<<"\t\t請輸入學(xué)生的**:"; cin>>name; cout<<"\t\t請輸入學(xué)生的**:"; cin>>id; cout<<"\t\t請輸入語文成績:"; cin>>Chinese; cout<<"\t\t請輸入數(shù)學(xué)成績:"; cin>>math; cout<<"\t\t請輸入英語成績:"; cin>>English; sum=Chinese+math+English; ave=sum/3; }student::student(){ name="noname"; id=0; Chinese=0; math=0; English=0; sum=0; ave=0;}voidstudent::show() { cout<<":"<<name<<endl<<"**:"<<id<<endl<<"語文:"<<Chinese<<endl <<"數(shù)學(xué):"<<math<<endl<<"英語:"<<English<<endl<<"總成績:"<<sum<<endl<<"平均分:"<<ave<<endl<<endl; }voidstudent::copy(studenta){ name=a.NAME(); id=a.ID(); Chinese=a.chi(); math=a.mat(); English=a.eng(); sum=a.SUM(); ave=a.AVE();}shortshowmenu() { shortselect; cout<<"****************************************************************"<<endl; cout<<" 學(xué)生成績管理系統(tǒng) "<<endl; cout<<"****************************************************************"<<endl; cout<<"1.錄入學(xué)生成績"<<endl; cout<<"2.查詢、修改學(xué)生成績"<<endl; cout<<"3.按總分排序"<<endl; cout<<"4.班級總分"<<endl; cout<<"0.平安退出系統(tǒng)"<<endl; cout<<"****************************************************************"<<endl; cout<<"\t\t請選擇:"; cin>>select; returnselect; }voidfind(studentstu[]){ stringk; shorti,j; longn; shortm; charq='n'; cout<<"*****************************************************************\n"; cout<<"*\t\t\t1.按**查找\t\t\t\t*\n"; cout<<"*\t\t\t2.按**查找\t\t\t\t*\n"; cout<<"*****************************************************************\n"; cin>>m; if(m==1) { cout<<"請輸入**:"; while(1) { cin>>n; if(n>1&&n<12) { cout<<"輸入有誤!請重新輸入:"; } else break; } for(i=0;stu[i].ID()!=0;i++) { if(n==stu[i].ID()) stu[i].show(); j=i; } } elseif(m==2) { cout<<"請輸入**:"; cin>>k; for(i=0;stu[i].ID()!=0;i++) { if(k==stu[i].NAME()) stu[i].show(); j=i; } } else cout<<"輸入的選項(xiàng)有誤!"; cout<<"是否修改(Y/N):"; cin>>q; if(q=='y'||q=='Y') { stu[j].input(); }}voidarrange(studentstu[]){ studenttemp; shorti,j; for(i=0;stu[i].ID()!=0;i++) { for(j=i+1;stu[j].ID()!=0;j++) { if(stu[i].SUM()<stu[j].SUM()) { temp.copy(stu[i]); stu[i].copy(stu[j]); stu[j].copy(temp); } } } for(i=0;stu[i].ID()!=0;i++)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)經(jīng)課件模板
- 疫情防控與醫(yī)院應(yīng)急處置
- 護(hù)理專業(yè)護(hù)士護(hù)理質(zhì)量與護(hù)理評價(jià)
- 人工智能輔助診斷系統(tǒng)開發(fā)與應(yīng)用
- 護(hù)理科研選題與項(xiàng)目申報(bào)技巧
- 護(hù)理人員在慢性病管理中的關(guān)鍵作用
- 醫(yī)院藥房人員禮儀與患者關(guān)系
- 護(hù)理信息化系統(tǒng)建設(shè)與護(hù)理質(zhì)量提升
- 2026年安徽衛(wèi)生健康職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考題庫帶答案解析
- 2026年成都文理學(xué)院單招職業(yè)技能筆試參考題庫帶答案解析
- 2025年廣州市花都區(qū)花東鎮(zhèn)人民政府公開招聘執(zhí)法輔助工作人員備考題庫帶答案詳解
- 小學(xué)生用電安全知識課件
- 2026年收益分成協(xié)議
- 肝癌TACE治療課件
- 2022年-2024年青島衛(wèi)健委事業(yè)編中醫(yī)筆試真題
- JJG(交通) 070-2006 混凝土超聲檢測儀
- 合作銷售礦石協(xié)議書
- 2025上海初三各區(qū)一模、二模作文題、主題歸納及審題分析指導(dǎo)
- 圍手術(shù)期心肌梗塞的護(hù)理
- 2025-2026學(xué)年蘇教版(2024)小學(xué)科學(xué)二年級上冊期末測試卷附答案(共三套)
- 垃圾清運(yùn)補(bǔ)充合同范本
評論
0/150
提交評論