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

1.思维导图及学习体会
1.1第一章绪论知识点思维导图

1.2 学习体会

迷迷糊糊的开始学习便遇到了第一难关——时间复杂度和空间复杂度的计算,搞不懂什么叫做问题规模,开始认为是某段函数计算的次数,听课得知时间复杂度n的计算需要一定的数学逻辑,而求空间复杂度需要抓住临时变量这个问题。经过长假的洗礼,有很多较细的内容以及注意点都忘了,开学的第一次大作业也帮助我重新巩固了c语言的知识,也运用到了一些c++的知识(虽然作用不大),感觉现在写大作业不像往常那么吃力。希望新学期也能接触新的知识。

2.大作业作业内容
设计日期的ADT类型

ADT DATE
{
数据对象:
    D={year,month,day | year,month,day属于ElemType类型}
数据关系:
    R = {<year,month>,<month,day>}
数据操作:
 Status InitDate(DATE &date,ElemType year,ElemType month,ElemType day);
//操作结果:初始化日期,构造了日期,判断日期合法性  
Status Return_Date(DATE &date);
 //初始条件:日期date建立 
 //操作结果:返回给定格式的日期的年、月、日
Status Judge_LeapYear(DATE &date);
 //初始条件:日期date已存在,且年月日满足基本条件
 //操作结果:判断是否为闰年 
Status Judge_Week(DATE &date);
 //初始条件:日期date已存在,且年月日满足基本条件
 //操作结果:返回这个日期是星期几 
Status Add_day(DATE &date,int days);
 //初始条件:日期date已存在,且年月日满足基本条件
 //操作结果:返回月份英文单词 
Status Return_ThenDate(DATE &date,int days);
 //初始条件:日期date已存在,且年月日满足基本条件
 //操作结果:返回当前日期增加days天的日期,返回存放操作后的日期的OtherDate数组 
Status Compare_Date(DATE &date,DATE &OtherDate);
 //初始条件:日期date已存在,且年月日满足基本条件
 //操作结果:比较当前日期与otherDate的逻辑关系,返回bigger Or smaller代表逻辑关系 
 }ADT DATE

2.2数据抽象:
2.2.1Date.h

2.3数据封装说明
(1)主函数 :main.c

(2)构造三元组函数

(3)返回日期

(4)闰年判断函数

(5)星期判断函数

(6)英文月份返回函数

(7)增加天数计算函数

Status Add_day(DATE &date,int days);
{
	int monthDay[12]={31,29,31,30,31,30,31,31,30,31,30,31};
	int Day_Sum;
	Day_Sum=days+date[2];
    for(int i=1;i<12;i++)
    {
    	date[1]=i;
    	if(date[1]==2)
    	{
    		if(Judge_LeapYear(date))
    		{
    			if(Day_Sum>29)
    			date[1]++;
    			date[0]=Day_Sum-29;
    			else
    			date[0]=Day_Sum;
			}
			else
			{
				if(Day_Sum>28)
    			date[1]++;
    			date[0]=Day_Sum-28;
    			else
    			date[0]=Day_Sum;
			}	
		}
		if(date[1]==12)
		{
			if(Day_Sum>31)
    			date[0]+=1;
    			date[1]=1;
    			date[2]=Day_Sum-31;
    			else
    			date[0]=Day_Sum;
		}
		if(Day_Sum>monthDay[date[1]-1])
		{
			date[1]++;
			date[0]=Day_Sum-monthDay[date[1]-1];
		}
		else
	    date[0]=Day_Sum;
	}
	return date;
}

(8)日期比较函数

3.结果展示
文件input.txt中的数据:

运行界面:

文件output.txt中的结果:

4.调试碰到的问题。

posted on 2019-03-10 21:19  啦啦啦。  阅读(204)  评论(0编辑  收藏  举报

导航