C/C++,定时关机代码和取消定时关机(应用范畴)

文章及代码的声明

代码支持C语言和C++。
代码仅在VC++中测试过,vs能否运行上不知道,但是用户可以根据适量的修改从而达到在多个平台上运行这些代码的功能。

文章仅供朋友们参考借鉴,若是有自己的看法,可以在评论区写出来。
欢迎大家留言讨论。

最后还是希望大家能够点个赞,如果喜欢我作品的朋友可以点个关注哟。

视频展示:

展示

资源下载链接:

点击蓝色字前往下载
老规矩,我的粉丝可以免费下载哦。> ^ _ ^ <
提示:资源中不仅包含源代码,还包含可以直接使用的可执行性文件哦。

定时关机

该代码比较长,我们分为多个环节给朋友们进行讲解,希望大家在学习中能够有所提升。

1、接收用户输入的函数:
int GetCommand( void )
{
	int back = -1;		//定义返回变量。

	switch( _getch() )
	{
	case 'W':
	case 'w':
		back = 1;		//表示向上
		break;

	case 'S':
	case 's':
		back = 2;		//表示向下
		break;

	case '\r':
		back = 3;		//表示确定
		break;

	default :
		break;

	}

	return (back);
}

该模块用于接收用户的输入,并将用户输入的按键以1、2、3的形式返回给主函数。
定义返回变量back初始值为-1,若是用户的输入为不合法输入,那么该函数的返回值为-1,可以提醒后续程序是否进行处理。

2、打印函数
int Print( int command )
{
	static char ch[20];
	static int Pointer = 0;		//光标初始位置
	static int time = 0;			//计数该函数运行次数

	time++;				//表示该函数运行次数加一。

	if( 1 == time )			//if里面的语句只在该函数第1次运行时及运行。
	{
		int temp;
		for( temp = 0 ; temp < 20 ; temp++ )
		{
			ch[temp] = ' ';
		}
		ch[0]  = '-';
		ch[10] = '>';
	}

	if( -1 != command )
	{
		ch[Pointer] = ' ';					//清除上一次的光标
		ch[Pointer + 10] = ' ';

		Pointer = DealWith( command , Pointer );		//移动光标

		ch[Pointer] = '-';					//定义新的光标的位置
		ch[Pointer + 10] = '>';
	}

	system("cls");
	printf("\t\t\t          请选择定时关机的时间		\n");
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c2分钟			  \n\n",ch[0],ch[10]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c5分钟			  \n\n",ch[1],ch[11]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c10分钟			  \n\n",ch[2],ch[12]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c30分钟		      \n\n",ch[3],ch[13]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c60分钟			  \n\n",ch[4],ch[14]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c2小时			  \n\n",ch[5],ch[15]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c3小时		      \n\n",ch[6],ch[16]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c5小时			  \n\n",ch[7],ch[17]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c9小时			  \n\n",ch[8],ch[18]);
	printf("\t\t\t====================================\n\n");
	printf("\t\t\t               %c%c12小时			  \n\n",ch[9],ch[19]);

	printf("\t\t\t提示1:请将输入模式改为英文模式哦。\n");
	printf("\t\t\t提示2:按W表示向上,按S表示向下。\n");

	return 0;
}

该函数灵活运用static变量使计算机的运算速度大大提升。
在函数中使用了一个DealWith的函数,用于因用户的输入而被改变的图像信息。

处理函数

紧接上方的打印函数,该函数拥有处理用户输入信息的能力,同时也可以转到最后的关机函数中。

int DealWith( int command , int Pointer )		//处理用户输入。
{
	if( 1 == command && 0 == Pointer )		//处理特殊情况。
	{
		Pointer = 9;
	}
	else if( 1 == command )
	{
		Pointer--;				//指针下移
	}

	if( 2 == command && 9 == Pointer )		//处理特殊情况。
	{
		Pointer = 0;
	}
	else if( 2 == command )
	{
		Pointer++;			//指针上移
	}

	if( 3 == command )
	{
		ShutDown( Pointer );		//实现关机函数
	}

	return ( Pointer );
}

该函数使用了ShutDown函数。
这个函数可以实现计算机的定时关机。

关机函数

该函数也是最重要的一个部分,其中部分函数定义在windows.h的头文件中

int ShutDown( int Pointer )				//关机函数。
{
	switch( Pointer )
	{
	case 0:
		system("shutdown -s -t 120");
		break;
	case 1 :
		system("shutdown -s -t 300");
		break;

	case 2 :
		system("shutdown -s -t 600");
		break;

	case 3 :
		system("shutdown -s -t 1800");
		break;

	case 4 :
		system("shutdown -s -t 3600");
		break;

	case 5 :
		system("shutdown -s -t 7200");
		break;

	case 6 :
		system("shutdown -s -t 10800");
		break;

	case 7 :
		system("shutdown -s -t 18000");
		break;

	case 8 :
		system("shutdown -s -t 32400");
		break;

	case 9 :
		system("shutdown -s -t 43200");
		break;
	}

	exit(0);				//用于退出程序
	return 0;
}

取消定时关机

要是朋友们一不小心点错了定时关机的时间,那么应该怎么办呢?我还写了这么一个程序来帮助大家。

#include<windows.h>

int main( int argc , char *argv[] )
{
	system("shutdown -a ");
	system("pause");

	return 0;
}

博主是一位大一的朋友。 C语言和C++都是自学的,希望能够和朋友们一起进步,如果大家对我的代码有问题或者疑惑,可以在下方评论区打出来哟。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值