DS博客作业01-日期抽象数据类型设计和实现
1.思维导图及学习体会
1.1第一章绪论知识点思维导图

1.2 学习体会
这周刚刚学习了数据结构绪论和一部分线性表的知识,因为寒假提前预习了一会儿,在课堂上可以较快理解老师讲的内容。但是在c++语法上可能会有一些磕磕绊绊,要不断上网去查询或者询问同学。我个人认为数据结构相较于c语言可能更加抽象,比c语言更加的晦涩难懂,但是它承接了我们上学期的c语言一部分的知识,学起来可能会有一点儿熟悉感。在一些数据结构独有的概念上,可能我要花比之前学c语言更多的精力去理解它。这也能体现出数据结构更加抽象的特点。在今后的学习中,我会用比以前学习c语言更加勤奋的学习方式和手段,争取能取得一个比较好的开头入门。
2.大作业作业内容
2.1 设计日期的ADT类型
ADT Date{
数据对象:
D = {year,month,day | year,month,day属于int类型}
数据关系:
R = {<year,month>,<month,day>}
数据操作:
void NewDate(DATE &date,ElemType day,ElemType mouth,ElemType year);
//操作结果:构造三元组,对year,mouth,day赋值
int ScDate(DATE date,ElemType day,ElemType mouth,ElemType year,ofstream &write);
//初始条件:三元组date存在,文件能成功打开
//操作结果:返回年月日,并判断是否合理
int IfRun(DATE date,ofstream &write);
//初始条件: 三元组date存在,文件能成功打开
//操作结果:若是闰年返回1,否则返回0.
int JudgeWeek(DATE date,ElemType day,ElemType mouth,ElemType year,ofstream &write);
//初始条件: 三元组date存在,文件能成功打开
//操作结果:判断输入的日期为星期几。
int EngMouth(DATE date,ofstream &write);
//初始条件: 三元组date存在,文件能成功打开
//操作结果:输出当前日期月份的英语单词
int AddDays(DATE date,ElemType day,ElemType mouth,ElemType year,ofstream &write);
//初始条件: 三元组date存在,文件能成功打开
//操作结果:返回当前日期增加days天的日期.
int CompareDay(DATE date,ofstream &write);
//初始条件: 三元组date存在,文件能成功打开
//操作结果:比较当前日期与otherDate的逻辑关系
}ADT Date
2.2.数据抽象:头文件

2.3数据封装说明
(1)构造日期数据类型函数
做法:动态分配内存空间,将year,month,day存入数组date中

(2)年月日输入函数并判断函数
做法:判断输入的年月日是否合法,否则重新输入


(3)判断是否是闰年函数
做法:简单的判断,输出结果

(4)判断星期几函数
做法:将数组中的数据存入变量,再对变量进行变换,通过数学公式得出结果

(5)输出月份英文名函数
做法:对数组中代表月份的位序进行判断,依次输出

ps:因为后面都一样,就不进行截图!!
(6)返回当前日期增加days天的日期函数
做法:先将数据存放到新定义的变量,再从新定义的变量的day开始加,对月份的day进行判断,依此类推到month和year的增加

(7)比较日期间的逻辑关系函数
做法:输入一个日期,判断是否合法,先比较年,再月,在日。

头文件

3.结果展示
测试文件数据,input.txt:

运行结果写入out.txt:
写入:

输出:

4.调试碰到问题
- 1.对c++的语法可能不太熟悉,需要阅读同学代码或者上网查找。
- 2.代码冗长,算法效率太低,看了范华同学的代码有点启发,在今后作业会加以使用。
- 3.在文件的输入中遇到了很多问题,对于c++文件的语法掌握不牢。
DS博客作业01-日期抽象数据类型设计和实现的更多相关文章
- DS博客作业01—日期抽象数据类型设计与实现
1.本章学习总结 1.1 思维导图 1.2学习体会 开学就来了个大作业,还要求用的是c++语法,作为一个只听过没学过的未知语法,靠着CSDN和寝室大佬的帮助下渐渐地了解了一些c++的使用,现在也可以使 ...
- DS博客作业01--日期抽象数据类型设计与实现
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...
- DS博客作业01--日期抽象数据类型设计与实验
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2 学习体会 2.大作业作业内容 (6分) 2.1 设计日期的ADT类型(1分) ADT DATE{ 数据对象:D={year,mo ...
- DS博客作业01--日期抽象数据类型
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2学习体会 从暑假看视频到开学的预习,我感觉数据结构与c语言比起来更加抽象,更加难理解,那些概念也只能理解一些字面意思,对时间复杂度 ...
- DS博客作业01-日期抽象数据类型的设计与实现
1.思维导图和学习体会 1.1绪论知识思维导图 1.2学习体会 通过这几节课数据结构的新学习,让我感到了难度,很多概念性的东西,不是很好理解,老师在讲内容的时候,很容易跟不上节奏,我发现这门课的学习一 ...
- DS博客作业05--查找
这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业05--查找 这个作业的目标 学习查找的相关结构 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1.1 ...
- C博客作业01——分支,顺序结构
C博客作业01--分支,顺序结构 0.展示PTA总分 1本章学习内容 1.1学习内容总结 1)格式化输出函数printf(),scanf(). 它是什么? 对于初学者而言,一开始了解接触它们,只是被硬 ...
- DS博客作业03--树
这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业03--树 这个作业的目标 学习树结构设计及运算操作 姓名 黄静 目录 0. PTA得分截图 1. 本周学习总结 ...
- DS博客作业——树
DS博客作业--树 1.本周学习总结 1.思维导图 2.谈谈你对树结构的认识及学习体会. 在树这一章节,我们学习的是二叉树的算法. 树的构建:一种是直接给树的顺序存储结构的字符串,一种是通过先序遍历和 ...
随机推荐
- IP地址类型
为了适应不同的网络,IP地址空间被分为5类,分别是A.B.C.D和E类,其中A,B,C类最常用,D类用于组播,E类用于科研 IP地址类型 第一字节十进制范围 二进制固定最高位 二进制网络位 二进制主机 ...
- (九) 主机增加打印(串口+ssh)
目录 主机增加打印(串口+ssh) ssh 串口打印 title: 主机增加打印(串口+ssh) date: 2019/4/23 20:10:00 toc: true --- 主机增加打印(串口+ss ...
- C语言面试题大汇总之华为面试题 Eddy整理
1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局 ...
- ccf 201712-4 行车路线(30分超时)
问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公 ...
- Linux-Shell编程之求命令行中所有整数之和
前言 复习shell编程知识,书中有此练习题,之前学习时便没有搞透彻,此次是非啃下不可. 但是,摸索许久,却屡碰南墙,于是查阅网络博客,结果有让人比学不懂知识更让生气的是:博文遍地,净是抄袭!连个截图 ...
- es6常用语法学习笔记
1.let和const的常规使用 let声明的变量不存在预解析 let声明的变量不允许重复使用(在同一个作用域内) ES6引入了块级作用域{},块内部定义的变量,在外部是不可以访问到的 使用let在f ...
- cv::Mat类之type成员
CV_8UC3 -->16 CV_8UC3 表示存储元素的数据类型为 8bit unsigned char 类型,通道数C = 3 为什么OpenCV中type为CV_8UC3的图像 输出其ty ...
- Mathematica 2
如今的数值分析,如果没有高等代数的基础,都不好意思打招呼说自己是 "有数学基础". 高等代数,解决问题的一大神器. 1,初等变换 2,特征值 | A-λE | = | λE - A ...
- The base and high address of the custom IP are not correctly reflected in xparameters.h in SDK
This issue has been observed in 2015.3, 2015.4, and 2015.4.1 builds of Vivado. When you create and a ...
- 单机多es容器服务部署的网络模式
3.1 Bridge模式的拓扑 当Docker server启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上.虚拟网桥的工作方式和物理交换机 ...