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

    大作业要求

    题目:试仿照三元组或复数的抽象数据类型设计一个关于日期的抽象数据类型。

    类型名称:DATE

    数据对象:年,月,日。

    数据操作:

    • 初始化日期
    • 返回日期的年、月、日
    • 输出日期格式(可以自己设计格式,如2019/2/25 或者 2019-2-25)
    • 判断是否闰年
    • 返回这个日期是星期几
    • 返回月份的英文名
    • 返回当前日期增加days天的日期
    • 比较当前日期与otherDate的逻辑关系
    • 等等,可自己再扩展

    实验要求:

    抽象数据类型名为DATE

    • 用C++语法实现,要有&,new,delete,cin,cout等c++语法。
    • 程序应对异常输入或者出错必要处理和提示,如月份超过12的数据
    • 建工程文件实现,体现抽象数据类型的数据抽象和数据封装。
    • 设计测试数据实现功能测试如闰年判断、返回月份等。测试数据存input.txt文件,运行结果写入out,txt.如:

    测试文件数据,input.txt:

    格式如:

      2019 2 26   
      2000 13 9
      2018 9 10   
       ......
    

    上述数据可以自己增加。

    运行结果写入out.txt:

    如:

    2019/2/26
    2019 不是闰年
    2019/2/26是星期二
    2019/2/26月份是February
    2019/2/26+3是2019/3/1
    2019/2/26>2018/3/4
    2000 13 9 不是合法日期,月份不能超过12
    。。。。(其他日期输出结果)
    
    

    注意:上述代码实现后,请把代码复制到word文件中,上传课堂派。

    1.思维导图及学习体会(2分)

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

    1.2 学习体会

    2.大作业作业内容 (6分)

    2.1 设计日期的ADT类型(1分)

    参考代码:q群三元组代码,用ADT的抽象数据模型描述你的日期数据类型。如

    ADT Triplet{
    数据对象:D={e1,e2,e3|e1,e2,e3属于ElemType类型}
    数据关系:R1={<e1,e2>,<e2,e3>}
    数据操作:
    Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3); 
        //操作结果:构造了三元组T,元素e1,e2和e3的值分别被赋以参数v1,v2,v3的值。    
    Status DestroyTriplet(Triplet &T);  
        //操作结果:三元组T被销毁。    
    Status Get(Triplet T, int i, ElemType &e);  
        //初始条件:三元组T已存在,1<=i<=3。  
        //操作结果:用e返回T的第i元的值  
    Status Put(Triplet &T, int i, ElemType e);  
        //初始条件:三元组T已存在,1<=i<=3。  
        //操作结果:改变T的第i元的值为e。  
    。。。。。
    }ADT Triplet
    

    2.2.数据抽象:头文件)

    截图展示你的头文件。头文件代码务必加入注释。

    #include "Common.h"  
    #define ElemType int   
    typedef ElemType * Triplet;//由InitTriplet分配3个元素存储空间  
    Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3);  
        //操作结果:构造了三元组T,元素e1,e2和e3的值分别被赋以参数v1,v2,v3的值。  
      
    Status DestroyTriplet(Triplet &T);  
        //操作结果:三元组T被销毁。  
      
    Status Get(Triplet T, int i, ElemType &e);  
        //初始条件:三元组T已存在,1<=i<=3。  
        //操作结果:用e返回T的第i元的值  
      。。。。。
    

    2.3数据封装说明

    截图展示每个运算操作代码。并文字简要介绍功能。如

    (1)构造三元组函数

    做法:动态申请内存,分别把3个变量放入数组T中。

    Status InitTriplet(Triplet &T, ElemType v1, ElemType v2, ElemType v3)  
    {   //操作结果:构造了三元组T,元素e1,e2和e3的值分别被赋以参数v1,v2,v3的值。  
          
        //T = (ElemType *)malloc(3 * sizeof(ElemType));  
        T=new ElemType[3];
        if(!T) exit(OVERFLOW);  //分配存储空间失败  
        T[0] = v1; T[1] = v2; T[2] = v3;  
        return OK;  
    } //InitTriplet 
    
    

    3.结果展示(1分)

    截图展示你的输入数据及输出结果。截图中可以简要文字描述每种功能

    4.调试碰到问题(1分)

    描述你调试中碰到问题及解决方法。

  • 相关阅读:
    John Resig 见面会视频
    《程序员羊皮卷》书评
    用 JavaScript 对 JSON 进行模式匹配 (Part 2 实现)
    工具:开发者使用,企业埋单
    「云端 JavaScript 漫游指南」
    如何让你的网站支持 IE9 Pinned Site (Part 1 理论)
    世界顶级黑客自传:Ghost in the Wires
    MVP Summit 2010 Trip (WA)
    Apple 谈论产品 vs Microsoft 谈论技术
    IBatisNet开发使用小结 之二
  • 原文地址:https://www.cnblogs.com/linli069/p/10436006.html
Copyright © 2011-2022 走看看