zoukankan      html  css  js  c++  java
  • 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:参考博客其他同学的用法,再加百度,比较快地掌握
  • 相关阅读:
    机器学习笔记19(unspervised learning -> Word Embedding)
    full-stack-fastapi-postgresql-从安装docker开始
    H3C诊断模式下判断端口是否拥塞
    pandas 数据重塑--stack,pivot
    解决Mybatis 异常:A query was run and no Result Maps were found for the Mapped Statement 'xingzhi.dao.music.ISong.GetSongTotal'
    foreach + remove = ConcurrentModificationException
    Spring MVC 实体参数默认值设置
    JDBC中SQL语句与变量的拼接
    在IDEA中使用JDBC获取数据库连接时的报错及解决办法
    使用Docker分分钟搭建漂亮的prometheus+grafana监控
  • 原文地址:https://www.cnblogs.com/salcious/p/10506307.html
Copyright © 2011-2022 走看看