计算保额率

package Secondly.baoe;

import java.util.Scanner;

public class baoelv {
/*
* 分析:
* 受保人是谁;
* 根据点数判断保额率:
* 10点以上:6%
* 10点一下;1%
* 然后点数又依据年龄,性别,婚姻,扶养人数来确定
* 其中 年龄:
* error:
* age > 120 或者 age < 0 不符合规定
* right:
* age >= 20 或者 age <= 39 6点
* age >= 40 或者 age <= 59 4点
* other:
* 2点
*
* 性别:男/女
* 婚姻:已婚/未婚
* 抚养人数:0 ~ 6 人 每抚养一人减 0.5(四舍五入)个点
* 用户输入的保额额度不低于100
*
* */
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要投保人的姓名:");
String name = sc.next();
//定义年龄,性别,婚姻,抚养人数的方法
//年龄
int age = age();
//性别
String gender = gender();
//婚姻
String marital = marital();
//抚养人数
int num = num();
//需要投保的金额
int money = money();
//计算保额费用
float fee = fee(age,gender,marital,num,money);
System.out.println("参保人:" + name + "的保费是:" + fee);
}

//用户需要投保的金额
private static int money() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要投保的金额(不少于100):");
int money = sc.nextInt();
if (money < 100) {
System.out.println("输入错误,请重新输入");
//递归 继续调用方法
money();
}
return money;
}

//用户需要交的费用
private static float fee(int age, String gender, String marital, int num, int money) {
//定义点数
int count = 0;

//判断年龄 20 ~ 39 6点
// 40 ~ 59 4点
// 其他 2点
if (age >= 20 && age <= 39) {
count = count + 6;
} else if (age >= 40 && age <= 59){
count = count + 4;
} else {
count = count + 2;
}

//判断性别
// 男 5点
// 女 3点
if (gender.equals("男")) {
count += 5;
} else if (gender.equals("女")) {
count += 3;
}

//判断婚姻状况
// 已婚 3点
// 未婚 5点
if (marital.equals("已婚")) {
count += 3;
} else {
count += 5;
}

//判断抚养人数
switch (num) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
count -= 0.5;
break;
default:
break;
}

//四舍五入
int count1 = Math.round(count);

//判断点数 定义费用
//10点以上 6%
//10点一下 1%
double price;
if (count1 >= 10) {
price = money * 0.006;
} else {
price = money * 0.001;
}
return (float) price;
}


//抚养人数
private static int num() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入抚养人数:");
int num = sc.nextInt();
if (num > 6 || num < 0) {
System.out.println("您输入的抚养人数不符合规则,请重新输入");
//递归 继续调用方法
num();
}
return num;
}

//婚姻状况
private static String marital() {
Scanner sc =new Scanner(System.in);
System.out.println("请输入婚姻状况(已婚/未婚)");
String marital = sc.next();
switch (marital) {
case "已婚":
case "未婚":
break;
default:
System.out.println("您输入的婚姻状况不符合规则,请重新输入:");
//递归 继续调用方法
marital();
}
return marital;
}

//性别
private static String gender() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入性别(男/女)");
String gender = sc.next();
//通过 switch 选择男女
switch (gender) {
case "男":
case "女":
break;
default:
System.out.println("您输入的性别不符合规则,请重新输入:");
//递归 继续调用方法
gender();
}
return gender;
}

//年龄
private static int age() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年龄:");
int age = sc.nextInt();
//判断
if (age > 120 || age < 0) {
System.out.println("您输入的年龄不符合规定!!!");
//递归 继续调用方法
age();
}
return age;
}
}
posted @ 2023-03-06 17:07  卷卷芯菜  阅读(22)  评论(0)    收藏  举报