DS博客作业01--日期抽象数据类型设计与实现
1.思维导图及学习体会
1.1第一章绪论知识点思维导图
1.2 学习体会
这个学期在上学期c语言的基础上,开始了数据结构的学习,数据结构这门课程需要用到的链表结构很多,对于第一章的学习,我对数据结构这门课程有了初步的认知,第一章绪论的主要内容,首先时对于数据结构的介绍,数据是描述客观事物的书和字符的合集,数据元素是数据的基本单位,数据元素又是由数据项组成的。逻辑结构是数据元素之间的逻辑关系,它的类型有集合,树形,线性图形这几种,另外一种是计算机存储器中的存储方式,即数据的存储结构,有四种类型,顺序,链式,索引,散列存储结构。其次,第一章也介绍了算法,主要是有算法描述和分析这两块内容,算法描述主要是对于算法的定义和特点进行了介绍,算法分析则是说明了算法的设计目标和效率分析,效率分析主要是时间复杂度和空间复杂度。总结了一下,数据结构这一块还是需要对以前的知识进行复习和加强的,尤其是链表这一块。
2.大作业作业内容
设计日期的ADT类型
ADT Date
{
数据对象:
D={year,month,day|year,month,day属于int 类型};
数据关系:
R={<year,month>,<month,day>};
数据操作:
void CreatInformation(int *&Date,int year,int month,int day);
//初始化日期
//操作结果:构造三元组
int Judge(int *Date,ofstream& write);
//初始条件:Date存在,文件成功打开
//操作结果:判断文件内的日期是否合法,合法返回1;
void Leapyear(int *Date,ofstream& write);
//初始条件:Date存在,文件成功打开,日期合法
//操作结果:判断年份是否是闰年并且将结果写进文件
void Day(int *Date,ofstream& write);
//初始条件:Date存在,文件成功打开,日期合法
//操作结果:判断日期是星期几,并且将结果写进文件
void Month(int *Date,ofstream& write);
//初始条件:Date存在,文件成功打开,日期合法
//操作结果:将月份的英文单词放回,写进文件
void Icrease(int *Date,ofstream& write);
//初始条件:Date存在,文件成功打开,日期合法
//操作结果:计算增加后的日期,并且写入文件
void CompareDate(int *Date,ofstream& write);
//初始条件:Date存在,文件成功打开。日期合法
//操作结果:与输入的日期比较,并且写入文件
int Judge2(int year,int month,int day);
//初始条件:输入的年份日期符合 int类型
//操作结果:判断日期是否合法,合法返回值1,不合法返回值0
}
2.2数据抽象:
2.3数据封装说明
(1)构造三元组函数
(2)日期合法性判断函数
(3)闰年判断函数
(4)星期判断函数
(5)英文月份返回函数
(6)增加天数计算函数
(7)日期比较函数
(8)日期合法性判断函数2
(9)主函数
3.结果展示
文件input.txt中的数据:
运行界面:
文件output.txt中的结果:
4.调试碰到的问题。
·Q1:首先是对于c++语法的不熟悉,文件打开语法和其他语法
·A1:借鉴百度经验和同学的代码参考
·Q2:文件指针定义错误,无法正确打开文件
·A2:不使用宏定义,直接在每个函数中定义
·Q3:日期比较函数和日期判断函数无法正确运行
·A3:更改了头文件中的函数定义,修改了主函数中的引用