1. 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文 件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。
源代码(JAVA):
package WorkOne;
import java.io.*;
import java.util.Scanner;
public class Myjob1 {
//判断打渔还是晒网
public static String judge(int sum) {
if(sum%5==1 || sum%5==2 || sum%5==3) {
return "今天渔夫打鱼";
}
if(sum%5==0 || sum%5==4) {
return "今天渔夫晒网";
}
return null;
}
//判断是否闰年
public static boolean runnian(int y) {
if(y%4==0 && y%4!=100||(y%400==0)) {
return true;
}else {
return false;
}
}
//计算共有多少天
public static int alldays(int y,int m,int d) {
int sum=0;
int sum0=365;//2010年不是闰年,这一年365天
int sum1=0;
int sum2=0;
for(int i=2010;i<y;i++) {
if(y%4==0 && y%4!=100||(y%400==0)) {
sum1+=366;
}else {
sum1+=365;
}
}
for(int j=1;j<m;j++) {
sum2+=days(y,j);
}
sum=sum0+sum1+sum2+d;
System.out.println("渔夫一共工作的天数:"+sum);
return sum;
}
//计算每个月有多少天
public static int days(int y,int m) {
int days=0;
switch (m) {
case 1:days=31;
case 2:if(y%4==0 && y%4!=100||(y%400==0)) {
days=29;
}else {
days=28;
}break;
case 3:days=31;
case 4:days=30;
case 5:days=31;
case 6:days=30;
case 7:days=31;
case 8:days=31;
case 9:days=30;
case 10:days=31;
case 11:days=30;
case 12:days=31;
}
return days;
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader((new FileReader(new File("D:\\tts9\\work\\程序设计方法学作业1\\Source\\in.txt"))));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("D:\\tts9\\work\\程序设计方法学作业1\\Source\\out.txt")));
String date; //数据格式 yyyy-mm-dd
while ((date = br.readLine()) != null) {
String[] ar = date.split("-");
String result = "";
try {
int y=Integer.valueOf(ar[0]);
//判断输入年份是否合理
if(y<2010) {
System.out.println("您输入的数据不规范!");
}
int m=Integer.valueOf(ar[1]);
//判断输入月份是否合理
if(m<1 || m>12) {
System.out.println("您输入的数据不规范!");
}
int d=Integer.valueOf(ar[2]);
int day=days(y,m);
//判断输入日期是否合理
if(d<1 || d>day) {
System.out.println("您输入的数据不规范!");
}
result = judge(alldays(y,m,d));
}catch (Throwable throwable){
System.out.println("您输入的数据不规范!");
}
bw.write(result);
bw.newLine();
}
bw.flush();
br.close();
bw.close();
}
}
程序设计方法学——三天打鱼两天晒网
最新推荐文章于 2023-06-27 21:56:48 发布