zoukankan      html  css  js  c++  java
  • 周末练习

    1.项目名称:时光飞逝
            happy newyear!

    2.项目描述:
         根据用户输入的年月日 时分秒,计算出下一秒并输出。
    3.项目分析
    3.1 保存用户的输入
         定义六个变量去接收用户的输入
        int year,month,day,hour,minute,seconds;
            年   月 日 小时  分  秒

    3.2  计项下一秒
        seconds++;
    4.项目架构
        C语言项目中 ->函数是主体
    4.1主要模块:
        (1)接收用户的输入
        (2)计算
                每个月的天数不定相同
                闰年和平年中2月的天数不一样
                当秒数满60,分钟满60等等
    4.2模块的设计
        (1)输入模块的设计
                input()
        (2)计算模块
            void nextSecond();
        (3)计算出每个月对应的天数
            int dayMonth();
        (4)是否润年来确定二月的天数。
       int isRuiNian(int year);
        (5)主函数
                int main();
    5.编写代码
        根据设计去编写代码
    6.测试

      1 #include<stdio.h>
      2 /*============================================== *
    名称:时光飞逝 功能:无
    3 *日期:2013-05-11 by:ant 4 *备注:根据用户输入的年月日 时分秒,计算出下一秒并输出 5 *============================================= */ 6 //void input();//用户输入,放main函数中实现。 7 //===================函数的显示声明================================= 8 int nextDay(int arr[6]);//计算下一秒: 9 int dayMonth(int year,int month);//计算出每个月对应的天数 10 int isRuinNian(int year);//是否润年来判数2月的天数,1是,0否 11 //==================================================================== 12 int main() 13 { 14 int next_is=0; 15 int arr[6]={0,1,2,3,4,5}; 16 int year,month,day,hour,minute,seconds; 17 printf("请输入一个日期,格式为:1999 9 9 13 20 50\n"); 18 scanf("%d%d%d%d%d%d",&year,&month,&day,&hour,&minute,&seconds); 19 printf("你输入的日期为:%d年%d月%d日%d时%d分%d秒\n",year,month,day,hour,minute,seconds); 20 arr[0]=year;arr[1]=month;arr[2]=day;arr[3]=hour;arr[4]=minute,arr[5]=seconds; 21 next_is = nextDay(arr); 22 printf("你输出的日期为:%d年%d月%d日%d时%d分%d秒\n",arr[0],arr[1],arr[2],arr[3],arr[4],arr[5]); 23 printf("是否进位天的结果是:%d\n",next_is); 24 } 25 /*功能:如果需进位天数返回1,否则为0,参数为数组,返回下一秒 26 *说明:秒到59分进1,否则秒++,分时雷同,时大于23时清零并向天数进位 */ 27 int nextDay(int arr[6])//计算下一天 28 { 29 int ret=0; 30 int hour=arr[3],minute=arr[4],second=arr[5],year=arr[0],month=arr[1],day=arr[2]; 31 if(second==59)//如果秒为59向分进位 32 { 33 minute++;//分加1 34 second = 0;//秒清零 35 }else 36 { 37 second++; 38 } 39 if(minute >= 59) 40 { 41 hour++;//小时加1 42 minute = 0;//分钟清零 43 } 44 if(hour >= 23) 45 { 46 hour = 0;//小时清零 47 day++;//要求天数进位 48 } 49 if(day>=dayMonth(year,month))//如果进位时天数等于本月最大天数 50 { 51 day = 1;//天数清零 52 month++;//要求月进位 53 } 54 if(month>=12)//月份己满 55 { 56 month = 1; 57 year++; 58 } 59 printf("这是textDay函数打印的输出%d年%d月%d日%d时%d分%d秒\n",year,month,day,hour,minute,second); 60 arr[0] = year; 61 arr[1] = month; 62 arr[2] = day; 63 arr[3] = hour; 64 arr[4] = minute; 65 arr[5] = second; 66 return ret; 67 } 68 /*================判断是否为润年是返回1,否则返回0========================*/ 69 int isRuinNian(int year)//是否润年来判数2月的天数,1是,0否 70 { 71 if(year % 4 == 0 || year % 400 ==0 && year % 100 !=0) 72 { 73 return 1;//是润年 74 }else 75 { 76 return 0;//不是润年 77 } 78 } 79 int dayMonth(int year,int month)//计算出每个月对应的天数 80 { 81 int dayNum;//该月的天数 82 switch(month) 83 { 84 //31天的月份 85 case 1: 86 case 3: 87 case 5: 88 case 7: 89 case 8: 90 case 10: 91 case 12: 92 dayNum = 31; 93 break; 94 //30天的月份 95 case 4: 96 case 6: 97 case 9: 98 case 11: 99 dayNum = 30; 100 break; 101 //特殊的二月份的处理 102 case 2: 103 dayNum = 28 + isRuinNian(year);//润年加一天否则28天 104 break; 105 default: 106 printf("由函数报错:你输入的月份不正常"); 107 return 0; 108 } 109 return dayNum; 110 }
  • 相关阅读:
    Python 存储引擎 数据类型 主键
    Python 数据库
    Python 线程池进程池 异步回调 协程 IO模型
    Python GIL锁 死锁 递归锁 event事件 信号量
    Python 进程间通信 线程
    Python 计算机发展史 多道技术 进程 守护进程 孤儿和僵尸进程 互斥锁
    Python 异常及处理 文件上传事例 UDP socketserver模块
    Python socket 粘包问题 报头
    Django基础,Day7
    Django基础,Day6
  • 原文地址:https://www.cnblogs.com/fanghui/p/3099080.html
Copyright © 2011-2022 走看看