《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
《《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《高級(jí)程序設(shè)計(jì)語言》課程設(shè)計(jì) -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(38頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、河南工程學(xué)院高級(jí)程序設(shè)計(jì)語言課程設(shè)計(jì)成果報(bào)告學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生學(xué)號(hào) : 學(xué)生姓名: 學(xué) 院: 計(jì)算機(jī)學(xué)院 專業(yè)班級(jí): 軟件工程1341 專業(yè)課程: 高級(jí)程序設(shè)計(jì)語言指導(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ì)(30分)分析系統(tǒng)的功能模塊編程調(diào)試(30分)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊,并完成調(diào)試回答問題(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問題課程設(shè)計(jì)報(bào)告撰寫(10分)嚴(yán)格按照規(guī)范要求完成課程設(shè)計(jì)報(bào)告源代碼(5分)按照規(guī)范要求完成課程設(shè)計(jì)源代
2、碼的排版總 評(píng) 成 績(jī)指導(dǎo)教師評(píng)語: 日期: 年 月 日目 錄第1章 系統(tǒng)設(shè)計(jì)目的11.1 設(shè)計(jì)內(nèi)容11.2 課程設(shè)計(jì)的要求11.3課程設(shè)計(jì)基本操作方法1第2章 系統(tǒng)實(shí)現(xiàn)思路22.1 頁面設(shè)計(jì)22.2 功能設(shè)計(jì)與實(shí)現(xiàn)22.3系統(tǒng)模塊化設(shè)計(jì)圖32.4 系統(tǒng)需求分析3第3章 系統(tǒng)詳細(xì)設(shè)計(jì)43.1 系統(tǒng)的需求43.2主函數(shù)設(shè)計(jì)113.3系統(tǒng)的性能要求133.4 系統(tǒng)的功能分析133.5系統(tǒng)的功能模塊13第4章 系統(tǒng)調(diào)試運(yùn)行144.1測(cè)試結(jié)果144.2程序運(yùn)行總結(jié)17課程設(shè)計(jì)體會(huì)19參考文獻(xiàn)20第1章 系統(tǒng)設(shè)計(jì)目的1.1 設(shè)計(jì)內(nèi)容a.設(shè)計(jì)四個(gè)類;學(xué)生類(描述學(xué)生基本信息);成績(jī)類;班級(jí)類;課程類(描述
3、課程信息:課程編號(hào),科目名稱(如高等數(shù)學(xué),大學(xué)英語等);學(xué)生成績(jī)及課程信息用文件保存,每個(gè)類一個(gè)文件,程序執(zhí)行時(shí)從文件讀入。b.能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入,修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);求學(xué)生的總分及平均分;并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序。能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出的學(xué)生的成績(jī)單。設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占比百分比+期末成績(jī)*(1平時(shí)成績(jī)所占百分比)顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信息。分單人顯示和以班輸出(班成績(jī)單格式輸
4、出到文件)注意,至少一個(gè)班,30人三門課1.2 課程設(shè)計(jì)的要求根據(jù)c+課程所學(xué)的概念、理論和方法,按照c+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序設(shè)計(jì)課程內(nèi)容中的全部?jī)?nèi)容功能;設(shè)計(jì)主控模塊程序。對(duì)給出的程序源代碼要給出各部分的詳細(xì)注釋。自己根據(jù)能力及需要添加相應(yīng)功能模塊。包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計(jì)、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫中的表、視圖(如果使用)、索引的機(jī)構(gòu)和定義、觸發(fā)器、儲(chǔ)存過程、課程設(shè)計(jì)體會(huì)。1.3課程設(shè)計(jì)基本操作方法1按照系統(tǒng)用戶手冊(cè)及文檔規(guī)范要求進(jìn)行操作,養(yǎng)成查閱手冊(cè)、文檔的良好習(xí)慣;2對(duì)特殊疑難問題采用討論、協(xié)作等方式進(jìn)行解決,有意識(shí)地訓(xùn)練團(tuán)隊(duì)合作意
5、識(shí);3課程設(shè)計(jì)報(bào)告應(yīng)多包含在課程設(shè)計(jì)過程中出現(xiàn)的錯(cuò)誤及解決方法。第2章 系統(tǒng)實(shí)現(xiàn)思路2.1 頁面設(shè)計(jì)程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡(jiǎn)潔的窗口,便于用戶查詢數(shù)據(jù)。(1)基本要求:a要求利用面向?qū)ο蟮姆椒ㄒ约癱+的編程思想來完成系統(tǒng)的設(shè)計(jì);b要求在設(shè)計(jì)的過程中,建立清晰的類層次;c在系統(tǒng)中至少要定義四個(gè)類,每個(gè)類中要有各自的屬性和方法;d在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。(2)創(chuàng)新設(shè)計(jì)在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。(3)寫出設(shè)計(jì)說明書2.2 功能設(shè)計(jì)與實(shí)現(xiàn) 通過主窗體調(diào)用其他窗體,具體實(shí)現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括記錄編和記錄查詢等功能模塊。
6、記錄編輯功能完成學(xué)生成績(jī)記錄編輯和記錄查詢功能。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢1.設(shè)計(jì)方法和基本原理:(1)問題描述設(shè)計(jì)一個(gè)實(shí)用的小型班級(jí)程序,具有查詢和刪除功能,并且能夠打開或修改指定文件及將多個(gè)文件組成組成一個(gè)文件。他完全使用類來實(shí)現(xiàn),充分體現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計(jì)特點(diǎn)。要求:實(shí)現(xiàn)主要功能:建立文件,文件的存取和顯示,刪除記錄,查詢記錄。(2)問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題分為: a.應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的設(shè)計(jì)和組織;b分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系包括屬性和行為;c.根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;d完成類層次中各個(gè)類的描述(包括屬性
7、和方法);e完成類中各個(gè)成員函數(shù)的定義;f完成系統(tǒng)的應(yīng)用模塊;g.功能調(diào)試;h完成系統(tǒng)總結(jié)以及系統(tǒng)應(yīng)用說明書。 2.3系統(tǒng)模塊化設(shè)計(jì)圖該學(xué)生管理系統(tǒng)主要分為七個(gè)功能模塊,各個(gè)功能模塊由相應(yīng)的功能函數(shù)來實(shí)現(xiàn),模塊化圖如下:學(xué)生管理系統(tǒng)主菜單錄入數(shù)據(jù)查詢數(shù)據(jù)修改數(shù)據(jù)保存數(shù)據(jù)數(shù)據(jù)排序數(shù)據(jù)讀取退出系統(tǒng)圖表 21 系統(tǒng)模塊化設(shè)計(jì)圖2.4 系統(tǒng)需求分析(1)學(xué)生信息錄入功能;(2)學(xué)生成績(jī)查詢功能;(3)學(xué)生成績(jī)輸出功能;(4)學(xué)生信息修改功能;(5)學(xué)生信息刪除功能;(6)學(xué)生成績(jī)的排序功能。第3章 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 系統(tǒng)的需求1.構(gòu)造學(xué)生信息結(jié)構(gòu)體存儲(chǔ)學(xué)生信息學(xué)生信息包括:姓名,學(xué)號(hào),數(shù)學(xué),英語,數(shù)
8、構(gòu),物理,總分,平均分等信息。構(gòu)造代碼如下:struct Student /聲明一個(gè)名為student的結(jié)構(gòu)體類型 string name; /姓名 string number; /學(xué)號(hào) double maths; /數(shù)學(xué) double english; /英語 double datastruct; /數(shù)構(gòu) double physical; /物理 double total; /總分 double average;/均分; 2. 系統(tǒng)功能函數(shù)類的設(shè)計(jì)把該系統(tǒng)要實(shí)現(xiàn)的功能封裝在此類中,方便增加和修改。在本系統(tǒng)中設(shè)計(jì)了七個(gè)函數(shù)分別實(shí)現(xiàn)學(xué)生成績(jī)的錄入,查詢,輸出,修改,刪除,求總分和平均分。其代碼如
9、下::class SYSTEM /聲明類systempublic:SYSTEM()n=0; /構(gòu)造函數(shù) void add();/添加 void show();/顯示 void search();/查詢 void change();/修改 void delet();/刪除 void sort();/排序 void Max();/最高分 void Min();/最低分private:Student stu1000;/定義一個(gè)結(jié)構(gòu)體類型student的變量stu int n;各功能函數(shù)代碼如下:學(xué)生信息輸入函數(shù)add()void SYSTEM:add()/添加 cout學(xué)號(hào):stun.number;
10、 cout姓名:stun.name; cout數(shù)學(xué):stun.maths; cout英語:stun.english; cout數(shù)構(gòu):stun.datastruct; cout物理:stun.physical; stun.total= stun.maths+ stun.english+ stun.datastruct+ stun.physical; stun.average=stun.total/4; n+;/學(xué)生人數(shù)增加一個(gè) (2)學(xué)生成績(jī)查詢函數(shù)search()void SYSTEM:search()/查詢 cout請(qǐng)選擇查詢方式:endl; cout1.按學(xué)號(hào)查詢endl; cout2.按
11、姓名查詢c; switch (c) case 1:/按照學(xué)號(hào)查詢string num;cout請(qǐng)輸入要查詢的學(xué)號(hào):num;for(i=0;in;i+) if(stui.number=num) cout學(xué)號(hào) 姓名 數(shù)學(xué) 英語 數(shù)構(gòu) 物理 總分 平均分endl;coutstui.number stui.name stui.maths stui.english stui.datastruct stui.physical stui.total stui.averageendl;break; if(stui.number!=num)cout未找到該學(xué)生信息!endl;break;case 2:/按照學(xué)號(hào)
12、查詢string name1;cout請(qǐng)輸入要查詢的姓名:name1;for(i=0;in;i+) if(stui.name=name1) cout學(xué)號(hào) 姓名 數(shù)學(xué) 英語 數(shù)構(gòu) 物理 總分 平均分endl;coutstui.number stui.name stui.maths stui.english stui.datastruct stui.physical stui.total stui.averageendl; break; (3)學(xué)生成績(jī)輸出函數(shù)show()void SYSTEM:show()/輸出 cout學(xué)號(hào) 姓名 數(shù)學(xué) 英語 數(shù)構(gòu) 物理 總分 平均分endl; for(int
13、i=0;in;i+) coutstui.number stui.name stui.maths stui.english stui.datastruct stui.physical stui.total stui.averageendl; void SYSTEM:change() /修改string num;int i; cout請(qǐng)輸入要修改的學(xué)生學(xué)號(hào):num; for(i=0;in;i+) if(stui.number=num) cout該學(xué)號(hào)的學(xué)生信息如下:endl; cout學(xué)號(hào) 姓名 數(shù)學(xué) 英語 數(shù)構(gòu) 物理 總分 平均分endl; coutstui.number stui.name s
14、tui.maths stui.english stui.datastruct stui.physical stui.total stui.averageendl;cout請(qǐng)輸入新的學(xué)生信息:endl;cout學(xué)號(hào):stui.number;stun.number=stui.number;cout姓名:stui.name;stun.name=stui.name;cout數(shù)學(xué):stui.maths;stun.maths =stui.maths;cout英語:stui.english;stun.english=stui.english;cout數(shù)構(gòu):stui.datastruct;stun.datas
15、truct=stui.datastruct;cout物理:stui.physical;stun.physical=stui.physical;stui.total= stui.maths+ stui.english+ stui.datastruct+ stui.physical;stui.average=stui.total/4;break; if(stui.number!=num)cout無此學(xué)生信息!endl;void SYSTEM:delet() /刪除 string num; cout請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào),然后按回車確認(rèn):num; for(int i=0;in;i+) if(stui
16、.number=num) for(int j=i;jn-1;j+) stuj=stuj+1;/用后一個(gè)學(xué)生信息覆蓋前一個(gè)學(xué)生信息 n-; /學(xué)生人數(shù)減少一個(gè) cout已成功刪除該學(xué)生信息!endl;break;(4)排序函數(shù)sort()void SYSTEM:sort() /排序cout請(qǐng)選擇排序方式:endl;cout1.按學(xué)生總分排序endl;cout2.按學(xué)生平均分排序endl;cout3.返回k; switch (k) case 1:/按學(xué)生總分排序 Student p; for(int i=0;in;i+) for(int j=0;jn-i;j+) if(stuj.totalstuj
17、+1.total) p=stuj; stuj=stuj+1; stuj+1=p; cout學(xué)號(hào) 姓名 數(shù)學(xué) 英語 數(shù)構(gòu) 物理 總分endl; for(int m=0;mn;m+) coutstum.number stum.name stum.maths stum.english stum.datastruct stum.physical stum.totalendl; break; case 2:/按學(xué)生平均分排序 Student p;/定義一個(gè)Student類型的變量p for(int i=0;in;i+) for(int j=0;jn-i;j+) if(stuj.averagestuj+1
18、.average) p=stuj; stuj=stuj+1; stuj+1=p; cout學(xué)號(hào) 姓名 數(shù)學(xué) 英語 數(shù)構(gòu) 物理 平均分endl; for(int m=0;mn;m+) coutstum.number stum.name stum.maths stum.english stum.datastruct stum.physical stum.averageendl; break;case 3:return;/返回 (5)求各科最高分函數(shù)Max()void SYSTEM:Max()/最高分double max1,max2,max3,max4,max5,max6;max1=stu0.mat
19、hs;max2=stu0.english;max3=stu0.datastruct;max4=stu0.physical;max5=stu0.total;max6=stu0.average; for(int i=0;imax1) max1=stui.maths ; if(stui.englishmax2) max2=stui.english; if(stui.datastructmax3) max3=stui.datastruct; if(stui.physicalmax4) max4=stui.physical; if(stui.totalmax5) max5=stui.total; if(
20、stui.averagemax6) max6=stui.average; cout數(shù)學(xué)最高分 英語最高分 數(shù)構(gòu)最高分 物理最高分 總分最高 平均分最高endl; cout max1 max2 max3 max4 max5 max6endl; (6)求各科最低分函數(shù)Min()void SYSTEM:Min()/最低分double min1,min2,min3,min4,min5,min6; min1=stu0.maths; min2=stu0.english; min3=stu0.datastruct; min4=stu0.physical; min5=stu0.total; min6=stu0
21、.average; for(int i=0;in;i+) if(stui.mathsmin1) min1=stui.maths; if(stui.englishmin2) min2=stui.english; if(stui.datastructmin3) min3=stui.datastruct; if(stui.physicalmin4) min4=stui.physical; if(stui.totalmin5) min5=stui.total; if(stui.averagemin6) min6=stui.average; cout數(shù)學(xué)最低分 英語最低分 數(shù)據(jù)結(jié)構(gòu)最低分 物理最低 總分
22、最低 平均分最低endl; cout min1 min2 min3 min4 min5 min6endl; 3. 主函數(shù)設(shè)計(jì)先用循壞語句實(shí)現(xiàn)不斷重復(fù),通過多重選擇語句調(diào)用功能函數(shù)類中的相應(yīng)函數(shù)實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的各項(xiàng)功能需求。其代碼如下:void main() SYSTEM person; int b;3.2主函數(shù)設(shè)計(jì)先用循壞語句實(shí)現(xiàn)不斷重復(fù),通過多重選擇語句調(diào)用功能函數(shù)類中的相應(yīng)函數(shù)實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的各項(xiàng)功能需求。void main() SYSTEM person; int b; do cout*endl; cout 1.輸入學(xué)生成績(jī) 5.刪除學(xué)生成績(jī)endl; cout 2.查詢學(xué)生
23、成績(jī) 6.學(xué)生成績(jī)排序endl; cout 3.輸出學(xué)生成績(jī) 7.最高分endl; cout 4.修改學(xué)生成績(jī) 8.最低分endl; cout 0.退出學(xué)生成績(jī)管理系統(tǒng)endl; cout*endl; coutb; switch(b) case 1: cout請(qǐng)依次輸入該學(xué)生的相關(guān)信息:endl; person.add(); break; case 2: person.search(); break; case 3: person.show(); break; case 4: person.change(); break; case 5: person.delet(); break; case
24、 6: person.sort(); break; case 7: person.Max(); break; case 8: person.Min(); break; case 0:cout謝謝使用本系統(tǒng)!endl; while(b10);3.3系統(tǒng)的性能要求(1)系統(tǒng)安全、可靠;(2)功能齊全;(3)操作方便、界面友好;(4)易于維護(hù)和擴(kuò)充。3.4 系統(tǒng)的功能分析(1)資料維護(hù):系統(tǒng)維護(hù)包括對(duì)學(xué)生的信息的錄入操作及數(shù)據(jù)表中的信息進(jìn)行瀏覽。(2)系統(tǒng)功能:可以對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽。(3)系統(tǒng)查詢:可以對(duì)學(xué)生的信息進(jìn)行查詢。3.5系統(tǒng)的功能模塊學(xué)生成績(jī)查詢系統(tǒng)有:成績(jī)錄入、增加、刪除、修改、
25、數(shù)據(jù)查詢,排序顯示構(gòu)成。第4章 系統(tǒng)調(diào)試運(yùn)行4.1測(cè)試結(jié)果每一個(gè)case都能執(zhí)行,但是很多的地方都不夠完善,例如:在總成績(jī)排序中,只能輸出總成績(jī),不能單獨(dú)的輸出學(xué)生的相應(yīng)的信息;每次進(jìn)行別的操作之前都要進(jìn)行一次數(shù)據(jù)的錄入,不能直接對(duì)原有的文件進(jìn)行讀取。 4-1修改學(xué)生成績(jī)4-2刪除學(xué)生成績(jī)4-3學(xué)生成績(jī)排序4-4輸出各科最高分4-5輸出各科最低分4-6退出系統(tǒng)4.2程序運(yùn)行總結(jié)該程序經(jīng)過多次運(yùn)行后,最終通過執(zhí)行結(jié)果,很多細(xì)節(jié)需要我們留意,一個(gè)很小的錯(cuò)誤就可能造成程序無法運(yùn)行。課程設(shè)計(jì)體會(huì)親身體會(huì):這次的c+課程設(shè)計(jì)實(shí)踐中,在老師的指導(dǎo)下,運(yùn)用c+的知識(shí)編寫一個(gè)課題。在整個(gè)過程中我們要明白設(shè)計(jì)目
26、的,然后進(jìn)行分析,而且團(tuán)隊(duì)意識(shí)很重要。在這段日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。第一次進(jìn)行實(shí)訓(xùn),剛開始不知該如何下手,感覺跟平時(shí)學(xué)的知識(shí)跟現(xiàn)實(shí)無法連接,但是在老師和其他同學(xué)的幫助下,還是最終做到了有始有終,嘗到了成功的甜頭。對(duì)程序這門課又有了新的認(rèn)識(shí),并且產(chǎn)生了濃厚的興趣。參考文獻(xiàn)1 譚浩強(qiáng)著,C+語
27、言設(shè)計(jì)題解與上機(jī)指導(dǎo),清華大學(xué)出版社2 譚浩強(qiáng)著,C+面向?qū)ο蟪绦蛟O(shè)計(jì),清華大學(xué)出版社3 Deitel.Java大學(xué)基礎(chǔ)教程(第六版).電子工業(yè)出版社4 MaryCampione.Java語言導(dǎo)學(xué)(第四版).機(jī)械工業(yè)出版社5 Y.DanielLiang.Java語言程序設(shè)計(jì)基礎(chǔ)篇(第六版).機(jī)械工業(yè)出版社6 KathySierra.HeadFirstJava(第二版).東南大學(xué)出版社 #include #include #include#include#includeusing namespace std; class Tstu /通過定義一個(gè)類來定義數(shù)據(jù)錄入的函數(shù) char name20;
28、int number; float math,cpp,english,average,sum; public: Tstu() ; Tstu ( char n20, int num,float ma,float cj,float eng ) ; float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); /得到姓名
29、number=num; /得到學(xué)號(hào) math=ma; /得到數(shù)學(xué)成績(jī) cpp=cj; /得到c+成績(jī) english=eng; /得到英語成績(jī) float Tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float Tstu:getaver() /得到平均分的函數(shù) average=getsum()/3; return average; void main() cout*歡迎來到學(xué)生成績(jī)查詢系統(tǒng)*endl; cout請(qǐng)選擇您需要的操作!endl; /菜單的輸出 cout操作:endl; cout(1)數(shù)據(jù)錄入endl; cout(
30、2)增加學(xué)生endl; cout(3)刪除學(xué)生endl; cout(4)修改數(shù)據(jù)endl; cout查詢:endl; cout(5)按總成績(jī)查詢endl; cout(6)按姓名查詢endl; cout(7)輸出所有學(xué)生的數(shù)據(jù)endl; cout成績(jī)統(tǒng)計(jì):endl; cout(8)每個(gè)學(xué)生的平均成績(jī)endl; cout(9)各科不及格人數(shù)endl; cout排名:endl; cout(10)按總分查詢排名endl; cout(11)退出endl; cout選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母!p; if(p=1&p=11) chris1=1; else cout指令錯(cuò)誤!請(qǐng)重新輸入:
31、endl; while(chris1=0); do switch(p) case 1: /數(shù)據(jù)的錄入 char c; /用于在小項(xiàng)中選擇是否繼續(xù)操作 char name20; int number; float math,cpp,english; do cout請(qǐng)輸入姓名:name; cout請(qǐng)輸入學(xué)號(hào):number; cout請(qǐng)輸入數(shù)學(xué)成績(jī):math; cout請(qǐng)輸入C+成績(jī):cpp; cout請(qǐng)輸入英語成績(jī):english; fstream outfile,infile; /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open(f1.txt,ios:out|ios:app
32、); if(!file) coutf1.txt can not open.n; return; outfilename 學(xué)號(hào):number 數(shù)學(xué)成績(jī):math C+成績(jī):cpp 外語成績(jī):englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開 coutf1.txt can not open.n; return; char ch; while(infile.get(ch) coutch; coutendl; infile.close(); j+; si=new Tstu(name, number,
33、math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; chris1=0; do if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; else chris1=1; while(chris1=0); while(c=y); /重復(fù)輸入 break; case 2: /增加學(xué)生數(shù)據(jù) char name20; int number; float math,cpp,english; char c; do cout請(qǐng)輸入您要增加的學(xué)生的姓名:name; cout請(qǐng)輸入你要增加的學(xué)生的學(xué)號(hào):number; cout請(qǐng)輸入數(shù)學(xué)成績(jī):math; cout
34、請(qǐng)輸入C+成績(jī):cpp; cout請(qǐng)輸入英語成績(jī):english; fstream outfile,infile; outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學(xué)號(hào):number 數(shù)學(xué)成績(jī):math C+成績(jī):cpp 外語成績(jī):englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) coutf1.txt can not open.n; return; char h; wh
35、ile(infile.get(h) couth; coutendl; infile.close(); j+; si=new Tstu(name,number, math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; while(c=y); break; case 3:/刪除學(xué)生信息 char c; string xingming,line,str,name; do ifstream fin(f1.txt); fstream outfile(f2.txt,ios:trunc|ios:out
36、); /作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout請(qǐng)輸入您要?jiǎng)h除的學(xué)生的姓名:xingming; while(!fin.eof() ) getline(fin,line); istringstream stream(line); name = line.substr(0,line.find( ,0);/找到名字,判斷是否相等 if(name != xingming) outfilelineendl; outfile.close(); fin.close(); fstream f(f1.txt,ios:trunc|ios:out); ifstream outf(f2.txt); fo
37、utf.rdbuf(); outf.close(); f.close(); cout數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)c; if(c!=y&c!=n) cout指令錯(cuò)誤!請(qǐng)重新輸入!c; while(c=y); break; case 4:/修改數(shù)據(jù) string sname,line,str,name; int nu;float eng,ma,com;int flag;char c;if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break;do flag=0; coutname; fstream fin(f1.txt,ios:in); ofstream outfile(
38、f.txt,ios:trunc|ios:out); coutendl; while(!fin.eof() ) /在文件中查找 getline(fin,line); istringstream stream(line); sname = line.substr(0,line.find( ,0);if(name!=sname)outfilelineendl;else flag=1; fin.close(); if(flag=1) coutnamenumacomeng;coutendl;outfilename 學(xué)號(hào):nu 數(shù)學(xué)成績(jī):ma C+成績(jī):com 外語成績(jī):engendl; outfile.
39、close();fstream outf(f1.txt,ios:trunc|ios:out);fstream inf(f.txt,ios:in);outfinf.rdbuf()endl;outf.close();inf.close(); if(flag=0)cout對(duì)不起,您要修改的學(xué)生不存在!請(qǐng)查證后輸入!endl; coutc; coutendl; if(c!=y&c!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入!endlc; while(c=y);break; case 5:/按總分查詢 int j=0;float SUM;char c;int flag; if(i=0)cout系統(tǒng)中沒有輸入
40、數(shù)據(jù),請(qǐng)先輸入數(shù)據(jù)!endl;break; do flag=0; cout請(qǐng)輸入您要查詢的學(xué)生的總成績(jī):SUM; for(int j=0;jgetsum()=SUM) flag=1;cout您要查詢的學(xué)生是:(*sj).nameendl;cout該生的信息為:endl;cout 學(xué)號(hào):(*sj).number 數(shù)學(xué)分?jǐn)?shù):(*sj).math c+分?jǐn)?shù):(*sj).cpp 英語分?jǐn)?shù)(*sj).englishendl; if(flag=0)cout對(duì)不起!您要查詢的學(xué)生不存在!endl;coutc;if(c!=y&c!=n)cout指令錯(cuò)誤!請(qǐng)重新輸入!c; ; while(c=y); break; case 6
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 同濟(jì)六版高等數(shù)學(xué)第一章第八節(jié)
- 市場(chǎng)細(xì)分目標(biāo)市場(chǎng)選擇
- ada-關(guān)于供配電變壓器高壓側(cè)過流保護(hù)兼做低壓側(cè)故障的靈敏性校驗(yàn)問題的分析
- 咨詢常見思想誤區(qū)及常用咨詢技巧課件
- 每周講堂:眾籌課件
- 公司治理內(nèi)部控制
- 金屬活動(dòng)性順序?qū)n}復(fù)習(xí)
- 10.2二元一次方程組 (2)(精品)
- 《邊城》人物形象分析
- 《論文綜述》寫法PPT課件
- 廣州物流人才分析報(bào)告
- 數(shù)碼管靜態(tài)顯示及定時(shí)器和中斷應(yīng)
- 同步電機(jī)的基本類型和基本結(jié)構(gòu)
- BI基礎(chǔ)概念培訓(xùn)教材
- 商品的使用價(jià)值和價(jià)值課件