找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2667|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言程序-鬧鈴

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71922 發(fā)表于 2015-1-11 01:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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;
    }

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表