DS博客作业01-日期抽象数据类型设计和实现
1.思维导图和学习体会
1.1第一章绪论知识点思维导图
1.2学习体会
- 这一学期务必得认真学习了,把上学期遗漏的以及不牢固的知识重新温习,这一次开学大作业也是 当头一棒,这学期也会用到一些C++的语法大致就cin 及cout 以及一些函数,第一节课讲了解决一个具体的问题分三个步骤:
- (1)分析问题,确定数据模型
- (2)设计相应的算法
- (3)编写程序,运行并调试程序,直至得到正确的结果
- 当然前面的作业可能没办法将第二步完成的很好但是相信在一学年之后应该能大致实现这三步骤。
- 这次大作业个人实现效果不佳,对ADT 的运用还不是很熟练
2.大作业作业内容
2.1设计日期的ADT类型
ADT DATE{
数据对象:D={year,month,day|year,month,day属于ElemType类型}
数据关系:R={<year,month>,<month,day>}
数据操作:
Status InitDate(DATE &date,ElemType year,ElemType month,ElemType day);
//操作结果:初始化日期,构造了年月日合成的日期
string Return_Date(DATE &date);
//初始条件:日期date已存在,且年月日满足基本条件
//操作结果:返回日期的年、月、日
Status Judge_LeapYear(DATE &date);
//初始条件:日期date已存在,且年月日满足基本条件
//操作结果:判断是否为闰年
string Judge_Week(DATE &date);
//初始条件:日期date已存在,且年月日满足基本条件
//操作结果:返回这个日期是星期几
string Return_Month_Name(DATE &date);
//初始条件:日期date已存在,且年月日满足基本条件
//操作结果:返回月份英文单词
string Return_ThenDate(DATE &date,int days);
//初始条件:日期date已存在,且年月日满足基本条件
//操作结果:返回当前日期增加days天的日期
string Compare_Date(DATE &date,DATE &RandomDay);
//初始条件:日期date已存在,且年月日满足基本条件
//操作结果:比较当前日期与otherDate的逻辑关系
}ADT DATE
2.2数据抽象:头文件
2.2.1Date.h
2.2.2Status.h
2.3数据封装说明
(1)main函数
- 运用写入文件的函数将日期写入函数
(2)构造日期函数- new动态申请三个空间存放year,month,day到date数组中,以及判断日期合法性
(3)返回日期函数- 运用itoa函数将year,month,day三个整形变量转化为字符型
(4)判断是否闰年函数- 加入判断闰年的条件并返回TRUE or FALSE到main 函数中的if 判断中
(5)返回当前日期的星期函数- 运用基姆拉尔森计算公式算出星期几,并用switch输出相对应的星期
(6)用switch返回当前相对应的月份的英文名称函数
(7)返回增加days后的日期函数- 用while语句逐级运算,超过一个月后最大天数以及月份加一,月份超过最大后年份加一,最后返回字符串类型
(8)返回当前日期与RandomDay的逻辑关系- 逐级判断,最后将两个日期及逻辑符依次组成字符串返回
3.结果展示
4.调试碰到的问题
- 有些时候还没从C 当中的输入输出中 脱离出来,不过现在好很多了,比起C的输入输出 C++更加方便 以及一些函数也非常方便快捷,
- 调试时问题最多的就是 返回值的问题,还有存储变量的选择 是要选择数组呢还是其他的方式