zoukankan      html  css  js  c++  java
  • DS博客作业01--日期抽象数据类型设计与实现

    1.思维导图及学习体会

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

    1.2 学习体会

    这个学期在上学期c语言的基础上,开始了数据结构的学习,数据结构这门课程需要用到的链表结构很多,对于第一章的学习,我对数据结构这门课程有了初步的认知,第一章绪论的主要内容,首先时对于数据结构的介绍,数据是描述客观事物的书和字符的合集,数据元素是数据的基本单位,数据元素又是由数据项组成的。逻辑结构是数据元素之间的逻辑关系,它的类型有集合,树形,线性图形这几种,另外一种是计算机存储器中的存储方式,即数据的存储结构,有四种类型,顺序,链式,索引,散列存储结构。其次,第一章也介绍了算法,主要是有算法描述和分析这两块内容,算法描述主要是对于算法的定义和特点进行了介绍,算法分析则是说明了算法的设计目标和效率分析,效率分析主要是时间复杂度和空间复杂度。总结了一下,数据结构这一块还是需要对以前的知识进行复习和加强的,尤其是链表这一块。

    2.大作业作业内容

    设计日期的ADT类型

    ADT Date
    {
    数据对象:
    D={year,month,day|year,month,day属于int 类型};
    数据关系:
    R={<year,month>,<month,day>};
    数据操作:
    void CreatInformation(int *&Date,int year,int month,int day);
    //初始化日期
    //操作结果:构造三元组
    int Judge(int *Date,ofstream& write);
    //初始条件:Date存在,文件成功打开
    //操作结果:判断文件内的日期是否合法,合法返回1;
    void Leapyear(int *Date,ofstream& write);
    //初始条件:Date存在,文件成功打开,日期合法
    //操作结果:判断年份是否是闰年并且将结果写进文件
    void Day(int *Date,ofstream& write);
    //初始条件:Date存在,文件成功打开,日期合法
    //操作结果:判断日期是星期几,并且将结果写进文件
    void Month(int *Date,ofstream& write);
    //初始条件:Date存在,文件成功打开,日期合法
    //操作结果:将月份的英文单词放回,写进文件
    void Icrease(int *Date,ofstream& write);
    //初始条件:Date存在,文件成功打开,日期合法
    //操作结果:计算增加后的日期,并且写入文件
    void CompareDate(int *Date,ofstream& write);
    //初始条件:Date存在,文件成功打开。日期合法
    //操作结果:与输入的日期比较,并且写入文件
    int Judge2(int year,int month,int day);
    //初始条件:输入的年份日期符合 int类型
    //操作结果:判断日期是否合法,合法返回值1,不合法返回值0
    }

    2.2数据抽象:

    2.3数据封装说明

    (1)构造三元组函数

    (2)日期合法性判断函数

    (3)闰年判断函数

    (4)星期判断函数

    (5)英文月份返回函数

    (6)增加天数计算函数

    (7)日期比较函数

    (8)日期合法性判断函数2

    (9)主函数

    3.结果展示

    文件input.txt中的数据:

    运行界面:

    文件output.txt中的结果:

    4.调试碰到的问题。

    ·Q1:首先是对于c++语法的不熟悉,文件打开语法和其他语法
    ·A1:借鉴百度经验和同学的代码参考
    ·Q2:文件指针定义错误,无法正确打开文件
    ·A2:不使用宏定义,直接在每个函数中定义
    ·Q3:日期比较函数和日期判断函数无法正确运行
    ·A3:更改了头文件中的函数定义,修改了主函数中的引用

  • 相关阅读:
    python zip()与zip(*ziped)以及list(zip(a,b))
    通信原理(第七版)-樊昌信-第一章-绪论-重要知识点
    通信原理-自相关与互相关函数的关系
    通信原理(第七版)-樊昌信-第二章-确知信号-重要知识点
    C#Linq的10个练习
    C#从委托、lambda表达式到linq总结
    C#的隐式类型、匿名类型、自动属性、初始化器
    MVC开发之Razor的使用
    Markdown常用语法
    MVC开发之注入容器Ninject的使用
  • 原文地址:https://www.cnblogs.com/lw123---/p/10453078.html
Copyright © 2011-2022 走看看