java课布置的题目,分享一下自己写的源码,写的不好,有好的算法请一定告诉我非常感谢ヽ( ̄▽ ̄)ノ

税收问题

停电问题

下面是税收问题的代码,感觉是写的非常笨的办法了....

import java.util.Scanner;
/**
 * 个人交税计算
 * @author MoWang
 *
 */
public class lixuan1 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		//定义需要的变量
		int money = 0;			//月收入
		double tax = 0.0;			//税收

		System.out.println("请输入你的收入:");
		money = scanner.nextInt();
		
		if(money<3000) {
			System.out.println("免税");
		}else if(money>3000 && money<=4500) {   	//第一级税收3000-4500
			tax= ((money-3000)*0.05);
		}else if(money>4500 && money<=7500) {
			tax=1500*0.05+(money-4500)*0.1; 		//第二级税收4500-7500
		}else if(money>7500 && money<=12000) {
			tax=1500*0.05+3000*0.1+(money-7500)*0.2; //第三级税收7500-12000
		}else if(money>12000 && money<=38000) {
			tax=1500*0.05+3000*0.1+4500*0.2+(money-12000)*0.25; //第四级税收12000-38000
		}else if(money>38000 && money<=58000) {
			tax=1500*0.05+3000*0.1+4500*0.2+26000*0.25+(money-38000)*0.3; //第五级税收38000-58000
		}else if(money>58000 && money<=83000) {
			tax=1500*0.05+3000*0.1+4500*0.2+26000*0.25+20000*0.3+
				(money-58000)*0.35; 								//第六级税收58000-83000
		}else if(money>83000) {
			tax=1500*0.05+3000*0.1+4500*0.2+26000*0.25+20000*0.3+
				25000*0.35+(money-83000)*0.45; 								//第七级税收83000以上
		}
		
		System.out.println("你要交的税为:"+tax);
	}
}
税收问题截图

还有停电问题的源码


/**
 * 停电问题
 */
import java.util.Scanner;

public class lixuan2 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in); 
		
		//定义需要的变量
		int cutDay=0;		//在家停电的天数
		int startDay=0;		//放假的日期
		int endDay=0;		//开学的日期
		boolean[] powerCut = new boolean[62]; //是否停电数组
		
		//输入放假和开学的日期
		System.out.print("请输入放假的月份:");
		int mon=scanner.nextInt();
		System.out.print("请输入放假的日期:");
		int day=scanner.nextInt();
		if(mon==7) {
			startDay = day;
		}else if(mon==8){
			startDay = 31+day;
		}
		System.out.print("请输入开学的月份:");
		int mon1=scanner.nextInt();
		System.out.print("请输入开学的日期:");
		int day1=scanner.nextInt();
		if(mon1==7) {
			endDay = day1;
		}else if(mon1==8){
			endDay = 31+day1;
		}
		//不符合要求则重新输入日期
		while(endDay<startDay||endDay>62) {
			System.out.println("输入错误,时间不能超过八月,开学日期不能小于放假日期。");
			System.out.print("重新输入放假的月份:");
			mon=scanner.nextInt();
			System.out.print("重新输入放假的日期:");
			day=scanner.nextInt();
			if(mon==7) {
				startDay = day;
			}else if(mon==8){
				startDay = 31+day;
			}
			System.out.print("重新输入开学的月份:");
			mon1=scanner.nextInt();
			System.out.print("重新输入开学的日期:");
			day1=scanner.nextInt();
			if(mon1==7) {
				endDay = day1;
			}else if(mon1==8){
				endDay = 31+day1;
			}
		}
		//把7,8月停电的日期用数组标记起来
		int j=1;
		for(int i=0;i<62;i+=j) {
			powerCut[i] = true;
			j++;
		}
		//判断在家的时间停电的时间
		System.out.
		println("==============");
		for(int i=startDay;i<=endDay;++i) {
			if(powerCut[i-1]==true) {	//if判断,true则为停电,停电天数自增;
				cutDay++;
			}
		}
		//输入停电天数
		System.out.println(mon+"月"+day+"日至"+mon1+"月"+day1+"日"+"停电"+cutDay+"天");		
		
	}
}
停电问题

本文作者为 Rtia ,转载请注明