C++程序设计实践报告.docx

上传人:b****5 文档编号:7681130 上传时间:2023-01-25 格式:DOCX 页数:16 大小:196.45KB
下载 相关 举报
C++程序设计实践报告.docx_第1页
第1页 / 共16页
C++程序设计实践报告.docx_第2页
第2页 / 共16页
C++程序设计实践报告.docx_第3页
第3页 / 共16页
C++程序设计实践报告.docx_第4页
第4页 / 共16页
C++程序设计实践报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C++程序设计实践报告.docx

《C++程序设计实践报告.docx》由会员分享,可在线阅读,更多相关《C++程序设计实践报告.docx(16页珍藏版)》请在冰豆网上搜索。

C++程序设计实践报告.docx

C++程序设计实践报告

C++程序设计实践报告

 

中南大学

《C++课程设计》设计报告

 

学生姓名

学号

专业班级

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

#include

voidmain()

{

inta[9],i,j,temp,b=0,s;

cout<<"请打分:

"<

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<<"最后成绩为:

"<

}

 

题目二实验源代码:

#include

#include

#include

intgetMin(inta,intb)

{

returna

a:

b;

}

intmain()

{

printf("游戏开始\n");

intcount=23;

intinput;

intcomputerInput;

while(true)

{

printf("当前还剩%d根火柴,请玩家拿取火柴:

\n",count);

printf("1.一根火柴");

if(count>=2)

{

printf("2.两根火柴");

}

if(count>=3)

{

printf("3.三根火柴");

}

printf("\n");

while(true)

{

std:

:

cin>>input;

if(input==1||(input==2&&count>=2)||(input==3&&count>=3))

break;

else

printf("请正确输入序号\n");

}

count-=input;

if(count==0)

{

printf("游戏结束,玩家输掉了游戏\n");

break;

}

if(count%4==1)

{

computerInput=rand()%(getMin(count,3))+1;

}

else

{

computerInput=(count%4==0)?

3:

count%4-1;

}

printf("电脑拿走了%d根火柴\n",computerInput);

count-=computerInput;

if(count==0)

{

printf("游戏结束,电脑输掉了游戏\n");

break;

}

}

 

system("pause");

 

}

 

题目三实验源代码:

//程序需要先在d盘建立2个文本文档teams.txt,teamlist.txt,以保存球队信息和比分信息//

#include

#include

#include

usingnamespacestd;

classTeam{

private:

intgoal;

intcgoal;

intpgoal;

intwin;

intlost;

intequal;

intscorce;

public:

charname[20];

Team(){

goal=0;

cgoal=0;

pgoal=0;

win=0;

lost=0;

equal=0;

scorce=0;

}

voidDisplay(){

cout<

}

voidgoalchg(inta);

voidmatchchg(inta,intb);

voidmatch(Team&t);

voidsetIm();

intgetS();

intgetPG();

};

voidTeam:

:

goalchg(inta){

if(a>0)

this->goal+=a;

if(a<0)

this->cgoal-=a;

pgoal=goal-cgoal;

}

voidTeam:

:

matchchg(inta,intb){

if(a>b){

this->win+=1;

this->scorce+=3;

}

if(a

this->lost+=1;

}

if(a==b){

this->equal+=1;

this->scorce+=1;

}

}

voidTeam:

:

match(Team&t){

inta,b;

cout<<"presshome'sgoal:

";

cin>>a;

if(a<0){

cout<<"warning"<

exit

(1);

}

cout<<"pressihome'sgoal:

";

cin>>b;

if(b<0){

cout<<"warning"<

exit

(1);

}

this->goalchg(a);

this->goalchg(0-b);

t.goalchg(b);

t.goalchg(0-a);

this->matchchg(a,b);

t.matchchg(b,a);

}

voidTeam:

:

setIm(){

cout<<"team'sname:

";

cin>>this->name;

}

intTeam:

:

getS(){

returnthis->scorce;

}

intTeam:

:

getPG(){

returnthis->pgoal;

}

 

voidgetteamlist();

fstreamteam("d:

\\teams.txt",ios:

:

in|ios:

:

out|ios:

:

binary);

 

voidmain(){

charname[20];

Teamt[5];

intt1,t2;

charn;

inti;

if(!

team){

cout<<"lostfile"<

exit

(1);

}

while

(1){

cout<<"doyouhavesettheteamIM?

(Y)"<

cin>>n;

if(n=='Y'||n=='y')

break;

for(inti=0;i<=4;i++){

t[i].setIm();

team.write((char*)&t[i],sizeof(t[i]));

}

break;

}

team.seekg(0,ios:

:

beg);

for(i=0;i<5;i++)

team.read((char*)&t[i],sizeof(t[i]));

while

(1){

cout<<"isanymatchnow?

(N)"<

cin>>n;

if(n=='N'||n=='n')

break;

do{

cout<<"hometeamname:

";

cin>>name;

for(i=0;i<5;i++){

if(strcmp(name,t[i].name)==0){

t1=i;

break;

}

else

continue;

}

}while(i==5);

do{

cout<<"keteamname:

";

cin>>name;

for(i=0;i<5;i++){

if(strcmp(name,t[i].name)==0){

t2=i;

break;

}

else

continue;

}

}while(i==5);

t[t1].match(t[t2]);

}

 

team.seekg(0,ios:

:

beg);

for(i=0;i<5;i++)

team.write((char*)&t[i],sizeof(t[i]));

getteamlist();

}

 

voidgetteamlist(){

Teamt1[5];

Teamhao;

fstreamgamelist("d:

\\teamlist.txt",ios:

:

in|ios:

:

out|ios:

:

binary);

if(!

gamelist){

cout<<"wrong!

!

"<

exit

(1);

}

team.seekg(0,ios:

:

beg);

for(inti=0;i<5;i++){

team.read((char*)&t1[i],sizeof(t1[i]));

}

for(intj=0;j<4;j++)

for(inti=0;i<4-j;i++){

if(t1[i].getS()

hao=t1[i];

t1[i]=t1[i+1];

t1[i+1]=hao;

}

if(t1[i].getS()==t1[i+1].getS()){

if(t1[i].getPG()

hao=t1[i];

t1[i]=t1[i+1];

t1[i+1]=hao;

}

}

}

cout<<"球队"<<"进球数"<<"失球数"<<"净胜球"<<"胜"<<"负"<<"平"<<"积分"<

for(i=0;i<5;i++){

gamelist.write((char*)&t1[i],sizeof(t1[i]));

t1[i].Display();

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1