1.本章学习总结
1.1思维导图
1.2 本章学习体会
新知识的学习:相较于上学期C语言对于代码编程的学习,数据结构要显得理论性比较强,较为抽象,难度明显加大了,有些难以理解,需要多花一些时间,课前的预习变得更加必要。在第一周就要完成一份大作业显得有些吃力,第一次开始自主学习C++也让人有些头疼,在写大作业的过程中也感受到自己对于编程稍显生疏。接下来的学习过程中,要对于书上知识点理解掌握同时,也要开始对于代码的练习!
完成大作业的过程:刚开始接触三元组其实很懵,不太明白到底是个什么概念的东西,所以一开始拿着题目无从下手,起初参照了老师之前发的Devc文件,建项目划分大概结构(吃了课设的亏,这次终于记得要先建项目了!!!),看了几遍代码之后才有所思路,因为主要是要用C++语言进行编程,不太懂,只能一点一点百度,循环之类的东西一直是我的弱点,大概是逻辑思维不太行,参考了同学的建议,虽然是完成了,但还是比较基础地完成,下一次要变好一点鸭!
2.大作业
2.1设计日期的ADT类型
ADT Date{
数据对象:
D={Year,Month,Day|Year,Month,Day属于int类型}
数据关系:
R={<Year,Month>,<Month,Day>}
数据操作:
Status InitDate(Date &L,int Year,int Month,int Day);
//操作结果:构造日期数据结构Date Year/Month/Day
Status ReasonDate(Date &L,int Year,int Month,int Day);
//操作结果:判断日期是否合法
Status LeapYear(Date &L);
//操作结果:判断是否是闰年
Status WeekDay(Date &L);
//操作结果:判断星期几
Status MonthName(Date &L);
//操作结果:输出月份名
Status NewDate(Date &L,ofstream &writeinFile);
//操作结果:返回n天后的新日期
Status RelationDate(Date &L,ofstream &writeinFile);
//操作结果:返回两个日期之间的关系 }ADT Date
2.2数据抽象:头文件——参考Devc 三元组代码
- Common.h——宏定义
- triplet.h——头文件
2.3数据封装说明
(1)构造日期数据结构Date
(2)判断日期是否合法
(3)判断是否是闰年
(4)判断星期几
(5)输出月份名
(6)返回n天后的新日期
(7)返回两个日期之间的关系
(8)main.cpp
3.结果展示
(1)read.txt
(2)运行结果
(3)非法数据
- 从文件读取的日期不合法,无后续操作
- 输入的日期不合法,重新输入,再进行比较
4.调试碰到问题
- << >>分不清楚
笑哭,这个尖括号写着写着就马虎了。。。 - 增加n天输出新日期的写法有点迷糊
借鉴了一下优秀同学的代码 - 开始不知道可以把文件指针作为参数,传给函数
后来通过百度掌握了这种操作,下次不能忘记指针前 & !!!! - 不明白怎么直接将字符输出
借用数组,通过返回的数字作为数组下标输出对应的星期和月份英文名 - 没有避免非法数据对于程序的影响