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


    1.思维导图及学习体会


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


    1.2 学习体会

    本学期迎来的是概念更加抽象化的数据结构。[叹气.jpg]从课堂派的情况就能看出在这方面的进度并不理想qaq。对于一些比较抽象化的概念的理解还是止步于模仿。课堂上的内容会更偏向于理论化(听着感觉会了系列),而刚开学就来临的大作业还是比较令人头疼的。要一边回忆上学期所学习的c的内容,一边学习c++内容酱。还学习了三元组数据封装,是一种很好的方式,如果用结构体数组或者链表的表达,应该也是比较方便的。这个后期可以自己尝试练习。要及时完成大作业酱


    2.大作业作业内容

    2.1 设计日期的ADT类型

    
    ADT Date{
    数据对象:
        D = {year,month,day | year,month,day属于int类型}
    数据关系:
        R = {<year,month>,<month,day>}
    数据操作:
        void DataEncap(Date &date,int year,int month,int day);					
        // 函数功能: 数据封装
        // 操作结果: 返回三元组
    
        int WeekDay(Date date);														
        // 函数功能:判断星期几
        // 操作结果:返回对应数字	
    									
        int IsLeagal(Date date);													
        // 函数功能:判断日期是否合法
        // 操作结果:合法返回OK反之返回NO
    
        int IsLeapYear(Date date);													
        // 函数功能: 判断是否闰年
        // 操作结果: 闰年返回NO反之返回NO
    
        int CompareDate(Date date,Date &newDate);									
        // 函数功能: 比较日期
        // 操作结果: 返回><=对应数字012
    
        Date AddDays(Date date,int mon[],int &addDay);								
        // 函数功能: 计算增加天数后日期
        // 操作结果: 返回三元组
     
        string DateBuild(Date date);
        // 函数功能: 连接日期
        // 操作结果: 返回字符串
    }ADT Date
    

    2.3数据封装说明

    (1)构造日期函数

    • 利用三元组进行数据封装,&实时更新。

    (2)判断日期是否合法

    • 利用分支语句,年月日依次判断日期是否合法

    (3)判断是否闰年

    • 一条语句 返回结果

    (4)判断周几

    • 判断周几(现成的公式可以现套)返回数字,再由主函数中定义的数组输出

    (5)返回增加天数后日期

    • 引用算法,传参传入addDay,引用符同步修改(便于后期写入文件)定义新的temp三元组,返回三元组,在主函数中,赋值给addDay,便于写入文件。算法参考百度上的计算方式

    (6)比较日期

    • 输入日期,同步更新。比较日期,返回相应数字。在主函数当中定义字符组><=,对应输出写入

    (7)主函数


    3.结果展示

    input.txt


    output.txt


    控制台输出


    4. 调试碰到的问题

    • Q:在判断是否是闰年的时候,程序在函数中间运行总是停止,导致程序意外终止。
    • A:在函数中间插入了一些cout语句,找出症结。发现直接cin数组赋值,导致传参出错,程序输错,纠正后就能正确运行了。
    • Q:对于&符号的使用不够熟练
    • A:单独写了另外的一个函数,测试了一下&的用法。
    • Q:对于c++语法的不够熟练
    • A:参考博客其他同学的用法,再加百度,比较快地掌握
  • 相关阅读:
    CentOS中安装Nginx
    SSM框架中Mybatis的分页插件PageHelper分页失效的原因
    linux相关设置
    windows下安装ElasticSearch的Head插件
    git学习
    消息队列介绍和SpringBoot2.x整合RockketMQ、ActiveMQ 9节课
    C# if语句
    C# switch语句
    C# for语句
    C# foreach语句
  • 原文地址:https://www.cnblogs.com/salcious/p/10506307.html
Copyright © 2020-2023  润新知