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

时间:2023-02-25 22:31:45

1.思维导图及学习体会

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

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

1.2 学习体会

经过上个学期的学习,我对C语言的使用已经有了一定的了解,对编程的体会也算小有收获。但经过一个寒假,我的编程熟练度大大降低,许多知识都遗忘了。于是在新学期之初,面对老师布置的第一项大作业时,不懂c++语法的我几乎无从下手。去查百度,去博客园上看其他学的好的同学的代码,发现自己是越看越乱,越看越不清醒。好在之后听了别人的讲解,把思路缕清,回去终于把代码写好了。由此可见,只有平时多练练手,学习新知识,才能不慌不忙地完成每一项作业。还有就是,c++比C语言更加方便,我应该多问问同学,尽早学会使用vs。

2.大作业

2.1设计日期的ADT类型

  ADT Date
{
   数据对象:
   D={year,month,day|year,month,day属于ElemType类型}
   数据关系:
   R={<year,month>,<month,day>};
   数据操作:
   {
       void InitDate(Date &date,ElemType year,ElemType month,ElemType day);
       //初始化日期
       int Islegal(Date date);
       //判断日期是否合法 
       int Isleapyear(Date &date);
       //判断是否闰年
       string Isday(Date &date);
       //返回星期几 
       void AddDays(Date date,ElemType sign,ofstream &out);
       //返回当前日期增加days天的日期
       void Relation(Date date,ofstream &out);
       //比较两个日期的逻辑关系
       string ReturnName(Date date); 
       //返回月份的英文名
       Status Destroy(Date &date);
       //销毁date
    } 
} 

2.2数据抽象:头文件

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

2.3数据封装说明

2.3.1主函数

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

2.3.2初始化日期

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

2.3.3判断日期是否合法

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

2.3.4判断是否闰年

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

2.3.5判断是星期几

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

2.3.6当前日期增加days天的日期

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

2.3.7比较两个日期的逻辑关系

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

2.3.8返回该月份的英文名

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

2.3.9销毁date

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

3.结果展示

3.1input.txt

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

3.2运行结果

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

3.3out.txt

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


4.调试碰到的问题

  • 1.为了搞懂c++文件语法花了很长时间,后来经过反复测试,终于学会用了。
  • 2.在写比较两个日期大小的函数时,想在函数中传出string类型的s=手动输入的年+月+日+大小判断符号然后写入文件,但发现传不出来,才发现自己输入的是年月日是int类型。于是后来就在该函数中写了文件指针,直接在该函数中写入文件。