基本要求:
1.点击”起跑”菜单命令(或工具栏按钮)后,龟兔两幅位图以随机速度、从窗口左侧向右沿直线运动。并在窗口右侧合适位置设立红色终点线。
2.任一运动员(龟或兔)触终点线后,保持位置不变,并等待另一名运动员跑完全程。当第二名运动员触终点线后,程序结束,并在窗口中提示”**获得冠军”。
扩展要求:
1.点击”准备”菜单命令(或工具栏按钮)后,龟兔两名运动员同时出现在起跑线上(窗口左侧红线以内)。
2.记录两位运动员跑完全程的时间,比赛结束时,在窗口中提示”**获得冠军,用时**秒**获得亚军,用时**秒”。
3.添加更多的运动员。为每个运动员设计一个工具栏按钮,点击按钮后,对应的运动员上场,出现在起跑线上(窗口左侧红线以内)。
点击”起跑”菜单(或工具栏)命令后,比赛开始,所有运动员以随机速度向右移动,直到最后一名运动员达到终点,程序结束。
4.其他相关功能(自行设计)。
案例代码
以下是一个使用C++编写的龟兔赛跑程序的案例代码:
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
using namespace std;
void drawTrack(int length) {
for (int i = 0; i <= length; i++) {
cout << "-";
}
cout << endl;
}
void printRabbit(int pos) {
for (int i = 0; i < pos; i++) {
cout << " ";
}
cout << "R" << endl;
}
void printTurtle(int pos) {
for (int i = 0; i < pos; i++) {
cout << " ";
}
cout << "T" << endl;
}
void race() {
const int trackLength = 100;
int rabbitPos = 0;
int turtlePos = 0;
while (rabbitPos < trackLength && turtlePos < trackLength) {
system("CLS"); // 清屏
// 生成随机数,决定兔子和乌龟的前进步长
int rabbitStep = rand() % 3 + 1;
int turtleStep = rand() % 3 + 1;
// 更新兔子和乌龟的位置
rabbitPos += rabbitStep;
turtlePos += turtleStep;
// 绘制赛道
drawTrack(trackLength);
// 绘制兔子和乌龟
printRabbit(rabbitPos);
printTurtle(turtlePos);
// 等待一段时间
Sleep(500);
}
// 比赛结束,判断冠军
system("CLS"); // 清屏
drawTrack(trackLength);
if (rabbitPos >= trackLength && turtlePos >= trackLength) {
cout << "平局!" << endl;
} else if (rabbitPos >= trackLength) {
cout << "兔子获得冠军!" << endl;
} else {
cout << "乌龟获得冠军!" << endl;
}
}
int main() {
srand(time(0));
cout << "龟兔赛跑准备就绪!" << endl;
cout << "请点击“起跑”按钮开始比赛:" << endl;
system("PAUSE");
race();
return 0;
}
这个程序可以进行基本要求中描述的功能,包括点击起跑按钮后两个运动员以随机速度向右移动,并在到达终点后显示获胜者。
如果要扩展程序,可以添加更多的运动员,记录每个运动员的用时,并在比赛结束时显示获得冠军和亚军的信息。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END