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

1.思惟導圖及學習體會

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

1.2 學習體會

  • 1. 這兩週剛學習了數據結構,q寒假時候沒預習數據結構有關的視頻,來了學校剛翻開數據結構的書,直到如今,感受本身換專業是否是還來得及說實話o(////▽////),我仍是以爲他沒C語言書「好看」好理解,╮(╯▽╰)╭,還有時間複雜度空間複雜度,很難理解很難計算,課堂派預習做業作起來作得懷疑人生了,感受本身是從C語言的深淵掉進了更深的魔窟,老師又佈置了大做業,一開始沒碰C++感受和C差不少,cin cout new 等等一堆東西,就以爲本身得從新學習,剛看了曉淞大佬的以爲本身真的是從新學習同樣,並且過久沒打代碼啥都忘記了
  • 2. 此次大做業中,主要是對C++一些語法的應用還有考驗C語言的功底紮實不,C++一些語法的確是比C來得方便簡單了很多,上學期課設中要在文件中寫入內容須要fprintf,這回在C中只要用文件指針後面跟着內容便可,還有cout輸出內容,也比printf簡單點,比起C語言它更容易去操做,代碼執行效率也提升了,代碼看起來也算好看牛逼了

2.大做業內容

2.1 設計日期的ADT類型

ADT Date{
數據對象:
    D={year, month, day|year, month, day屬於int類型}
操做關係:
    R={<year, month>,<month, day>}
數據操做:
Status InitDate (ElemType&Date,int year,int month ,int day);//操做結果:構造了 日期數據結構Date,year爲Date,month爲Date中的月,day爲Date中的天,並判斷日期的是否爲閏年
void FindWeek (ofstream &outFile,ElemType Date) ; //操做結果:輸出月份的英文名還有星期幾,並存入output.txt 
void LeapYear(ofstream &outFile,ElemType Date); //操做結果: 根據InitDate中已經判斷是否爲閏年,將結果輸出  
void CompareDate(ofstream &outFile,ElemType Date); //操做結果:經過比較 輸出日期間的邏輯關係      
Status AddDays (ofstream &outFile,ElemType Date); //操做結果:輸出當前日期增長days天的日期  
Status Judge_Correct (ElemType Date);//操做結果:判斷是否爲合法數據。合法則返回TRUE,不然返回ERROR 
Status DateDestroy(ElemType &Date);//操做結果:摧毀Date 
     
};

2.2.數據抽象:頭文件

  • 文件1:common.h
    作法:存放各類C++的頭文件
    數組

  • 文件2:date.h
    判斷輸入的用戶名及密碼是否對應在users.txt有該帳戶密碼
    數據結構

2.3數據封裝說明

(1)構造三元組函數

作法:構造三元組分別把3個變量放入數組T中,並將年月日存進去,並簡單判斷閏年與否利用1,0也存進去
函數

(2)銷燬日期數據類型函數

作法:釋放Date所申請的內存
學習

(3)判斷是不是合法數據

作法:判斷是否爲合法數據,比較二月份的天數還有是不是輸入小於1的天數,以及是否超出各個月的最大限度天數

設計

(4)輸出閏年

作法:輸出閏年以及在文件中存進去3d

(5)判斷星期幾和輸出月份英文名

作法:經過先創建數組裏面存禮拜幾和月份英文名,在經過三元組的內容能夠做爲數組的下標來方便的找到禮拜幾和月份英文名
指針

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

作法:先判斷輸入的日期是否正確是否爲負數,再經過輸入要求天數的不斷減小,以及變量day的累加不斷刷新各變量以及各變量的累加實現要求

調試

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

作法:一個個比較下來,先比年,年大的就是誰大,若是同樣再比月誰月數大誰大,再比天,若是都同樣則爲同樣的一天
code

3.結果展現

1.Dvec

2.input文件

3.output文件

4.調試碰到問題

  • Q1: 一開始無從下手啊,C++啥都不會,懵逼的一匹,看了別人特別是曉淞天明的代碼。。。更懵逼了
  • A1:看了別人的代碼,還有各類百度,各類去問別人慢慢懂得怎麼搞的,還有本身調試慢慢探索
  • Q2:在編寫代碼途中,一直在想着像曉淞他們那樣直接返回string型的數據,這樣會簡單牛逼點
  • A2:最後仍是在每次功能實現後不用返回,直接輸出出來並直接打進文件中,雖然曉淞他們那樣的確更方便
  • Q3: 一開始在寫找星期幾這個部分,想了好久不知道到底該怎麼弄,想了各類奇奇怪怪的方法
  • A3:後來仍是看了曉淞的代碼,看到了那個名字一長串很牛逼的方法,是真的牛逼,這樣算一算就知道禮拜幾
相關文章
相關標籤/搜索