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 }
  • 相关阅读:
    Apache mod_rewrite
    vim 常用设置
    ssh 和 scp 命令访问非默认22端口。
    gulp常用插件
    gulp+Babel 搭建ES6环境
    ES6类与模块
    Autoprefixer处理CSS3属性前缀
    js模块方案
    ES6转码器babel的使用
    window.history.pushState与ajax实现无刷新更新页面url
  • 原文地址:https://www.cnblogs.com/fanghui/p/3099080.html
Copyright © 2011-2022 走看看