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

2023-10-27

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;
        
    }
}
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥系统 初步代码(Java工程师资料块) 的相关文章

  • StringUtils 工具类 详细介绍

    https blog csdn net laukicn article details 69230022
  • Java 程序员,真的不能去外包吗?

    Java程序员是可以去外包的 外包公司通常会为客户提供技术服务 包括程序开发 系统维护和支持等 作为Java程序员 如果你有较强的Java技能 那么可以考虑去外包公司工作 在外包公司工作的优势包括 有机会去不同的客户处工作 能够更多地接触不
  • shell 脚本day4之 sed应用

    应用sed编写的点名器 root zabbix server day4 more name txt 李白 杜甫 白居易 孟浩然 苏轼 root zabbix server day4 more roll sh bin bash 功能描述 De
  • 用js实现滚动加载动画效果

    目录 一 效果图 二 代码部分 1 html结构 2 css样式部分 3 js部分 三 代码总结 一 效果图 可以看出 在悠方滚动条滚动的时候 当高度打到一定高度的时候就会出现一个div盒子 就好像刚加载出来一样 而且可以一直向下滚动 二
  • github 中使用 ssh

    从去年开始 github 对于 https 方式下载的仓库已经不支持直接 commit push 等操作 由于 https 方式简单快捷 对于大部分只是对 git 初步熟悉的用户来说是非常合适的 因为不需要做任何配置 只需要一个 githu
  • js之DOM0级和DOM2级绑定事件

    js原生注册事件分别为DOM0级 DOM2级 DOM0级事件 简单理解就是直接绑定 可以是直接在标签中绑定事件
  • LVGL笔记8--lv_style样式

    LVGL笔记8 lv style样式 样式是用来修饰UI美观性 使用lv style对UI界面进行重绘和重用 利用多个不同的样式来形成Theme对象 对于vl obj基础对象而言 每个对象都有一个lv style样式 但对于其他的控件 比如
  • 基于Java+SpringBoot+vue的社区报修维修平台(含源码和数据库)

    文章目录 简介 环境需要 住户前台功能模块 管理员功能模块 住户后台功能模块 维修员后台功能模块 简介 系统管理也都将通过计算机进行整体智能化操作 对于社区维修平台所牵扯的管理及数据保存都是非常多的 例如住户管理 社区公告管理 维修工管理
  • 目标检测笔记(十三): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程))

    文章目录 一 目标检测介绍 二 YOLOv5介绍 2 1 和以往版本的区别 三 代码获取 3 1 视频代码介绍 四 环境搭建 五 数据集准备 5 1 数据集转换 5 2 数据集验证 六 模型训练 七 模型验证 八 模型测试 九 评价指标 一
  • Jupyter Notebook 添加代码自动补全功能

    自己记录以便后期参考与查询 转载参考 https www jianshu com p 0ab80f63af8a 安装 如果之前安装过显示目录功能的话 这一步骤可以跳过 pip install jupyter contrib nbextens
  • 【测试 2】二、软件质量与软件测试过程

    2 软件质量 2020年10月29日01 16 39 质量三要素 实体 特性 需求 软件质量6大特性 27个子特性 参考 https www cnblogs com jodyccf p 12200325 html 软件质量活动 保证软件质量
  • 认识RAID磁盘阵列

    认识RAID磁盘阵列 前几天在公司整理办公桌时找到了一份关于RAID的文档 对RAID介绍的很详细 这几天我利用空闲时间把这份文档录入到了电脑里 现分享给大家 认识RAID磁盘阵列 廉价冗磁盘阵列 Redundant Array of In
  • 运放使用总结篇(1) 运算放大器基本概念简介

    文章目录 前言 一 运算放大器是什么 二 运放的开环增益 三 运放的输入阻抗 输出阻抗 四 运算放大器的基本结构 五 运放的开环和闭环使用 总结 前言 作为硬件设计中最常用的运算放大器 有必要了解和掌握 单个三极管放大倍数离散度很大 虽然硬
  • IOS object-c基础

    第一讲 OC简介及基本语法 Objective C简称OC是在C语言的基础上 增加了一层最小的面向对象语法 完全兼容C语言 也就是可以在OC代码中混入C语言代码 甚至是C 代码 可以使用OC开发Mac OS X平台和IOS平台的应用程序 简
  • CAD动态块制作

    CAD动态块制作 拉伸动态块 柜体A拉伸动态块制作 第一步 制作柜体A 第二步 进入块编辑器编辑 第三步 关闭块编辑器 柜体B拉伸动态块制作 第一步 制作柜体B 第二步 进入块编辑器 第三步 关闭块编辑器 可见性动态块 第一步 找到动态块图
  • 计算机视觉基础之数字图像(2)

    目录 一 直方图 1 什么是直方图 2 直方图的性质 3 直方图均衡化 4 相关示例代码 二 滤波 1 定义 2 线性滤波 三 卷积 1 定义 2 卷积 过滤器 卷积核 Kernel 3 卷积的应用 4 卷积 步长 5 卷积 填充 一 直方
  • Web服务器如何确定哪个Servlet处理请求

    一 Web服务器 Web服务器概念较为广泛 我们最常说的Web服务器指的是网站服务器 它是建立在Internet之上并且驻留在某种计算机上的程序 Web服务器可以向Web客户端 如浏览器 提供文档或其他服务 只要是遵循HTTP协议而设计的网
  • C++——模板特化和偏特化

    1 引言C 中的模板分为类模板和函数模板 虽然它引进到C 标准中的时间不是很长 但是却得到了广泛的应用 这一点在STL中有着充分的体现 目前 STL在C 社区中得到了广泛的关注 应用和研究 理解和掌握模板是学习 应用和研究以及扩充STL的基
  • VSCode搭建Java环境教程

    前言 本文提供给那些无经济实力购买IntelliJ IDEA 并且担心网上的破解版有安全风险的小伙伴们 替代工具可以使用开源的VSCode进行开发 JDK安装 OpenJDK 以windows为例 下载 msi包安装时会默认配置好java环
  • Sublime 全选后光标在每一行、全局替换、全局换行

    Sublime 全选后光标在每一行 全局替换 全局换行 做个记录 多行汇总成一行 以逗号标识分隔 全选后 使用快捷键Ctrl Shift L 即可在每一行的后面显示光标 再使用End或Home键进行前后移动 输入逗号再按回车键即可 将逗号分

随机推荐

  • css实现盒子背景颜色渐变(一文读懂背景颜色渐变)

    要实现盒子背景颜色的渐变效果 常见的一般有三种 线性渐变 linear gradient 重复线性渐变 repeating linear gradient 径向渐变 radial gradient 下面是三种场景示例 一 线性渐变 线性渐变
  • ue4 加载材质_Houdini Terrian & UE4 (六)制作Flowmap

    导言 对于游戏场景来说 水流是动景很重要的一环 传统的水面制作中 一般是做2 3个方向的波叠加 或者制作一个随机的flowmap 这样做出来的水面自然是没有灵魂的 手动滑稽 所以 这里我们用houdini来制作一个基于地形的flowmap
  • 【ElM分类】基于秃鹰算法优化极限学习机BES-ElM实现数据分类附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器
  • 如何在局域网中免费搭建视频服务器

    在局域网里面建一个视频服务器 架设一个视频服务器 局域网内的其他的电脑直接访问这台web服务器 就能看这台服务器里边儿的视频课堂实录 安装一个视频服务器软件 比如 VLC MMServer等 将视频文件上传到视频服务器软件中 在视频服务器软
  • 嵌入式开发(S5PV210)——LCD显示器

    1 LCD介绍 1 LCD Liquid Crystal Display 俗称液晶 这种材料的一大特点就是在电信号的驱动下液晶分子进行旋转 旋转会影响透光性 不同的透光性会透过不同的颜色的光 于是我们便看到显示屏上五颜六色的画面 2 LCD
  • JSP中EL表达式三元运算符的使用

    Java中的三元运算符为 条件 条件为true值 条件为false的值 EL也有一样的运算符 用EL的三元运算符有时可以代替c choose标签 为我们的工作省下很大力气 比如gender为0显示男 其余显示女 我们可以这么写
  • SlideLive网站:支持PPT嵌入网页中播放

    简介 SlideLive 是一款幻灯片在线播放和分享的网站 同时支持将幻灯片嵌入到网页中 本文将具体介绍如何将幻灯片嵌入到自己的博客中 官网地址 https slidelive cn 具体步骤 步骤一 打开SlideLive官网 地址 ht
  • MyBatis学习——动态SQL

    开发人员在使用JDBC框架或者其他类似的框架进行数据库开发时 通常都要根据需求去手动拼接SQL 这样非常麻烦 而myBatis提供了对SQL语句动态组装的功能 恰好解决了这一问题 一 动态SQL中的元素 动态SQL是MyBatis的强大特性
  • SpringBoot 提示转换异常:java.lang.ClassCastException: com.*** cannot be cast to java.lang.String

    功能要求 查看之前自己编写的Controller层没有通用响应 所以基于Spring Aop 面向切面添加统一结果输出 上述功能实现后 进行简单的单元测试 出现如下错误 java lang ClassCastException com zz
  • 破解B站面试套路,顺利拿到Offer

    1 操作系统相关 自旋锁和一般锁的区别是什么 为什么要使用自旋锁 当一个线程在获取锁的时候 如果这个锁已经被其他线程获取 那么这个线程不会破门而入 而是循环等待 但是嗷嗷待哺 需要不断地嗷嗷叫判断锁是否被成功获取 直到获取到锁才会退出循环
  • 开发工程师人生之路

    开发工程师人生之路 恭喜 你选择开发工程师做为自已的职业 悲哀 你选择开发工程师做为自已的职业 本文所指的开发工程师 仅指程序开发人员和以数字电路开发为主的电子工程师 当你选择计算机或者电子 自控等专业进入大学时 你本来还是有机会从事其它行
  • Linux基础:top命令查看linux系统参数解析

    第一行 21 15 54 当前系统时间 10 days 3 05 系统已经运行了3天15小时11分钟 在这期间没有重启过 1 users 当前有1个用户登录系统 load average 0 62 0 53 0 47 load averag
  • linux Apache服务配置

    首先恢复虚拟机1 虚拟机2快照 重新准备环境 还原为初始状态 也就是刚刚安装好虚拟机的状态 虚拟机1 单网卡 仅主机模式 192 168 100 3 Web服务器 虚拟机2 单网卡 仅主机模式 192 168 100 4 Linux客户端
  • Python创建字典的4种方法

    一 使用大括号来创建字典 person name 张三 age 18 pay 40000 job Python工程师 二 使用关键字参数和类型构造函数来创建字典 person dict name 张三 age 18 pay 40000 jo
  • Mysql 优化的几种方法

    MySQL是当前最流行的一个关系型数据库管理系统 广泛应用于各种互联网应用场景中 然而在实际的开发和运维过程中 我们经常会遇到一些性能问题 如查询慢 请求堆积等 需要通过MySQL优化来解决 本文将详细讲解MySQL优化的原理 方法和工具
  • 数据结构与算法笔记1(基本概念、时间复杂度)

    前言 PASCAL之父 瑞士著名计算机科学家沃思 Niklaus Wirth 教授曾提出 算法 数据结构 程序 算法是科学的解决问题的思路 是对业务的实现思路 而数据结构是对数据存储组织的抽象 数据之间的关系以及操作 使用计算机解决问题的过
  • 阿里云RDS数据库高可用版升级为集群版

    文章目录 1 在集群中添加两个只读实例 1 1 点击添加只读实例 1 2 配置实例的计费方式及所在可用区 1 3 设置实例的资源规格 1 4 选择实例使用的专有网络 1 5 确认参数配置及订单信息 1 6 查看购买的只读实例 2 开启RDS
  • Linux 常用命令及快速记忆方法

    Linux 常用命令及快速记忆方法 所有的命令都是英语的简写 那么对于记忆来说 我们只要知道是哪些单词的简写就可以轻而易举地记住啦 最基础的 ls cd pwd mkdir rm rmdir mv cp vi ls是list 列表 也就是获
  • 自制Jlink_OB(STM32c8t6)

    1 话不多说 先上图 实物图 连接图 说明 这里采用SWD下载方式 可以用的JLink连接需要下载固件的JLink 这里焊上排针不好看就直接用杜邦线斜着插 稍微上点力就能有效连接了 SWDIO SWDIO SWCLK SWCLK GND G
  • 蓝桥系统 初步代码(Java工程师资料块)

    4 2 上机任务 1 规范 蓝桥系统 中一个Java工程师信息 2 重新组织 蓝桥系统 代码结构 3 完成 蓝桥系统 第一个模块 输入Java工程师资料 功能 用户按提示逐行输入Java工程师信息 如果输入错误 重新开始输入Java工程师信