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

1.思惟導圖及學習體會

1.1第一章緒論知識點思惟導圖

1.2 學習體會

比較大的一個感觸是C++在一些項目上面確實是比C更加好用的,畢竟c更接近於機器語言。
經過此次大做業的學習,對數據結構大體有了一些瞭解,對於抽象數據類型的結構的兩個特整:數據抽象和數據封裝,也有了更好的領悟。

2.大做業做業內容

2.1 設計日期的ADT類型

ADT Date{
數據對象:
    D = {year,month,day | year,month,day屬於int類型}
數據關係:
    R = {<year,month>,<month,day>}
數據操做:
    Status InitDate(Date &date, int year, int month, int day);
    //初始化日期
    //操做結果:構造了年月日爲year, month, day 的Date

    string OutDate(Date date);
    //初始條件:date存在
    //操做結果:將日期以XXXX-XX-XX的string類型返回

    Status IsLeap(Date date);
    //初始條件:date存在
    //操做結果:是閏年返回TRUE。不是返回FALSE

    string WhichDay(Date date);
    //初始條件:date存在
    //操做結果:返回 string 類型的"是星期一", "是星期二"......

    string WhichMonth(Date date);
    //初始條件:date存在
    //操做結果:返回string類型的月份英文名

    Date AddDays(Date date, int days);
    //初始條件:date存在
    //操做結果:返回當前日期增長days天的日期

    char Relation(Date date, Date otherDate);
    //初始結果:date存在,otherDate存在
    //操做結果:返回 '>' '<' 或 '='

}ADT Date

2.2.數據抽象:

2.3數據封裝說明

(1)構造日期函數

作法:動態申請內存,將year,month,day存入date中
html

(2)返回string類型日期函數

作法:將數字型數據利用函數轉化到temp1,而後拼接起來
數據結構

(3)判斷閏年函數

作法:很基礎的題,,就很少說了,,,
函數

(4)判斷星期幾函數

作法:利用基姆拉爾森計算日期公式計算出星期幾,而後將對應的字符串返回就行了
學習

(5)返回月份英文名函數

作法:過程很簡單,看圖就明白了
網站

(6)返回當前日期增長days天的日期函數

作法:先將每月的不一樣天數存儲起來,將天數加在resultDate[2]也就是天數上,這時的天數可能超出了。而後利用while循環將天數與本月的最大天數進行動態比較,超了就進一。值得一提的是,當年份發生了改變時要對該年的2月份天數從新判斷,不然會出錯
設計

(7)比較當前日期與otherDate的邏輯關係函數

作法:轉化成整型數直接比較
3d

(8)主函數文件操做部分

3.結果展現

input.txt 文件

輸入界面

output.txt 文件

4.調試碰到問題

Q:C++不是很瞭解?調試

A:經學長推薦了一個」菜鳥教程「的網站,感受很好用,文末附上連接code

Q:將整型數轉化成string類型時,因爲不瞭解這個類型於是不知道怎麼轉化?htm

A:經過百度在CSDN上找到了一個函數能直接轉化

菜鳥教程:http://www.runoob.com/cplusplus/cpp-tutorial.html

相關文章
相關標籤/搜索