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

本文分享了从C语言过渡到数据结构的学习体会,详细介绍了设计日期抽象数据类型(ADT)的过程,包括数据封装、基本操作实现及调试中遇到的问题。

1.思维导图及学习体会 1476101-20190309202327296-688305400.jpg

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

1476101-20190310111105261-1589068648.png

1.2 学习体会

比起上个学期的C语言,数据结构的难度明显加大了,有些部分难以理解,需要多花一些时间去理解;也因为刚刚开学,又突然增加C++的语法,有点力不从心,完成这次的大作业也略显生疏;但在同学的帮助或查阅资料的情况下,也基本完成了,在写大作业的过程中慢慢加深对一些知识的理解,接下来的学习要更加努力鸭!

2.大作业作业内容 1476101-20190309202340995-2116737649.jpg

2.1设计日期的ADT类型

ADT Date{
数据对象:D = {year,month,day | year,month,day属于I(I为整数集合)}
数据关系:R = {<year,month>,<month,day>|year是年,month是月,day是日}
基本操作:
Status InitTriplet(DATE &T,int year,int month,int day);
    //操作结果:构造了三元组T
Status Judge(DATE T);
    //操作结果:判断日期是否合法
Status ErrorPrint(DATE T,int flag,fstream &outfile);
    //操作结果:当日期不合法时输出提示
Status YearJudge(int year);
    //操作结果:判断是否是闰年还是平年 
Status GetWeekday(int year,int month,int day);
    //操作结果:判断星期几。
Status GetMonth(DATE T,fstream &outfile);
    //操作结果:输出月份英文名。
Status DateChange(DATE T,DATE T1,int days,fstream &outfile); 
    //操作结果:得出当前日期增加之后的日期
Status Compare(DATE date,fstream &outfile);
    //操作结果:比较日期间的逻辑关系
}ADT Date

2.2 数据抽象:头文件

Date.h

1476101-20190310192827852-933618407.png

2.3 数据封装说明

3.1.1 构造三元组函数

1476101-20190310191508352-1746627663.png

3.1.2 日期合法性判断的函数

1476101-20190310191646020-1920878179.png

3.1.3 提示日期不合法的函数

1476101-20190310193012575-1560208812.png

3.1.4 闰年判断函数

1476101-20190310193103601-2085791069.png

3.1.5 星期几判断函数

1476101-20190310193147202-425153347.png

3.1.6 月份判断函数

1476101-20190310193213405-476652246.png

3.1.7 天数增加计算函数

1476101-20190310193329916-632226154.png

3.1.8 日期逻辑比较函数

1476101-20190310193447726-294648134.png

3.结果展示 1476101-20190309202403056-34355844.jpg

1476101-20190310194833520-1893474011.jpg
1476101-20190310194905294-990275110.png
1476101-20190310194929960-1744114799.png

4.调试碰到问题 1476101-20190309202432995-718470712.jpg

  • 面对题目,开始动手的时候有点茫然,不知该从何下手
  • C++语法的cin、cout中的<< >>分不清楚,刚开始经常混在一起
  • 关于增加天数的部分不太会写,后来请教了同学,解决了这个问题
  • 完成大作业的过程中也碰到许多问题,也通过查阅或者参考同学的优秀代码得到解决

转载于:https://www.cnblogs.com/qq1191834402/p/10502814.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值