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.谈谈你对树结构的认识及学习体会. 在树这一章节,我们学习的是二叉树的算法. 树的构建:一种是直接给树的顺序存储结构的字符串,一种是通过先序遍历和 ...
随机推荐
- CMakeList.txt(3): 一个cmake实例
介绍一个比较实用的例子,即包含生成静态库又包含引入外部头文件和链接库的cmake demo. 先按照工程规范建立工程目录,并编写代码,以下面的工程目录为例进行解释这个例子,工程的目录结构为: 1. 编 ...
- \t \r \n \f
\t 的意思是 :水平制表符.将当前位置移到下一个tab位置. \r 的意思是: 回车.将当前位置移到本行的开头. \n 的意思是:回车换行.将当前位置移到下一行的开头. \f的意思是:换页.将当前位 ...
- Vue学习笔记一:初识Vue
目录 什么是Vue? 为什么要学习前端框架? MVC,MVP 和 MVVM 最简单的入门小案例 下载Vue.js 新建文件结构 写一个html 运行 可笑的小报错 Vue和MVVM 什么是Vue? V ...
- hadoop记录-Hadoop参数汇总
Hadoop参数汇总 linux参数 以下参数最好优化一下: 文件描述符ulimit -n 用户最大进程 nproc (hbase需要 hbse book) 关闭swap分区 设置合理的预读取缓冲区 ...
- nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket【转】
原文地址:https://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-u ...
- socket.io emit callback调用探秘
socket.io https://socket.io/ https://socket.io/docs/ What Socket.IO is Socket.IO is a library that e ...
- CAD快捷键
F1: 获取帮助 F2: 实现作图窗和文本窗口的切换 F3: 控制是否实现对象自动捕捉 F4:数字化仪控制 F5: 等轴测平面切换 F6: 控制状态行上坐标的显示方式 F7: 栅格显示模式控制 F8: ...
- rem是怎么计算的(转载)
「rem」是指根元素(root element,html)的字体大小,从遥远的 IE6 到版本到 Chrome 他们都约好了,根元素默认的 font-size 都是 16px. rem是通过根元素进行 ...
- 浅入深出Vue:前言
浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...
- Vagrant上运行SITL
打算给Tower加个手机遥控的功能,用运行于vagrant sitl来联合调试,在公司的网络条件很好的情况下没出任何错,都是根据http://ardupilot.org/dev/docs/settin ...