1.本章学习总结

1.1思维导图

1.2 本章学习体会

新学期,开始学数据结构,一开始并不能理解数据结构到底是干什么的,可能是在上学期程序设计语言的基础上学得更深吧,后来通过预习,差不多知道数据结构是干什么的,通俗点就是学程序小作文呗……
学习确实比较吃力,一定原因是上学期C语言肯可能学得不扎实吧,另一方面,乍一开始使用C++,确实不顺手,不过多亏了晓淞在博客里给了一个神奇的网站,对于使用C++特别有帮助
感觉大学学习中,很重要的一点是,好好利用百度。

2.大作业

2.1设计日期的ADT类型

ADT Date
{
数据对象:
D={year,month,day|year,month,day都属于int类型}
数据关系:
R={<year,montn>,<month,day>}
数据操作:
status InitDate(Date &date,int year,int month,int day);
//操作结果:构造一个三元组date,year,month,day被赋予值

status DestroyDate(Date &date);
//操作结果:销毁三元组
 
string PrintDate(Date date);
//初始条件:date存在
//操作结果:以1900/01/01的形式返回string

status IsLeap(Date date);
//初始条件:date存在
//操作结果,判断是不是闰年,是闰年返回TURE,不是闰年返回FALSE

string Aweekday(Date date);
//初始条件:date存在
//操作结果:判断这天是星期几,并以“星期几”的形式返回string

string Amonth(Date date);
//操作条件:date存在
//操作结果:以该月份的英文返回string

}ADT Date

2.2.数据抽象:头文件

2.3数据封装说明

(1)构造三元组

将从文件中读取的数组传入函数,构造三元组。

(2)输出日期

挺简单不解释

(3)判断闰年

之前也做过,不解释

(4)判断星期几

在CSDN上搜的,一个公式

(5)返回月份的英文

(6)判断日期大小

比较粗暴的一个方法,就是相当于都转化成天:年366+月31+日

比较粗暴。

(7)加日期

这个是最难的函数,没有之一。
把单独的日和要加的日期加在一起,然后判断够不够一个月,够不够一年,逐级加,注意要判断闰年。

(8)主函数

2.3测试数据

2.4测试中遇到的问题

1.不熟悉C++的代码,一些算法也不清楚,看了晓淞推荐的网站,对C++基础的cin,cout有了一定了解,算法和文件函数的运用则查CSDN和博客园,

总之,代码写的好,CSDN不可少。

2.在判断星期几的时候,一开始没有定义year,month,day来临时存储数据,而是直接改了三元组的数据,然后就出BUG了,想了好久(大佬不要嘲笑我),睡了一觉,哦,我明白了

好好写代码吧,写完之后有神奇的事情发生,亲测。