C++課程設計文檔_第1頁
C++課程設計文檔_第2頁
C++課程設計文檔_第3頁
C++課程設計文檔_第4頁
C++課程設計文檔_第5頁
免費預覽已結束,剩余9頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1/ 131 項目介紹1.1項目簡介(1)項目名稱足球排名系統1.2項目背景與可行性分析在VC+6.0的環境中運用C+與C的知識以及足球知識,根據需求編 寫程序。1.3術語與縮寫解釋全文術語與縮寫解釋如表1.1所示:表1.1術語與縮寫解釋縮寫、術語解釋Ra nd()取隨機數Sran d()避免每次取到相同的隨機數Getnu mberOfcoat()獲取隊員球衣號Getservi ngOfage()獲取隊員效力時間Score比賽得分sBalls凈進球數Array()三個數比較大小,并排序,用于小組賽的調用friend int competiti on()Team類的友兀函數,用于實現兩隊之間的比

2、賽Int bifen()用于兩球隊比賽時,隨機出比分2/ 132需求分析2.1系統面向的用戶群體該系統主要面向于熱愛足球的群體。2.2系統應當遵循的標準或規范應當按照C+的規范模式編寫,2.3系統功能性需求2.3.1功能需求1創建各個類,女口:構造基本屬性的類person,由其派生出來的player、coach類,還有由player、coach組成的team類,由team構成的小組group,最后是 進行比賽的worldcup類2.3.2功能需求2類的創建知識實現該功能的一部分,為了實現該項目,還應當在各個類中添加相應的函數, 比如:為了得到隨機比分就應當創建一個函數來獲取隨機數。3/ 133

3、系統設計3.1總體設計以程序運行成功為目的進行設計。對于模擬世界杯模式, 首先想到的是要有完整的體系, 也就是說要有構成 這個體系的基本元素, 要有球隊這是最基本的。 具有球隊之后就要像實際一樣 進行分組, 之后小組賽, 四分之一, 半決賽, 決賽, 一項一項有條不紊的進行。 (在實際中有32支球隊,小組賽結束之后,留下16強進行八分之一決賽)3.2模塊命名規則類:Person,Player,Coach,Team,Group,Worldcup變量:Person類:Name姓名 ,Motherland國籍 ,Birthday出生日期 ,Sex性別 ,Age年齡Player類:ServingOfa

4、ge效力時間 ,Position隊員在場上的位置 ,NumberOfCoat球衣號 ,Shooting該隊員的進球數Coach類:ServingOfage效力時間Team類:Tname球隊名 ,Score比賽得分 ,SBalls凈進球數 ,Goals總進球數Group類:Groupname小組名稱 ,Teams組成該小組的隊名 ,NumOfTeam球隊數Worldcup類:Name名稱,Pteams存放隊名的數組,Pgroups組名 ,Nteams隊的數量 ,Ngroups組的數量Main函數:SW失球數 ,ZW總進球數 ,JW凈進球數 ,tw存 放各球隊的積分3.3模塊關系4/ 13該關系圖

5、說明各個之間的PersonCoachPlayerTeam1rGroup1FWorldcup5/ 133.4詳細模塊設計要想模擬實現世界杯比賽系統, 首先應當想到的是有球隊,那么要構成這些 球隊,先構造他們的基本屬性:Person類、Coach類、Player類。基本屬性完 成之后就要根據下圖與模塊關系圖來進一步實現。6/ 134系統實現1)用于獲取兩隊的比賽得分,利用int bifen()int z;Sleep(600); srand(time(NULL); z=rand()%5; return z;Sran d()函數2) 實現分組for(int y=0;y12;y+)x=suiji(x);

6、 if(y%3=0)coutMatch();cout ; if(y%3=2)coutendl;定義兩個Team類型的數組, 于空著,用于賦值。第y/3+1小組成員一個用于存放12支球隊的名稱,一個用7/ 135項目總結5.1項目特色C+與C相結合,面向對象的方式程序環環相扣,層層遞進主要工作編寫組成實現項目的各個類及測試函數Main()函數編寫這段程序思路很重要系統展望在模擬世界杯比賽的基礎上, 還可以將原有的12支球隊拓展為32支球隊, 結合運用這個模擬系統,增加八分之一決賽,來實現真正的世界杯 。除了模擬世界杯之外,還可以模擬籃球賽、冰球、羽毛球等等。在模擬其 他比賽時,首要是了解這些這些

7、比賽的規則。以籃球為例:每支隊的人員相對 足球有所減少,比賽的比分相對足球增大。8/ 136 附錄編程日志程序名稱足球賽排名系統功能描述分組以及部分類的編寫開發者起止日期2011-7-41.如何來進行分組:利用循環結合team類和group類,還得利用srand()函數。加入計數變量。給12隊手動賦值,也就是將法國德國 英格蘭 美國 巴西 阿根廷 意大利丹麥荷蘭葡萄牙西班牙南非這些隊名寫入后再起別名,(此處可以利用循環)再定義一個數組。從而實現分組。person類中首先想到的是應該分國籍(只分國籍就好)。然后編寫構造函數,以及一個輸出函數,我覺得對于一個基類而言足以。由基類派生出的coach和

8、player,這兩個類在person的基礎上把各自的職位附上去。team類中包含1個教練和1個隊員,由此類推到group類,group類中含有12個team并含 有分組的內容。程序名稱足球賽排名系統功能描述對于各個類內容的編寫開發者起止日期2011-7-51.今天的主要任務是對昨天編寫的Person類的修改和補充。Person類中補充了更多的個人信息。對于Birthday可以定義為char型,也可以重新定義一個Date類,但過于繁瑣,所以定義為char型。再定義一個私有成員age,用于在getage()函數中獲取age。Player類是由person類派生出來的。 在player類中定義boo

9、l型的一個變量用于判斷該隊員是否為隊長。(bool類型可以等于bool類型)Goal類主要用于進球方面。該類含有內嵌對象,為player類的內嵌對象,它的構造函數要接收賦給Gplayer成員的player類的對象。(就是一個內嵌對象為goal類和player類建立了千絲萬縷的關系,用于輸出進球人的各項信息)。編寫team類不僅要用到內嵌對象,還要使用靜態數據成員。作為一個隊應當包含有教練Coach和隊員Player,所以內嵌對象主要是來完善team類。使用靜態數據成員,來對該隊的總進球數進行統計。從而為系統篩選進入八強的隊伍。在group類中將進行重頭戲,對這12支球隊進行分組。9/ 13程序

10、名稱足球賽排名系統功能描述類的編寫開發者起止日期2011-7-6今天依舊是在編寫與修改中完成一個個類。修改了Person這個基類,給它新增加了幾個get函數,使得它的派生類中可以將私有成員直接繼承過來。在team類中的int versus(team &t)函數通過利用*this指針來實現兩隊的比賽,以及srand()函數隨機輸出兩支球隊的比賽進球數。通過自增自減來實現對總進球數,和凈進球數的計數(也考慮過采用靜態數據成員與靜態成員函數進行計數,但是覺得這樣也可以所以就未采用)。其實之前的的認識都是錯誤的,并不是在group類中實現對12支球隊的分組,而是在worldcup中實現的。各個

11、類的雛形已完成,其成員函數大多已編寫完成。程序名稱足球排名系統功能描述類的編寫開發者起止日期2011-7-7-Numbered_06809a46-35ed-4d96-b9f6-dd8cd4e491e7-Numbered_f7e3123a-8a28-468c-b572-3156ed9e8b86-Numbered今天依舊是在對編寫的各個類不斷的完善、修改。在Team類里加入友元函數friend intcompetition(team &a,team &b)(因為會用到Team類的私有成員),該友兀函數的主要功能是實現兩只隊伍的比賽。這個函數的作用很大,為以后的小組賽,八分之一決賽,

12、四分之一決賽,半決賽,決賽做鋪墊。-Numbered_06809a46-35ed-4d96-b9f6-dd8cd4e491e7-Numbered_f7e3123a-8a28-468c-b572-3156ed9e8b86-Numbered 還是未將分組的程序想出來,依舊在緩慢的編寫,修改程序。參考網上的一段分組 程序對其進行修改,來實現分組。通過老師的講解明白了group類的成員函數int addTeam(team &t)的作用(對它的定義仍是任重而道遠)。group類中實現3支球隊的比賽,也就是實現小組賽,可以調用team類中的competition()函數。程序名稱足球排名系統功能描述類、主函數的編寫開發者起止日期2011-7-1110/ 13今天主要是對group、team、worldcup類的補充和修改。存在的冋題仍然比較大。就比如說,在小組賽時,每支球隊比兩場,對于冋一支球隊它的score、sballs、totalballs該如何記錄,這是個比較大的問題。在worldcup里,分組函數的編與是參照網上流傳甚廣的一段程序編與的。個人認為addt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論