第三周 任务三扩展

墨蓝 2022-06-14 07:59 298阅读 0赞
  1. //定义一个日期类
  2. #include<iostream>
  3. using namespace std;
  4. class DateTime
  5. {
  6. public:
  7. void set_datetime();
  8. void show_datetime();
  9. private:
  10. bool judge_year(int);
  11. bool is_date(int, int, int);
  12. int day;
  13. int month;
  14. int year;
  15. };
  16. int main()
  17. {
  18. DateTime t1;
  19. DateTime &t2 = t1;
  20. t1.set_datetime();
  21. t2.show_datetime();
  22. return 0;
  23. }
  24. void DateTime :: set_datetime()
  25. {
  26. char c1, c2;
  27. cout << "请输入日期(格式 yy . mm . dd)";
  28. while(1)
  29. {
  30. cin >> year >> c1 >> month >> c2 >> day;
  31. if(c1 != '.' || c2 != '.')
  32. cout << "格式不正确,请重新输入" << endl;
  33. else if(!is_date(year, month, day))
  34. cout << "日期非法,请重新输入" << endl;
  35. else
  36. break;
  37. }
  38. }
  39. void DateTime :: show_datetime()
  40. {
  41. cout << year << "." << month << "." << day << endl;
  42. }
  43. bool DateTime :: is_date(int y, int m, int d)
  44. {
  45. if(y < 1 || m < 1 || m > 12 || d < 1 || d > 31)
  46. {
  47. return false;
  48. }
  49. else if(m == 2)
  50. {
  51. if(judge_year(y))
  52. {
  53. if(d > 29)return false;
  54. }
  55. else
  56. {
  57. if(d > 28)return false;
  58. }
  59. }
  60. else if(m == 4 || m == 6 || m == 9 || m == 11)
  61. {
  62. if(d > 30)return false;
  63. }
  64. return true;
  65. }
  66. //定义判断是否为闰年的函数
  67. bool DateTime :: judge_year(int year)
  68. {
  69. bool leap;
  70. if(year % 4 == 0)
  71. {
  72. if(year % 100 == 0)
  73. {
  74. if(year % 400 == 0)
  75. leap = true;
  76. else leap = false;
  77. }
  78. else
  79. leap = true;
  80. }
  81. else
  82. leap = false;
  83. return leap;
  84. }

0_13309451431ii7.gif 0_1330945149DLOO.gif

发表评论

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

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

相关阅读

    相关 任务

    要求:请在原类基础上,增加下列成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。 add_a_s

    相关 任务

    / 实验内容:【任务3】阅读P314的例10.1(电子版的在平台上见txt文件)。该例实现了一个复数类,但是美中不足的是,复数类的实部和虚部都固定是doub

    相关 任务

    /实验目的:设计平面坐标点类 实验内容:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 程序的版权和版本声明部分

    相关 任务

    /【任务3】编写基于对象的程序,求5个长方柱的体积和表面积。长方柱类的数据成员包括长(length)、宽(width)、高(heigth)等。另外: (1)