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

1.思惟导图及学习体会

1.1 第一章绪论知识点思惟导图

1.2 学习体会

  • 1. 这两周刚学习了数据结构,q寒假时候没预习数据结构有关的视频,来了学校刚翻开数据结构的书,直到如今,感受本身换专业是否是还来得及说实话o(////▽////),我仍是以为他没C语言书“好看”好理解,╮(╯▽╰)╭,还有时间复杂度空间复杂度,很难理解很难计算,课堂派预习做业作起来作得怀疑人生了,感受本身是从C语言的深渊掉进了更深的魔窟,老师又布置了大做业,一开始没碰C++感受和C差不少,cin cout new 等等一堆东西,就以为本身得从新学习,刚看了晓淞大佬的以为本身真的是从新学习同样,并且过久没打代码啥都忘记了
  • 2. 此次大做业中,主要是对C++一些语法的应用还有考验C语言的功底扎实不,C++一些语法的确是比C来得方便简单了很多,上学期课设中要在文件中写入内容须要fprintf,这回在C中只要用文件指针后面跟着内容便可,还有cout输出内容,也比printf简单点,比起C语言它更容易去操做,代码执行效率也提升了,代码看起来也算好看牛逼了

2.大做业内容

2.1 设计日期的ADT类型

ADT Date{
数据对象:
    D={year, month, day|year, month, day属于int类型}
操做关系:
    R={<year, month>,<month, day>}
数据操做:
Status InitDate (ElemType&Date,int year,int month ,int day);//操做结果:构造了 日期数据结构Date,year为Date,month为Date中的月,day为Date中的天,并判断日期的是否为闰年
void FindWeek (ofstream &outFile,ElemType Date) ; //操做结果:输出月份的英文名还有星期几,并存入output.txt 
void LeapYear(ofstream &outFile,ElemType Date); //操做结果: 根据InitDate中已经判断是否为闰年,将结果输出  
void CompareDate(ofstream &outFile,ElemType Date); //操做结果:经过比较 输出日期间的逻辑关系      
Status AddDays (ofstream &outFile,ElemType Date); //操做结果:输出当前日期增长days天的日期  
Status Judge_Correct (ElemType Date);//操做结果:判断是否为合法数据。合法则返回TRUE,不然返回ERROR 
Status DateDestroy(ElemType &Date);//操做结果:摧毁Date 
     
};

2.2.数据抽象:头文件

  • 文件1:common.h
    作法:存放各类C++的头文件
    数组

  • 文件2:date.h
    判断输入的用户名及密码是否对应在users.txt有该帐户密码
    数据结构

2.3数据封装说明

(1)构造三元组函数

作法:构造三元组分别把3个变量放入数组T中,并将年月日存进去,并简单判断闰年与否利用1,0也存进去
函数

(2)销毁日期数据类型函数

作法:释放Date所申请的内存
学习

(3)判断是不是合法数据

作法:判断是否为合法数据,比较二月份的天数还有是不是输入小于1的天数,以及是否超出各个月的最大限度天数

设计

(4)输出闰年

作法:输出闰年以及在文件中存进去3d

(5)判断星期几和输出月份英文名

作法:经过先创建数组里面存礼拜几和月份英文名,在经过三元组的内容能够做为数组的下标来方便的找到礼拜几和月份英文名
指针

(6)返回当前日期增长days天的日期函数

作法:先判断输入的日期是否正确是否为负数,再经过输入要求天数的不断减小,以及变量day的累加不断刷新各变量以及各变量的累加实现要求

调试

(7)比较当前日期与otherDate的逻辑关系函数

作法:一个个比较下来,先比年,年大的就是谁大,若是同样再比月谁月数大谁大,再比天,若是都同样则为同样的一天
code

3.结果展现

1.Dvec

2.input文件

3.output文件

4.调试碰到问题

  • Q1: 一开始无从下手啊,C++啥都不会,懵逼的一匹,看了别人特别是晓淞天明的代码。。。更懵逼了
  • A1:看了别人的代码,还有各类百度,各类去问别人慢慢懂得怎么搞的,还有本身调试慢慢探索
  • Q2:在编写代码途中,一直在想着像晓淞他们那样直接返回string型的数据,这样会简单牛逼点
  • A2:最后仍是在每次功能实现后不用返回,直接输出出来并直接打进文件中,虽然晓淞他们那样的确更方便
  • Q3: 一开始在写找星期几这个部分,想了好久不知道到底该怎么弄,想了各类奇奇怪怪的方法
  • A3:后来仍是看了晓淞的代码,看到了那个名字一长串很牛逼的方法,是真的牛逼,这样算一算就知道礼拜几
相关文章
相关标签/搜索