DS博客作业01--日期抽象数据类型设计与实现

1.思维导图及学习体会

1.1第一章绪论知识点思维导图

1.2 学习体会

在学习了绪论之后,我对数据结构也有了大致的了解。而通过这次大作业我学习了一些C++的内容,总的来说C++比起C来说多了许多新的内容,在某些方面也比C更加的方便一点

2.大作业作业内容

2.1 设计日期的ADT类型

ADT Date{
数据对象:D={year,month,days|year,month,days属于int类型}
数据关系:R1={<year,month>,<year,days>}
数据操作:
Status InitDate(Date &date, int year, int month, int days);
//初始化日期
//操作结果:构造了日期数据结构Date,其中year,month,days分别为Date中的年,月,日
string OutDate(Date date);
//初始条件:date存在
//操作结果:将日期以 XXXX/XX/XX 的格式返回
Status IsLeapyear(Date date);
//初始条件:date存在
//操作结果:是闰年则返回TRUE,不是则返回FALSE
string WhichWeek(Date date);
//初始条件:date存在
//操作结果:返回星期
string WhichMonth(Date date);
//初始条件:date存在
//操作结果:返回月份的英文名
Date AddDate(Date date, int days);
//初始条件:date存在
//操作结果:返回增加天数后的日期
char Compare(Date date, Date otherDate);
//初始条件:date存在
//操作结果:比较日期的关系,根据关系返回'<','>','='
}

2.2.数据抽象:

  • common.h
  • date.h

2.3数据封装说明

(1)构造日期数据结构函数

做法:动态分配内存,构造三元组date

(2)日期格式函数

做法:将日期转化为string类型,然后拼接起来

(3)判断闰年函数

做法:一次判断即可。。。

(4)返回星期函数

做法:用基姆拉尔森计算公式计算星期,然后返回

(5)返回月份英文名函数

做法:根据月份返回英文名

(6)增加日期天数函数

做法:先将天数加在日期的天数上,再判断天数是否超过当月的天数,若超过则减去当月的天数并增加月份或年份,直至天数正常

(7)比较日期关系函数

做法:将年份乘上10000月份乘上100天数不变,相加后比较即可

(8)主函数main()

3.结果展示



4.调试碰到问题

Q:不了解C++,无法熟练使用
A:受同学推荐,在一个叫”菜鸟教程“的网站上学习了相关内容

posted @ 2019-03-04 13:56  xingkyh  阅读(446)  评论(0编辑  收藏  举报