C++实现进度条

本文详细介绍了如何使用C++创建一个简单的进度条动画,通过多个嵌套循环实现屏幕刷新,逐步完成进度条展示。文章讲解了代码结构、变量作用,并提供了完整的代码示例。同时,还探讨了颜色设置和程序延迟的实现方法。
摘要由CSDN通过智能技术生成
声明:

本文以及代码纯属原创,转载或翻译请标明本文出处以及作者。

废话不多说,开始

注:如果只想要代码可以去文末看

效果:

进度条效果未完成
下面是进度条走完以后
进度条效果已完成
原理简单,就是通过几个for循环,不断刷新屏幕,最终走完进度条
为了证明这串代码可以直接复制粘贴使用,下面是代码图片(文本型代码最后有):
一片绿
一片绿,舒服吧?!

代码分解

定义(声明一下讲解中的一些用语的意思)
大循环x:

指最外面的循环,例如下图,我们就称下面有:大循环i 与 大循环x

int main(){

for(int i = 1; i <= 50; i++){

	for(int j = 1; j <= 50; j++){
	}
	for(int m = 1; m <= 50; m++){
		for(int n = 1; n <= 50; n++){
		}
	}


}//此处是“for(int i = 1; i <= 50; i++)”的大括号


for(int x = 1; x <= 50; x++){


	for(int y = 1; y <= 50; y++){
	}
	for(int z = 1; z <= 50; z++){
		for(int a = 1; a <= 50; a++){
		}
	}


}//此处是“for(int x = 1; x <= 50; x++)”的大括号


}//此处是“main”的大括号
小循环m:

指大循环里的循环,例如下图,我们就称下面有:小循环j 、小循环m 与小循环n

int main(){

for(int i = 1; i <= 50; i++){

	for(int j = 1; j <= 50; j++){
	}//此处是“for(int j = 1; j <= 50; j++)”的大括号
	for(int m = 1; m <= 50; m++){
		for(int n = 1; n <= 50; n++){
		}//此处是“for(int n = 1; n <= 50; n++)”的大括号
	}//此处是“for(int m = 1; m <= 50; m++)”的大括号


}//此处是“main”的大括号
导入文件,定义变量等初始化操作
#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<ctime>
#include<windows.h>
#include<string>
#include<cstdio>
#include<conio.h>
#include<string>
//其实我也不知道上面的哪些有用哪些没用,因为这个进度条是在一个程序里写的,这个只是功能之一
using namespace std;
//变量定义:
int time;//指每2%需要的时间 单位为毫秒 1000毫秒=1秒
int j;//每一次清屏后打印i个“=” 其中i是进度条总程序循环的次数
//===============此处省略int main()===============
system("color 1f");//设置颜色,可以自己改
变量用处讲解:
time:

指每2%需要的时间 单位为毫秒 1000毫秒=1秒

j:

每一次清屏后打印i个“=” 其中i是进度条总程序循环的次数

system(“color 1f”):

设置颜色,可以自己改,遵循cmd中的color命令用法,如下图:
color命令用法
第一个对应于背景(就是源程序中的蓝色,上面的图片中的黑色),第二个对应于前景(源程序以及上面的图片中的白色)。每个数字可以为以下任何值:

0 = 黑色       8 = 灰色
1 = 蓝色       9 = 淡蓝色
2 = 绿色       A = 淡绿色
3 = 浅绿色     B = 淡浅绿色
4 = 红色       C = 淡红色
5 = 紫色       D = 淡紫色
6 = 黄色       E = 淡黄色
7 = 白色       F = 亮白色

例如:color 9a
就是像这样的:color 9a示例

主程序:
for (int i = 1; i <= 50; i++) {
		system("cls");//持续刷新(清空屏幕)
		//因为每一次都会清空屏幕,才会有下面的内容
		for (j = 1; j <= i; j++) {
			printf("=");


		}
		for (int m = 1; m <= 50 - j; m++) {//打印空格
			printf(" ");
		}
for (j = 1; j <= i; j++)

for (j = 1; j <= i; j++) {
printf(“=”);
}
大循环i每循环一次,就打印i个“=”
(有这个命令是因为前面的system(“cls”);会清空屏幕)
如果缺失小循环j,你将只能看到<5个的等于号
这是为了后面打印“|”做好准备

for (int m = 1; m <= 50 - j; m++)

for (int m = 1; m <= 50 - j; m++) {//打印空格
printf(" ");
}
因为大循环一共循环50次,所以大循环i每循环一次,就打印50-j个“=”
(有这个命令也是因为前面的system(“cls”);会清空屏幕)

辅助程序:
cout << "|" << 2 * i << "%";//输出界面让用户知道进度条走到哪里结束以及显示百分比
Sleep(time);//延时,防止程序一下子运行完
cout << “|” << 2 * i << “%”;

前半部分 cout << "|"在前面的小循环m打印50-j个空格后输出一个|,提示用户进度条走到哪里会结束,后半部分 << 2 * i << “%”;其中的“2i”是因为每走2%才多打印一个“=”,i又表示大循环的循环次数(也就是等于号的个数)所以乘2以后正好可以是在2i=100时结束,后半部分“%”没啥好说的,就是为了好看,毕竟程序可能不止给你自己用,你能看懂,别人可能看不懂。

源代码:

#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<ctime>
#include<windows.h>
#include<string>
#include<cstdio>
#include<conio.h>
#include<string>
using namespace std;
//变量定义:
int time;//指每2%需要的时间
int j;
int main()
{
	system("color 1f");//设置颜色,可以自己改

	for (int i = 1; i <= 50; i++) {
		system("cls");//持续刷新

		for (j = 1; j <= i; j++) {
			printf("=");


		}
		for (int m = 1; m <= 50 - j; m++) {//打印空格
			printf(" ");
		}
		cout << "|" << 2 * i << "%";//输出界面让用户知道进度条走到哪里结束以及显示百分比
		Sleep(time);
	}
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条会编程的活鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值