三天打漁,兩天

歡迎瀏覽新人不喫蔥花香菜的小白菜的博客

註冊CSDN也有一段時間了,但是對這個的關注卻很少,這次也剛好是一個逼自己鍛鍊的機會。希望可以通過自己的博客來記錄自己的“成長曆程”!


題目:
中國有句俗語叫“三天打魚兩天曬網”。某人從2010年1月1日起開始“三天打魚兩天曬網”,問這個人在以後的某一天中是“打魚”還是“曬網”。用C或C++語言/java/python實現程序解決問題。
要求:
基本要求:1.程序風格良好(使用自定義註釋模板),提供友好的輸入輸出。
提高要求:1.輸入數據的正確性驗證。
2.使用文件進行數據測試。如將日期 20100101 20111214 等數據保存在in.txt文件中,程序讀入in.dat文件進行判定,並將結果輸出至out.txt文件。
總結:
這次只完整解決了基本要求和提高要求中的第一個。對輸入輸出流這方面理解還是不夠透徹,對文件輸入輸出這塊兒只完成了輸出部分,輸入部分雖然明白是怎樣的道理,就是寫不出來,代碼改不過來。希望後面可以解決
在解決過程中,採用了string.split 方法分隔字符串。用interger.parseInt將String字符類型數據轉換爲Integer整型數據。
程序流程圖:
這裏寫圖片描述

這裏寫代碼片

package shoter;

import java.io.*;
import java.util.Scanner;

public class Main39 {
public static void main (String args[]) throws Exception{
System.out.println(“請輸入一個日期,格式如:2010/01/01”);
Scanner sc=new Scanner(System.in);
// System.setIn(new FileInputStream(“in.txt”));
int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
while (sc.hasNext()){
String s=sc.next();
int days=0;
int year,month,day;
String[] str=s.split("/");//使用split方法分隔字符串
year=Integer.parseInt(str[0]);//將String字符類型數據轉換爲Integer整型數據
month=Integer.parseInt(str[1]);
day=Integer.parseInt(str[2]);
System.setOut(new PrintStream(“out.txt”));
if(year<2010 || month<1 ||month>12 || day<0||day>31){
System.out.println(“您輸入的數據不符合要求,請重新輸入”);
continue;//只跳出本次循環,不影響後續操作
}
if(year%4000||(year%100!=0&&year%40)&&month>2){
days++;
}

這裏寫代碼片
	 for(int i=2010;i<year;i++){
		 days=days+365;
		 if(year%400==0||(year%100!=0&&year%4==0)&&month>2){
			 days++;
		 }
	 }//年循環累計
	 for(int i=0;i<month;i++){
		 days+=d[i];
	 }//月循環累計
	 days+=day;//天循環累計
	 
 System.setOut(new PrintStream("out.txt"));
	// BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	 
	if(days%5==1 || days%5==2 || days%5==3 ){
		
		System.out.println("打漁");
	}
	else {
		System.out.println("曬網");
	}
}
sc.close(); 

}
}

測試結果:

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章