DS博客作业01--日期抽象数据类型设计与实现
1.思维导图及学习体会
1.1第一章绪论知识点思维导图
1.2学习体会
通过一周的接触,大致了解了数据结构是对数据的处理,是研究数据间的关系的,比起上学期的c语言来说,
我认为学习数据结构将会更加吃力,毕竟数据是比较抽象的东西。
这一周也接触了c++的语法,发现了c++比c简洁得多,第一次在编程中运用c++语法,还是很不熟练,经常
要去查找资料。
2.大作业作业内容
2.1 设计日期的ADT类型
ADT Date{
数据对象:
D = {year,month,day | year,month,day属于int类型}
数据关系:
R = {<year,month>,<month,day>}
数据操作:
Status DateDestroy(DATE &date);
//销毁 Date
Status InitDate( DATE &date , ElemType year, ElemType month, ElemType day);
//构造日期结构
Status IsLeapyear( ElemType year );
//判断是否是闰年
Status DateJudge(DATE date);
//操作结果:判断是否是合法数据。
Status WhichDay(DATE date,ofstream &outFile);
//判断是星期几
Status WhichMonth( DATE date,ofstream &outFile);
//判断是几月
Status AddDay(DATE date,ofstream &outFile);
//增加一个天数
Status DoCompare(DATE date,ofstream &outFile);
//与另一个日期做比较
}ADT Date
2.2.数据抽象:头文件
Date.h
2.3数据封装说明
(1)构造日期数据结构
(2)销毁Date函数
(3)判断是否是闰年
(4)判断是否是合法数据
(5)判断是星期几
(6)判断是几月份
(7)当前日期增加Add天的日期函数
(8)比较日期间的逻辑关系函数
3.结果展示
4.调试碰到问题
Q1:在计算任意给的日期是星期几时,不知如何计算,参考同学代码发现基姆拉尔森计算公式可以计算
所以在代码中加入该公式
Q2:在判断日期是否是合法数据时,闰年和非闰年要分开,后来发现可以用数组来存放,在依照对二月
进行修改
Q3:在计算增加一个天数时,运用了c语言的判断语句,使得代码更为简洁
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?