实用C(C++)版电脑定时关机软件算法及关键代码
1、 本设计需要借助的是windows的相关指令(比如1000s关机):
shutdown -s -t 1000 //1000秒后自动关机
shutdown -a //取消定时关机

2、 需要明白C(C++)中,引用windows的指令需要如下代码段(比如用代码实现取消关机):
system("shutdown -a");
3、shutdown -s -t 1000 //1000秒后自动关机
shutdown -a //取消定时关机
观察这两段命令可知:它们是以字符串形式放到C(C++)代码段system("");中。
“取消定时关机”:全是字符串,可以全部放入代码段system("");中,;
“1000秒后自动关机”:它是一个“变数”,代码最终实现时,需要根据我们输入的不同时间而发生不同的变化,因此需要将该段指令分为两部分字符串:固定部分“shutdown -s -t ” + 变动部分“second”。到底怎样将这两部分字符串放入到代码段system("");中,我们下一步骤再详细解释。

4、固定部分“shutdown -s -t ” +变动部分“second”:
我们需要处理的是:变动部分“second”,
假设second得到了一个确定的数,此时,只要我们将这两部分的内容进行字符串合并,合并后,就可以放入到system("");中了。
此时,需要用到的代码:
char shut[]="shutdown -s -t "; //左部分红色固定的字符串
system(strcat(shut,second)); //将右部分字符串连接到左部分,并放入到system("");中
注:strcat(a,b);该函数用于实现将字符串b连接到字符串a的后面。 该函数在c++的<cstring>头文件中

5、 而second原本是个int型的数据,要想参与上一步骤的字符串合并,需要先将int型数据转换成字符串的,此时,我们需要用到这个函数:
itoa(second0,second,10);
//second0代表我们输入的任意int型的秒数,将10进制的second0转换为字符串second
注:itoa(a,b,t)请大家前往百度查找具体的使用情况,该函数在c++; 的#include<cstdlib>中

6、 上一步骤中second0是int型的秒数,而我们一般手动输入的都是小时,或者分钟,因此,second0是经过时间换算后的结果。比如:我们需要80分钟后关机,此时代码运算:80*60=4800秒,second0=4800秒,经过转换将second0转换为字符串型的second。
注:建议手动输入设置为分钟数,这样关机时间更灵活些。

1、 通过上面的设计思路和简要代码,大家就可以马上着手敲写完整的代码了
下面我展示一下程序运行时的效果图

2、 输入关机时间示意图:

3、 系统开始执行自动关机示意图:

4、 取消自动关机示意图:
