|
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
int naoling(int a);
char xuanze(char yy);
int dongzuo();
char ll[130]={0},lj[100]={0};
int main()
{
int a;
system("COLOR 0a");
system("title 歡迎使用由【遲、鈍dè豬】設(shè)計(jì)的程序~~");
printf("*******************************************************************************");
printf("\n\n\n\t\t\t\t【 說(shuō) 明 】");
printf("\n\n\n\t手機(jī)摔壞了,唯一能看到時(shí)間的就只有電腦了......");
printf("\n\n\t郁悶,又要上班,沒(méi)鬧鐘很麻煩,設(shè)計(jì)這個(gè)小程序玩玩......");
printf("\n\n\t可惜的是不能實(shí)現(xiàn)自動(dòng)開(kāi)機(jī),不過(guò)它的作用不僅僅局限于鬧鐘......");
printf("\n\n\t嘿嘿,這是值得欣慰地方,不過(guò)這個(gè)程序?qū)τ跁r(shí)間會(huì)有些小誤差......");
printf("\n\n\t是因?yàn)閳?zhí)行判斷命令時(shí)也會(huì)需要花費(fèi)幾ms,對(duì)于我的要求,覺(jué)得無(wú)所謂啦......");
printf("\n\n\t精確到分鐘,最低也需要1分鐘,有時(shí)間再把它精確到秒吧,哈!蠻有成就感的..");
printf("\n\n\n\t\t\t\t\t\t遲、鈍dè豬 QQ:1000000002\n\n");
printf("\t\t\t\t\t\t2010年12月25日 0:11 設(shè)計(jì)\n\n");
printf("*******************************************************************************");
system("pause");
system("cls");
dongzuo();
printf("\n請(qǐng)輸入鬧鈴時(shí)間(分鐘):");
scanf("%d",&a);
naoling(a);
strcpy(ll,"\"");
strcat(ll,lj);
strcat(ll,"\"");
printf("【懶豬!時(shí)間到!該刷牙洗臉騎著破電動(dòng)去上班啦...】\n\n\a\a\a");
system(ll); // 執(zhí)行用戶指定的程序、音樂(lè)或命令
puts("");
system("pause");
}
/***********************/
/*-------倒計(jì)時(shí)------*/
/***********************/
int naoling(int a)
{
time_t start,end;
int v,d=1,i=60,h=1;
a*=60;// 轉(zhuǎn)化為分鐘 1分鐘=60秒
printf("\n【已進(jìn)入倒計(jì)時(shí)鬧鈴!】\n\n");
start=time(NULL);// 開(kāi)始記錄時(shí)間并賦值給變量start
printf("距離鬧鈴時(shí)間還!%d】分鐘\n\n",a/60-d);
for(;;)
{
end=time(NULL);// 結(jié)束記錄時(shí)間并賦值給變量end
if((difftime(end,start))==a)// 如果開(kāi)始記錄的時(shí)間到結(jié)束記錄的時(shí)間等于指定的時(shí)間 則跳出循環(huán)
break;
else // 否則
{
if((difftime(end,start))==i) // 如果開(kāi)始記錄的時(shí)間到結(jié)束記錄的時(shí)間等于i=60=1分鐘 則顯示剩余時(shí)間
{
v=a/60-1-d;
if(h==1)// 設(shè)定h 控制每分鐘只顯示一次提示信息
{
printf("距離鬧鈴時(shí)間還剩【%d】分鐘\n\n",v);
h=0;
}
}
else if((difftime(end,start))>i) // 控制每分鐘都會(huì)有顯示
{
h=1;
i+=60;//記錄分鐘
d++;//記錄秒
}
}
}
}
/**************************************/
/*-------記錄用戶指定文件或命令------*/
/*************************************/
int dongzuo()
{
FILE *fp;
char r;
if((fp=fopen("鬧鈴動(dòng)作.txt","w"))==NULL)
puts("無(wú)法寫(xiě)入動(dòng)作");
else
{
fputs("請(qǐng)將要運(yùn)行的程序或音樂(lè)的絕對(duì)路徑復(fù)制到這里,覆蓋這行字并保存(支持DOS命令)...",fp);
fclose(fp);
system("鬧鈴動(dòng)作.txt");
}
if((fp=fopen("鬧鈴動(dòng)作.txt","r"))==NULL)
puts("無(wú)法讀取動(dòng)作");
else
{
fscanf(fp,"%[^\n]",lj); // 為什么不寫(xiě)%s 而寫(xiě)%[^\n]是因?yàn)樽宖scanf()函數(shù)可以讀取空格并寫(xiě)入文件 \n :代表空格
fclose(fp);
printf("\n\n你輸入了這行路徑或Dos命令:\n\n【%s】\n\n",lj);
printf("【提示:當(dāng)時(shí)間到了程序會(huì)自動(dòng)運(yùn)行上面的程序、音樂(lè)或命令...】\n\n");
printf("確認(rèn)以上的路徑或Dos命令嗎?(Y/N):");
r=xuanze(r);
if(r=='N'||r=='n')dongzuo();
}
}
/***********************/
/*-------判斷輸入------*/
/***********************/
char xuanze(char yy)
{
for(;;)
{
fflush(stdin); // 清除一個(gè)流...避免讓scanf()函數(shù)失效 (這個(gè)問(wèn)題讓我頭疼N久...)
scanf("%c",&yy);
if(yy!='y'&&yy!='n'&&yy!='Y'&&yy!='N')
{
printf("\n輸入錯(cuò)誤,請(qǐng)重新輸入:\a");
continue;
}
else
break;
}
return yy;
}
|
|