加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

嵌入式操作系統(tǒng)-籃球記分計時系統(tǒng)

09/11 16:45
2425
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

題目:籃球記分計時系統(tǒng)

? 實訓(xùn)任務(wù)

利用Qt-Creator編程設(shè)計一個籃球記分計時界面開發(fā)系統(tǒng),實現(xiàn)24秒一節(jié)次的倒計時籃球記分牌。

? 實訓(xùn)要求

1、基本要求

(1)按照題目要求使用Qt編程,獨立設(shè)計系統(tǒng)所需界面,實現(xiàn)24秒倒計時的籃球記分計時界面開發(fā)系統(tǒng)。

(2)通過按鈕控件實現(xiàn)“運行/暫?!惫δ埽瑫r還可通過按鈕或其它控件實現(xiàn)A,B兩隊加分操作,犯規(guī)減分操作。

(3)停表計時就是:比賽開始后,犯規(guī),罰球,暫停,都要停表。累計時間到24秒后,該節(jié)次結(jié)束,共4節(jié)次。

2、擴展部分

(1)擴展多位數(shù)據(jù)顯示,能實現(xiàn).99的顯示。

(2)加時操作功能。

(3)真實場景仿真展示等。

? 實訓(xùn)題目原理

?????? 倒計時設(shè)計的原理框圖如圖3所示。

圖3 倒計時系統(tǒng)框圖

部分程序:

#include "countboard.h"
#include "ui_countboard.h"
#include<QTimer>
#include<QtGui>
CountBoard::CountBoard(QWidget *parent) :
QWidget(parent),
ui(new Ui::CountBoard)
{
ui->setupUi(this);
time=24; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//設(shè)置倒計時初始值
jieshu=1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //總共四節(jié),初始值為1
state=0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//設(shè)置比賽狀態(tài)初始值,為0表示暫停
range=24; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //倒計時范圍初始值為24秒

jieshuzhuangtai=0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//比賽初始結(jié)束狀態(tài)為0
haomiaojishi=1000; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//毫秒計時器的初始值
break1=break2=0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//犯規(guī)次數(shù)初始值
timer=new QTimer(this); ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始定時器
timer2=new QTimer(this);

connect(timer,SIGNAL(timeout()),this,SLOT(jishiqi()));
connect(timer2,SIGNAL(timeout()),this,SLOT(haomiao()));
ui->haomiaojishiqi->setDigitCount(4); ? ? ? ? ? ? ? ? ? //設(shè)置毫秒計時器設(shè)備顯示位數(shù)
ui->label_6->setText("Section"+QString::number(jieshu));//顯示這是第幾節(jié)比賽,總共四節(jié)
teamonescore=teamtwoscore=0; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化兩個隊伍的初始比分為0;
timer2->start(1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //定時器2開始工作,間隔為1毫秒
}

CountBoard::~CountBoard() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //析構(gòu)函數(shù),釋放資源,防止資源內(nèi)耗泄露
{
delete ui;
}

void CountBoard::haomiao()
{
if(state==1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//比賽狀態(tài)為1,(正在比賽)
{
haomiaojishi--; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //毫秒計時的數(shù)值-1
if(haomiaojishi==0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //如果毫秒計時參數(shù)為0,執(zhí)行
{
haomiaojishi=1000; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//讓毫秒計時參數(shù)重新變?yōu)?000
ui->haomiaojishiqi->display(haomiaojishi); ? ? ?//顯示在計時器控件上
}
ui->haomiaojishiqi->display(haomiaojishi); ? ? ? ? ?//顯示
}
}
void CountBoard::jishiqi()
{
time--;//倒計時-1
ui->daojishi->display(time);
if(time==0)//如果倒計時到了0,執(zhí)行
{
timer->stop();//計時器停止工作,每一節(jié)比賽完等待重新開始比賽
timer2->stop();
//timer3->stop();
ui->textEdit->setText("STOP");//在空間上顯示比賽暫停的標(biāo)志stop
state=0;//把比賽狀態(tài)參數(shù)改為0,以便通知其他函數(shù)執(zhí)行該參數(shù)為0狀態(tài)下的情況
time=range;//重置倒計時
haomiaojishi=1000;
ui->haomiaojishiqi->display(haomiaojishi);
jieshu++;//每一節(jié)結(jié)束就加一節(jié)
if(jieshu>=5&&teamonescore==teamtwoscore) ? ? ? //如果第4節(jié)以后結(jié)束的時隊伍一和隊伍二比分相同,進入加時賽
{
ui->label_6->setText("Addgame!"); ? ? ? ? ? //在空間上顯示正在加時賽

}
else if(jieshu>=5&&teamonescore!=teamtwoscore)//如果第4節(jié)以后結(jié)束的時隊伍一和隊伍二比分不相同,結(jié)束比賽
{
ui->textEdit->setText("Over!!!"); ? ? ? ? ? //顯示比賽結(jié)束
jieshuzhuangtai=1; ? ? ? ? ? ? ? ? ? ? ? ? ?//結(jié)束狀態(tài)設(shè)置為1,以便節(jié)數(shù)+1函數(shù)識別是否可執(zhí)行
haomiaojishi=1000;
ui->haomiaojishiqi->display(haomiaojishi);

}else{
ui->label_6->setText("Section"+QString::number(jieshu));
}

}
}

void CountBoard::on_lone_clicked()
{
if(state==1) ? ?//比賽狀態(tài)為1,(正在比賽時),執(zhí)行
{
teamonescore=teamonescore+1; //隊伍1比分加1

ui->teamoneboard->display(teamonescore);//顯示
}
}

void CountBoard::on_ltwo_clicked()
{
if(state==1)
{
teamonescore=teamonescore+2;//隊伍1比分加2

ui->teamoneboard->display(teamonescore);
}
}

void CountBoard::on_lthree_clicked()
{
if(state==1)
{
teamonescore=teamonescore+3;//隊伍1比分加3
ui->teamoneboard->display(teamonescore);
}
}
資料包括:

需要完整的資料可在我的資源里下載,也可以加入我的紛傳圈子,里面有資源壓縮包的百度網(wǎng)盤下載地址及提取碼。

紛傳點擊用微信打開即可,過程有點繁瑣請見諒。

  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜