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+"天");
}
}

Comments | 2 条评论
哈哈哈哈哈哈哈哈
大佬优秀