打印
[经验分享]

(转)C语言程序-闹铃

[复制链接]
894|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shashaa|  楼主 | 2016-3-13 20:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#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;
    }
沙发
qiangweii| | 2016-3-13 20:23 | 只看该作者
这程序运行成功的了吗?要是有硬件电路图就好了。。。

使用特权

评论回复
板凳
litengg| | 2016-3-13 20:27 | 只看该作者
看看,貌似程序并不完整啊

使用特权

评论回复
地板
androidbus| | 2016-3-13 20:37 | 只看该作者
看看,大概还是能懂的,多谢楼主分享哈O(∩_∩)O哈!

使用特权

评论回复
5
feiqi1| | 2016-3-13 20:45 | 只看该作者
printf("\n\n你输入了这行路径或Dos命令:\n\n【%s】\n\n",lj);
printf("【提示:当时间到了程序会自动运行上面的程序、音乐或命令...】\n\n");
printf("确认以上的路径或Dos命令吗?(Y/N):")
……这么多。。

使用特权

评论回复
6
shashaa|  楼主 | 2016-3-13 21:09 | 只看该作者
qiangweii 发表于 2016-3-13 20:23
这程序运行成功的了吗?要是有硬件电路图就好了。。。

这个 我也不是很清楚,您可以试试看呢

使用特权

评论回复
7
shashaa|  楼主 | 2016-3-13 21:10 | 只看该作者
feiqi1 发表于 2016-3-13 20:45
printf("\n\n你输入了这行路径或Dos命令:\n\n【%s】\n\n",lj);
printf("【提示:当时间到了程序会自动运行 ...

恩  多点我觉得会清楚些吧...

使用特权

评论回复
8
handleMessage| | 2016-3-13 21:26 | 只看该作者
其实,只看程序本身还是挺简单的,就是不知道电路设计是什么样子的??

使用特权

评论回复
9
qiangweii| | 2016-3-23 22:19 | 只看该作者
shashaa 发表于 2016-3-13 21:09
这个 我也不是很清楚,您可以试试看呢

好吧,多谢了

使用特权

评论回复
10
Brand2| | 2016-3-30 10:41 | 只看该作者
带  printf,是不是带屏显的

使用特权

评论回复
11
feiqi1| | 2016-4-6 23:07 | 只看该作者
shashaa 发表于 2016-3-13 21:10
恩  多点我觉得会清楚些吧...

是这样的么??

使用特权

评论回复
12
bbapple| | 2016-4-9 11:16 | 只看该作者
请将要运行的程序或音乐的绝对路径复制到这里,覆盖这行字并保存(支持DOS命令)...

使用特权

评论回复
13
sourceInsight| | 2016-4-9 14:39 | 只看该作者
这个程序看上去还挺简单的。

使用特权

评论回复
14
boy1990| | 2016-4-9 15:27 | 只看该作者
学习一下楼主的写法

使用特权

评论回复
15
CallReceiver| | 2016-4-9 16:35 | 只看该作者
  if((difftime(end,start))==i) // 如果开始记录的时间到结束记录的时间等于i=60=1分钟 则显示剩余时间

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

1494

帖子

6

粉丝