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-日期抽象数据类型设计和实现的更多相关文章

  1. DS博客作业01—日期抽象数据类型设计与实现

    1.本章学习总结 1.1 思维导图 1.2学习体会 开学就来了个大作业,还要求用的是c++语法,作为一个只听过没学过的未知语法,靠着CSDN和寝室大佬的帮助下渐渐地了解了一些c++的使用,现在也可以使 ...

  2. DS博客作业01--日期抽象数据类型设计与实现

    1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...

  3. DS博客作业01--日期抽象数据类型设计与实验

    1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2 学习体会 2.大作业作业内容 (6分) 2.1 设计日期的ADT类型(1分) ADT DATE{ 数据对象:D={year,mo ...

  4. DS博客作业01--日期抽象数据类型

    1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2学习体会 从暑假看视频到开学的预习,我感觉数据结构与c语言比起来更加抽象,更加难理解,那些概念也只能理解一些字面意思,对时间复杂度 ...

  5. DS博客作业01-日期抽象数据类型的设计与实现

    1.思维导图和学习体会 1.1绪论知识思维导图 1.2学习体会 通过这几节课数据结构的新学习,让我感到了难度,很多概念性的东西,不是很好理解,老师在讲内容的时候,很容易跟不上节奏,我发现这门课的学习一 ...

  6. DS博客作业05--查找

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业05--查找 这个作业的目标 学习查找的相关结构 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1.1 ...

  7. C博客作业01——分支,顺序结构

    C博客作业01--分支,顺序结构 0.展示PTA总分 1本章学习内容 1.1学习内容总结 1)格式化输出函数printf(),scanf(). 它是什么? 对于初学者而言,一开始了解接触它们,只是被硬 ...

  8. DS博客作业03--树

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业03--树 这个作业的目标 学习树结构设计及运算操作 姓名 黄静 目录 0. PTA得分截图 1. 本周学习总结 ...

  9. DS博客作业——树

    DS博客作业--树 1.本周学习总结 1.思维导图 2.谈谈你对树结构的认识及学习体会. 在树这一章节,我们学习的是二叉树的算法. 树的构建:一种是直接给树的顺序存储结构的字符串,一种是通过先序遍历和 ...

随机推荐

  1. python验证卡普耶卡(D.R.Kaprekar)6174猜想

    1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律: 对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到61 ...

  2. python之路(10)类的内置函数

    目录 isinstance()和issubclass() __setitem__.__getitem__和__delitem__ __str__和__reper__ __format__ __slot ...

  3. BeanUtils 日期转换(本地格式yyyy-MM-dd)转换成date

    1.BeanUtils工具的使用 1)beanUtils 可以便于对javaBean的属性进行赋值. 2)beanUtils 可以便于对javaBean的对象进行赋值. 3)beanUtils可以将一 ...

  4. kafka 日常使用和数据副本模型的理解

    kafka 日常使用和数据副本模型的理解 在使用Kafka过程中,有时经常需要查看一些消费者的情况.Kafka健康状况.临时查看.同步一些数据,又由于Kafka只是用来做流式存储,又没有像Mysql或 ...

  5. socket.io emit callback调用探秘

    socket.io https://socket.io/ https://socket.io/docs/ What Socket.IO is Socket.IO is a library that e ...

  6. Python——使用第三方库Pillow生成图片缩略图

    流程如下: 1.首先确认是否安装了pip 在命令提示符窗口下输入pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip. 2.在命令提示符窗口下输入pip install Pillo ...

  7. 【bzoj 3495】PA2010 Riddle

    Description 有n个城镇被分成了k个郡,有m条连接城镇的无向边.要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都. Input 第一行有三个整数,城镇数n(1<=n&l ...

  8. python3 练手实例7 斐波那契数列

    '''a,b=0,1 x=int(input('请指定需要多少项:')) while x>0: print(b) a,b=b,a+b x-=1''' #递归 def fibo(n): if n& ...

  9. java abs(绝对值) , max(最大值),min(最小值) 方法的应用

    在写程序是,我们常常会计算一个数的绝对值,这时我们可以使用java里的方法来计算 public class Demo1{ public static void main(String [] args) ...

  10. monkey日志解析

    bash arg: -p (打印monkey命令携带的参数) bash arg: com.dapp.testAPP123 bash arg: --throttle bash arg: 200 bash ...