第十七周 项目五--玩日期时间
来源:互联网 发布:sql server 错误53 编辑:程序博客网 时间:2024/04/28 13:24
问题及代码:
/* *Copyright (C) 2014,烟台大学计算机学院 *All rights reserved. *文件名称 :mian.cpp *作 者 :吴胜男 *完成日期 :2014年12月23日 *版 本 号 :v1.0 * *问题描述 :定义一个表示时间(包括年、月、日、时、分、秒)的结构体,然后完成下面的功能 提示:将各个功能分别设计成函数实现,在main函数中调用,进行测试。可以设计一个函数,即刻进行测试,以降低复杂度。 要实现的功能是: (1)输入一个时间(注意各部分数据的取值范围)将输入的时间保存在一个结构体变量中; (2)输出该日在本年中是第几天(注意闰年问题); (3)输出这是这一天中的第几秒; (4)输出这是这一年中的第几秒;(不要认为这个数荒唐,在计算中需要取随机数时需要一个不会重复的“种子数”,这个秒数是常用的。) (5)求你输入的时间d天后是哪年哪月哪日,将结果保存在一个结构体变量中输出;(你的万天日期靠这个功能了)——插讲一个故事。当年老贺由小孩儿过百日,想到自己的万日在哪天。编程计算,结果刚过了十几天,那个懊恼啊。第二个万日得再等26年多(现在离第二个万日靠近了),第三个万日,谁敢说一定能过上?20岁左右的你,要算清楚了。在第(1)问中输入你的生日及时辰,d值取为10000,可以算出你的万日,大概在26岁多。 (6)求你输入的时间s秒后是何日何时,将结果保存在一个结构体变量中输出; (7)用结构体变量给定两个时间,求相差多少天?相差多少秒?*输入描述 :年,月,日,时,分,秒,要加的天数,要加的秒数*程序输出 :按要求输出*/#include <iostream>using namespace std;struct time1{ int year; int month; int day; int hour; int minite; int second;};struct time2{ int year; int month; int day;};struct time3{ int day; int hour;};time1 stu1;time2 stu2;time3 stu3;int yd(time1 stu1);void ds(time1 stu1);void ys(time1 stu1);void ymd(time2 stu2,int u);void dh(time3 stu3,int p);int sum;//sum是全局变量,在计算一年中的第几秒时用得到。int main( ){ int y,mo,d,h,mi,s,u,p; cout<<"请输入一个时间(年、月、日、时、分、秒):"<<endl; cin>>y>>mo>>d>>h>>mi>>s; stu1.year=y; stu1.month=mo; stu1.day=d; stu1.hour=h; stu1.minite=mi; stu1.second=s; sum=yd(stu1); cout<<"这是本年的第"<<sum<<"天"<<endl; ds(stu1); ys(stu1); cout<<endl; cout<<"请输入天数:"<<endl; cin>>u; ymd(stu2,u); cout<<endl; cout<<"请输入秒数:"<<endl; cin>>p; dh(stu3,p); return 0;}int yd(time1 stu1){ int sum=stu1.day; int i; for(i=1; i<stu1.month; i++) { switch(i) { case 2: { if((stu1.year%4==0&&stu1.year%100!=0)||(stu1.year%400==0)) sum+=29; else sum+=28; } break; case 4: case 6: case 9: case 11: sum+=30; break; default : sum+=31; } } return sum;}void ds(time1 stu1){ int i; i=stu1.hour*60*60+stu1.minite*60+stu1.second; cout<<"这是一天中的第"<<i<<"秒"<<endl;}void ys(time1 stu1){ int i; i=(sum-1)*24*60*60+stu1.hour*60*60+stu1.minite*60+stu1.second; cout<<"这是本年的第"<<i<<"秒"<<endl;}void ymd(time2 stu2,int u){ int m,t,h,n; if(stu1.month==1||stu1.month==3||stu1.month==7||stu1.month==8||stu1.month==10||stu1.month==12) { m=stu1.day+u; if(m>31) { n=m/31; t=n+stu1.month; if(t>=12) { h=t/12; stu2.year=stu1.year+h; stu2.month=t%12; stu2.day=m%31; } else { stu2.year=stu1.year; stu2.month=t; stu2.day=m%31; } } else { stu2.year=stu1.year; stu2.month=stu1.month; stu2.day=stu1.day+u; } } else if(stu1.month==4||stu1.month==6||stu1.month==9||stu1.month==11) { m=stu1.day+u; if(m>30) { n=m/30; t=n+stu1.month; if(t>=12) { h=t/12; stu2.year=stu1.year+h; stu2.month=t%12; stu2.day=m%30; } else { stu2.year=stu1.year; stu2.month=t; stu2.day=m%30; } } else { stu2.year=stu1.year; stu2.month=stu1.month; stu2.day=stu1.day+u; } } else { m=stu1.day+u; if((stu1.year%4==0&&stu1.year%100!=0)||(stu1.year%400==0)) { if(m>29) { n=m/29; t=n+stu1.month; if(t>=12) { h=t/12; stu2.year=stu1.year+h; stu2.month=t%12; stu2.day=m%29; } else { stu2.year=stu1.year; stu2.month=t; stu2.day=m%29; } } else { stu2.year=stu1.year; stu2.month=stu1.month; stu2.day=stu1.day+u; } } else { if(m>28) { n=m/28; t=n+stu1.month; if(t>=12) { h=t/12; stu2.year=stu1.year+h; stu2.month=t%12; stu2.day=m%28; } else { stu2.year=stu1.year; stu2.month=t; stu2.day=m%28; } } else { stu2.year=stu1.year; stu2.month=stu1.month; stu2.day=stu1.day+u; } } } cout<<u<<"天后是"<<stu2.year<<"年"<<stu2.month<<"月"<<stu2.day<<"日"<<endl;}void dh(time3 stu3,int p){ int m,t,n; if((p+stu1.second)>60) { m=(p+stu1.second)/60; m=m+stu1.minite; if(m>=60) { n=m/60; n=n+stu1.hour; if(n>24) { t=n/24; stu3.day=stu1.day+t; stu3.hour=n%24; } else { stu3.day=stu1.day; stu3.hour=n; } } else { stu3.day=stu1.day; stu3.hour=stu1.hour; } } else { stu3.day=stu1.day; stu3.hour=stu1.hour; } cout<<p<<"秒后是"<<stu3.day<<"日"<<stu3.hour<<"时"<<endl;}
运行结果:
知识点总结:多种函数的定义,以及结构体,我不会返回结构体的值,所以在自定义函数中直接输出。
学习心得:这个程序我编了一下午,虽然编出来了但是运行错误,真的感觉好累,特别难过,也许自己就是抗打击能力特别差。不想发牢骚,可是不发牢骚,老觉得心里不平衡,到最后还是得复制粘贴别人的,唉~~~
0 0
- 第十七周 项目五:玩日期时间
- 第十七周项目五:玩日期时间
- 第十七周 项目五--玩日期时间
- 第十七周项目五 玩日期时间
- 第十七周项目五(一):玩日期时间
- 第十七周项目五——玩日期时间
- 第十七周 【项目5-玩日期时间】
- 第十七周项目5-玩日期时间
- 第十七周项目 5 玩日期时间
- 第十七周项目5-玩日期时间
- 第十七周项目5-玩日期时间
- 第十七周项目5:玩日期时间
- 第十七周项目五 玩日期时间-(3)输出这是这一天中的第几秒
- 第十七周项目五 玩日期时间-(4)输出这是这一年中的第几秒
- 第十七周项目五玩日期时间(1)(2)(3)(4)
- 第十七周 【项目5-玩日期时间】(4)
- 第十七周项目5--玩日期时间(4)
- 第十七周项目五 玩日期时间-(1)(2)输入时间,输出该日在本年第几天
- 普通用户登录EM
- Android Touch 事件的分发和消费机制
- unity3D 编译警告
- Mac安装PIL失败的解决方案
- 引用作形参(1)
- 第十七周 项目五--玩日期时间
- Java模拟单向链表和双向链表的实现
- Android开发陷阱:利用PendingIntent传递唯一的Intent
- Perl多进程实例
- python解析json
- Matlab绘图-很详细,很全面
- 如何用OpenStack安全构建私有云?
- 修改ubutun控制台颜色
- 关于MAC下的QQ聊天中看不到对方所发的图片解决