项目 6 统计雇员薪水
项目 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 统计雇员薪水相关推荐
- 结对项目 - 词频统计
目的与要求 代码复审练习 结对练习 编写单元测试 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 R ...
- C语言实训 实训项目一 统计歌唱比赛成绩
实训项目一 统计歌唱比赛成绩 有10名选手参加某歌唱比赛,每位选手演唱自己参赛曲目后,7名评委亮出自己的评分,后台人员会去掉最高分和最低分,将剩下的5个值求平均来计算该选手的比赛得分.比赛结束后,将根 ...
- Java搭建实战springboot基于若依项目工时统计成本核算管理源码
大家好啊,我是测评君,欢迎来到web测评. 本期给大家带来一套基于若依开发的springboot项目工时统计成本核算管理源码,该系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2 ...
- SpringBoot基于若依项目工时统计成本核算管理源码带文字教程
该系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2. 技术架构 技术框架:SpringBoot2.0.0 + Mybatis1.3.2 + Shiro + swagger-ui ...
- Vue电商项目—数据统计—数据报表模块-11
Vue电商项目-数据统计-数据报表模块-11 1.1 数据统计概述 数据统计模块主要用于统计电商平台运营过程的中的各种统计数据, 并通过直观的可视化方式展示出来, 方便相关运营和管理人员查看. 1.2 ...
- 简单的项目规模统计方法
因为工作的需要,花了一点点时间做了一个关于项目规模统计的shell脚本,共大家分享. #/bin/bash do_scale() { echo 'Probe *.h, *.hpp, *.cc, *.c ...
- 一款轻量级项目工时统计系统,源码分享
Java项目工时统计成本核算管理系统源码 技术:Java 1.8 + MySQL 8 +Vue 项目基于前后端分离架构,服务端主要技术:SpringBoot 前端主要是Vue. 源码类型:全开源免 ...
- 软件工程之个人项目--词频统计
不得不说对于菜鸟级的我,这是一次心酸的经历啊...自打接到王老师布置的这个任务(个人项目)之后,我心里一直在想着自己要用哪种语言来完成我的任务.以前多多少少写过一些程序的,这又想起了数据库小学期与永哥 ...
- #软工实践-个人项目-词频统计
Github项目地址 https://github.com/pandaeathzr/personal-project PSP表格: PSP2.1 Personal Software Process S ...
最新文章
- BootStrap在一行如何展示多行单据
- Windows服务器学习篇:服务器连接与退出
- 如何添加媒体控件Windows Media Player到工具箱中
- toj 4604 搞笑版费马大定理
- linux java url 异常_Java连接虚拟机(Linux)中的Oracle数据库,连接异常~新手求解!
- 【安装配置】Oracle数据库Linux系统下安装(图形界面)
- JDK集合框架结构分析(二)
- 毕业三五年,怎么拿到百万年薪?
- ultrascale和arm区别_UltraScale+MPSoC软硬件设计及入门套件
- mysql db_owner_SQL Server修改数据库对象所有者(Owner)浅析
- 连版《三十六英雄》整理
- 180902 逆向-网鼎(4-dalao)
- 工控安全的一些个人建议
- 论文:Discriminative Triad Matching and Reconstruction for Weakly Referring Expression Grounding
- 罗技M590优联和蓝牙连接的问题
- [转]android 制作.9.png图片 解决图形变形问题
- ssm + redis
- 万里长征第一步----学会做科研
- “定点打击”——XPath 使用细则(Just For Selenium WebDriver)
- 经济学说史名词解释及课后习题答案
热门文章
- python爬虫爬取网易云音乐下载_Python爬虫实践-网易云音乐!没有版权又如何!照样爬取!...
- 微信公共平台配置域名提示,协议头非法
- 文档转换 云服务器,文档转换服务
- 读书笔记app推荐——只为让你的生活更高效
- 网易云对象存储获取私有对象下载链接打不开的问题
- 【软考系统架构设计师】2011年下系统架构师综合知识历年真题
- go build在mac系统下生成可执行文件时隐藏终端
- mysql分区为什么提高性能_通过分区(Partition)提升MySQL性能
- 午芯高科WXP380气压传感器
- iPhone7可以共享热点给多少设备使用呢?