项目 6 统计雇员薪水

  • 请编写一个 Java 应用程序,使用两个数组分别保存雇员的姓名和雇员的薪水(标准金额数字,包含两位小数)。程序提示用户输入雇员的人数,然后依次提示输入雇员的姓名和薪水。当输入雇员姓名后,姓名应该随即出现在后面的提示输入薪水信息中 (具体格式参考后面的程序运行效果图) 。
    当所有的雇员信息都输入完成后,程序给出功能菜单供用户选择操作。这个功能菜单需要一直保留到用户选择退出(quit)为止。用户能进行以下操作:

  • 打印输出所有雇员的姓名和薪水;

  • 打印输出获得最高薪水的雇员姓名和薪水;

  • 打印输出获得最低薪水的雇员姓名和薪水;

  • 打印输出所有雇员薪水的平均值以及大于、小于和等于平均薪水的雇员人数;

  • 退出程序

    在这个项目中,你至少要实现四个方法:第一个方法 printAll()用来逐行打印输出每一个雇员的姓名和薪水(用固定宽度打印输出,请参考 System.out.printf(…)方法的使用规则);第二个方法 getMaxSalaryIndex()用来查找最高薪水值,返回这个薪水值的数组下标;第三个方法 getMinSalaryIndex()用来查找最低薪水值,返回这个薪水值的数组下标;第四个方法printAverageStats()用来计算平均薪水值以及统计大于,小于和等于平均值得雇员人数并输出这些信息。输出结果应该格式规范清晰。代码行应该有适当的缩进和空行。

  • 参考代码:

    package SixthProject;import java.util.Scanner;public class LuoYu_6 {public static void main(String[] args) {System.out.print("Enter the number of employees: ");Scanner input = new Scanner(System.in);int number = input.nextInt();String[] name = new String[number];double[] salary = new double[number];for (int i = 0;i < number;i++){System.out.println((i + 1) + " of " + number);System.out.print("Enter employee name: ");name[i] = input.next();System.out.print("Enter " + name[i] + "'s salary: ");salary[i] = input.nextDouble();System.out.println();}int choose;System.out.println("1 - Print All Employees");System.out.println("2 - Print Maximum Salary");System.out.println("3 - Print Minmun Salary");System.out.println("4 - Print Average Stats");System.out.println("5 - Quit");System.out.print("Please choose an option: ");while ((choose = input.nextInt()) != 5){System.out.println();if (choose == 1)printAll(name,salary);if (choose == 2)getMaxSalaryIndex(name,salary);if (choose == 3)getMinSalaryIndex(name,salary);if (choose == 4)printAverageStats(name,salary);System.out.println("1 - Print All Employees");System.out.println("2 - Print Maximum Salary");System.out.println("3 - Print Minmun Salary");System.out.println("4 - Print Average Stats");System.out.println("5 - Quit");System.out.print("Please choose an option: ");}return;}public static void printAll(String[] name,double[] salary){System.out.println("All Employees Information");for (int i = 0; i < name.length;i++){System.out.printf("\t\t%-16s¥%.2f\n",name[i],salary[i]);}System.out.println();}public static void getMaxSalaryIndex(String[]name,double[] salary){double max = 0;int flag = -1;for (int i = 0;i < name.length;i++){if (max < salary[i]) {max = salary[i];flag = i;}}System.out.printf("The largest salary is ¥%.2f made by %s\n\n",max,name[flag]);}public static void getMinSalaryIndex(String[] name,double[] salary){double min = 1e9;int flag = -1;for (int i = 0;i < name.length;i++){if (min > salary[i]) {min = salary[i];flag = i;}}System.out.printf("The largest salary is ¥%.2f made by %s\n\n",min,name[flag]);}public static void printAverageStats(String[] name,double[] salary){double sum = 0,average = 0;int higher = 0,lower = 0,same = 0;for (int i = 0;i < name.length;i++){sum += salary[i];}average = sum / name.length;for (int i = 0;i < name.length;i++){if (salary[i] > average)higher++;if (salary[i] < average)lower++;if (salary[i] == average)same++;}System.out.printf("The average salary was ¥%.2f\n",average);System.out.println("There are " + higher + "higher than average salaries," + lower + "lower than average salaries,and " + same + "average salaries\n");}
    }
  • 结果显示:

    Enter the number of employees: 3
    1 of 3
    Enter employee name: zhangsan
    Enter zhangsan's salary: 65002 of 3
    Enter employee name: lisi
    Enter lisi's salary: 70003 of 3
    Enter employee name: wangwu
    Enter wangwu's salary: 75001 - Print All Employees
    2 - Print Maximum Salary
    3 - Print Minmun Salary
    4 - Print Average Stats
    5 - Quit
    Please choose an option: 1All Employees Informationzhangsan        ¥6500.00lisi            ¥7000.00wangwu          ¥7500.001 - Print All Employees
    2 - Print Maximum Salary
    3 - Print Minmun Salary
    4 - Print Average Stats
    5 - Quit
    Please choose an option: 2The largest salary is ¥7500.00 made by wangwu1 - Print All Employees
    2 - Print Maximum Salary
    3 - Print Minmun Salary
    4 - Print Average Stats
    5 - Quit
    Please choose an option: 3The largest salary is ¥6500.00 made by zhangsan1 - Print All Employees
    2 - Print Maximum Salary
    3 - Print Minmun Salary
    4 - Print Average Stats
    5 - Quit
    Please choose an option: 4The average salary was ¥7000.00
    There are 1higher than average salaries,1lower than average salaries,and 1average salaries1 - Print All Employees
    2 - Print Maximum Salary
    3 - Print Minmun Salary
    4 - Print Average Stats
    5 - Quit
    Please choose an option: 5Process finished with exit code 0

项目 6 统计雇员薪水相关推荐

  1. 结对项目 - 词频统计

    目的与要求 代码复审练习 结对练习 编写单元测试 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 R ...

  2. C语言实训 实训项目一 统计歌唱比赛成绩

    实训项目一 统计歌唱比赛成绩 有10名选手参加某歌唱比赛,每位选手演唱自己参赛曲目后,7名评委亮出自己的评分,后台人员会去掉最高分和最低分,将剩下的5个值求平均来计算该选手的比赛得分.比赛结束后,将根 ...

  3. Java搭建实战springboot基于若依项目工时统计成本核算管理源码

    大家好啊,我是测评君,欢迎来到web测评. 本期给大家带来一套基于若依开发的springboot项目工时统计成本核算管理源码,该系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2 ...

  4. SpringBoot基于若依项目工时统计成本核算管理源码带文字教程

    该系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2. 技术架构 技术框架:SpringBoot2.0.0 + Mybatis1.3.2 + Shiro + swagger-ui ...

  5. Vue电商项目—数据统计—数据报表模块-11

    Vue电商项目-数据统计-数据报表模块-11 1.1 数据统计概述 数据统计模块主要用于统计电商平台运营过程的中的各种统计数据, 并通过直观的可视化方式展示出来, 方便相关运营和管理人员查看. 1.2 ...

  6. 简单的项目规模统计方法

    因为工作的需要,花了一点点时间做了一个关于项目规模统计的shell脚本,共大家分享. #/bin/bash do_scale() { echo 'Probe *.h, *.hpp, *.cc, *.c ...

  7. 一款轻量级项目工时统计系统,源码分享

    Java项目工时统计成本核算管理系统源码 技术:Java 1.8 + MySQL 8 +Vue 项目基于前后端分离架构,服务端主要技术:SpringBoot   前端主要是Vue. 源码类型:全开源免 ...

  8. 软件工程之个人项目--词频统计

    不得不说对于菜鸟级的我,这是一次心酸的经历啊...自打接到王老师布置的这个任务(个人项目)之后,我心里一直在想着自己要用哪种语言来完成我的任务.以前多多少少写过一些程序的,这又想起了数据库小学期与永哥 ...

  9. #软工实践-个人项目-词频统计

    Github项目地址 https://github.com/pandaeathzr/personal-project PSP表格: PSP2.1 Personal Software Process S ...

最新文章

  1. BootStrap在一行如何展示多行单据
  2. Windows服务器学习篇:服务器连接与退出
  3. 如何添加媒体控件Windows Media Player到工具箱中
  4. toj 4604 搞笑版费马大定理
  5. linux java url 异常_Java连接虚拟机(Linux)中的Oracle数据库,连接异常~新手求解!
  6. 【安装配置】Oracle数据库Linux系统下安装(图形界面)
  7. JDK集合框架结构分析(二)
  8. 毕业三五年,怎么拿到百万年薪?
  9. ultrascale和arm区别_UltraScale+MPSoC软硬件设计及入门套件
  10. mysql db_owner_SQL Server修改数据库对象所有者(Owner)浅析
  11. 连版《三十六英雄》整理
  12. 180902 逆向-网鼎(4-dalao)
  13. 工控安全的一些个人建议
  14. 论文:Discriminative Triad Matching and Reconstruction for Weakly Referring Expression Grounding
  15. 罗技M590优联和蓝牙连接的问题
  16. [转]android 制作.9.png图片 解决图形变形问题
  17. ssm + redis
  18. 万里长征第一步----学会做科研
  19. “定点打击”——XPath 使用细则(Just For Selenium WebDriver)
  20. 经济学说史名词解释及课后习题答案

热门文章

  1. python爬虫爬取网易云音乐下载_Python爬虫实践-网易云音乐!没有版权又如何!照样爬取!...
  2. 微信公共平台配置域名提示,协议头非法
  3. 文档转换 云服务器,文档转换服务
  4. 读书笔记app推荐——只为让你的生活更高效
  5. 网易云对象存储获取私有对象下载链接打不开的问题
  6. 【软考系统架构设计师】2011年下系统架构师综合知识历年真题
  7. go build在mac系统下生成可执行文件时隐藏终端
  8. mysql分区为什么提高性能_通过分区(Partition)提升MySQL性能
  9. 午芯高科WXP380气压传感器
  10. iPhone7可以共享热点给多少设备使用呢?