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


    1.思维导图及学习体会

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


    1.2 学习体会

    这周刚刚学习了数据结构绪论和一部分线性表的知识,因为寒假提前预习了一会儿,在课堂上可以较快理解老师讲的内容。但是在c++语法上可能会有一些磕磕绊绊,要不断上网去查询或者询问同学。我个人认为数据结构相较于c语言可能更加抽象,比c语言更加的晦涩难懂,但是它承接了我们上学期的c语言一部分的知识,学起来可能会有一点儿熟悉感。在一些数据结构独有的概念上,可能我要花比之前学c语言更多的精力去理解它。这也能体现出数据结构更加抽象的特点。在今后的学习中,我会用比以前学习c语言更加勤奋的学习方式和手段,争取能取得一个比较好的开头入门。
    

    2.大作业作业内容

    2.1 设计日期的ADT类型

    ADT Date{
    数据对象:
        D = {year,month,day | year,month,day属于int类型}
    数据关系:
        R = {<year,month>,<month,day>}
    数据操作:
    void NewDate(DATE &date,ElemType day,ElemType mouth,ElemType year);  
    	//操作结果:构造三元组,对year,mouth,day赋值 
    int ScDate(DATE date,ElemType day,ElemType mouth,ElemType year,ofstream &write);  
    	//初始条件:三元组date存在,文件能成功打开 
        //操作结果:返回年月日,并判断是否合理 
    int IfRun(DATE date,ofstream &write);   
    	//初始条件: 三元组date存在,文件能成功打开 
        //操作结果:若是闰年返回1,否则返回0.   
    int JudgeWeek(DATE date,ElemType day,ElemType mouth,ElemType year,ofstream &write);    
    	//初始条件: 三元组date存在,文件能成功打开 
        //操作结果:判断输入的日期为星期几。   
    int EngMouth(DATE date,ofstream &write);  
    	//初始条件: 三元组date存在,文件能成功打开   
        //操作结果:输出当前日期月份的英语单词   
    int AddDays(DATE date,ElemType day,ElemType mouth,ElemType year,ofstream &write);  
    	//初始条件: 三元组date存在,文件能成功打开 
        //操作结果:返回当前日期增加days天的日期.    
    int CompareDay(DATE date,ofstream &write);  
    	//初始条件: 三元组date存在,文件能成功打开 
        //操作结果:比较当前日期与otherDate的逻辑关系
      }ADT Date
    

    2.2.数据抽象:头文件


    2.3数据封装说明

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

    做法:动态分配内存空间,将year,month,day存入数组date中


    (2)年月日输入函数并判断函数

    做法:判断输入的年月日是否合法,否则重新输入



    (3)判断是否是闰年函数

    做法:简单的判断,输出结果


    (4)判断星期几函数

    做法:将数组中的数据存入变量,再对变量进行变换,通过数学公式得出结果


    (5)输出月份英文名函数

    做法:对数组中代表月份的位序进行判断,依次输出


    ps:因为后面都一样,就不进行截图!!

    (6)返回当前日期增加days天的日期函数

    做法:先将数据存放到新定义的变量,再从新定义的变量的day开始加,对月份的day进行判断,依此类推到month和year的增加


    (7)比较日期间的逻辑关系函数

    做法:输入一个日期,判断是否合法,先比较年,再月,在日。


    头文件


    3.结果展示

    测试文件数据,input.txt:

    运行结果写入out.txt:

    写入:

    输出:


    4.调试碰到问题

    • 1.对c++的语法可能不太熟悉,需要阅读同学代码或者上网查找。
    • 2.代码冗长,算法效率太低,看了范华同学的代码有点启发,在今后作业会加以使用。
    • 3.在文件的输入中遇到了很多问题,对于c++文件的语法掌握不牢。
  • 相关阅读:
    ubantu安装pip3
    ubantu更换镜像源
    git 快速上手
    python zmq(ZeorMQ)
    用python连接SQL server数据库
    Django模板url需要注意的地方
    希尔排序记录--最好写的排序
    口腔溃疡要对症-------阴虚火旺和阳虚火旺
    与大学室友,保持一定的距离
    取指 间址 执行 中断 FE IND EX INT四个触发器
  • 原文地址:https://www.cnblogs.com/ashinluox/p/10492224.html
Copyright © 2020-2023  润新知