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属于ElemType类型}
数据关系:R1={<year,month>,<month,day>}
数据操作:
Status InitDate(Date &D, ElemType year, ElemType month, ElemType day);
 //操作结果:构造了三元组D,日期中的年月日分别为year,month,day。
Status Leapyear(Date D,ofstream &outFile);
//初始条件:三元组D存在
//操作结果:判断是否闰年 
Status JudgeWeek(Date D,ofstream &outFile);
//初始条件:三元组D存在
//操作结果:返回这个日期是星期几
Status MonthNum(Date D,ofstream &outFile);
//初始条件:三元组D存在
//操作结果:返回月份的英文名
Status IncreaseDays(Date D,ofstream &outFile);
//初始条件:三元组D存在
//操作结果:返回当前日期增加days天的日期
Status Compare(Date D,ofstream &outFile);
//初始条件:三元组D存在
//操作结果:比较当前日期与otherDate的逻辑关系
Status JudgeData(Date D,ofstream &outFile);
//初始条件:三元组D存在
//操作结果:判断日期是否合法 
}ADT Date
2.2 数据抽象:头文件)
Date.h

2.3数据封装说明
(1)构造三元组函数:动态申请内存,将变量存入数组中

(2)判断是否闰年函数:用if判断日期中年份是否为闰年并输出对应结果

(3)返回这个日期是星期几函数:用公式计算出日期为周几,结果输出并写入文件

(4)返回月份的英文名函数:将月份英文名存入一个二维数组,然后输出对应英文名

(5)返回当前日期增加days天的日期函数:通过计算总天数然后不断减去对应月份的天数,来求出增加的月份以及年份

(6)比较当前日期与otherDate的逻辑关系:通过将日期转换为数字进行比较大小

(7)判断日期是否合法:月份不得超过12等,其他为非法日期

3.结果展示
(1)运行结果

(2)input.txt

(3)out.txt

4.调试碰到问题
Q1:比较两个日期之间的关系时开始将年月日分开进行比较,有很长一段代码而且看着很不清晰。
A1:后来在看了几位同学的代码后,学到了将日期数的比较转化为数字大小的比较,代码精简了很多。
DS作业01--日期抽象数据类型设计与实现的更多相关文章
- DS博客作业01—日期抽象数据类型设计与实现
		
1.本章学习总结 1.1 思维导图 1.2学习体会 开学就来了个大作业,还要求用的是c++语法,作为一个只听过没学过的未知语法,靠着CSDN和寝室大佬的帮助下渐渐地了解了一些c++的使用,现在也可以使 ...
 - DS博客作业01--日期抽象数据类型设计与实现
		
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...
 - DS博客作业01-日期抽象数据类型设计和实现
		
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这周刚刚学习了数据结构绪论和一部分线性表的知识,因为寒假提前预习了一会儿,在课堂上可以较快理解老师讲的内容.但是在c++语法上 ...
 - DS博客作业01--日期抽象数据类型设计与实验
		
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2 学习体会 2.大作业作业内容 (6分) 2.1 设计日期的ADT类型(1分) ADT DATE{ 数据对象:D={year,mo ...
 - DS博客作业01-日期抽象数据类型的设计与实现
		
1.思维导图和学习体会 1.1绪论知识思维导图 1.2学习体会 通过这几节课数据结构的新学习,让我感到了难度,很多概念性的东西,不是很好理解,老师在讲内容的时候,很容易跟不上节奏,我发现这门课的学习一 ...
 - DS博客作业01--日期抽象数据类型
		
1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2学习体会 从暑假看视频到开学的预习,我感觉数据结构与c语言比起来更加抽象,更加难理解,那些概念也只能理解一些字面意思,对时间复杂度 ...
 - PTA实验作业-01
		
一.PTA实验作业 本周要求挑3道题目写设计思路.调试过程.设计思路用伪代码描述.题目选做要求: 顺序表选择一题(6-2,6-3,7-1选一题),代码必须用顺序结构抽象数据类型封装 单链表选择一题(6 ...
 - 课程作业01:模仿JavaAppArguments.java示例,编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
		
1.设计思想: 首先是从JavaAppArguments.java示例开始,此示例已打印参数,定义数字 之和和作为存储单位的整型,然后将输入参数的字符串转化为整型,之后求和即可. 2.程序流程图: 3 ...
 - 抽象数据类型ADT
		
ADT(Abstract Data Type) 类型由什么组成? 一个类型(type)指定两类信息,一个属性集和一个操作集. 假设要定义一个新的数据类型.首先,要提供存储数据的方式,可能是通过设计一个 ...
 
随机推荐
- call  apply 使用
			
1.call 跟 apply的主要区别: call传入参数是一个一个传入,而 apply 使用的是数组传入 call(obj,arg1,arg2,arg3,arg4) apply(obj,[arg1, ...
 - leetcode738
			
public class Solution { public int MonotoneIncreasingDigits(int N) { var num = N.ToString(); var len ...
 - Discuz 任务、道具、任务和验证类插件制作
			
一.广告类脚本位置:source/class/adv/adv_name.php语言包位置:source/language/adv/lang_name.php <?php class adv_na ...
 - Git报错的解决方案汇总
			
错误1: error: Your local changes to the following files would be overwritten by merge:Please, commit y ...
 - 06-SSH综合案例:前台首页访问
			
1.5 编码实现: 1.5.1 首页显示: 复制所有文件到工程下: * css * js * image 复制页面到工程WEB-INF/jsp/ * 将后缀.htm改为jsp 访问一个Actio ...
 - 26.Remove Duplicates from Sorted Array(Array)
			
Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...
 - C# 将Word,Execl,PPT,Project, 文件转成PDF, 不依赖Office!!
			
git 地址 https://gitee.com/bandung/Execl_WordTOPDF.git 包括了各种破解的dll Word转PDF 挨个引用 Word转PDF public void ...
 - using namespace cv
			
在OpenCV中使用 using namespace cv 的作用: 在使用#include语句包含相应头文件后,使用下面语句即可包含相应的Opencv命名空间 using namespace cv; ...
 - python virtualenv环境安装(ubuntu)
			
测试系统ubantu16.04 该系统已经默认安装了python3.5, 当然了python2.7也同时存在着. 可以用如下命令安装pip(如下命令会默认安装pip到python2.7库中) $ su ...
 - 使用寄存器点亮LED等
			
最基本的输入功能是检测外部输入电平,如把 GPIO引脚连接到按键,通过电平高低区分按键是否被按下. 基本结构分析 2. P-MOS管和 N-MOS管 main.c中的main函数