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

    1.思维导图及学习体会

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

    1.2 学习体会

    • 本章学习了数据结构绪论的相关知识,让我们从总体上了解什么是数据结构,掌握算法分析的方法。数据结构是一门基于C语言语法的专业基础课,主要学习用计算机实现数据组织和数据处理的方法,为后续的专业课打下基础。c语言的学习是为了识字,而数据类型的学习就是为了写字,通过数据结构的学习,能使我们更好地构造结构和编写程序,同时增加程序的执行效率,使程序的设计更加完善。

    2.大作业作业内容

    2.1 设计日期的ADT类型

    ADT Date{
    数据对象:
        D = {year,month,day | year,month,day属于int类型}
    数据关系:
        R = {<year,month>,<month,day>}
    数据操作:
        void InitDate(DATE &date,int year,int month,int day); 
            //操作结果:构造了日期数据结构Date,year为Date中的年,month月,day日
        void DestroyDate(DATE date);
            //操作结果:销毁Date三元组
        int JudgeDate(DATE date,ofstream &outTXT);
            //操作结果:判断是否是合法数据
        void IsLeapYear(DATE date,ofstream &outTXT);
            //操作结果:判断是否是闰年
        void WeekDay(DATE date,ofstream &outTXT);
            //操作结果:判断是星期几。 
        void MonthName(DATE date,ofstream &outTXT); 
            //操作结果:判断月份的英文名。 
        void AddDays(DATE date, ofstream &outTXT);
            //操作结果: 计算增加days天数后的日期
        void CompareDate(DATE date, ofstream &outTXT);
            //操作结果:比较日期间的逻辑关系
    }ADT Date
    

    2.2.数据抽象:头文件

    2.3数据封装说明

    (1)构造日期数据类型函数

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

    (2)销毁日期数据类型函数

    做法:销毁数组date,释放所申请的空间。

    (3)判断是否是合法数据

    做法:对日期的合法性进行判断并返回结果。

    (4)判断是否为闰年函数

    做法:进行闰年的判断并写入文件output。

    (5)判断是星期几

    做法:运用公式计算星期,并列举星期进行选择写入文件output。

    (6)判断月份的英文名

    做法:列举月份的英文名进行选择并写入文件output。

    (7)计算增加days天数后的日期

    做法:对闰年采用了下标查找数组中的数据的方法区分2月,通过循环累计days次逐加的方法计算增加天数后的日期,并写入文件output。

    (8)比较日期间的逻辑关系

    做法:对闰年采用了下标查找数组中的数据的方法区分2月,对年月日进行单一逐层判断,结果写入文件output。

    3.结果展示



    4.调试碰到问题

    • 在学习C++语言时,区别与C语言的语法都需要反复的调试才能知道正确性,像动态分配空间、输入输出、定义文件指针,所以在这部分需要花点精力去探究。
    • 在构建三元组的时候,总是出现导致内存分配失败,后来请教同学后得知指针传入时没有加上&符号,后来发现 int *& date 这种写法是错误的,需要借用 typedef int* DATE 的方法写成“DATE &date”才能运行。
    • 在读取数据时采用直接数字读取,但总是出错,后来得知在输入和输出时的格式中,‘/’需要通过ch单独区分。

  • 相关阅读:
    SDN第二次作业
    SDN第一次上机作业
    SDN第一次作业
    alpha冲刺第四天
    alpha冲刺第二天
    alpha冲刺第一天
    项目需求分析
    结对第二次作业
    团队选题报告(i know)
    结对作业——原型设计
  • 原文地址:https://www.cnblogs.com/blsn/p/10502268.html
Copyright © 2011-2022 走看看