蓝桥系统 初步代码(Java工程师资料块)

4.2  上机任务

(1)规范“蓝桥系统”中一个Java工程师信息

(2)重新组织“蓝桥系统”代码结构

(3)完成“蓝桥系统”第一个模块“输入Java工程师资料”功能,用户按提示逐行输入Java工程师信息;如果输入错误,重新开始输入Java工程师信息

 

 

 

主要代码如下:

package org.lanqiao.proj.java1.chap4;

import java.util.Scanner;

public class JavaEngineer {
    //以下是Java工程师资料,在输入Java工程师资料时输入的内容
    static int engNo = -1;            //Java工程师编号
    static String engName = "";        //Java工程师姓名
    static int engSex = -1;            //Java工程师性别(1代表男,2代表女)
    static int engEdu = -1;            //Java工程师学历(1代表大专,2代表本科,3代表硕士,4代表博士,5代表其他)
    
    static int basSalary = 3000;        //Java工程师底薪
    static double insurance = 3000 * 0.105;            //Java工程师月应扣保险金额
    
    //以下是Java工程师月工作情况资料,在计算Java工程师月薪时再输入
    static int comResult = 100;                        //Java工程师月工作完成分数(最小值为0,最大为150)
    static double workDay = 22;                        //Java工程师月工作实际天数
         
    //以下是有Java工程师资料和Java工程师月工作情况资料计算出来的Java工程师的月薪
    static double engSalary = 0.0;                    //Java工程师月薪
    static int userSel;                                //在用户主界面选择的输入
    static boolean status = false;                    //status表示Java工程师资料是否输入完毕
                                                    //注意,不包括Java工程师月工作情况资料
    static Scanner input = new Scanner(System.in);    
    public static void main(String[] args) {
        while(true){
        userSel = showMenu();                    //调用showMenu()方法获得用户输入
        switch(userSel){
            case 1:
                System.out.println("请现在输入Java工程师资料:");
                inputEngInf();                    //调用方法输入Java工程师资料
                break;
            case 2:
                System.out.println("正删除Java工程师资料...");
                deleteEngInf();                    //调用方法删除Java工程师资料
                break;
            case 3:
                System.out.println("正查询Java工程师资料...");
                searchEngInf();                    //调用方法查询Java工程师资料
                break;
            case 4:
                System.out.println("正修改Java工程师资料...");
                modifyEngInf();                    //调用方法修改Java工程师资料
                break;
            case 5:
                //调用方法计算Java工程师薪水,计算前需要获取月工作完成分数
                //和月实际工作天数两个数值
                calEngSalary();
                break;
            case 6:
                System.out.println("本模块功能未实现");
                break;
            case 7:
                System.out.println("本模块功能未实现");
                break;
            case 8:
                System.out.println("本模块功能未实现");
                break;
            case 9:
                System.out.println("本模块功能未实现");
                break;
            case 10:
                System.out.println("本模块功能未实现");
                break;
            case 11:
                System.out.println("本模块功能未实现");
                break;
            case 0:
                System.out.println("程序结束!");
                break;
            default:
                System.out.println("数据输入错误!");
                break;
        }
        if(userSel == 0)                            //当用户输入0时,退出while循环,结束程序
        {
            break;
        }
    }
}
    
//该方法显示程序主界面,返回用户选择的功能菜单数
    public static int showMenu() {
        System.out.println("-----------------------------------------------------------------");
        System.out.println("                         蓝桥Java工程师管理系统                                                                         ");
        System.out.println("-----------------------------------------------------------------");
        System.out.println("1.输入JAVA工程师资料");
        System.out.println("2.删除指定JAVA工程师资料");
        System.out.println("3.查询JAVA工程师资料");
        System.out.println("4.修改JAVA工程师资料");
        System.out.println("5.计算JAVA工程师的月薪");
        System.out.println("6.保存新添加的工程师资料");
        System.out.println("7.对JAVA工程师信息排序(1.编号剩序,2.姓名升序)");
        System.out.println("8.输出所有JAVA工程师信息");
        System.out.println("9.清空所有JAVA工程师数据");
        System.out.println("10.打印所有JAVA工程师数据报表");
        System.out.println("11.从文件重新导入JAVA工程师数据");
        System.out.println("0.结束(编辑工程师信息后提示保存)");
        System.out.println("请输入您的选择:");
        System.out.println("您的选择是:");
        userSel = input.nextInt();
        return userSel;
    }
    //1.输入Java工程师资料,月工作完成分数月工作实际天数不在此处输入
    public static void inputEngInf(){
        if(status  == true)                    //表示Java工程师资料已经输入完毕
        {
            System.out.println("Java工程师资料已输入完毕,可以选择4进行修改!");
        }else{
            while(!status)                    //如果Java工程师信息输入不完整,则全部重新输入
            {
                System.out.print("请输入Java工程师的编号:");
                engNo = input.nextInt();
                if(engNo <= 0)                //Java工程师编号不能为负值
                {
                    status = false;            //Java工程师信息输入不正确
                    System.out.print("Java工程师编号不能为负值!");
                    continue;                //t跳出本次循环,执行下一次输入Java工程师资料
                                            //循环
                }
                else
                {
                    status = true;            //表示到目前为止,Java工程师信息输入正确
                }
                
                System.out.print("请输入Java工程师的姓名:");
                engName = input.next();                    
                if(engName.length() == 0)                    //没有输入姓名,姓名的长度为0
                {                    
                    status = false;                            //Java工程师信息输入不正确
                    System.out.print("Java工程师姓名不能为空!");
                    continue;                                //跳出本次循环,执行下一次Java工程师资料
                                                            //循环
                }
                else
                {
                    status = true;                            //表示目前为止,Java工程师信息输入正确
                }
                
                System.out.print("请输入Java工程师的性别:(1表示男,2代表女)");
                engSex = input.nextInt();
                if(engSex !=1 && engSex != 2){                //Java工程师性别既不是1也不是2
                    status = false;                            //Java工程师信息输入不正确
                    System.out.println("性别只能输入1或者2!");
                    continue;                                //跳出本次循环,执行下一次输入工程师资料
                }
                else{
                    status = true;                            //表示到目前为止,Java工程师信息输入正确
                }
                System.out.println("请输入Java工程师的学历:(1代表大专,2代表本科,3代表硕士,4代表博士,5代表其他)");
                engEdu = input.nextInt();
                if(engEdu != 1 && engEdu != 2 && engEdu != 3 && engEdu != 4 && engEdu !=5)
                {
                    status = false;                            //Java工程师信息输入不正确
                    System.out.print("学历只能输入1、2、3、4、5---(1代表大专,2代表本科,3代表硕士,4代表博士,5代表其他)");
                    continue;                                //跳出本次循环,执行下一次输入工程师资料
                }
                else
                {
                    status = true;                            //表示到目前为止,Java工程师信息输入正确
                }
                
                System.out.print("请输入Java工程师的底薪:");
                basSalary = input.nextInt();
                if(basSalary <= 0){                            //Java工程师底薪不能为负
                    status = false;
                    System.out.print("Java工程师底薪不能为负");
                    continue;
                }
                else{
                    status = true;
                }
                
                System.out.print("请输入Java工程师月应扣保险金额:");
                insurance = input.nextDouble();
                if(insurance <= 0){
                    status = false;
                    System.out.print("Java工程师月应扣保险金额不能为负值!");
                    continue;
                }
                else{
                    status = true;
                }
            }
        }
            
    }
    
    //2.删除Java工程师资料,实际是把Java工程师相关信息设置为初始值
    public static void deleteEngInf(){}
    
    //3.查询Java工程师资料,实际是把Java工程师信息资料逐行输出
    public static void searchEngInf(){}
    
    //4.修改Java工程师资料,和输入Java工程师资料类似,区别在于需要输出原信息
    //再让用户输入新修改的信息
    public static void modifyEngInf(){}
    
    //5.计算Java工程师月薪,返回月薪值
    //计算之前需要获取月工作完成分数和月实际工作天数两个数值
    public static void calEngSalary()
    {
        if(status == false )
        {
            System.out.println("Java工程师资料未输入或已删除,不能计算!");
    }
    else
    {
        while(true)
        {
            System.out.print("请输入Java工程师月工作完成分数(最小值为0,最大值为150):");
            comResult = input.nextInt();            //从控制台获取月工作完成分数赋值给comResult
            if(comResult < 0 || comResult > 150)
            {
                System.out.println("输入错误,请重新输入!");
                continue;
            }
            else{
                break;
            }
        }
        while(true)
        {
            System.out.print("请输入Java工程师月实际工作天数(最小值为0,最大值为31):");
            workDay = input.nextDouble();
            if(workDay < 0 || workDay > 31)
            {
                System.out.println("输入错误,请重新输入!");
                continue;
            }else{
                break;
            }
        }
        
        //调用CalEngSalaryValue计算Java工程师月薪
        //输入底薪、月工作完成天数、月实际工作天数、月应扣保险数
        engSalary = calEngSalaryValue(basSalary,comResult,workDay,insurance);
        System.out.println("Java工程师"+engName+"月薪为"+engSalary);
    }
}

    public static double calEngSalaryValue(int basSalary,int comResult,double workDay,double insurance)
    {
        //Java工程师月薪 = 底薪 + 底薪 * 25% * 月工作完成分数 / 100 + 15 * 月工作实际天数 - 月应扣保险金额
        return basSalary + basSalary * 0.25 * comResult / 100 + 15*workDay - insurance;
        
    }
}
 

阅读更多

没有更多推荐了,返回首页