文章及代碼的宣告
代碼支持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++都是自學的,希望能夠和朋友們一起進步,如果大家對我的代碼有問題或者疑惑,可以在下方評論區打出來喲,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250216.html
標籤:其他
上一篇:微積分基本概念
下一篇:2021 1.16
