题目:篮球计分与计时系统
一个训练任务
使用Qt-Creator编程设计篮球计分计时界面开发系统实现篮球24秒倒计时记录
分裂。
二 培训要求
一、基本要求
(1)根据题目要求使用Qt编程,独立设计系统需要的界面,实现24秒倒计时的篮球得分手
时间界面开发系统。
(2)通过按钮控件实现“运行/暂停”功能,同时通过按钮或其他控件实现A队和B队的添加
扣分操作,扣犯规操作。
(3) 停表计时是指:比赛开始后,犯规、罚球、暂停均停表。累计时间达到24秒后,
总共有4个会话。
2.扩展
(1) 扩展多位数据显示,可实现0.99的显示。
(2)超时操作功能。
(3)实景模拟展示等。
三个培训主题的原则
倒计时设计的功能框图如图 3 所示。
图3 倒计时系统框图
部分节目:
#include "countboard.h"
#include "ui_countboard.h"
#包括
#包括
CountBoard::CountBoard(QWidget *parent) :
QWidget(父级),
用户界面(新用户界面::计数板)
{
ui->setupUi(这个);
时间=24;//设置倒计时初值
解数=1;//一共四节,初始值为1
状态=0;//设置游戏状态初始值,0表示暂停
范围=24;//倒计时范围初始值为24秒
解数装台=0; //游戏初始结束状态为0
好庙记事=1000;//毫秒定时器初值
中断 1=中断 2=0;//犯规次数初值
定时器=新的QTimer(这个);//初始定时器
timer2=new QTimer(这个);
connect(timer,SIGNAL(timeout()),this,SLOT(jishiqi()));
connect(timer2,SIGNAL(timeout()),this,SLOT(haomiao()));
ui->好妙记事起->setDigitCount(4); //设置毫秒定时器设备的显示位数
ui->label_6->setText("Section"+QString::number(jieshu));//显示这是第几节,一共四节
teamonescore=teamtwoscore=0; //初始化两队初始得分为0;
定时器2->开始(1);//定时器2开始工作,间隔1毫秒
}
CountBoard::~CountBoard() //析构比赛计时器怎么使用,释放资源,防止内部消耗资源泄露
{
删除用户界面;
}
void CountBoard::haomiao()
{
if(state==1) //游戏状态为1,(游戏进行中)
{
好妙记事--; //毫秒计时的值-1
if(haomiaojishi==0) //如果毫秒计时参数为0,执行
{
好庙记事=1000;//重置毫秒计时参数为1000
ui->haomiaojishiqi->display(haomiaojishi); //显示在定时器控件上
}
ui->haomiaojishiqi->display(haomiaojishi); //展示
}
}
void CountBoard::jishiqi()
{
time--;//倒计时-1
ui->daojishi->display(time);
if(time==0)//如果倒计时到0,执行
{
timer->stop();//定时器停止工作,每局结束后等待游戏重新开始
定时器2->停止();
//timer3->stop();
ui->textEdit->setText("STOP");//在空格上显示游戏暂停标志
state=0;//将游戏状态参数改为0,以通知其他函数执行该参数为0的情况
time=range;//重置倒计时
好庙记事=1000;
ui->haomiaojishiqi->display(haomiaojishi);
jieshu++;//在每一节的末尾添加一个节
if(jieshu>=5&&teamonescore==teamtwoscore) //如果1队和2队在第4节结束时得分相同,则进入加时赛
{
ui->label_6->setText("添加游戏!"); //在空间显示超时
}
else if(jieshu>=5&&teamonescore!=teamtwoscore)//如果第4节结束时一队和二队的得分不相同,则结束比赛
{
ui->textEdit->setText("结束!!!"); //显示游戏结束
解数装台=1; //结束状态设置为1,这样段号+1的函数就可以判断是否可以执行
好庙记事=1000;
ui->haomiaojishiqi->display(haomiaojishi);
}别的{
ui->label_6->setText("Section"+QString::number(jieshu));
}
}
}
void CountBoard::on_lone_clicked()
{
if(state==1) //游戏状态为1,(游戏进行时),执行
{
teamonescore=teamonescore+1; //1队得分加1
ui->teamoneboard->display(teamonescore);//显示
}
}
void CountBoard::on_ltwo_clicked()
{
如果(状态==1)
{
teamonescore=teamonescore+2;//1队得分加2
ui->teamoneboard->显示(teamonescore);
}
}
void CountBoard::on_lthree_clicked()
{
如果(状态==1)
{
teamonescore=teamonescore+3;//1队得分加3
ui->teamoneboard->显示(teamonescore);
}
}
信息包括:
需要完整资料的可以在我的资源里下载比赛计时器怎么使用,也可以加入我的饭川圈,里面有资源压缩包的百度网盘下载地址和提取码。
用微信点开就可以了,过程有点繁琐,还请见谅。