版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)報告</b></p><p> 課程設(shè)計(jì)題目:對參賽結(jié)果分?jǐn)?shù)進(jìn)行處理</p><p><b> 目錄</b></p><p> 一 目的 ************************* 2</p><p> 二 基本要求
2、 ************************* 2</p><p> 三 創(chuàng)新要求 ************************* 2</p><p> 三 創(chuàng)新要求 ************************* 2 </p><p> 四 寫出設(shè)計(jì)說明書 *****************
3、******** 2</p><p> 五 實(shí)驗(yàn)題目 ************************* 2 </p><p> 六 實(shí)現(xiàn)流程分析 ************************* 3</p><p> 七 程序源代碼 ************************* 5</p&
4、gt;<p> 八 運(yùn)行結(jié)果 ************************* 13</p><p> 九 問題分析************************* 15</p><p> 十 結(jié)構(gòu)分析 ************************* 15</p><p> 十一 個性功能
5、介紹 *********************** 15 </p><p> 十二 課程設(shè)計(jì)的目的與要求******************** 15</p><p> 十三 課程設(shè)計(jì)小結(jié) ************************ 16</p><p><b> C++課程設(shè)計(jì)</b></p>
6、;<p><b> 一 目的:</b></p><p> ?。?)要求學(xué)生達(dá)到熟練掌握C++語言的基本知識和技能; </p><p> ?。?)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; </p><p> ?。?)能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。 </p><p><
7、b> 二 基本要求:</b></p><p> (1)要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來完成系統(tǒng)的系統(tǒng)結(jié)構(gòu); </p><p> (2)要求在設(shè)計(jì)的過程中,建立清晰的類關(guān)系圖,描述出類族之間的關(guān)系; </p><p> (3)在系統(tǒng)中定義的每個類中要有各自的屬性和方法; </p><p> ?。?)在系統(tǒng)的
8、設(shè)計(jì)中,要用到面向?qū)ο蟮姆庋b、繼承和派生、多態(tài)的屬性。 </p><p><b> 三 創(chuàng)新要求: </b></p><p> 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能及設(shè)計(jì)出比較友好的界面等。 </p><p> 四 寫出設(shè)計(jì)說明書 程序源代碼大致有三部分,計(jì)算除掉一個最高分和一個最低分之后的平均分,計(jì)算除掉一個
9、最高分和一個最低分之后的總分,最后是排序,程序主要是實(shí)現(xiàn)了這幾個功能,說起來很容易的過程,但寫起來一點(diǎn)都不容易。</p><p> 五 實(shí)驗(yàn)題目:對參賽結(jié)果分?jǐn)?shù)進(jìn)行處理</p><p> 參賽選手n人(n>1),評委m人(m>2),評委給每一選手打一個分?jǐn)?shù)score(分?jǐn)?shù)score為小于等于10的一個正實(shí)數(shù))。選手的最后得分lastScore計(jì)算方法為</p>
10、<p> ?。?)m<9時,去掉一個最高分和一個最低分后另m-2個得分的平均值。</p><p> ?。?)m≥9時,去掉兩個最高分和兩個最低分后另m-4個得分的平均值。</p><p> 假設(shè)事先已經(jīng)建立了text型的數(shù)據(jù)文件f1.txt,其中依次記錄著n個選手的編號(一個正整數(shù))、姓名(一個字符串)以及m個評委給出的得分。</p><p>
11、 請編制程序,依次從數(shù)據(jù)文件f1.txt中讀入n個選手的有關(guān)信息,而后按上述規(guī)定方法計(jì)算出每一個選手的最后得分,而且往屏幕上以及另一個text型文件f2.txt中同時輸出如下形式的結(jié)果信息。</p><p> 假設(shè)參賽選手人數(shù)n=5,評委人數(shù)m=7,磁盤文件f1.txt中的初始數(shù)據(jù)為:</p><p> 1 zhangjin 8.8 9.3 7.9 8.7 8.9 9.7 9.2<
12、;/p><p> 2 lintao 8.9 8.2 8.6 8.8 8.5 9.1 9.3</p><p> 3 guojian 8.9 8.4 8.7 8.6 8.6 8.4 8.6</p><p> 4 maling 7.9 8.3 8.5 8.6 8.5 8.9 8.3</p><p> 5 liuyifan 9.5 9.1 9.8
13、 9.2 9.0 9.5 8.9那么,程序執(zhí)行后,屏幕顯示結(jié)果以及磁盤文件f2.txt中的結(jié)果均應(yīng)該為:---------------------------------------------------------- 參賽號 姓 名 最高分 最低分 累積分
14、0; 最后得分---------------------------------------------------------- 1 zhangjin 9.7 7.9
15、160; 44.9 8.98 2 lintao 9.3 8.2 4
16、3.9 8.78 3 guojian 8.9 8.4 42.9
17、160; 8.58 4 maling 8.9 7.9 42.2
18、160; 8.44 5 liuyifan 9.8 </p><p> 思考:可進(jìn)一步考慮找出比賽的第1至第k名,也在屏幕以及f2.txt中同時輸出相關(guān)的結(jié)果信息(k小于等于n,并規(guī)定若多個選手最后得
19、分相同時,則有效分(即已刪除原來的最高分后)中最高分高者名次優(yōu)先)。</p><p><b> 六 流程圖</b></p><p><b> 七 程序源代碼</b></p><p> #include<iostream></p><p> #include<iomanip
20、></p><p> #include<string></p><p> #include<fstream></p><p> using namespace std;</p><p> const int N = 20;</p><p> class competitor<
21、;/p><p><b> {</b></p><p><b> private:</b></p><p> int NO;//選手號碼</p><p> int judge_amount;//裁判人數(shù)</p><p> string name;//選手姓名&
22、lt;/p><p> double score[N];//選手得分</p><p><b> public:</b></p><p> competitor(string na,int no,int ju,double s[N]);//構(gòu)造函數(shù)</p><p> int get_no();</p>
23、<p> string get_name();</p><p> int get_judge_amount();</p><p> double *get_score();</p><p> void sort();//將選手得分從大到小排序</p><p> double max();//選手得分最大值<
24、/p><p> double min();//選手得分最小值</p><p> double last_score();//除去最大最小分?jǐn)?shù)后的平均分?jǐn)?shù)</p><p> double total_score();//除去最大最小分?jǐn)?shù)后的累計(jì)得分</p><p> void show_date();//顯示選手信息</p
25、><p><b> };</b></p><p> competitor::competitor(string na,int no,int ju,double s[N])//構(gòu)造函數(shù)</p><p><b> {</b></p><p> name = na;</p><p&
26、gt;<b> NO = no;</b></p><p> judge_amount = ju;</p><p> for(int i = 0;i<judge_amount;i++)</p><p> score[i] = s[i];</p><p> for(int j = judge_amount;j
27、<N;j++)</p><p> score[judge_amount] = s[judge_amount];</p><p><b> }</b></p><p> int competitor::get_no()</p><p> {return NO;}</p><p>
28、string competitor::get_name()</p><p> {return name;}</p><p> int competitor::get_judge_amount()</p><p> {return judge_amount;}</p><p> double *competitor::get_sco
29、re()</p><p> {return score;}</p><p> void competitor::sort()//將選手得分從大到小排序</p><p><b> {</b></p><p> int i,j,k,temp;</p><p> for(i = 0;i<
30、;judge_amount-1;i++)</p><p><b> {</b></p><p><b> k = i;</b></p><p> for(j = i;j<judge_amount;j++)</p><p><b> {</b></p>
31、;<p> if(score[k] < score[j])</p><p><b> k = j;</b></p><p><b> }</b></p><p> if(k != i)</p><p><b> {</b></p>&
32、lt;p> temp = score[i];</p><p> score[i] = score[k];</p><p> score[k] = temp; </p><p><b> }</b></p><p><b> }</b></p><p>&l
33、t;b> }</b></p><p> double competitor::last_score()//除去最大最小分?jǐn)?shù)后的平均分?jǐn)?shù)</p><p><b> {</b></p><p> double sum = 0;</p><p> if(judge_amount < 9)<
34、;/p><p><b> {</b></p><p> for(int i=1;i < judge_amount-1;i++)</p><p> sum+=score[i];</p><p> return sum/(judge_amount-2) ;</p><p><b>
35、 }</b></p><p> if(judge_amount>=9)</p><p><b> {</b></p><p> for(int i=2;i < judge_amount-2;i++)</p><p> sum = sum+score[i];</p><
36、p> return sum/(judge_amount-4);</p><p><b> }</b></p><p><b> }</b></p><p> double competitor::total_score()//除去最大最小分?jǐn)?shù)后的累計(jì)得分</p><p><b&g
37、t; {</b></p><p> double sum = 0;</p><p> if(judge_amount < 9)</p><p><b> {</b></p><p> for(int i=1;i < judge_amount-1;i++)</p><p
38、> sum+=score[i];</p><p> return sum;</p><p><b> }</b></p><p> if(judge_amount>=9)</p><p><b> {</b></p><p> for(int i=2;
39、i < judge_amount-2;i++)</p><p> sum+=score[i];</p><p> return sum;</p><p><b> }</b></p><p><b> }</b></p><p> double competi
40、tor::max()//選手得分最大值</p><p><b> {</b></p><p> return score[0];</p><p><b> }</b></p><p> double competitor::min()//選手得分最小值</p><p>
41、;<b> {</b></p><p> return score[judge_amount-1];</p><p><b> }</b></p><p> void competitor::show_date()//顯示參賽選手信息子程序</p><p><b> {</
42、b></p><p><b> cout<<NO;</b></p><p> cout<<setw(10)<<name;</p><p> for(int i = 0;i<judge_amount;i++)</p><p> cout<<setw(5)&
43、lt;<setprecision(2)<<score[i]<<" ";</p><p> cout<<endl;</p><p><b> }</b></p><p> void show_rerult(competitor &player)//計(jì)算并顯示參賽選手比賽
44、結(jié)果子程序</p><p><b> {</b></p><p> player.sort();</p><p> cout<<player.get_no();</p><p> cout<<setw(12)<<player.get_name();</p><
45、;p> cout<<setw(12)<<setprecision(2)<<player.max();</p><p> cout<<setw(12)<<setprecision(2)<<player.min();</p><p> cout<<setw(14)<<setprecisi
46、on(2)<<player.total_score();</p><p> cout<<setw(13)<<setprecision(2)<<player.last_score()<<endl;</p><p><b> }</b></p><p> ofstream &
47、 operator<<(ofstream & base,competitor & a)//運(yùn)算符重載,向指定文件輸入選手的資料 </p><p><b> { </b></p><p> base<<a.get_no()<<" "<<a.get_name()<<&q
48、uot; "; </p><p> for(int i=0;i<a.get_judge_amount();i++) </p><p> base<<" "<<a.get_score()[i]; </p><p> base<<endl; </p><p>
49、 return base; </p><p><b> }</b></p><p> void out_to_file(competitor a)//將比賽結(jié)果保存到文件d:\\competitor result.txt中</p><p><b> {</b></p><p> ofstre
50、am outfile1;</p><p> outfile1.open("d:\\competitor result.txt",ios::app);</p><p> outfile1<<" "<<a.get_no()<<" "<<setw(-5)<<
51、a.get_name()<<" "<<a.max()<<" "<<a.min(); </p><p> outfile1<<" "<<a.total_score()<<" "<<
52、;a.last_score()<<endl; </p><p> outfile1.close();//關(guān)閉文件 </p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p> do
53、uble t1[20]={8.8,9.3,7.9,8.7,8.9,9.7,9.2};//選手1得分 </p><p> double t2[20]={8.9,8.2,8.6,8.8,8.5,9.1,9.3};//選手2得分 </p><p> double t3[20]={8.9,8.4,8.7,8.6,8.6,8.4,8.6};//選手3得分 </p><p>
54、; double t4[20]={7.9,8.3,8.5,8.6,8.5,8.9,8.3};//選手4得分 </p><p> double t5[20]={9.5,9.1,9.8,9.2,9.0,9.5,8.9};//選手5得分 </p><p> competitor player1("zhangjin",1,7,t1);//調(diào)用player1構(gòu)造函數(shù) <
55、;/p><p> competitor player2("lintao",2,7,t2);//調(diào)用player2構(gòu)造函數(shù) </p><p> competitor player3("guojian",3,7,t3);//調(diào)用player3構(gòu)造函數(shù) </p><p> competitor player4("mali
56、ng",4,7,t4);//調(diào)用player4構(gòu)造函數(shù) </p><p> competitor player5("liuyifan",5,7,t5);//調(diào)用player5構(gòu)造函數(shù) </p><p> player1.show_date();//顯示選手1比賽信息</p><p> player2.show_date();//顯
57、示選手2比賽信息</p><p> player3.show_date();//顯示選手3比賽信息</p><p> player4.show_date();//顯示選手4比賽信息</p><p> player5.show_date();//顯示選手5比賽信息</p><p> cout<<"NO"&
58、lt;<setw(10)<<"Name"<<setw(16)<<"Max score"<<setw(13)<<"Min score";//向顯示屏輸出</p><p> cout<<setw(15)<<"Total score"<<
59、setw(12)<<"Last score"<<endl;</p><p> show_rerult(player1);//顯示選手1比賽結(jié)果</p><p> show_rerult(player2);//顯示選手2比賽結(jié)果</p><p> show_rerult(player3);//顯示選手3比賽結(jié)果<
60、/p><p> show_rerult(player5);//顯示選手5比賽結(jié)果</p><p> show_rerult(player4);//顯示選手4比賽結(jié)果</p><p> ofstream outfile1("d:\\competitor data.txt");//保存到D盤competitor data.txt</p>
61、<p> outfile1<<player1<<player2<<player3<<player4<<player5;//將選手player1到player5的數(shù)據(jù)保存到文件competitor data.txt中</p><p> outfile1.close();//關(guān)閉文件 </p><p> ofstr
62、eam outfile2;</p><p> outfile2.open("d:\\competitor result.txt",ios::app);</p><p> outfile2<<" "<<"NO"<<setw(10)<<"Name"<&l
63、t;setw(15)<<"Max score"<<setw(12)<<"Min score";//向顯示屏輸出</p><p> outfile2<<setw(14)<<"Total score"<<setw(13)<<"Last score"<
64、;<endl;</p><p> out_to_file(player1);//將player1比賽結(jié)果保存到文件d:\\competitor result.txt</p><p> out_to_file(player2);//將player2比賽結(jié)果保存到文件d:\\competitor result.txt</p><p> out_to_file
65、(player3);//將player3比賽結(jié)果保存到文件d:\\competitor result.txt</p><p> out_to_file(player4);//將player4比賽結(jié)果保存到文件d:\\competitor result.txt</p><p> out_to_file(player5);//將player5比賽結(jié)果保存到文件d:\\competitor
66、result.txt</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> 八 運(yùn)行結(jié)果</b></p><p> 程序所創(chuàng)建的兩個文件competitor data.txt和competitor resu
67、lt.txt:</p><p> 文件competitor data.txt內(nèi)容</p><p> 文件competitor result.txt內(nèi)容</p><p><b> 九 問題分析</b></p><p><b> 1.課題內(nèi)容 </b></p><p>
68、 本課題對參賽選手分?jǐn)?shù)進(jìn)行處理,就像我們平時比賽中評分一樣,去掉最高分和最低分,剩下的分?jǐn)?shù)的和的平均分就是最后的分。</p><p> 在程序設(shè)計(jì)過程中比較繁雜,有很多變量和函數(shù),很容易出錯。所以在寫的過程中要特別細(xì)心。</p><p><b> 2.功能結(jié)構(gòu)</b></p><p> 有對數(shù)據(jù)的輸入,輸入之后要進(jìn)行計(jì)算,計(jì)算過程中涉及很
69、多的方法和函數(shù),例如重載,析構(gòu)函數(shù),構(gòu)造函數(shù)等等。</p><p><b> 十 結(jié)構(gòu)分析 </b></p><p> 程序源代碼大致有三部分,計(jì)算除掉一個最高分和一個最低分之后的平均分,計(jì)算除掉一個最高分和一個最低分之后的總分,最后是排序,程序主要是實(shí)現(xiàn)了這幾個功能,說起來很容易的過程,但寫起來一點(diǎn)都不容易。</p><p><b&
70、gt; 十一 個性功能介紹</b></p><p> 1.本程序?qū)崿F(xiàn)了題目的要求:對選手是比賽分?jǐn)?shù)進(jìn)行了,求最大值,最小值,累計(jì)得分,最后得分,選手名次排序。</p><p> 2.在本程序中運(yùn)行后,用戶可以手動根據(jù)提示輸入,參賽選手的信息和評委的給分,系統(tǒng)會自動處理信息,并把處理結(jié)果保存到文件和向屏幕輸出。</p><p> 十二 課程設(shè)計(jì)的目
71、的與要求</p><p><b> 1教學(xué)目的</b></p><p> 在《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程教學(xué)的基礎(chǔ)上,根據(jù)軟件工程的方法與流程,在相對集中的實(shí)訓(xùn)教學(xué)時間內(nèi),通過一個功能較完整的小型應(yīng)用系統(tǒng)的設(shè)計(jì)與開發(fā),深入復(fù)習(xí)并進(jìn)一步掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)思想與方法。同時,作為整個實(shí)踐教學(xué)體系一部分,系統(tǒng)培養(yǎng)學(xué)生采用面向?qū)ο蟮姆椒ǚ治鰡栴}與解決問題的能力及團(tuán)體組織與協(xié)
72、作能。</p><p><b> 2教學(xué)要求</b></p><p> 從課程設(shè)計(jì)的目的出發(fā),通過設(shè)計(jì)工作的各個環(huán)節(jié),達(dá)到以下教學(xué)要求:</p><p> 1)根據(jù)實(shí)現(xiàn)的功能,劃分出合理的對象類,明確對象類間的關(guān)系。</p><p> 2) 為每個對象類設(shè)計(jì)正確的域和方法,為每個方法設(shè)計(jì)合理的方法體。同時,為對象
73、類及內(nèi)部的域和方法運(yùn)用正確的修飾符,如訪問控制符等。</p><p> 3)編程簡練,程序功能齊全,能正確運(yùn)行。</p><p> 4)說明書、流程圖要清楚,規(guī)范</p><p> 5)課題完成后必須按要求提交課程設(shè)計(jì)報告,格式規(guī)范,內(nèi)容詳實(shí)。</p><p><b> 十三 課程設(shè)計(jì)小結(jié)</b></p&g
74、t;<p> 1.在課程設(shè)計(jì)過程中,問題百出,這主要是自己對這門課程的掌握的不夠熟練,C++中新增了很多新詞和語法,由于理解不夠,所以在做的過程中常常會遇到很多問題,并且不能及時得到解答,在寫代碼中我才意識到自己對這門課程的掌握有多少,例如,剛開始,缺省我基本都不會用,還有析構(gòu)函數(shù)、構(gòu)造函數(shù)拷貝構(gòu)造函數(shù)都搞不清楚,這是我在課程設(shè)計(jì)中遇到的問題,所以我覺得如果要想學(xué)好這門課,還需要繼續(xù)努力。</p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)---參賽選手管理系統(tǒng)
- c++課程設(shè)計(jì)--分?jǐn)?shù)計(jì)算器
- c++課程設(shè)計(jì)---分?jǐn)?shù)計(jì)算器
- c++課程設(shè)計(jì)---分?jǐn)?shù)計(jì)算器
- c++課程設(shè)計(jì)報告-簡易圖像處理
- c++課程設(shè)計(jì)報告--字符串處理
- c++課程設(shè)計(jì)報告
- c++課程設(shè)計(jì)ppt
- c++課程設(shè)計(jì)--c++程序設(shè)計(jì)語言
- c++課程設(shè)計(jì)-- c++面向?qū)ο蟪绦蛟O(shè)計(jì)
- c++課程設(shè)計(jì)——簡單圖形的處理系統(tǒng)
- 串口通信c++課程設(shè)計(jì)
- c++掃雷課程設(shè)計(jì)報告
- 中南大學(xué)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-教學(xué)游戲
- c++課程設(shè)計(jì)——乘積最大
- c++課程設(shè)計(jì)——矩陣類
- c++課程設(shè)計(jì)---商場管理
- c++課程設(shè)計(jì)(文章編輯)
- c++面向?qū)ο笳n程設(shè)計(jì)報告
評論
0/150
提交評論