三天打魚兩天曬網C 實現

2021-10-22 21:50:53 字數 2764 閱讀 1084

問題描述

中國有句俗語叫「三天打魚兩天曬網」。某人從2023年1月1日起開始「三天打魚兩天曬網」,問這個人在以後的某一天中是「打魚」還是「曬網」。用c或c++語言實現程式解決問題。

基本要求:1.程式風格良好(使用自定義注釋模板),提供友好的輸入輸出。

提高要求:1.輸入資料的正確性驗證。

2.使用檔案進行資料測試。如將日期 20100101 20111214 等資料儲存在in.txt檔案中,程式讀入in.dat檔案進行判定,並將結果輸出至out.txt檔案。

問題分析

)計算從2023年1月1日開始至指定日期共有多少天;

2)由於「打魚」和「曬網」的週期為5天,所以將計算出的天數用5去除取餘;

3)根據餘數判斷他是在「打魚」還是在「曬網」;

若 餘數為1,2,3,則他是在「打魚」

否則 是在「曬網」 。

程式設計

建立乙個date類,包含年月日。建立乙個distance函式用於計算指定日期到2023年1月1日的天數。建立乙個乙個方法meath用於判斷打魚或者曬網。建立乙個資料讀取read函式用於把讀取資料存入到磁碟鐘,。建立乙個檔案寫入函式write用於把檔案資料讀入陣列中。建立乙個text函式用於判斷函式英語判斷輸入資料是否有誤,在write函式中呼叫text函式用於判斷輸入。主函式呼叫write函式讀資料,read函式寫資料,把讀取資料一一放入distance函式求天數,其返回值傳入meath函式中判斷打魚或者曬網並輸出並儲存。

程式框架

#include

#include

using

namespace std;

class

date

date()

;};//定義乙個distance函式用於計算從2023年1月1日起至今的天數

intdistance

(date d1, date d2),}

;//二維陣列儲存閏年和平年每月的天數

for(

int i =

1; i <= y; i++

)//計算截止這個月前的天數總和

if(d2.year %4==

0&& d2.year %

100!=

0|| d2.year %

400==0)

}else

//不是閏年二月加28天

} dis = dis + d2.day;

return dis;

//返回天數

}//函式meath用於判斷是否打魚或者曬網

void

meath

(long

int dis)

//測試函式用於判斷輸入資料的正確性

inttext

(int d)if(

0> month || month >12)

if(month ==2)

}else}}

if(month ==

4|| month ==

6|| month ==

9|| month ==11)

}else

}return0;

}//建立乙個write函式用於檔案的寫入

void

write

(int d,

int n)

cout <<

"請輸入要查詢的日期,並自動存入磁碟f2中:"

<< endl;

for(

int i =

0; i < n; i++

) outfile << d[i]

<<

" ";

//輸出磁碟中的資料

} outfile.

close()

;//關閉檔案

}//建立read函式用於讀取磁碟中的資料

void

read

(int d,

int n)

cout << endl;

cout <<

"磁碟f2.txt中的資料為:"

<< endl;

for(

int i =

0; i < n; i++

) cout << endl;

cout << endl;

infile.

close()

;}intmain()

return0;

}

除錯截圖

測試截圖

心得體會

在計算從開始日期到指定日期的天數時,可以先計算中間間隔多少年,然後在判斷每一年是否是閏年,把每年的天數相加,在計算指定天數到1月的月數,如果指定月數等於二月則判斷是否閏年,把天數放入二維陣列裡面,一組下標代表閏年,一組代表平年,迴圈相加的月份天數,最後再加剩下的天數。步驟:(1)判讀是否閏年,(2)計算間隔年數的天數總和,(3)計算今年間隔月數的天數總和,(4)計算間隔天數總和。## 標題

三天打魚,兩天曬網。

判斷某人從2010年1月1日起開始 三天打魚,兩天曬網 到之後某一天是在打漁還是曬網 設計日期 2019.3.1 include define year 2010 void main 用陣列表示每月的天數 printf 請輸入所要判斷的時間 n scanf 4d 2d 2d year,month,d...

三天打魚兩天曬網(c )

中國有句俗語叫 三天打魚兩天曬網 某人從2010年1月1日起開始 三天打魚兩天曬網 問這個人在以後的某一天中是 打魚 還是 曬網 思路 問題分析與演算法設計 根據題意可以將解題過程分為三步 1 計算從2010年1月1日開始至指定日期共有多少天 2 由於 打魚 和 曬網 的週期為5天,所以將計算出的天...

三天打魚兩天曬網C

中國有句俗語叫 三天打魚兩天曬網 某人從2010年1月1日起開始 三天打魚兩天曬網 問這個人在以後的某一天中是 打魚 還是 曬網 使用檔案進行資料測試。如將日期 20100101 20111214 等資料儲存在in.txt檔案中,程式讀入in.dat檔案進行判定,並將結果輸出至out.txt檔案。i...