7-5 进度条 分数 10 简单 作者 龚雄兴 单位 湖北文理学院 进度条常用来在用户进行较长等待时显示某工作的进度以改善用户的体验。请编写程序,利用随机函数,产生指定次数(从键盘上输入次数,并以它作随机种子)的进度条。 输入格式: 输入一个正整数用来指定显示进度条的个数(同时用这个数作srand()的随机种子) 输出格式: 一个进度条的显示是这样的: 利用1+rand() %35来产生一个随机进度; 这个进度用35个字符来占位,已完成的用若干个>表示,未完成的用若干.表示; 最后显示进度的百分比(数据占三位,只保留整数部分)。 输入样例: 6 输出样例: >>>>>>>>>>>>>>>>>>>>>>............. 63% >>>>>>............................. 17% >>>>>>>>........................... 23% >>>>>>>>>>>>>>>>>>>>>>>>>>......... 74% >>>>>>>>>.......................... 26% >>>>>>>>>>>........................ 31% 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB
时间: 2025-05-30 11:52:58 浏览: 24
### 编写随机进度条生成程序
以下是基于 C++ 的实现方案,该程序能够接收用户输入的正整数作为随机种子以及进度条的数量,并利用 `rand()` 函数生成随机进度条。已完成的部分用若干个 `>` 表示,未完成的部分用若干个 `.` 表示,最后显示进度的百分比。
#### 实现细节
- 使用 `srand(seed)` 初始化随机数生成器。
- 进度条长度固定为 35 字符。
- 随机生成的进度范围是从 1 到 35。
- 输出格式严格遵循题目要求:已完部分用 `>` 填充,剩余部分用 `.` 填充,最后输出进度百分比并保留整数部分。
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int seed, n;
cout << "请输入随机种子和进度条个数 (两个正整数): ";
cin >> seed >> n;
srand(seed); // 设置随机种子
for (int i = 0; i < n; ++i) {
int progress = 1 + rand() % 35; // 生成随机进度 [1, 35]
// 打印已完成部分
for (int j = 0; j < progress; ++j) {
cout << '>';
}
// 打印未完成部分
for (int j = 0; j < 35 - progress; ++j) {
cout << '.';
}
// 计算并打印进度百分比
double percentage = static_cast<double>(progress) / 35 * 100;
if (i < n - 1) {
cout << fixed << setw(3) << static_cast<int>(percentage) << "%" << endl;
} else {
cout << fixed << setw(3) << static_cast<int>(percentage) << "%";
}
}
return 0;
}
```
#### 关键点说明
- **`srand(seed)`**: 初始化随机数生成器[^1]。
- **`rand() % 35`**: 生成一个介于 0 和 34 的随机数,再加 1 得到范围 `[1, 35]` 的随机值。
- **`fixed` 和 `setw(3)`**: 控制浮点数输出格式,确保进度百分比占据三个字符宽度。
- **静态转换 (`static_cast`)`: 将计算结果强制转换为整数值以满足题目需求[^1]。
此代码完全符合题目描述中的功能需求,并具备良好的可读性和扩展性。
---
阅读全文
相关推荐
















