import java.util.Scanner;
public class Compounding {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("----------------------欢迎使用本系统---------------------");
System.out.print("\n请输入你所需要的服务(请输入对应数字):");
int a = 0;
while (a == 0) {
System.out.print("\n1.复利终值 2.单利总息 3.单利本金 4.复利存期 5.复利利率 6. 7.退出\n");
int choice = scanner.nextInt();
switch (choice) {
case 1:
CompoundSum();
a = 1;
break;
case 2:
SimpleInterest();
a = 1;
break;
case 3:
SimpleMoney();
a=1;
break;
case 4:
CompoundYear();
a=1;
break;
case 5:
CompoundRate();
a=1;
break;
case 6:
a=1;
break;
case 7:
System.exit(0);
break;
default:
System.out.print("你所输入的指令错误!请重新输入!!");
break;
}
}
}
static void CompoundSum() {
// 复利计算:总额=本金×(1+利率)^存期
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你要存款的本金:");
double compoundMoney = scanner.nextDouble();
System.out.print("请输入你的利息期数:");
int compoundYear = scanner.nextInt();
System.out.print("请输入当前利率:");
float compoundRate = scanner.nextFloat();
float compoundSum = 1;
for (int i = 1; i <= compoundYear; i++) {
compoundSum = compoundSum * (1 + compoundRate);
}
System.out.print("你的复利终值为:" + compoundMoney * compoundSum + "元");
}
static void SimpleInterest() {
// 单利计算:本息=本金×利率×存期
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你要存款的本金:");
double simpleMoney = scanner.nextDouble();
System.out.print("请输入你的存期:");
int simpleYear = scanner.nextInt();
System.out.print("请输入当前利率:");
float simpleRate = scanner.nextFloat();
float interest = 0; // 利息
interest = (float) (simpleMoney * simpleYear * simpleRate);
System.out.print("你的单利本息为:" + interest + "元");
}
static void SimpleMoney() {
// 本金=本息和÷(1+存期*利率)
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的本息和:");
double simpleSum = scanner.nextDouble();
System.out.print("请输入你的存期:");
int simpleYear = scanner.nextInt();
System.out.print("请输入当前利率:");
float simpleRate = scanner.nextFloat();
float simpleMoney = 0;
simpleMoney = (float) (simpleSum / (1 + simpleYear * simpleRate));
System.out.print("你所需存入的本金为:" + simpleMoney + "元");
}
static void CompoundYear() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你要存款的本金:");
double compoundMoney = scanner.nextDouble();
System.out.print("请输入当前利率:");
float compoundRate = scanner.nextFloat();
System.out.print("请输入你的终值:");
int compoundSum = scanner.nextInt();
int compoundYear= (int) ((Math.log(compoundSum)/Math.log(1+compoundRate))-(Math.log(compoundMoney)/Math.log(1+compoundRate)));
System.out.print("你所需的存期为:"+compoundYear+"年");
}
static void CompoundRate() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你要存款的本金:");
double compoundMoney = scanner.nextDouble();
System.out.print("请输入存期:");
int compoundYear = scanner.nextInt();
System.out.print("请输入你的终值:");
int compoundSum = scanner.nextInt();
float compoundRate = (float) ((Math.pow(compoundSum/compoundMoney, 1.0/compoundYear))-1);
System.out.print("报酬率应为:"+compoundRate*100+"%");
}
}






前两次实验提交的代码所用语言与工具分别是java语言和myeclipse工具,前两次的实验只是把客户各个阶段所需要的功能用代码分开实现了,并没有把它们合并相关成完整的系统代码,前两次实验的代码行为46,工作时间大概就1-2个小时。
任务4.5.6的功能比之前的任务更具挑战性和难度,在公式转换所占的时间和代码行数应该会增大,所以大概需要2个以上小时完成,代码量应该也会到达100行以上。
完成任务4.5.6后,工作量110+行代码,对于复利存期的计算,曾经使用for循环进行反推,最后还是用了函数的方法实现了。
浙公网安备 33010602011771号