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

1.思维导图和学习体会

1.1绪论知识思维导图

1474647-20190309202644424-1173001386.png

1.2学习体会

通过这几节课数据结构的新学习,让我感到了难度,很多概念性的东西,不是很好理解,老师在讲内容的时候,很容易跟不上节奏,我发现这门课的学习一定不能够少了预习工作,而且预习工作一定要很扎实,比上学期的c语言要花更多的时间,不然上课很容易掉队,再者这次的大作业,让我重新接触了一门计算机语言c++,这次作业的使用,我发现它大体上的语言基础还是c语言。只不过在一些处理上做了简化,比起c语言,它更容易去操作。可能我没有用到它的高深之处,仅仅用了些皮毛,c++应该还有过人之处,以后的学习中,要多去了解这种语言。有了c的基础,不难掌握这门语言。

2大作业内容

2.1设计日期和DAT类型

1474647-20190309202800646-1179712441.png

2.2数据抽象

1474647-20190309202844047-870240597.png

2.3数据封装

1.构造日期函数(三元组构造与销毁)
//操作结果:构造了三元组T,元素year,month和day的值分别赋值
//操作结果:三元组T被销毁。

做法:动态申请内存,分别把3个变量放入数组T中。
1474647-20190309203010172-24665948.png

2.//操作结果:判断润年函数
做法:根据公式判断,是润年返回1,不是润年返回0
1474647-20190309203350439-779586078.png

3.//操作结果:计算星期几
做法:利用基姆拉尔森计算日期公式计算出星期几,用switch语句对应case情况,写入文件
1474647-20190309203546030-1943489307.png

4.//操作结果:输出英文月份
做法:定义一个二维数组分别存放1-12个月的英文串,利用month的值与二维数组结合(月份对应数组的地址)输出对应的英文。
1474647-20190309203812083-460666083.png

5.//操作结果:增加天数
做法:(使用最原始的方法)
(1)首先将原来对应的月份分为1/3/5/7/8/10/12一组。(用flag判断)
(2)在flag=1的情况下对应的从天数开始加,满了31天就月份进1;满了12月就年进1 /如果是flag=0的情况下,又分一下润年和非润年的2月份,然后也从天数开始增加,方法与上面的相同。
(3)最后将新结果写入文件
1474647-20190309204523268-538497928.png
1474647-20190309204539362-1652229848.png

6.//操作结果:比较别的日期
做法:首先调用IsLegal函数判断输入合法性,也是用最原始的方法if-else,先比较年,后比较月,再比较日。每一种情况分别写入文件
1474647-20190309205220596-478538357.png
1474647-20190309205139848-1607245283.png

7.//操作结果:判断输入合法性 (与比较日期配合调用)
做法:符合实际情况就返回1
1474647-20190309205355286-2133193173.png

8.Main函数
1474647-20190309205502085-2089090062.png

3.结果展示

input.txt

1474647-20190309205559425-1259751569.png

输入页面

1474647-20190309205740276-1378214906.png

out.txt

1474647-20190309205821103-431629046.png

4遇见问题

Q1:C++语法不熟悉,百度学习了基本的语法操作。感谢百度!
Q2:一开始不知道怎么同步文件,结果不知道怎么处理。
A2:学习了同学的文件指针,在函数定义时候形参定义个文件指针,跟随着函数内容一起操作。基本语言还是和c语言类似。所以处理起来很顺手。

转载于:https://www.cnblogs.com/zhouqb/p/10502843.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值