第十二周项目3 - 日期时间类

谁借莪1个温暖的怀抱¢ 2022-08-04 17:30 234阅读 0赞

定义一个日期类Date,数据成员包括年、月、日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期;再定义一个时间类Time,数据成员包括时、分、秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,在此基础上再定义一个日期时间类TimeDate,充分利用已有的两个类中提供的方法,实现日期和时间的设置和显示。请实现类TimeDate,下面是用于测试的主函数及参考运行结果。

已提供如下代码

  1. int main()
  2. {
  3. TimeDate dt_a,dt_b(2010,4,16,9,30,0);
  4. cout<<"dt_a: ";
  5. dt_a.PrintDate_Time();
  6. cout<<endl;
  7. cout<<"dt_b: ";
  8. dt_b.PrintDate_Time();
  9. dt_a.SetTime(20,00,00);
  10. dt_a.SetDate(2008,8,7);
  11. cout<<endl;
  12. cout<<"dt_after uptate: ";
  13. dt_a.PrintDate_Time();
  14. return 0;
  15. }

解答代码:

  1. /*
  2. *Copyright (c) 2014,烟台大学计算机学院
  3. *All rights reserved.
  4. *文件名称: test.cpp
  5. *作 者:满星辰
  6. *完成日期:2015 年 5 月 24 日
  7. *版本号:v1.0
  8. */
  9. #include <iomanip>
  10. #include <cstring>
  11. #include <cmath>
  12. #include <iostream>
  13. #include <conio.h>
  14. #include <windows.h>
  15. using namespace std;
  16. class Date
  17. {
  18. protected:
  19. int year,month,day;
  20. public:
  21. Date(int y=0,int m=0,int d=0):year(y),month(m),day(d) {}
  22. void SetDate(int y,int m,int d);
  23. void PrintDate();
  24. };
  25. void Date::SetDate(int y,int m,int d)
  26. {
  27. year=y;
  28. month=m;
  29. day=d;
  30. }
  31. void Date::PrintDate()
  32. {
  33. cout<<year<<"/"<<month<<"/"<<day;
  34. }
  35. class Time
  36. {
  37. protected:
  38. int hour,minute,second;
  39. public:
  40. Time(int h=0,int m=0,int s=0):hour(h),minute(m),second(s) {}
  41. void SetTime(int h,int m,int s);
  42. void PrintTime();
  43. };
  44. void Time::SetTime(int h,int m,int s)
  45. {
  46. hour=h;
  47. minute=m;
  48. second=s;
  49. }
  50. void Time::PrintTime()
  51. {
  52. cout<<hour<<":"<<minute<<":"<<second;
  53. }
  54. class TimeDate:public Date,public Time
  55. {
  56. public:
  57. TimeDate(int y=0,int m=0,int d=0,int h=0,int minu=0,int s=0):Date(y,m,d),Time(h,minu,s) {}
  58. void PrintDate_Time();
  59. };
  60. void TimeDate::PrintDate_Time()
  61. {
  62. PrintDate();
  63. cout<<" ";
  64. PrintTime();
  65. }
  66. int main()
  67. {
  68. TimeDate dt_a,dt_b(2010,4,16,9,30,0);
  69. cout<<"dt_a: ";
  70. dt_a.PrintDate_Time();
  71. cout<<endl;
  72. cout<<"dt_b: ";
  73. dt_b.PrintDate_Time();
  74. dt_a.SetTime(20,00,00);
  75. dt_a.SetDate(2008,8,7);
  76. cout<<endl;
  77. cout<<"dt_after uptate: ";
  78. dt_a.PrintDate_Time();
  79. return 0;
  80. }

心得:

完全无压力的一道题

这道题的多重继承和单继承一样简单

图片:

Center

发表评论

表情:
评论列表 (有 0 条评论,234人围观)

还没有评论,来说两句吧...

相关阅读