首先附上代码:
#include<stdlib.h>
#include<windows.h>
#include<stdio.h>
#define MAX 75
int main()
{
int loc,i,j;//档位,分钟计时器,分割线变量
float spd,end,now,left_time,bar;//run speed,预设温度,现在的温度,剩下的时间,进度条
float begin = 20.0;//室内温度预设为20
printf("--------------------------------------------------------------\n");
printf("--- ANM 牌电热水器 ---\n");
printf("--- 容量:50L ---\n");
printf("--- 最高水温:75℃ ---\n");
printf("--- 额定电压:220V/50HZ ---\n");
printf("--- 额定功率:3000W ---\n");
printf("--------------------------------------------------------------");
printf("\n\n\n请按任意键继续...");
getchar();
system("cls");
while(1)
{
printf("\n\n\n\n\n请输入预设温度 ");
scanf("%f",&end);
if(end <= MAX)
break;
else
{printf("\n最大预设温度为75℃,请重新输入");Sleep(1000);system("cls");}
}
printf("\n请选择您使用的档位:\n\n");
printf("1-->800W,2-->1200W,3-->2000W\t");
scanf("%d",&loc);
printf("\n\n正在启动...");
Sleep(2000);
switch(loc)
{
case 1:spd = 1.0/3.0;break;
case 2:spd = 0.5;break;
case 3:spd = 1.0;break;
}
Sleep(2000);
for(i=2;(float)(i-2)*spd<(end-begin);i+=2)
{
left_time=(end-begin)/spd-(float)i;
now = begin+spd*(float)i;
bar=((now-begin)/(end-begin))*100;
if(left_time<=0.0)
{
left_time=0.0;
now=end;
bar=100.0;
}
system("cls");
printf("\n\n\n\n\n\t\t时间还剩%5.0f分钟:\n",left_time);
printf("\t\t现在的温度是%5.0f℃\n",now);
for(j=0;j<i;j++)
{
printf("-");
}
printf("%5.0f%%",bar);
Sleep(100);
}
printf("\t加热完成");
return 0;
}
现附上运行结果:
进入页面:
输入界面:
对define中边界值max的判断:
加热进行中:(此处可跳过,此处每次执行时间sleep设为100ms,读者可自行更改)
加热完毕界面:
建议可再将初始界面以函数调用,格式化输出,或调用微软MFC或者头文件<windows.h>及显示文件stdafx.h写成界面窗口,不过除了vs,其他软件需自行加入stdafx.h头文件,百度即可。
有问题可以在下面提出来,作者会尽快解决。一起进步!