C++課程設計報告模板_第1頁
C++課程設計報告模板_第2頁
C++課程設計報告模板_第3頁
C++課程設計報告模板_第4頁
C++課程設計報告模板_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 成績 課程名稱:c+ 課程設計設計題目: 足球聯賽積分 姓 名:賈坤學 號:1208020229專業班級:網絡 1202 班完成日期:2013年7 月 4日1 設計任務1.1 設計目的c+面向對象程序設計是計算機專業中一門重要的專業課。這次課程設計的目的是以程序設計語言為基礎,通過完成一些程序設計,運用所學理論知識掌握面向對象程序設計的基本方法和編程技巧,鞏固所學理論知識,使理論與實際相結合。從而提高自我分析問題、解決問題的能力。通過課程設計,我們應該得到了一些有利鍛煉:進一步加深我們對所學知識的理解、分析以及運用的靈活性。全面提高我們的綜合能力,解決問題的能力。2.理論與實際相互交涉,既檢

2、驗了對理論的掌握又檢驗了理論與實際相結合使用的能力。這不僅可以使我們充分理解理論,還可以提高我們的思考能力。3.掌握類與對象的知識,熟練使用數組。4.掌握面向對象程序的設計方法。5.進一步掌握編寫、調試、運行各種能力的綜合運用。1.2設計內容足球聯賽采用主客場雙循環賽制,勝一場得3分,平局各得1分,負一場得0分,聯賽排名以積分多者在前,當兩隊(或多隊)積分相同時,則凈勝球(即進球數與失球數之差)多者在前,若凈勝球相同,則進球數多者在前,若仍相同,則抽簽或踢附加賽決定名次(這在聯賽結束后進行,聯賽未結束則兩隊名次并列,本程序不做這方面要求)。試編寫一個足球聯賽積分排名程序,程序統計最近一輪比賽后

3、,各隊積分及排名。2 設計過程2.1 程序功能每輸入兩個隊的比賽成績,則相應的隊的有關數據(比賽場數,贏的場數,平的場數,負的場數,進球數,失球數,積分等)即可進行修改,比賽成績錄入完成,調用聯賽排序方法(對象數組作為參數)排出名次并輸出。2.2算法原理1問題分析:為了實現足球聯賽積分,首先要定義一個球隊類和對象數組,每個球隊均是球隊類的對象。由于聯賽中參賽的隊伍數是固定的,因此將每個球隊存放在對象數組的一個數組元素中。每輸入兩個對的比賽成績,則相應的隊的有關數據(補賽場數,贏的場數,平的場數,負的場數,進球數,失球數,積分等),即可進行修改,比賽成績錄入完成,調用聯賽排序方法(對象數組作為參

4、數,積分為排列元素)排除名次并輸出。2結構分析:在team球隊類中,設置一個外部接口,對比賽的進球數,失球數,凈勝球數,贏球、輸球、平局,積分先進行初始化為0。存放類的相應函數,在類外再分別實現相應的函數。其中goaling類是實現比賽隊伍本身的進球、失球、凈勝球的信息;而在類matching中,實現的是兩個不同的比賽隊伍之間的比賽成績。通過a與b的大小來對win、score,lost和equal進行相應的運算。這兩個類均使用了this指針來保存這些值。match類中用戶輸入主隊和客隊的名字并調用goaling、matching函數。setname、gets、getpg函數是返回隊伍的名字、積

5、分和凈勝球數,getteamlist的作用是文件以二進制的方法儲存在d盤,并可讀和寫。3. 實現流程分析:創建一個team球隊類,該類中具有進球數、失球數、凈勝球數、贏球、輸球、平局和積分的數據成員。在該類中定義成員函數實現相關信息的輸出,函數的原型聲明放在類的定義中,用構造函數初始化每個成員,顯示信息函數要求將對象中的完整信息打印出來。2.3程序流程圖main()display()goaling()matching()match()setname()gets()getpg()2.4 程序主要模塊或者函數class teamprivate: int goal; int cgoal; int p

6、goal; int win; int lost; int equal; int scorce; public: char name20; 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; if(acgoal-=a; pgoal=goal-cgoal;void team:matching(int a,int b) if(ab) this-win+=1; th

7、is-scorce+=3; if(alost+=1; if(a=b) this-equal+=1; this-scorce+=1; void team:match(team &t) int a,b; couta; if(a0) coutwarningendl; exit(1); coutb; if(b0) coutwarninggoaling(a); this-goaling(0-b); t.goaling(b); t.goaling(0-a); this-matching(a,b); t.matching(b,a);void team:setname() coutthis-name;int

8、team:gets() return this-scorce;int team:getpg() return this-pgoal;void getteamlist();fstream team(d:teams.txt,ios:in|ios:out|ios:binary);int 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 name?(y)n; if(n=y|n=y) break;

9、 for(int i=0;i=4;i+) ti.setname(); team.write(char*)&ti,sizeof(ti); break; team.seekg(0,ios:beg); for(i=0;i5;i+) team.read(char*)&ti,sizeof(ti); while(1) coutis any match now?(n)n; if(n=n|n=n) break; do coutname; for(i=0;i5;i+) if(strcmp(name,)=0) t1=i; break; else continue; while(i=5); do co

10、utname; for(i=0;i5;i+) if(strcmp(name,)=0) t2=i; break; else continue; while(i=5); tt1.match(tt2); team.seekg(0,ios:beg); for(i=0;i5;i+) team.write(char*)&ti,sizeof(ti); getteamlist(); return 0;void getteamlist() team t15; team hao;fstream gamelist(d:teamlist.txt,ios:in|ios:out|ios:binary); i

11、f(!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+) if(t1i.gets()t1i+1.gets() hao=t1i; t1i=t1i+1; t1i+1=hao; if(t1i.gets()=t1i+1.gets() if(t1i.getpg()t1i+1.getpg() hao=t1i; t1i=t1i+1; t1i+1=hao; cou

12、t球隊 進球數 失球數 凈勝球勝 負 平 積分 endl; for(i=0;i5;i+) gamelist.write(char*)&t1i,sizeof(t1i); t1i.display(); gamelist.close(); 3軟件運行或者測試結果(1)程序運行前沒有建teams.txt和taemlist.txt這兩個文本文檔(2)程序運行錢建了team.txt和teamlist.txt這兩個文本文檔(3)輸入y后的結果(4)輸入n時的結果,程序無限循環下去(5)在3之后,輸入n 之后的結果(6)在()之后的輸入非y后的結果(7)輸入n后的結果(8)在(6)后輸入非n的結果(9)在(8

13、)輸入n的結果(10)在(9)后輸入非n的結果4 軟件設計過程中遇到的問題以及解決辦法當自己寫一個類的時候,有些功能只依賴于類的public接口函數。當需要用函數封裝該功能時,是寫成成員函數、友元函數還是普通函數? 解決方法: 查閱c+課本,使用普通函數。這樣增強了類的封裝性,實現新功能也更靈活。相關功能的普通函數還可以聲明到一個namespace中作進一步打包封裝。用namespace可以在很多文件中實現向同一個namespace添加功能函數,擴展靈活,編譯依存度更低,使用起來語意像類的靜態成員函數一樣清晰。有百利而無一害。為什么將自定義代碼放在std命名空間里會出錯? 問題原因:因為std

14、的所有成員,都能且只能由c+標準委員會指定。5 總結經歷這次的課程設計,對自己的學習有很多幫助,在平時的很少有那么多的時間去學習c+,這次的課程設計使我有了一個相對比較集中的時間去練習我的編程,特別是我的動手能力有了極大的提高,因為這次的課程設計幾乎涉及到了c+語言程序設計的整本書的重要內容,讓我從中受益,有了一次鞏固知識的機會。同時還讓自己平時不怎么注意的問題得到了自己足夠的關注,為以后寫程序奠定下了堅實的基礎,讓自己對這門課的課程有了更深刻的認識。這次寫完程序后,等到自己能順利運行時,我覺得自己的任務才剛剛開始,我的目標是在沒有我的講解下,還能夠順利的運行我的程序。因為我覺得自己寫程序就是

15、給別人用的,自己運行的再好也沒有什么用,只有別人運行的舒服,才能夠說明你的程序取得了一定的成功。我的大學愛情觀目錄:1、 大學概念2、 分析愛情健康觀3、 愛情觀要三思4、 大學需要對愛情要認識和理解5、 總結1、什么是大學愛情:大學是一個相對寬松,時間自由,自己支配的環境,也正因為這樣,培植愛情之花最肥沃的土地。大學生戀愛一直是大學校園的熱門話題,戀愛和學業也就自然成為了大學生在校期間面對的兩個主要問題。戀愛關系處理得好、正確,健康,可以成為學習和事業的催化劑,使人學習努力、成績上升;戀愛關系處理的不當,不健康,可能分散精力、浪費時間、情緒波動、成績下降。因此,大學生的戀愛觀必須樹立在健康之

16、上,并且樹立正確的戀愛觀是十分有必要的。因此我從下面幾方面談談自己的對大學愛情觀。2、什么是健康的愛情:1) 尊重對方,不顯示對愛情的占有欲,不把愛情放第一位,不癡情過分;2) 理解對方,互相關心,互相支持,互相鼓勵,并以對方的幸福為自己的滿足; 3) 是彼此獨立的前提下結合;3、什么是不健康的愛情:1)盲目的約會,忽視了學業;2)過于癡情,一味地要求對方表露愛的情懷,這種愛情常有病態的夸張;3)缺乏體貼憐愛之心,只表現自己強烈的占有欲;4)偏重于外表的追求;4、大學生處理兩人的在愛情觀需要三思:1. 不影響學習:大學戀愛可以說是一種必要的經歷,學習是大學的基本和主要任務,這兩者之間有錯綜復雜

17、的關系,有的學生因為愛情,過分的忽視了學習,把感情放在第一位;學習的時候就認真的去學,不要去想愛情中的事,談戀愛的時候用心去談,也可以交流下學習,互相鼓勵,共同進步。2. 有足夠的精力:大學生活,說忙也會很忙,但說輕松也是相對會輕松的!大學生戀愛必須合理安排自身的精力,忙于學習的同時不能因為感情的事情分心,不能在學習期間,放棄學習而去談感情,把握合理的精力,分配好學習和感情。3、 有合理的時間;大學時間可以分為學習和生活時間,合理把握好學習時間和生活時間的“度”很重要;學習的時候,不能分配學習時間去安排兩人的在一起的事情,應該以學習為第一;生活時間,兩人可以相互談談戀愛,用心去談,也可以交流下

18、學習,互相鼓勵,共同進步。5、大學生對愛情需要認識與理解,主要涉及到以下幾個方面:(1) 明確學生的主要任務“放棄時間的人,時間也會放棄他。”大學時代是吸納知識、增長才干的時期。作為當代大學生,要認識到現在的任務是學習學習做人、學習知識、學習為人民服務的本領。在校大學生要集中精力,投入到學習和社會實踐中,而不是因把過多的精力、時間用于談情說愛浪費寶貴的青春年華。因此,明確自己的目標,規劃自己的學習道路,合理分配好學習和戀愛的地位。(2) 樹林正確的戀愛觀提倡志同道合、有默契、相互喜歡的愛情:在戀人的選擇上最重要的條件應該是志同道合,思想品德、事業理想和生活情趣等大體一致。擺正愛情與學習、事業的關系:大學生應該把學習、事業放在首位,擺正愛情與學習、事業的關系,不能把寶貴的大學時間,鍛煉自身的時間都用于談情說有愛而放松了學習。 相互理解、相互信任,是一份責任和奉獻。愛情是奉獻而不時索取,是擁有而不是占有。身邊的人與事時刻為我們敲響警鐘,不再讓悲劇重演。生命只有一次,不會重來,大學生一定要樹立正確的愛情觀。(3) 發展健康的戀愛行為 在當今大學校園,情侶成雙入對已司空見慣。抑制大學生戀愛是不實際的,大學生一定要發展健康的戀愛行為。與戀人多談談學習與工作,把戀愛行為限制在社會規范內,不致越軌,要使愛情沿著健康的道路發展。正如馬

溫馨提示

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

評論

0/150

提交評論