模拟NBA赛季
来源:互联网 发布:逃生2剧情解析知乎 编辑:程序博客网 时间:2024/05/01 04:14
#include<iostream>
#include<windows.h>
#include<time.h>
using namespace std;
class Team
{
public:
Team(charn[20],int w,int l,int g) //分别是队名,胜场,负场,已进行场数
{
for(inti=0;i<20;i++)
name[i]=n[i];
win=w;lose=l;game=g;
cha=0.0;
game_point=0;
}
intpoint; //每局比分
intwin; //胜场
intlose; //负场
doubleper; //胜率
doublecha; //胜场差
intgame; //已经进行的比赛数
charname[20];
intgame_point; //大比分
voidtake_game(Team &a,Team &b);
voidgame_cha(Team &a,Team &b);
voidgame_per();
};
void Team::game_per()
{
per=win/13.0; //计算胜率
}
void Team ::game_cha(Team &a,Team&b)
{
cha=(a.win-b.win)/2.0+(b.lose-a.lose)/2.0; //计算胜场差
}
void Team :: take_game(Team &a,Team&b) //随机模拟进行每局战况
{
inti,j;
do{
i=rand();
}while(i<80|| i>130);
a.point=i; //随机产生一队比分
do{
j=rand();
if(j==i)
{
if(j%2==0)
j++; //保证两队比分不同
elsei++;
}
}while(j<80|| j>130);
b.point=j; //随机产生另一队比分
cout<<a.name<<""<<a.point<<":"<<b.point<<""<<b.name<<endl;
if(i>j)
{
a.win++;
b.lose++;
}
else{
b.win++;
a.lose++;
}
if(i>j)
a.game_point++;
elseb.game_point++; //比较两队比分,更改大比分
}
int main()
{
srand(time(0));
inti,j,k=0; //用来产生交战双方的代替参数
Teamx("0",0,0,0);
Teamt[6]={
Team("湖人",0,0,0),
Team("马刺",0,0,0),
Team("勇士",0,0,0),
Team("骑士",0,0,0),
Team("老鹰",0,0,0),
Team("奇才",0,0,0)
};
Team*team;
team=&t[0];
t[2].take_game(t[2],t[3]);t[2].game++; t[3].game++;
for(i=0;i<3;i++) //东西部互相一场,西部主场
{
for(j=3;j<6;j++)
{
t[i].take_game(t[i],t[j]);t[i].game++; t[j].game++;
}
}
for(i=3;i<6;i++) //东西部第二场,东部主场
{
for(j=0;j<3;j++)
{
t[i].take_game(t[i],t[j]);t[i].game++; t[j].game++;
}
}
for(i=0;i<2;i++)
{//西部同赛区4场
t[0].take_game(t[0],t[1]);t[0].game++; t[1].game++;
t[1].take_game(t[1],t[0]);t[0].game++; t[1].game++;
}
for(i=0;i<2;i++)
{//东部同赛区4场
t[4].take_game(t[4],t[5]);t[4].game++; t[5].game++;
t[5].take_game(t[5],t[4]);t[4].game++; t[5].game++;
}
for(i=0;i<2;i++)
{//西部同赛区3场
t[2].take_game(t[2],t[i]);t[2].game++; t[i].game++;
t[i].take_game(t[i],t[2]);t[2].game++; t[i].game++;
t[2].take_game(t[2],t[i]);t[2].game++; t[i].game++;
}
for(i=4;i<6;i++)
{//东部同赛区3场
t[3].take_game(t[3],t[i]);t[3].game++; t[i].game++;
t[i].take_game(t[i],t[3]);t[3].game++; t[i].game++;
t[3].take_game(t[3],t[i]);t[3].game++; t[i].game++;
}
//所有比赛进行完毕
for(i=0;i<6;i++)
{
t[i].game_per(); //将胜率赋给每个变量
}
for(j=0;j<2;j++)
for(i=0;i<2-j;i++) //对西部排序
if (t[i].win<t[i+1].win) //控制由大到小
{
x=t[i];
t[i]=t[i+1];
t[i+1]=x;
}
for(j=0;j<2;j++) //对东部排序,注意计数器起始数字!!
for(i=0;i<2-j;i++)
if(t[i+3].win<t[i+4].win)
{
x=t[i+3];
t[i+3]=t[i+4];
t[i+4]=x;
}
t[1].game_cha(t[0],t[1]);
t[2].game_cha(t[0],t[2]);
t[4].game_cha(t[3],t[4]);
t[5].game_cha(t[3],t[5]); //计算胜场差
cout<<" 西部"<<endl; //输出东西部排名表
cout<<"排名 队名 场数 胜场 负场 胜率 胜场差 "<<endl;
for(i=1;i<4;i++)
cout<<""<<i<<" "<<t[i-1].name<<" "<<t[i-1].game<<" "<<t[i-1].win<<" "<<t[i-1].lose<<" "<<t[i-1].per<<" "<<t[i-1].cha<<endl<<endl;
cout<<" 东部"<<endl;
cout<<"排名 队名 场数 胜场 负场 胜率 胜场差 "<<endl;
for(i=1;i<4;i++)
cout<<""<<i<<" "<<t[i+2].name<<" "<<t[i+2].game<<" "<<t[i+2].win<<" "<<t[i+2].lose<<" "<<t[i+2].per<<" "<<t[i+2].cha<<endl<<endl;
Team*team0; //用来赋予总冠军
Team*team1; //用来接收第一个晋级
Team*team2; //用来接收第二个晋级
team0=&t[0];
team1=&t[0];
team2=&t[1];
for(i=0;i<6;i++)
t[i].game_point=0; //进入季后赛初始化大比分
do{
cout<<t[0].name<<""<<t[0].game_point<<":"<<t[1].game_point<<""<<t[1].name<<endl<<endl;
t[0].take_game(t[0],t[1]);
}while(t[0].game_point!=4&& t[1].game_point!=4); //模拟比赛进行,当有一队大比分到4,跳出循环
cout<<t[0].name<<""<<t[0].game_point<<":"<<t[1].game_point<<""<<t[1].name<<endl;
do{
cout<<t[3].name<<""<<t[3].game_point<<":"<<t[4].game_point<<""<<t[4].name<<endl<<endl;
t[3].take_game(t[3],t[4]);
}while(t[3].game_point!=4&& t[4].game_point!=4); //模拟比赛进行,当有一队大比分到4,跳出循环
cout<<t[3].name<<""<<t[3].game_point<<":"<<t[4].game_point<<""<<t[4].name<<endl;
if(t[0].game_point==4)
team1=&t[0];
elseteam1=&t[1]; //将大比分为4的赋给team1指针
if(t[3].game_point==4)
team2=&t[3];
elseteam2=&t[4]; //将大比分为4的赋给team2指针
(*team1).game_point=0;(*team2).game_point=0; //将晋级者的大比分初始化
do{
cout<<(*team1).name<<""<<(*team1).game_point<<":"<<(*team2).game_point<<""<<(*team2).name<<endl<<endl;
(*team1).take_game(*team1,*team2);
}while((*team1).game_point!=4&& (*team2).game_point!=4); //两指针携带晋级者济宁随机比赛,当大比分到4跳出循环
cout<<(*team1).name<<""<<(*team1).game_point<<":"<<(*team2).game_point<<""<<(*team2).name<<endl;
if((*team1).game_point==4)
team0=team1;
elseteam0=team2; //将比分为4的赋给总冠军指针team0
cout<<" "<<(*team0).name<<endl; //将对抗局势用表展现出来
cout<<" 丨"<<endl;
cout<<" 丨"<<endl;
cout<<" -------------------"<<endl;
cout<<" 丨"<<" "<<" 丨"<<endl;
cout<<" 丨"<<" "<<" 丨"<<endl;
cout<<" "<<(*team1).name<<" "<<(*team2).name<<endl;
cout<<" 丨"<<" "<<" 丨"<<endl;
cout<<" 丨"<<" "<<" 丨"<<endl;
cout<<" ---------"<<" "<<"---------"<<endl;
cout<<"丨 丨"<<" "<<" 丨 丨"<<endl;
cout<<"丨 丨"<<" "<<" 丨 丨"<<endl;
cout<<t[0].name<<" "<<t[1].name<<" "<<t[3].name<<" "<<t[4].name<<endl;
cout<<endl<<endl;
cout<<"恭喜"<<(*team0).name<<"获得NBA年度总冠军!!"<<endl;
return0;
}
- 模拟NBA赛季
- NBA 2012-2013赛季看点
- 14/15赛季nba常规赛
- 【模拟】nba
- 2006-2007NBA赛季球队一览
- NBA联盟08-09赛季年薪榜TOP20:
- 2013/2014新赛季NBA最期待的
- 爬取2016-2017赛季NBA球员的数据
- Python3 爬取 NBA 2013-2014 赛季比赛数据
- XMind浅析——NBA新赛季几大看点
- NOIP模拟题 NBA
- 【字符串处理】【模拟】NBA工资
- 篮球名宿小柯对本赛季CBA 和NBA最佳阵容的评选
- 2005-2006赛季NBA季后赛首轮赛程——球队对阵版
- NBA历史上职业生涯合同总金额TOP25榜单(截止2009-10赛季结束)
- NBA将在这个赛季每周用虚拟现实技术直播一场比赛
- python爬虫+数据分析之NBA球员LBJ13个赛季的数据分析
- 扶我起来我还能打:NBA新赛季开打,历史数据看勇士是否无敌?
- [学习笔记]Hadoop核心之初始HDFS
- 如何通过JS实现简单抖动效果
- 本地工程中删除了一些不需要的文件后,提交SVN报错处理
- mysql临时表
- iOS开发
- 模拟NBA赛季
- 查看Android源码版本
- Linux——网络配置介绍
- ADO.NET
- ERROR [ExceptionFilter] [DUBBO] Got unchecked and undeclared exception which called by 10.165.31.88
- java编程规范
- jdk 1.8 线程实例
- PHP邮箱、QQ、手机,部分为*,不显示全部
- 第一部分 基础知识