C程序設(shè)計(jì)實(shí)踐報(bào)告_第1頁
C程序設(shè)計(jì)實(shí)踐報(bào)告_第2頁
C程序設(shè)計(jì)實(shí)踐報(bào)告_第3頁
C程序設(shè)計(jì)實(shí)踐報(bào)告_第4頁
C程序設(shè)計(jì)實(shí)踐報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、中南大學(xué)C+ 課程設(shè)計(jì)設(shè)計(jì)報(bào)告學(xué)生姓名學(xué)號專業(yè)班級指導(dǎo)老師*院2011 年 6 月1、實(shí)驗(yàn)?zāi)康?、?nèi)容 32、題目一 : 比賽求平均分2.1 程序內(nèi)容32.2 實(shí)驗(yàn)程序設(shè)計(jì)及結(jié)構(gòu) 32.3 設(shè)計(jì)過程32.4 運(yùn)行結(jié)果43、題目二 : 火柴游戲3.1 程序內(nèi)容53.2 實(shí)驗(yàn)程序設(shè)計(jì)53.3 設(shè)計(jì)過程53.4 運(yùn)行結(jié)果64、題目三 : 足球比分4.1 設(shè)計(jì)內(nèi)容64.2 設(shè)計(jì)方案75、設(shè)計(jì)的特點(diǎn)與心得 7 參考文獻(xiàn)7附錄題目一實(shí)驗(yàn)源代碼 8 題目二實(shí)驗(yàn)源代碼 10 題目三實(shí)驗(yàn)源代碼 1221、實(shí)驗(yàn)?zāi)康?、?nèi)容通過課程設(shè)計(jì) ,能夠熟練運(yùn)用 C+ 進(jìn)行面向?qū)ο缶幊?,建立對象模型 ,降低軟件的復(fù)雜性 , 改

2、善軟件的重用性和維護(hù)性 ,提高軟件的生產(chǎn)效率 ,全面掌握面向?qū)ο缶幊碳夹g(shù) .要求學(xué)生在指導(dǎo)老師的指導(dǎo)下,獨(dú)立完成實(shí)習(xí)課題的全部內(nèi)容,包括 :(1) 通過調(diào)查研究和上機(jī)實(shí)習(xí) ,收集和調(diào)查有關(guān)技術(shù)資料 ;(2) 掌握設(shè)計(jì)課題的基本步驟和方法;(3) 根據(jù)課題的要求進(jìn)行上機(jī)實(shí)驗(yàn)調(diào)試.2、題目一 : 比賽求平均分2.1 程序內(nèi)容在體育、文藝比賽及選舉等打分類項(xiàng)目中,為了公平起見,往往n 個(gè)評委打出分?jǐn)?shù)后,要去掉一個(gè)最高分和一個(gè)最低分,然后求取平均得分。當(dāng)n 較大時(shí)(本題設(shè)為9),則應(yīng)取掉兩個(gè)最高分和兩個(gè)最低分,然后求取平均分。編程實(shí)現(xiàn)該算法。2.2 實(shí)驗(yàn)程序設(shè)計(jì)及結(jié)構(gòu)(1)需求分析 :輸入 9 個(gè)評委

3、所打分?jǐn)?shù),程序運(yùn)行最后結(jié)果為去掉最高分和最低分后的平均分.(2)設(shè)計(jì)結(jié)構(gòu) :總體結(jié)構(gòu)3數(shù)據(jù)結(jié)構(gòu)從 a0 到 a9 依次為 9 位評委的打分 .2.3 設(shè)計(jì)過程(1) 建立 iostream/ofstream/fstream 、輸入、輸出、輸入輸出流對象,建立 ifndef,define 預(yù)編命令, STRUCT數(shù)據(jù) .(2) 根據(jù)流程圖 , 建立 main 函數(shù) , 并運(yùn)用 for 循環(huán) .(3) 運(yùn)行 main 函數(shù)進(jìn)行調(diào)試 .2.4 運(yùn)行結(jié)果43、題目二 : 火柴游戲3.1 程序內(nèi)容 :23 根火柴游戲 : 兩個(gè)游戲者開始擁有 23 根火柴 (或小棒 )。每個(gè)游戲者輪流移走根、根或根火柴,

4、 拿到最后一根火柴的就算輸了。 編一程序與計(jì)算機(jī)玩這個(gè)游戲。3.2 實(shí)驗(yàn)程序設(shè)計(jì)(1)需求分析 :運(yùn)行程序能使人與計(jì)算機(jī)進(jìn)行23 根火柴游戲。(2)設(shè)計(jì)思路 :使計(jì)算機(jī)能最先使火柴變成4 或 4 以下計(jì)算機(jī)就能贏了。3.3 設(shè)計(jì)過程(1) 建立 iostream/ofstream/fstream 、輸入、輸出、輸入輸出流對象,建立 ifndef,define 預(yù)編命令, STRUCT數(shù)據(jù) .( 2)根據(jù)設(shè)計(jì)思路運(yùn)用 if 判斷語句設(shè)計(jì)( 3)建立 main 函數(shù)( 4)運(yùn)行 main 函數(shù)調(diào)試53.4 運(yùn)行結(jié)果4、題目三 : 足球比分4.1 設(shè)計(jì)內(nèi)容:問題描述足球聯(lián)賽采用主客場雙循環(huán)賽制,勝一

5、場得3 分,平局各得1 分,負(fù)一場得0 分,聯(lián)賽排名以積分多者在前,當(dāng)兩隊(duì)(或多隊(duì))積分相同時(shí),則凈勝球(即進(jìn)球數(shù)與失球數(shù)之差)多者在前,若凈勝球相同,則進(jìn)球數(shù)多者在前,若仍相同,則抽簽或踢附加賽決定名次(這在聯(lián)6賽結(jié)束后進(jìn)行,聯(lián)賽未結(jié)束則兩隊(duì)名次并列,本程序不做這方面要求)。試編一程序統(tǒng)計(jì)最近一輪比賽后,各隊(duì)積分及排名?;疽笤O(shè)積分表結(jié)構(gòu)如下:隊(duì)名(不超過 15 個(gè)字符),已比賽的場數(shù),贏的場數(shù),平的場數(shù),負(fù)的場數(shù),進(jìn)球數(shù),失球數(shù),積分。積分表放在正文文件中。最近一輪的結(jié)果從鍵盤輸入,其形式為:主隊(duì)名(可用代碼) ,客隊(duì)名(可用代碼) ,主隊(duì)得分(即進(jìn)球數(shù)) ,客隊(duì)得分(即進(jìn)球數(shù))。程序應(yīng)

6、根據(jù)此輪結(jié)果修改各隊(duì)的積分和名次,所得的最新記分表仍在原積分文件中并同時(shí)在屏幕上顯示。測試數(shù)據(jù)可選擇我國當(dāng)年的甲A 或甲 B 聯(lián)賽的數(shù)據(jù)輸入,并檢查與報(bào)章公布的數(shù)據(jù)是否一致。4.2 設(shè)計(jì)方案:定義一個(gè)球隊(duì)類和對象數(shù)組,每個(gè)球隊(duì)均是球隊(duì)類的對象。由于聯(lián)賽中參賽隊(duì)伍數(shù)目是固定的, 因此將每個(gè)球隊(duì)存放在對象數(shù)組的一個(gè)數(shù)組元素中。每輸入兩個(gè)隊(duì)的比賽成績,則相應(yīng)的隊(duì)的有關(guān)數(shù)據(jù)(比賽場數(shù),贏得場數(shù),進(jìn)球數(shù)等等)即可進(jìn)行修改,比賽成績錄入完成,調(diào)用聯(lián)賽排序方法(對象數(shù)組作為參數(shù),積分為排序元素)排出名次并輸出。5、設(shè)計(jì)的特點(diǎn)與心得:經(jīng)過一個(gè)學(xué)期的學(xué)習(xí)和上機(jī)實(shí)踐,使我對C+語言有了更認(rèn)識和和了解,要想學(xué)好它要

7、重在實(shí)踐,要通過不斷的上機(jī)操作才能更好的學(xué)習(xí)它,通過實(shí)踐, 我也發(fā)現(xiàn)我的好多不足之處,對各種控制結(jié)構(gòu)及語句、數(shù)組的基本與高級應(yīng)用、指針數(shù)組、字符數(shù)組、動態(tài)數(shù)組、函數(shù)的定義、調(diào)用方式;函數(shù)在編程中的具體應(yīng)用;以及變量存儲特征與標(biāo)識符的作用域,通過實(shí)踐,使我在這些方面有了認(rèn)識和提高。課程設(shè)計(jì)它是一項(xiàng)任務(wù),更是一種挑戰(zhàn)和歷練。在課程設(shè)計(jì)中,為了使用時(shí)方便,著重對不足方面的知識進(jìn)行了分析與理解, 在這一過程中對文件的操作有了很大的提高。通過實(shí)際的演練,可以增強(qiáng)對知識的理解和運(yùn)用能力。參考文獻(xiàn)1 、楊長興、劉衛(wèi)國,C+ 程序設(shè)計(jì),中國鐵道出版社, 2008 年7附錄題目一實(shí)驗(yàn)源代碼:#include#i

8、ncludevoid main()int a9,i,j,temp,b=0,s;cout 請打分 :endl;for(i=0;iai;for(i=0;i9;i+)for(j=i;j9;j+)if(ai=aj)temp=ai;ai=aj;aj=temp;for(i=2;i7;i+)8b=b+ai;s=b/5;cout 最后成績?yōu)椋?s;9題目二實(shí)驗(yàn)源代碼:#include #include #include int getMin(int a,int b)return a= 2)printf(2. 兩根火柴);if(count = 3)printf(3. 三根火柴 );printf(n);while

9、(true)std:cin input;if(input = 1|(input = 2&count = 2)|(input = 3&count = 3)break;elseprintf( 請正確輸入序號n);count -= input;if(count = 0)printf( 游戲結(jié)束,玩家輸?shù)袅擞螒騨);break;if(count%4 = 1)10computerInput = rand()%(getMin(count,3)+1;elsecomputerInput = (count%4 = 0)?3:count%4-1;printf( 電腦拿走了 %d 根火柴 n,computerInp

10、ut);count -= computerInput;if(count = 0)printf( 游戲結(jié)束,電腦輸?shù)袅擞螒騨);break;system(pause);11題目三實(shí)驗(yàn)源代碼:/ 程序需要先在d 盤建立 2 個(gè)文本文檔teams.txt, teamlist.txt ,以保存球隊(duì)信息和比分信息/#include #include #include using namespace std;class Teamprivate:int goal;int cgoal;int pgoal;int win;int lost;int equal;int scorce;public:char nam

11、e20;Team()goal=0;cgoal=0;pgoal=0;win=0;lost=0;equal=0;scorce=0;void Display()coutname goal cgoal pgoal win lost equal scorce0)this-goal+=a;12if(acgoal-=a;pgoal=goal-cgoal;void Team:matchchg(int a,int b)if(ab)this-win+=1;this-scorce+=3;if(alost+=1;if(a=b)this-equal+=1;this-scorce+=1;void Team:match(T

12、eam &t)int a,b;couta;if(a0)coutwarningendl;exit(1);coutb;if(b0)coutwarninggoalchg(a);this-goalchg(0-b);t.goalchg(b);t.goalchg(0-a);this-matchchg(a,b);t.matchchg(b,a);void Team:setIm()coutthis-name;13int Team:getS()return this-scorce;int Team:getPG()return this-pgoal;void getteamlist();fstream team(d

13、:teams.txt,ios:in|ios:out|ios:binary);void main()char name20;Team t5;int t1,t2;char n;int i;if(!team)coutlost fileendl;exit(1);while(1)coutdo you have set the team IM?(Y)n;if(n=Y|n=y)break;for(int i=0;i=4;i+)ti.setIm();team.write(char*)&ti,sizeof(ti);break;team.seekg(0,ios:beg);for(i=0;i5;i+)team.re

14、ad(char*)&ti,sizeof(ti);while(1)coutis any match now?(N)n;if(n=N|n=n)break;14docoutname;for(i=0;i5;i+)if(strcmp(name,)=0)t1=i;break;elsecontinue;while(i=5);docoutname;for(i=0;i5;i+)if(strcmp(name,)=0)t2=i;break;elsecontinue;while(i=5);tt1.match(tt2);team.seekg(0,ios:beg);for(i=0;i5;i+)team.write(char*)&ti,sizeof(ti);getteamlist();void getteamlist()Team t15;Team hao;fstream gamelist(d:teamlist.txt,ios:in|ios:out|ios:binary);15if(!gamelist)coutwrong!endl;exit(1);team.seekg(0,ios:beg);for(int i=0;i5;i+)team.read(char*)&t1i,sizeof(t1i);for(int j=0;j4;j+)for(int i=0;i4-j;i+

溫馨提示

  • 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. 人人文庫網(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論