學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-《高級(jí)程序設(shè)計(jì)語(yǔ)言》課程設(shè)計(jì)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-《高級(jí)程序設(shè)計(jì)語(yǔ)言》課程設(shè)計(jì)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-《高級(jí)程序設(shè)計(jì)語(yǔ)言》課程設(shè)計(jì)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-《高級(jí)程序設(shè)計(jì)語(yǔ)言》課程設(shè)計(jì)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-《高級(jí)程序設(shè)計(jì)語(yǔ)言》課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

河南工程學(xué)院高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)成果報(bào)告學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生學(xué)號(hào): 學(xué)生姓名: 學(xué) 院: 計(jì)算機(jī)學(xué)院 專(zhuān)業(yè)班級(jí): 軟件工程1341 專(zhuān)業(yè)課程: 高級(jí)程序設(shè)計(jì)語(yǔ)言 指導(dǎo)教師: 2014 年 6 月 27 日題 目學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)考核項(xiàng)目考核內(nèi)容得分平時(shí)考核(30分)出勤情況、態(tài)度、效率;知識(shí)掌握情況、基本操作技能、知識(shí)應(yīng)用能力、獲取知識(shí)能力系統(tǒng)設(shè)計(jì)(20分)分析系統(tǒng)的功能模塊編程調(diào)試(20分)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊,并完成調(diào)試回答問(wèn)題(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問(wèn)題課程設(shè)計(jì)報(bào)告撰寫(xiě)(10分)嚴(yán)格按照規(guī)范要求完成課程設(shè)計(jì)報(bào)告源代碼(5分)按照規(guī)范要求完成課程設(shè)計(jì)源代碼的排版總 評(píng) 成 績(jī)指導(dǎo)教師評(píng)語(yǔ): 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的11.1 課程設(shè)計(jì)目的11.2課程設(shè)計(jì)任務(wù)1第2章 系統(tǒng)實(shí)現(xiàn)思路22.1 類(lèi)的設(shè)計(jì)22.2 自定義函數(shù)的設(shè)計(jì)32.3 主函數(shù)的設(shè)計(jì)4第3章 系統(tǒng)詳細(xì)設(shè)計(jì)63.1 數(shù)據(jù)錄入、保存功能函數(shù)63.2 數(shù)據(jù)查詢(xún)功能函數(shù)73.3 數(shù)據(jù)修改功能函數(shù)93.4 成績(jī)打印函數(shù)10第4章 系統(tǒng)調(diào)試運(yùn)行124.1 系統(tǒng)程序運(yùn)行過(guò)程124.2 系統(tǒng)程序運(yùn)行結(jié)果15課程設(shè)計(jì)體會(huì)17參考文獻(xiàn)18附 錄19第1章 系統(tǒng)設(shè)計(jì)目的1.1 課程設(shè)計(jì)目的本課程設(shè)計(jì)的目的是培養(yǎng)應(yīng)用面向?qū)ο蟪绦蛟O(shè)計(jì)設(shè)計(jì)方法及思想解決實(shí)際問(wèn)題的能力,掌握使用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言C+,熟悉面向?qū)ο箝_(kāi)發(fā)平臺(tái)VisualC+6.0,提高調(diào)查研究、查閱技術(shù)資料以及編寫(xiě)技術(shù)文獻(xiàn)的能力。1.2課程設(shè)計(jì)任務(wù)(1)設(shè)計(jì)四個(gè)類(lèi),包括學(xué)生類(lèi)(描述學(xué)生基本信息);成績(jī)類(lèi):班級(jí)類(lèi);課程類(lèi)(描述課程信息:課程編號(hào),科目名稱(chēng),如高等數(shù)學(xué),大學(xué)英語(yǔ)等);(2)學(xué)生成績(jī)及課程信息用文件保存,程序執(zhí)行時(shí)從文件讀入;(3)能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);(4)求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢(xún)學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱(chēng)、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比。 計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比)。 顯示學(xué)生的姓名、所選課程名稱(chēng)以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件)。 注意,至少應(yīng)包含一個(gè)班、30人、三門(mén)課。 第2章 系統(tǒng)實(shí)現(xiàn)思路通過(guò)類(lèi)的封裝,將課程類(lèi)的信息儲(chǔ)存在學(xué)生類(lèi)中,學(xué)生信息儲(chǔ)存在班級(jí)類(lèi)中,程序的所有功能均通過(guò)班級(jí)類(lèi)的成員函數(shù)實(shí)現(xiàn)。2.1 類(lèi)的設(shè)計(jì)第一步建立四個(gè)類(lèi)用于描述各個(gè)操作對(duì)象的基本信息class score /分?jǐn)?shù)信息類(lèi)public: /各科期末成績(jī) int s_math; int s_english; int s_c; /各科成績(jī) int s_total_m; int s_total_e; int s_total_c; int s_average; /綜評(píng)成績(jī) int s_sum; /總成績(jī);class course /課程信息類(lèi)public: int cou_id; /科目編碼 string cou_name; /科目名稱(chēng);class student:public score /學(xué)生信息類(lèi)public: string name; /學(xué)生姓名 string sex; /學(xué)生性別 int std_id; /學(xué)號(hào) /各科平時(shí)成績(jī) int s_normal_m; int s_normal_e; int s_normal_c; double per; /平時(shí)成績(jī)所占百分比 friend bool operator stu2.s_average; ;class grades /班級(jí)信息類(lèi)public: string major; int cla_id; int peop_num; multisetstu; /儲(chǔ)存學(xué)生信息/包含自定義函數(shù) void fread(int n); /錄入學(xué)生信息 void seek(int m_std_id); /查找 void revise(int m_std_id); /學(xué)生信息修改 void display(void); /按班級(jí)輸出成績(jī) void display1(void); /查找成績(jī)不及格同學(xué)并輸出相關(guān)不及格科目;2.2 自定義函數(shù)的設(shè)計(jì)第二步設(shè)計(jì)功能函數(shù)用于操作第一步中所建立的操作對(duì)象以實(shí)現(xiàn)系統(tǒng)功能的核心步驟void fread(int n); /錄入學(xué)生信息void seek(int m_std_id); /查找(按學(xué)號(hào))void revise(int m_std_id); /學(xué)生信息修改(按學(xué)號(hào))void display(void); /按班級(jí)輸出成績(jī)void display1(void); /查找成績(jī)不及格同學(xué)并輸出相關(guān)不及格科目2.3 主函數(shù)的設(shè)計(jì)第三部建立實(shí)際操作對(duì)象,運(yùn)用自定義函數(shù)實(shí)現(xiàn)系統(tǒng)功能int main() /主函數(shù),用來(lái)實(shí)現(xiàn)系統(tǒng)功能int c; int t; grades cla; /定義操作對(duì)象 cout*endl; cout請(qǐng)輸入專(zhuān)業(yè)cla.major; cout請(qǐng)輸入班級(jí)cla.cla_id; cout請(qǐng)輸入學(xué)生人數(shù):cla.peop_num; cla.fread(cla.peop_num); while(1) system(cls); cout1_修改學(xué)生信息endl; cout2_打印班級(jí)成績(jī)單endl; cout3_打印個(gè)人成績(jī)單endl; cout4_打印不及格學(xué)生名單endl; cout5_退出c; switch (c) case 1: coutt; cla.revise(t); break; case 2: cla.display(); break; case 3: coutt; cla.seek(t); break; case 4: cla.display1(); break; case 5: return 0; default: cout輸入錯(cuò)誤!endl; system(pause); return 0;第3章 系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)包括查詢(xún)/修改個(gè)人分?jǐn)?shù),打印班級(jí)成績(jī)單及不及格名單,并對(duì)學(xué)生排序。所有功能均由grades成員函數(shù)實(shí)現(xiàn):fread()負(fù)責(zé)初始化讀入信息,display()負(fù)責(zé)打印班級(jí)成績(jī)單,revise()負(fù)責(zé)修改學(xué)生信息,seek()負(fù)責(zé)查找,failshow()負(fù)責(zé)打印不及格名單。3.1 數(shù)據(jù)錄入、保存功能函數(shù)該函數(shù)運(yùn)用C+面向?qū)ο蟪绦蛟O(shè)計(jì)(譚浩強(qiáng)版)一書(shū)中的“文件操作與文件流”章節(jié)中所介紹的知識(shí),通過(guò)使用VC+編譯器中的庫(kù)函數(shù)進(jìn)行學(xué)生信息的錄入與保存工作。說(shuō)明:每一個(gè)打開(kāi)的文件都有一個(gè)文件指針,該指針的初始位置是由I/O方式指定,每次讀寫(xiě)都從文件指針的當(dāng)前位置開(kāi)始。每讀入一個(gè)字節(jié),指針就后移一個(gè)字節(jié)。當(dāng)文件指針移到最后,就會(huì)遇到文件結(jié)束EOF(文件結(jié)束符也占一個(gè)字節(jié),其值為-1),此時(shí)流對(duì)象的成員函數(shù)eof的值為非0值(一般設(shè)為1),表示文件結(jié)束了。這就是該輸入方式的運(yùn)行機(jī)制。void grades:fread(int n) /按照學(xué)生信息錄入成績(jī) student tem; ifstream infile(f1.txt,ios:in);/錄入f1.txt文件中的信息 if(! infile) cerr open error!endl; exit(1); for(int i=0;tem.sextem.std_idtem.pertem.s_normal_mtem.s_normal_etem.s_normal_c;infiletem.s_mathtem.s_englishtem.s_c;tem.s_total_m=tem.s_normal_m*tem.per+tem.s_math*(1-tem.per); tem.s_total_e=tem.s_normal_e*tem.per+tem.s_english*(1-tem.per); tem.s_total_c=tem.s_normal_c*tem.per+tem.s_c*(1-tem.per); tem.s_sum=tem.s_total_m+tem.s_total_e+tem.s_total_c; tem.s_average=(tem.s_sum)/3; stu.insert(tem); infile.close();3.2 數(shù)據(jù)查詢(xún)功能函數(shù)根據(jù)自定義函數(shù)設(shè)定,在對(duì)學(xué)生進(jìn)行成績(jī)錄入時(shí)唯一不會(huì)改變、不會(huì)出現(xiàn)錯(cuò)誤的就是學(xué)生的學(xué)號(hào),所以該函數(shù)使用學(xué)生信息中的學(xué)號(hào)為操作對(duì)象進(jìn)行學(xué)生成績(jī)查詢(xún)基本不會(huì)出現(xiàn)太大的問(wèn)題。void grades:seek(int m_std_id) /按學(xué)號(hào)查找學(xué)生 student temstu; temstu.std_id=m_std_id; multiset:iterator iter; iter=stu.find(temstu); if(iter!=stu.end() cout姓名:(*iter).nameendl; cout學(xué)號(hào):(*iter).std_idendl; cout高等數(shù)學(xué)1:(*iter).s_normal_m大學(xué)英語(yǔ)1:(*iter).s_normal_e程序設(shè)計(jì)1:(*iter).s_normal_cendl; cout高等數(shù)學(xué)2:(*iter).s_math大學(xué)英語(yǔ)2:(*iter).s_english程序設(shè)計(jì)2:(*iter).s_cendl; cout高等數(shù)學(xué):(*iter).s_total_m大學(xué)英語(yǔ):(*iter).s_total_e程序設(shè)計(jì):(*iter).s_total_cendl; cout總成績(jī):(*iter).s_sumendl; cout綜評(píng)成績(jī):(*iter).s_averageendl; else cout找不到該學(xué)生!endl;運(yùn)用條件函數(shù)查找學(xué)生中成績(jī)不及格的學(xué)生同時(shí)將這些名單及不及格科目進(jìn)行打印。void grades:display1(void) /查找各學(xué)科不及格學(xué)生名單 student stu1; multiset:iterator iter; iter=stu.find(stu1); if(iter!=stu.end() if(*iter).s_total_m60|(*iter).s_total_e60|(*iter).s_total_c) cout姓名:(*iter).nameendl; cout不及格科目:endl; if(*iter).s_total_m60) cout高等數(shù)學(xué)endl; if(*iter).s_total_e60) cout大學(xué)英語(yǔ)endl; if(*iter).s_total_c60) cout程序設(shè)計(jì)endl; 3.3 數(shù)據(jù)修改功能函數(shù)根據(jù)自定義函數(shù)設(shè)定,在對(duì)學(xué)生進(jìn)行成績(jī)錄入時(shí)唯一不會(huì)改變、不會(huì)出現(xiàn)錯(cuò)誤的就是學(xué)生的學(xué)號(hào),所以該函數(shù)使用學(xué)生信息中的學(xué)號(hào)為操作對(duì)象進(jìn)行學(xué)生成績(jī)查詢(xún)基本不會(huì)出現(xiàn)太大的問(wèn)題。void grades:revise(int m_std_id) /學(xué)生信息修改 student temstu; temstu.s_sum=0; temstu.std_id=m_std_id; multiset:iterator iter; iter=stu.find(temstu); if(iter!=stu.end() cout請(qǐng)輸入要修改的學(xué)生信息endl; cout期末成績(jī):temstu.s_math; cintemstu.s_english; cintemstu.s_c; cout平時(shí)成績(jī):temstu.s_normal_m; cintemstu.s_normal_e; cintemstu.s_normal_c; cout平時(shí)成績(jī)所占百分比temstu.per; temstu.s_total_m=temstu.s_normal_m*temstu.per+temstu.s_math*(1-temstu.per); temstu.s_total_e=temstu.s_normal_e*temstu.per+temstu.s_english*(1-temstu.per); temstu.s_total_c=temstu.s_normal_c*temstu.per+temstu.s_c*(1-temstu.per); temstu.s_sum=temstu.s_total_m+temstu.s_total_e+temstu.s_total_c;temstu.s_average=(temstu.s_sum)/3;cout姓名;cout性別:temstu.sex;stu.erase(iter); /刪除舊元素tu.insert(temstu); /插入新元素 else cout找不到該學(xué)生endl;3.4 成績(jī)打印函數(shù)通過(guò)主函數(shù)進(jìn)行控制使該函數(shù)運(yùn)行,從而達(dá)到打印班級(jí)成績(jī)單的目的,該函數(shù)同樣運(yùn)用C+面向?qū)ο蟪绦蛟O(shè)計(jì)(譚浩強(qiáng)版)一書(shū)中的“文件操作與文件流”章節(jié)中所介紹的知識(shí),具體內(nèi)容可翻閱查看。 void grades:display(void) /按照班級(jí)打印學(xué)生成績(jī)單 multiset:iterator iter; /multiset容器,提取fread函數(shù)向容器中儲(chǔ)存的學(xué)生信息 ofstream outfile(f1.txt,ios:out); if(! outfile) cerr open error!endl; exit(1); outfile專(zhuān)業(yè):major班級(jí):cla_id人數(shù)peop_numendl; outfile姓名t性別t學(xué)號(hào)t高等數(shù)學(xué)1t高等數(shù)學(xué)t大學(xué)英語(yǔ)1t大學(xué)英語(yǔ)t程序設(shè)計(jì)1t程序設(shè)計(jì)t總成績(jī)tt綜評(píng)成績(jī)tendl; for(iter=stu.begin();iter!=stu.end();iter+) outfile(*iter).namet(*iter).sext(*iter).std_idt; outfile(*iter).s_math(*iter).s_total_mt; outfile(*iter).s_english(*iter).s_total_et; outfile(*iter).s_c(*iter).s_total_ct; outfile(*iter).s_sum(*iter).s_averageendl; outfile.close();第4章 系統(tǒng)調(diào)試運(yùn)行對(duì)已經(jīng)編碼完畢的程序進(jìn)行調(diào)試運(yùn)行,發(fā)現(xiàn)程序錯(cuò)誤,更改錯(cuò)誤。將代碼進(jìn)一步優(yōu)化,功能進(jìn)一步完善。4.1 系統(tǒng)程序運(yùn)行過(guò)程對(duì)已經(jīng)編碼完畢的程序進(jìn)行調(diào)試運(yùn)行,發(fā)現(xiàn)程序錯(cuò)誤,更改錯(cuò)誤。將代碼進(jìn)一步優(yōu)化,功能進(jìn)一步完善。輸入班級(jí)信息,按照班級(jí)信息進(jìn)行下一步操作。圖4.1班級(jí)信息圖按照學(xué)生學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行修改并儲(chǔ)存到原文件中。圖4.2修改信息圖按照班級(jí)信息將班級(jí)成績(jī)單打印并儲(chǔ)存到D:王豪杰的程序設(shè)計(jì)rDebugr.exe文件中。圖4.3個(gè)人信息儲(chǔ)存圖按照學(xué)生學(xué)號(hào)單獨(dú)打印成績(jī)并儲(chǔ)存到D:王豪杰的程序設(shè)計(jì)rDebugr.exe文件中。圖4.4學(xué)生成績(jī)打印圖按照學(xué)生基本信息將成績(jī)不及格學(xué)生名單進(jìn)行打印并將結(jié)果儲(chǔ)存到D:王豪杰的程序設(shè)計(jì)rDebugr.exe文件中。圖4.5成績(jī)不及格圖4.2 系統(tǒng)程序運(yùn)行結(jié)果原文件中儲(chǔ)存的學(xué)生信息。經(jīng)過(guò)“1”操作之后背修改的原文件信息。經(jīng)過(guò)“2”操作之后按照班級(jí)信息打印的班級(jí)成績(jī)單。課程設(shè)計(jì)體會(huì)學(xué)期末的課程設(shè)計(jì)是一次非常珍貴的機(jī)會(huì),這是一次可以讓我們所學(xué)的理論與實(shí)際相結(jié)合的機(jī)會(huì)。老師給我們布置了學(xué)生成績(jī)管理系統(tǒng)這一題目。通過(guò)這次比較完整的一個(gè)程序的設(shè)計(jì),我走出了純理論的學(xué)習(xí),從一種全新的角度去學(xué)習(xí)。理論與實(shí)際相結(jié)合的設(shè)計(jì),鍛煉了我綜合運(yùn)用所學(xué)的基礎(chǔ)知識(shí),解決實(shí)際問(wèn)題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、對(duì)程序整體的把握等其他能力水平。而且通過(guò)對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,我的各方面經(jīng)驗(yàn)都得到了極大的豐。當(dāng)然在程序設(shè)計(jì)過(guò)程中我跟其他同學(xué)之間也進(jìn)行了一定的交流,我們?cè)诮涣髦校虐l(fā)出了很多設(shè)計(jì)靈感,互相建議改進(jìn)的過(guò)程中,從各個(gè)方面共同改進(jìn)著,這個(gè)已經(jīng)不能僅僅稱(chēng)作課程設(shè)計(jì)的作品。 參考文獻(xiàn)1 譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì).清華大學(xué)出版社2 譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題上機(jī)指導(dǎo).清華大學(xué)出版社3 Kenneth C.Louden.編譯原理及實(shí)踐.機(jī)械工業(yè)出版社4H.M.Deitel(美) P.J.Deitel(美).C+大學(xué)教程.電子工業(yè)出版社5Herbert Schildt.C+編譯藝術(shù).清華大學(xué)出版社6Al Stevens Clayton Walnum(美).標(biāo)準(zhǔn)C+寶典.電子工業(yè)出版社附 錄#include #include #include #include #include #include #include #include using namespace std;class score /分?jǐn)?shù)public: int s_total; int s_ave; int s_sum;class course /課程信息 public: int cou_id; string cou_name; int mark; /分?jǐn)?shù);class student:public score /學(xué)生信息public: string name; string sex; int std_id; int s_normal; /平時(shí)成績(jī) double per; /平時(shí)成績(jī)所占百分比 int m; /該學(xué)生選課的門(mén)數(shù) vector cour; /該學(xué)生所選的課;bool operator stu2.std_id; class grades /班級(jí)public: string major; int cla_id; int peop_num; multiset stu; void fread(int n); /對(duì)成績(jī)的錄入,n個(gè)學(xué)生 void revise(int t_ID); /根據(jù)學(xué)號(hào)修改學(xué)生信息 void display(void); /打印班級(jí)成績(jī)單 void seek(int t_ID); /查找 void failshow(void); /打印不及格學(xué)生名單;void grades:failshow() ofstream outfile(outn.dat,ios:out); multiset:iterator iter; for(iter=stu.begin();iter!=stu.end();iter+) if(*iter).s_ave60) outfile(*iter).name (*iter).std_id endl; outfile.close(); cout完成:輸出到:./outn.datendl;void grades:seek(int t_ID) /查找學(xué)號(hào)為t_ID的學(xué)生 student temstu; temstu.std_id=t_ID; multiset:iterator iter=stu.find(temstu); if(iter!=stu.end() cout姓名: (*iter).name學(xué)號(hào):(*iter).std_idendl; for(int i=0;i(*iter).m;i+) cout(*iter).cour.at(i).cou_name: (*iter).cour.at(i).mark; cout總成績(jī):(*iter).s_sum綜評(píng)成績(jī):(*iter).s_totalendl; else cout找不到該學(xué)生endl;void grades:display(void) /輸出班級(jí)成績(jī)單 multiset:iterator iter; ofstream outfile(out.dat,ios:out); if(!outfile) coutopen errorendl; exit(1); outfile專(zhuān)業(yè):major班級(jí):cla_id人數(shù)peop_numendl; outfile姓名t性別t學(xué)號(hào)t各科成績(jī)t總成績(jī)tt綜評(píng)成績(jī)tendl; for(iter=stu.begin();iter!=stu.end();iter+) outfile(*iter).namet(*iter).sext(*iter).std_id ; for(int i=0;i(*iter).m;i+) outfile(*iter).cour.at(i).cou_name (*iter).cour.at(i).mark ; outfilet(*iter).s_sumt(*iter).s_totaltendl; outfile.close(); cout完成,輸出到:./out.datendl;void grades:fread(int n) student tem; course t; ifstream infile(in.dat,ios:in); if(!infile) coutopen error !endl; exit (1); for(int i=0;tem.sextem.std_idtem.pertem.s_normal; /設(shè)置學(xué)生信息 infiletem.m; tem.s_sum=0; for(int j=0;jt.cou_idt.cou_namet.mark; tem.s_sum+=t.mark; /總分 tem.cour.push_back(t); tem.s_ave=(tem.s_sum)/tem.m; /平均分 tem.s_total=tem.s_normal*tem.per+tem.s_sum*(1-tem.per); /總評(píng)成績(jī) stu.insert(tem); infile.close();void grades:revise(int t_ID) student temstu; temstu.std_id=t_ID; temstu.s_sum=0; vector:iterator i; multiset:iterator iter=stu.find(temstu); if(iter!=stu.end() cout請(qǐng)輸入要修改的學(xué)生信息endl; /*for(i=(*iter).cour.begin();i!=(*iter).cour.end();i+) cout(*iter).cour.at(i).cou_name:temstu.cour.at(i).mark; temstu.s_sum+=temstu.cour.at(i).mark; */ cout平時(shí)成績(jī)temstu.s_normal; cout平時(shí)成績(jī)所占百分比temstu.per; temstu.s_ave=temstu.s_sum/temstu.m; temstu.s_total=temstu.s_normal*temstu.per+temstu.s_sum*(1-temstu.per); cout姓名; cout性別:temstu.sex; stu.erase(iter); /刪除舊元素 stu.insert(temstu); /插入新元素 cout修改完成endl; else cout找不到該學(xué)生endl;int main() system(color d0); int c; int t; grades cla; cout*endl; cout*學(xué)生管理系統(tǒng)*endl; cout請(qǐng)輸入學(xué)生人數(shù):cla.peop_num; cout請(qǐng)輸入專(zhuān)業(yè):cla.major; cout請(qǐng)輸入班級(jí)cla.cla_id; cla.fread(cla.peop_num); while(1) system(cls); cout*endl; cout*endl; cout 1_修改學(xué)生信息endl; cout 2_打印班級(jí)成績(jī)單endl; cout 3_打印個(gè)人成績(jī)單endl; cout 4_打印不及格學(xué)生名單endl; cout 5_退出c; switch (c) case 1: coutt; cla.revise(t); break; case 2: cla.display(); break; case 3: coutt; cla.seek(t); break; case 4: cla.failshow(); break; case 5: return 0; default: cout輸入錯(cuò)誤!endl; system(pause); return 0;#include #include #include #include #include #include #include #include using namespace std;class score /分?jǐn)?shù)public: int s_total; int s_ave; int s_sum;class course /課程信息 public: int cou_id; string cou_name; int mark; /分?jǐn)?shù);class student:public score /學(xué)生信息public: string name; string sex; int std_id; int s_normal; /平時(shí)成績(jī) double per; /平時(shí)成績(jī)所占百分比 int m; /該學(xué)生選課的門(mén)數(shù) vector cour; /該學(xué)生所選的課;bool operator stu2.std_id; class grades /班級(jí)public: string major; int cla_id; int peop_num; multiset stu; void fread(int n); /對(duì)成績(jī)的錄入,n個(gè)學(xué)生 void revise(int t_ID); /根據(jù)學(xué)號(hào)修改學(xué)生信息 void display(void); /打印班級(jí)成績(jī)單 void seek(int t_ID); /查找 void failshow(void); /打印不及格學(xué)生名單;void grades:failshow() ofstream outfile(outn.dat,ios:out); multiset:iterator iter; for(iter=stu.begin();iter!=stu.end();iter+) if(*iter).s_ave60) outfile(*iter).name (*iter).std_id endl; outfile.close(); cout完成:輸出到:./outn.datendl;void grades:seek(int t_ID) /查找學(xué)號(hào)為t_I

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論