欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
C語言作品 定時小工具(修正雙引號問題)
[打印本頁]
作者:
liuyuxi
時間:
2015-1-11 01:49
標題:
C語言作品 定時小工具(修正雙引號問題)
升級版 -> 定時小工具
再程序提示輸入文件路徑時輸入:Love 夢想 可以得到源代碼
升級版程序下載地址:
定時小工具
舊版源代碼
===================================================
===================================================
首次采用彈窗~~~~
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <unistd.h>
int nl(int a),nll(int a); // 【nl(int a)】 Sleep方式函數 【nll(int a)】 time_t方式函數
char xuanze(char yy); // 判斷輸入選擇函數
int dongzuo(),jilu(),fs(); //【dongzuo()】 讀取用戶指定運行動作函數 【jilu()】記錄文件函數 【fs()】選擇計時方式函數
char ll[130]={0},lj[100]={0},file[]="鬧鈴動作.txt",kk[]="請將要運行的程序或音樂的絕對路徑復制到這里,覆蓋這行字并保存(支持DOS命令)...";
int main()
{
system("COLOR 0a");
system("title 歡迎使用由【遲、鈍dè豬】設計的程序~~");
printf("*******************************************************************************");
printf("\n\n\t\t\t\t【 說 明 】");
printf("\n\n\t可惜的是不能實現自動開機,不過它的作用不僅僅局限于鬧鐘......");
printf("\n\n\t嘿嘿,這是值得欣慰地方,提供兩種記時方式,以減少時間誤差......");
printf("\n\n\t【Sleep】記時方式是讓程序暫停運行,暫停時間由用戶指定的時間......");
printf("\n\n\t【time_t】方式記時方式是讓程序不斷讀取時間差是否等于用戶指定的時間...");
printf("\n\n\t精確到分鐘,最低也需要1分鐘,有時間再把它精確到秒吧,O(∩_∩)O~.......");
printf("\n\n\t最后感謝【藍雨森林】QQ:000000......");
printf("\n\n\t解決了讓我郁悶了很久的重復使用scanf()函數無法中斷程序等待用戶輸入問題..");
printf("\n\n\t\t\t\t\t\t遲、鈍dè豬 QQ:0000000000\n\n");
printf("\t\t\t\t\t\t2010年12月25日 0:11 設計\n\n");
printf("*******************************************************************************");
system("pause");
system("cls");
printf("\n\n\a【請注意彈出的對話框,有可能會隱藏在程序界面的背后...】");
jilu();// 判斷、讀取記錄文件函數
dongzuo(); // 調用記錄用戶指定函數
fs(); // 計時方式選擇函數
}
/*********************************/
/*-------【計時方式選擇】------*/
/********************************/
int fs()
{
int a;
if((MessageBox(0,"【Y】Sleep 方式記時 [無倒計時提示,誤差較小]\n\n【N】time_t方式記時 [有倒計時提示,誤差較大]","選擇記時方式",MB_YESNO))==6)
{
system("title 歡迎使用由【遲、鈍dè豬】設計的程序~~【Sleep方式記時】");
printf("\n請輸入鬧鈴時間(分鐘):");
scanf("%d",&a);
nl(a);
}
else
{
system("title 歡迎使用由【遲、鈍dè豬】設計的程序~~【time_t方式記時】");
printf("\n請輸入鬧鈴時間(分鐘):");
scanf("%d",&a);
nll(a);
}
strcpy(ll,"\"");
strcat(ll,lj);
strcat(ll,"\"");
printf("【懶豬!時間到!該刷牙洗臉騎著破電動去上班啦...】\n\n\a\a\a");
system(ll); // 執行用戶指定的程序、音樂或命令
system("pause');
exit(0);
}
/*********************************/
/*-------【Sleep方式記時】------*/
/********************************/
int nl(int a)
{
a*=60000; // 將毫秒轉換為分鐘
printf("\n【已進入倒計時鬧鈴!】\n\n");
Sleep(a); // 中斷程序,等待用戶指定的時間后返回主函數
}
/**********************************/
/*-------【time_t方式記時】------*/
/*********************************/
int nll(int a)
{
time_t start,end;
int v,d=1,i=60,h=1;
a*=60;// 轉化為分鐘 1分鐘=60秒
printf("\n【已進入倒計時鬧鈴!】\n\n");
start=time(NULL);// 開始記錄時間并賦值給變量start
printf("距離鬧鈴時間還剩【%d】分鐘\n\n",a/60-d);
for(;;)
{
end=time(NULL);// 結束記錄時間并賦值給變量end
if((difftime(end,start))==a)// 如果開始記錄的時間到結束記錄的時間等于指定的時間 則跳出循環
break;
else // 否則
{
if((difftime(end,start))==i) // 如果開始記錄的時間到結束記錄的時間等于i=60=1分鐘 則顯示剩余時間
{
v=a/60-1-d;
if(h==1)// 設定h 控制每分鐘只顯示一次提示信息
{
printf("距離鬧鈴時間還剩【%d】分鐘\n\n",v);
h=0;
}
}
else if((difftime(end,start))>i) // 控制每分鐘都會有顯示
{
h=1;
i+=60;//記錄分鐘
d++;//記錄秒
}
}
}
}
/**************************************/
/*-------記錄用戶指定文件或命令------*/
/*************************************/
int dongzuo()
{
FILE *fp;
char r;
if((fp=fopen(file,"w"))==NULL)
MessageBox(0,"無法寫入動作文件","提示",MB_OK);
else
{
fputs(kk,fp);
fclose(fp);
system(file);
}
if((fp=fopen(file,"r"))==NULL)
puts("無法讀取動作");
else
{
fscanf(fp,"%[^\n]",lj); // 不寫%s 而寫%[^\n]是因為讓fscanf()函數可以讀取空格并寫入文件 \n :代表空格
fclose(fp);
if((strcmp(lj,kk))==0)
{
MessageBox(0,"程序未檢測到你輸入了程序、音樂的絕對路徑或DOS命令","注意",MB_OK);
dongzuo();
}
printf("\n\n你輸入了這行路徑或Dos命令:\n\n【%s】\n\n",lj);
printf("【提示:當時間到了程序會自動運行上面的程序、音樂或命令...】\n\n");
printf("確認以上的路徑或Dos命令嗎?(Y/N):");
r=xuanze(r);
if(r=='N'||r=='n')dongzuo();
if((MessageBox(0,"是否保存此記錄以供下次使用?","提示",MB_YESNO))==6)
MessageBox(0,"如果需要更改運行的程序、音樂或命令,可以刪除本目錄下的【鬧鈴動作.txt】\n\n或直接更改里面程序、音樂的絕對路徑或命令......","提示",MB_OK);
else
unlink(file);
}
}
/***********************/
/*-------判斷輸入------*/
/***********************/
char xuanze(char yy)
{
for(;;)
{
scanf("%c",&yy);
fflush(stdin); // 清除一個流...避免重復使用scanf()函數是無法中斷程序等待用戶輸入 (這個問題讓我頭疼N久...)
if(yy!='y'&&yy!='n'&&yy!='Y'&&yy!='N')
{
printf("\n輸入錯誤,請重新輸入:\a");
continue;
}
else
break;
}
return yy;
}
/***********************/
/*-------歷史記錄------*/
/***********************/
int jilu()
{
FILE *fp;
if((fp=fopen(file,"r"))==NULL);
else
{
printf("\n\n\t發現記錄文件,正在讀取記錄文件...");
fscanf(fp,"%[^\n]",lj); // 為什么不寫%s 而寫%[^\n]是因為讓fscanf()函數可以讀取空格并寫入文件 \n :代表空格
fclose(fp);
printf("\n\n路徑或Dos命令為:\n\n【%s】\n\n",lj);
printf("【提示:當時間到了程序會自動運行上面的程序、音樂或命令...】\n\n");
fs();
}
}
復制代碼
下載程序:
dsxgj-v1.0.zip
(14.93 KB, 下載次數: 6)
2015-1-11 01:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1