import java.util.Scanner;
public class Money {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入计算方式:1.单利计算 2.复利计算 3.本金计算 4.股票期限计算 5.利率计算 6.资产总值计算"); // 选择计算方式
int choose = scanner.nextInt();
if (choose == 1) { // 1.单利计算模式
danLiJiSuan(scanner);
} else if (choose == 2) { // 2.复利计算模式
fuLiJiSuan(scanner);
} else if (choose == 3) { // 3.本金计算模式
benJinJiSuan(scanner);
} else if (choose == 4) { // 4.股票计算模式
guPiaoQiXian(scanner);
} else if (choose == 5) { // 5.利率计算模式
liLvJiSuan(scanner);
} else if (choose == 6) {
ziChanZongZhi(scanner);
}
scanner.close();
}
//资产总值计算模式
private static void ziChanZongZhi(Scanner scanner) {
double P;
double i;
double N;
double F;
System.out.println("请输入本金:");
P = scanner.nextDouble();
System.out.println("请输入每年的投资金额:");
double T = scanner.nextDouble();
System.out.println("请输入投资年限:");
N = scanner.nextInt();
System.out.println("请输入利率:");
i = scanner.nextDouble();
//计算
for (int j = 0; j < N; j++) {
P = P * (1 + i);
P = P + T;
}
F = P - T;
System.out.println("资产总值是:" + F);
}
//利率计算模式
private static void liLvJiSuan(Scanner scanner) {
double P;
double i;
double N;
double F;
System.out.println("输入本金:");
P = scanner.nextDouble();
System.out.println("输入期限:");
N = scanner.nextDouble();
System.out.println("输入本息总值:");
F = scanner.nextDouble();
// 计算
i = F / (P * N);
System.out.println("利率为:" + i);
}
//股票期限计算模式
private static void guPiaoQiXian(Scanner scanner) {
double P;
double i;
double N;
double F;
System.out.println("输入本金:");
P = scanner.nextDouble();
System.out.println("输入利率:");
i = scanner.nextDouble();
System.out.println("输入本息总值:");
// 计算
F = scanner.nextDouble();
N = (F - P) / (i * P);
System.out.println("期限为:" + N);
}
//本金计算模式
private static void benJinJiSuan(Scanner scanner) {
double P;
double i;
double N;
double F;
System.out.println("输入本息总值:");
F = scanner.nextDouble();
System.out.println("输入利率:");
i = scanner.nextDouble();
System.out.println("输入期限:");
N = scanner.nextDouble();
P = F / (1 + i * N);
System.out.println("应投入本金:" + P);
}
//复利计算模式
private static void fuLiJiSuan(Scanner scanner) {
double P;
double i;
double N;
double F;
System.out.println("输入本金:");
P = scanner.nextDouble();
System.out.println("输入利率:");
i = scanner.nextDouble();
System.out.println("输入期限:");
N = scanner.nextDouble();
F = P * Math.pow((1 + i), N);
System.out.println("本息总值为:" + Math.round(F * 100) / 100.0);
}
//单利计算模式
private static void danLiJiSuan(Scanner scanner) {
double P;
double i;
double N;
double F;
System.out.println("输入本金:");
P = scanner.nextDouble();
System.out.println("输入利率:");
i = scanner.nextDouble();
System.out.println("输入期限:");
N = scanner.nextDouble();
F = P + P * i * N;
System.out.println("本息总值为:" + Math.round(F * 100) / 100.0);
}
该程序使用Java语言进行开发,工具为eclipse 4.5,jdk版本为1.8,代码行数为135行,原本预计需要1个小时,没想到用了1个半小时,主要还是为了代码看起来比较美观,把代码重构了一下,每个模式都有自己的方法,提高了代码的阅读性和复用性。
本次修改增加了利率计算模式和资产总值计算模式,不足的是还没有做出用户交互界面,不便于使用。