DS博客做業01--日期抽象數據類型設計與實現

大做業要求

題目:試仿照三元組或複數的抽象數據類型設計一個關於日期的抽象數據類型。c++

類型名稱: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.數據抽象:頭文件)

截圖展現你的頭文件。頭文件代碼務必加入註釋。code

#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中。ip

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分)

描述你調試中碰到問題及解決方法。

相關文章
相關標籤/搜索