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

    1.思维导图及学习体会

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

    1.2 学习体会

    碎碎念:数据结构与之前的c语言相比,感觉比较抽象,经过这两周的学习和摸索,总体感觉这两周我的学习感受是要比学c热心一点的。这次大作业的完成比较慢,一是要去了解c++的基础知识,再者之前学的c有一些知识点有陌生感了,不过参考同学的代码还是能勉强完成的,但我发现我的问题是还不够熟稔的建工程,希望接下来继续保持学习热心,明天又是美好的一天(手动狗头)。
    

    2.大作业作业内容

    2.1 设计日期的ADT类型

    ADT  Date{
         数据对象:
    	 D={year,month,day|year,month,day属于int类型}
    	 数据关系:
    	 R={<year,month>,<month,day>}
    	 数据操作:
    	 Status ISRUNYear(Date date,ofstream &outFile);
              //初始条件:date存在
            //操作结果:判断是否是闰年 
          Status ReturnWeek(Date date,ofstream &outFile);
            //初始条件:date存在
           //操作结果:返回是星期几 
         string OutDate(Date date);
          //初始条件:date存在
         //操作结果:控制年月日输出格式为xxxx/xx/xx 
         String ReturnMonthEnglish(Date date,ofstream &outFile);
          //初始条件:date存在
         //操作结果:返回月份英文 
         Status InitDate(Date &date,int year,int month,int day);
          //初始条件:date存在
         //操作结果:年月日初始化 
         char Compare(Date date,Date OtherDate); 
          //初始条件:date存在
         //操作结果:比较年月日的大小 
         Date AddDate(Date date,int days);
          //初始条件:date存在
         //操作结果:增加对应要增加的天数 	  
    }
    

    2.2.数据抽象:头文件)

    2.3数据封装说明(每个函数的说明)

    构造三元组函数

    做法:为年月日申请空间,同时判断年月日是否合法
    

    控制年月日输出格式

    做法:把日期转为字符型,同时根据变量i来控制"/"输出
    

    判断是否为闰年

    做法:根据计算闰年公式所得
    

    返回星期函数

    做法:先根据公式算出年月日对应的星期,再以switch返回
    


    返回月份英文单词

    做法:根据 date[1](月份)返回对应单词,与返回星期做法差不多;
    


    比较两个年月日的大小

    做法:把年月日以年*1000+月*100+天的形式转为数值,方便比较大小,定义char 型,在返回"<" ">" "="是返回字符型
    

    增加天数

    做法:引入Date temp;把年月日赋值给temp[0],temp[1],temp[3],改变temp变量的值,把每月天数定为31,判断天数是否超过31,如果超过,则判断是否为是闰月,相应的如果超过月份超过十二,则年++。
    

    摧毁data

    主函数


    3.结果展示

    4.调试碰到问题

    • Q1:在调试结果发现我的控制输出格式日期为 2019/,月日没有。
    • A1: 发现return 在for循环里
    • Q2:增加天数如果超过该月的月份时,程序运行不了
    • A2:没有考虑闰年是天数,参考了同学的做法
      引入临时变量

  • 相关阅读:
    拍照
    ORACLE DATABASE 10G FALSHBACK 知识整理
    在webx.ml中 配置struts2 后 welcome-file-list 失效的解决办法
    基于内容的图像检索技(CBIR)术相术介绍
    Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
    终端复用工具tmux的使用
    泛型的使用
    1.2.4 Java Annotation 提要
    Java算法--串的简单处理
    【基础练习】【线性DP】codevs3641 上帝选人题解
  • 原文地址:https://www.cnblogs.com/ttyppt/p/10460533.html
Copyright © 2011-2022 走看看