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

1.思维导图及学习体会

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

1475740-20190309212929364-1940371080.png

1.2 学习体会

    这次大作业,我以为挺简单的,因为代码量总体不大,但实际动手做起来还是挺耗时间的。首先还是对C++的语法不够熟悉,其次就是自己的编程量还不够,碰到问题不能够自己独立地解决,在修改bug的时候会比较费时间。
    这次作业感觉也是一个锻炼吧,通过这次作业对C++更加有感觉,然后对函数的运用也更熟悉了。这次大作业,我以为挺简单的,因为代码量总体不大,但实际动手做起来还是挺耗时间的。首先还是对C++的语法不够熟悉,其次就是自己的编程量还不够,碰到问题不能够自己独立地解决,在修改bug的时候会比较费时间。熟能生巧,一步步好好练习就行。

2.大作业作业内容

2.1 设计日期的ADT类型

ADT Date{
数据对象:
    D={year, month, day|year, month, day属于int类型}
操作关系:
    R={<year, month>,<month, day>}
数据操作:
void InitDate(Date &date, int year, int month, int day);//操作结果:构造日期数据结构Date
Status IsLeapyear(Date date);//操作结果:判断是不是闰年,是则返回TRUE,否则返回FALSE
string WhichWeek(Date date);//操作结果:返回星期几
string WhichMonth(Date date);// 操作结果:返回是相应月份的英文名
Date AddDate(Date date, int day);//操作结果:返回增加天数后的日期
char Compare(Date date, Date otherDate);//操作结果:比较日期间的逻辑关系
Status IsLeageldate(Date &date, int year, int month, int day);//操作结果:判断输入的日期是否合法
string PrintDate(Date date);//将日期格式化输出
void DestroyDate(Date date); //销毁链表
};

2.2.数据抽象:头文件

  • date.h
    1475740-20190309202905037-1408544967.png
  • common.h
    1475740-20190309202916857-1655912035.png

2.3数据封装说明

函数的定义

  • InitDate初始化日期
    1475740-20190309203136604-281276496.png

  • IsLeapyear判断是不是闰年,是闰年返回TRUE,否则返回FALSE
    1475740-20190309203308703-247008210.png

  • WhichWeek返回星期几的函数
    1475740-20190309203410063-1410194868.png

  • WhichMonth返回月份英文名的函数
    1475740-20190309203509337-1106801383.png

  • AddDate增加天数之后的日期函数
    1475740-20190309203636277-159010884.png
    1475740-20190309203643611-677585477.png

  • Compare比较两个日期大小的函数
    1475740-20190309203733926-780320107.png

  • IsLeageldate判断日期合不合法,合法返回TRUE,不合法返回FALSE
    1475740-20190309203855851-1098984093.png

  • PrintDate格式化输出日期
    1475740-20190309204007577-33597106.png

  • DestroyDate销毁链表
    1475740-20190309204059697-455923466.png

3.结果展示

  • int.txt
    1475740-20190309204319304-108683060.png

  • out.txt
    1475740-20190309204353064-735920450.png

1475740-20190309204407723-720825799.png

4.调试碰到问题

  • 判断日期合不合法时,黑框刷出一片提示日期不合法的
    if日期合不合法条件判断失误,加上符号“!”即可
  • 在日期合法性判断那里显示异常访问
    当时把初始化函数放到判断合法性函数后面去了,导致非法访问
  • 输出的日期乱码
    类型转换出错导致乱码,对应改正即可

转载于:https://www.cnblogs.com/zhonghaiqing/p/10445131.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值