當前位置:學問君>人在職場>社會實踐報告>

程序設計實踐報告

學問君 人氣:1.34W


本文是關於《程序設計實踐報告》範文,詳情請您對下文進行參考:

程序設計實踐報告


本文編輯:yjbys.com


1、實驗目的、內容
透過課程設計,能夠熟練運用C++進行面向對象編程,建立對象模型,降低軟件的複雜性,改善軟件的重用性和維護性,提高軟件的生產效率,全面掌握面向對象編程技術.
要求學生在指導老師的指導下,獨立完成實習課題的全部內容,包括:
(1) 透過調查研究和上機實習,收集和調查有關技術資料;
(2) 掌握設計課題的基本步驟和方法;
(3) 根據課題的要求進行上機實驗調試.
2、題目一:比賽求平均分
2.1程序內容
在體育、文藝比賽及選舉等打分類項目中,爲了公平起見,往往n個評委打出分數後,要去掉一個最高分和一個最低分,然後求取平均得分。當n較大時(本題設爲9),則應取掉兩個最高分和兩個最低分,然後求取平均分。編程實現該算法。

2.2實驗程序設計及結構
(1)需求分析:
輸入9個評委所打分數,程序執行最後結果爲去掉最高分和最低分後的平均分.
(2)設計結構:
總體結構
 


數據結構

從a[0]到a[9]依次爲9位評委的打分.
2.3設計過程
(1) 建立iostream/ofstream/fstream、輸入、輸出、輸入輸出流對象,建立ifndef,define預編命令,STRUCT 數據.
(2)根據流程圖,建立main函數,並運用for循環.
(3)執行main函數進行調試.
2.4執行結果


3、題目二:火柴遊戲
3.1程序內容:
23根火柴遊戲: 兩個遊戲者開始擁有23根火柴(或小棒)。每個遊戲者輪流移走1根、2根或3根火柴,拿到最後一根火柴的就算輸了。編一程序與計算機玩這個遊戲。
3.2實驗程序設計
(1)需求分析:
執行程序能使人與計算機進行23根火柴遊戲。
(2)設計思路:
使計算機能最先使火柴變成4或4以下計算機就能贏了。

3.3設計過程
(1) 建立iostream/ofstream/fstream、輸入、輸出、輸入輸出流對象,建立ifndef,define預編命令,STRUCT 數據.
(2)根據設計思路運用if判斷語句設計
(3)建立main函數
(4)執行main函數調試

 

3.4執行結果


4、題目三:足球比分
4.1設計內容:
問題描述
足球聯賽採用主客場雙循環賽制,勝一場得3分,平局各得1分,負一場得0分,聯賽排名以積分多者在前,當兩隊(或多隊)積分相同時,則淨勝球(即進球數與失球數之差)多者在前,若淨勝球相同,則進球數多者在前,若仍相同,則抽籤或踢附加賽決定名次(這在聯賽結束後進行,聯賽未結束則兩隊名次並列,本程序不做這方面要求)。試編一程序統計最近一輪比賽後,各隊積分及排名。
基本要求
設積分表結構如下:隊名(不超過15個字元),已比賽的場數,贏的場數,平的場數,負的場數,進球數,失球數,積分。積分表放在正文檔案中。最近一輪的結果從鍵盤輸入,其形式爲:主隊名(可用代碼),客隊名(可用代碼),主隊得分(即進球數),客隊得分(即進球數)。程序應根據此輪結果修改各隊的`積分和名次,所得的最新記分表仍在原積分檔案中並同時在屏幕上顯示。
測試數據
可選擇我國當年的甲A或甲B聯賽的數據輸入,並檢查與報章公佈的數據是否一致。
4.2設計方案:
定義一個球隊類和對象數組,每個球隊均是球隊類的對象。由於聯賽中參賽隊伍數目是固定的,因此將每個球隊存放在對象數組的一個數組元素中。每輸入兩個隊的比賽成績,則相應的隊的有關數據(比賽場數,贏得場數,進球數等等)即可進行修改,比賽成績錄入完成,調用聯賽排序方法(對象數組作爲參數,積分爲排序元素)排出名次並輸出。
5、設計的特點與心得:
經過一個學期的學習和上機實踐,使我對C++語言有了更認識和和了解,要想學好它要重在實踐,要透過不斷的上機操作才能更好的學習它,透過實踐,我也發現我的好多不足之處,對各種控制結構及語句、數組的基本與進階應用、指針數組、字元數組、動態數組、函數的定義、調用方式;函數在編程中的具體應用;以及變量存儲特徵與標識符的作用域,透過實踐,使我在這些方面有了認識和提高。課程設計它是一項任務,更是一種挑戰和歷練。在課程設計中,爲了使用時方便,着重對不足方面的知識進行了分析與理解,在這一過程中對檔案的操作有了很大的提高。透過實際的演練,可以增強對知識的理解和運用能力。

 

 

 

 

 


參考文獻
[1]、楊長興、劉衛國,《C++程序設計》,中國鐵道出版社,2008年

附錄
題目一實驗原始碼:
#include<stdio.h>
#include<iostream.h>
void main()
{
int a[9],i,j,temp,b=0,s;
cout<<"請打分:"<<endl;
for(i=0;i<9;i++)
{
cin>>a[i];
}
for(i=0;i<9;i++)
for(j=i;j<9;j++)
{
if(a[i]<=a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(i=2;i<7;i++)
{
b=b+a[i];
}
s=b/5;
cout<<"最後成績爲:"<<s;
}

 

 

 

 

 

 

 

 

 

 

 

 

題目二實驗原始碼:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

int getMin(int a,int b)
{
return a<b?a:b;
}
int main()
{
printf("遊戲開始n");
int count = 23;
int input;
int computerInput;
while(true)
{
printf("當前還剩%d根火柴,請玩家拿取火柴:n",count);
printf("1.一根火柴 ");