找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2680|回复: 0
打印 上一主题 下一主题
收起左侧

C语言程序-闹铃

[复制链接]
跳转到指定楼层
楼主
ID:71922 发表于 2015-1-11 01:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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è豬】设计的程序~~");
printf("*******************************************************************************");
printf("\n\n\n\t\t\t\t【 说 明 】");
printf("\n\n\n\t手机摔坏了,唯一能看到时间的就只有电脑了......");
printf("\n\n\t郁闷,又要上班,没闹钟很麻烦,设计这个小程序玩玩......");
printf("\n\n\t可惜的是不能实现自动开机,不过它的作用不仅仅局限于闹钟......");
printf("\n\n\t嘿嘿,这是值得欣慰地方,不过这个程序对于时间会有些小误差......");
printf("\n\n\t是因为执行判断命令时也会需要花费几ms,对于我的要求,觉得无所谓啦......");
printf("\n\n\t精确到分钟,最低也需要1分钟,有时间再把它精确到秒吧,哈!蛮有成就感的..");
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  设计\n\n");
    printf("*******************************************************************************");
system("pause");
system("cls");
    dongzuo();
   printf("\n请输入闹铃时间(分钟):");
   scanf("%d",&a);
naoling(a);
strcpy(ll,"\"");
strcat(ll,lj);
strcat(ll,"\"");
printf("【懒猪!时间到!该刷牙洗脸骑着破电动去上班啦...】\n\n\a\a\a");
system(ll); // 执行用户指定的程序、音乐或命令
puts("");
system("pause");
    }

/***********************/
/*-------倒计时------*/
/***********************/   
int naoling(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("闹铃动作.txt","w"))==NULL)
    puts("无法写入动作");
    else
    {
        fputs("请将要运行的程序或音乐的绝对路径复制到这里,覆盖这行字并保存(支持DOS命令)...",fp);
        fclose(fp);
        system("闹铃动作.txt");   
           }
           
    if((fp=fopen("闹铃动作.txt","r"))==NULL)
    puts("无法读取动作");
    else
    {
       fscanf(fp,"%[^\n]",lj); // 为什么不写%s 而写%[^\n]是因为让fscanf()函数可以读取空格并写入文件 \n :代表空格
       fclose(fp);
       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();         
    }  
}

/***********************/
/*-------判断输入------*/
/***********************/
char xuanze(char yy)
{
    for(;;)
     {
     fflush(stdin);  // 清除一个流...避免让scanf()函数失效  (这个问题让我头疼N久...)
     scanf("%c",&yy);
     if(yy!='y'&&yy!='n'&&yy!='Y'&&yy!='N')
     {
     printf("\n输入错误,请重新输入:\a");
     continue;
     }
     else
     break;
     }
     return yy;
    }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表