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

1.思维导图及学习体会

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

1474650-20190308125257746-233768925.png


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.数据抽象:头文件

1474650-20190307205135575-1072795803.png


2.3数据封装说明

(1)构造日期数据类型函数

做法:动态分配内存空间,将year,month,day存入数组date中

1474650-20190307205554101-485958970.png


(2)年月日输入函数并判断函数

做法:判断输入的年月日是否合法,否则重新输入

1474650-20190307210049471-727117420.png
1474650-20190307210056315-1960796630.png


(3)判断是否是闰年函数

做法:简单的判断,输出结果

1474650-20190307210321008-1989572453.png


(4)判断星期几函数

做法:将数组中的数据存入变量,再对变量进行变换,通过数学公式得出结果

1474650-20190307210515511-1513378129.png


(5)输出月份英文名函数

做法:对数组中代表月份的位序进行判断,依次输出

1474650-20190307210717957-449110858.png


ps:因为后面都一样,就不进行截图!!

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

做法:先将数据存放到新定义的变量,再从新定义的变量的day开始加,对月份的day进行判断,依此类推到month和year的增加

1474650-20190307211035587-579051524.png


(7)比较日期间的逻辑关系函数

做法:输入一个日期,判断是否合法,先比较年,再月,在日。

1474650-20190307211657385-1723310561.png
***

头文件

1474650-20190307232950529-1035287228.png


3.结果展示

测试文件数据,input.txt:

1474650-20190307233500209-2099599616.png

运行结果写入out.txt:

写入:

1474650-20190307233521304-397955795.png

输出:

1474650-20190307233533928-677831008.png


4.调试碰到问题

  • 1.对c++的语法可能不太熟悉,需要阅读同学代码或者上网查找。
  • 2.代码冗长,算法效率太低,看了范华同学的代码有点启发,在今后作业会加以使用。
  • 3.在文件的输入中遇到了很多问题,对于c++文件的语法掌握不牢。

转载于:https://www.cnblogs.com/ashinluox/p/10492224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值