一開學就是大做業,我方了。學習數據結構呢其實跟以前學習C的時候感受沒多大差異,最主要的就是從C換成了C++,雖然並無學過C++,可是還有百度(可還行)。不會就查,查多了,也就懂得多了,畢竟C++跟C差很少。最主要得是,C++真的比C要少寫好多行代碼。目前學的知識呢,還比較簡單,不過接下來要更加努力,別再像上學期那樣到課設的時候,還有知識點不會去查書。
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); //初始化日期 //操做結果:構造三元組date,元素year、month、day分別爲年、月、日 string ExpDate(Date date); //初始條件:三元組date存在 //操做結果:以字符串的形式輸出日期 Status IsLeapyear(ElemType year); //初始條件:三元組date存在 //操做結果:如果閏年則返回TRUE,不然返回FALSE string Week(Date date); //初始條件:三元組date存在 //操做結果:返回這個日期是星期幾 string MonthInEnglish(Date date); //初始條件:三元組date存在 //操做結果:返回月份英文名 void AddDate(Date &date, ElemType days); //初始條件:三元組date存在 //操做結果:返回當前日期增長days天的日期 char CompareDate(Date date,Date OtherDate); //初始條件:三元組date存在 //操做結果:比較當前日期與OtherDate的邏輯關係 }ADT Date
分配動態內存,構造三元組,並判斷日期是否合法
ios
以字符串的形式輸出日期
數據結構
按照公式判斷該日期是年份否是閏年,是返回TRUE,反之返回FALSE
函數
根據公式判斷該日期所在的星期,並返回該星期
學習
輸入所加的天數,並返回增長改天數以後的日期
設計
判斷輸入日期與原日期之間的邏輯關係
3d
int main() { Date date;//定義一個date的三元組 int year, month, day; int days; string newDate; //增長days天后的日期 Date otherDate; string strDate; string strWeek; string str; char op; ifstream infile; infile.open("input.txt", ios::in); ofstream outfile; outfile.open("output.txt", ios::out); while (!infile.eof()) { infile >> year >> month >> day; if (!InitDate(date, year, month, day)) { strDate = ExpDate(date); cout << strDate << "不是合法日期" << endl << endl; outfile << strDate << "不是合法日期" << endl << endl; continue; } strDate = ExpDate(date); cout << strDate << endl; outfile << strDate << endl; if (IsLeapyear(year)) { cout << year << "是閏年" << endl; outfile << year << "是閏年" << endl; } else { cout << year << "不是閏年" << endl; outfile << year << "不是閏年" << endl; } strWeek = Week(date); cout << strDate << strWeek << endl; outfile << strDate << strWeek << endl; str = MonthInEnglish(date); cout << strDate << "月份是" << str << endl; outfile << strDate << "月份是" << str << endl; cout << "請輸入增長天數:"; cin >> days; AddDate(date, days); newDate = ExpDate(date); cout << strDate << '+' << days << "是" << newDate << endl; outfile << strDate << '+' << days << "是" << newDate << endl; cout << "請輸入與當前日期相比較的日期:"; /*cin >> year >> month >> day; while (!InitDate(otherDate, year, month, day)); { cout << "請輸入正確的日期:" << endl; cin >> year >> month >> day; }*/ while (1) { cin >> year >> month >> day; if (!InitDate(otherDate, year, month, day)) { cout << "請輸入正確的日期:" << endl; continue; } else break; } newDate = ExpDate(otherDate); op = CompareDate(date, otherDate); cout << strDate << op << newDate << endl<<endl; outfile << strDate << op << newDate << endl<<endl; } infile.close(); outfile.close(); system("pause"); }