这是一篇基于JAVA的员工工资管理系统的课程设计,编译环境是eclipse。
下面进入正文:
一. 课设题目
题目:设计员工工资管理系统 实现功能: 1.输入 5 名员工姓名、工号、月工资; 2.统计每人的年收入及收入最高和最低的员工,计算他们的平均工资; 3.按月工资降序排序; 4.统计高于平均工资和低于平均工资的员工; 5.输入工号名称查询员工的姓名和月工资。二.实验思路
大致思路是首先用 3 个一维数组分别存储 5 名员工的姓名、工号、月工资,设 计实现员工信息录入功能,再分多个模块分别在方法里实现各个功能: 1.统计年收入及所有员工平均收入,即计算平均值; 2.统计收入最高和最低的员工,即计算最值; 3.按月工资高低降序排序,首先复制一个月工资数组,再用冒泡排序; 4.统计高于平均工资和低于平均工资的员工; 5.输入工号查询姓名和月工资,即得设计员工工号输入功能,并显示月工资功能。 然后再对登录界面进行比较美观的设计; 最后通过指令对这些方法进行调用,从而实现全部功能。三.源代码
public class employee {
public static void main(String[] args) {
String[] name = new String[5];//定义一个name员工姓名的数组
String[] jobNumber = new String[5];//定义一个jobNumber员工工号的数组
double[] wage = new double[5];//定义一个wage员工月工资的数组
for(int i=0;i<5;i++) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个员工的姓名:");
name[i] = sc.nextLine();
System.out.println("请输入第"+(i+1)+"个员工的工号:");
jobNumber[i] = sc.nextLine();
System.out.println("请输入第"+(i+1)+"个员工的工资:");
wage[i] = sc.nextDouble();
}
System.out.println("信息录入成功!");
System.out.println("*****************************************************");
System.out.println("*****************************************************");
System.out.println(" 欢迎使用员工工资管理系统");
System.out.println("-----------------------------------------------------");
System.out.println(" 【1】--------显示所有员工的年收入及他们的平均工资");
System.out.println(" 【2】-----------显示收入最高和最低的员工");
System.out.println(" 【3】-----------显示按月工资高低降序排序");
System.out.println(" 【4】------显示统计高于平均工资和低于平均工资的员工");
System.out.println(" 【5】-------------查询员工的姓名和月工资");
System.out.println(" 【-1】-----------------退出系统!!!");
System.out.println("*****************************************************");
System.out.println("*****************************************************");
System.out.println("请输入编号查询:");
while(true){
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
if(1 == input) {
statistics(name,jobNumber,wage);
}
else if(2 == input) {
inquire(wage,name);
}
else if(3 == input) {
rank(wage);
}
else if(4 == input) {
statistics(name,wage);
}
else if(5 == input) {
inquire(name,jobNumber,wage);
}
else if(-1 == input) {
System.out.println("已成功退出系统!!!");
break;
}
else{
System.out.println("编号输入有误,请重新输入!!!");
}
}
}
//1.统计年收入及所有员工平均工资
public static void statistics(String name[],String jobNumber[],double wage[]) {
for(int i=0;i<5;i++) {
System.out.println("员工工号: "+jobNumber[i]+" 员工姓名: "+name[i]+" 月工资: "+wage[i]+" 年收入: " + wage[i]*12);
}
double all = 0;
for(int i=0;i<5;i++) {
all = all + wage[i]*12;
}
System.out.println("他们的平均工资: "+(all/5/12));
System.out.println("\n请输入编号继续查询:");
}
//2.统计收入最高和最低的员工
public static void inquire(double wage[],String name[]) {
double big = wage[0];//假设wage[0]为最高
String bigName = name[0];
for(int i=1;i<5;i++) {
if(wage[i]>big) {
big = wage[i];
bigName = name[i];
}
}
System.out.println("收入最高的员工为: "+bigName+" 其工资为: "+big);
double small = wage[0];//假设wage[0]为最低
String smallName = name[0];
for(int i=1;i<5;i++) {
if(wage[i]<small) {
small = wage[i];
smallName = name[i];
}
}
System.out.println("-----------------------------------");
System.out.println("收入最低的员工为: "+smallName+" 其工资为: "+small);
System.out.println("\n请输入编号继续查询:");
}
//3.按月工资高低降序排序
public static void rank(double wage[]) {
double[]b = Arrays.copyOf(wage, 5);
Arrays.sort(b);
System.out.println("按月工资高低降序排序为: ");
for(int i=4;i>=0;i--) {
System.out.println(b[i]);
}
System.out.println("\n请输入编号继续查询:");
}
//4.统计高于平均工资和低于平均工资的员工
public static void statistics(String name[],double wage[]) {
double sum = 0;
for(int i=0;i<5;i++) {
sum = sum + wage[i];
}
double average = sum/5;
for(int i=0;i<5;i++) {
if(wage[i]>average) {
System.out.println("高于平均工资的员工有: " +name[i]+" 他的工资为: "+wage[i]);
}
}
System.out.println("---------------------------------------");
for(int i=0;i<5;i++) {
if(wage[i]<average) {
System.out.println("低于平均工资的员工有: "+name[i]+" 他的工资为: "+wage[i]);
}
}
System.out.println("\n请输入编号继续查询:");
}
//5.输入工号查询姓名和月工资
public static void inquire(String name[],String jobNumber[],double wage[]) {
int j = 0;
System.out.print("请输入工号进行查询: ");
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
for(int i=0;i<5;i++) {
if(s.equals(jobNumber[i])) {
System.out.println("员工: "+name[i]+" 月工资: "+wage[i]);
System.out.print("\n再次查询请输入【5】,");
j++;
}
}
if(0 == j) {
System.out.println("无此员工工号!!!");
}
System.out.println("请输入编号继续查询:");
}
}
四.运行结果
五.心得体会
本次课设我的题目是设计员工工资管理系统,对于我本人来说还是有些难度,编写过程 中也遇到了很多问题,尤其是在输出按月工资降序排序之后,总是会干扰其他功能的输出, 导致其他输出数据错误。通过询问老师与同学以及在哔哩哔哩上观看视频讲解,翻阅课本, 最终才解决了这些问题。通过本次课程设计,锻炼了自己的耐心,确实有些问题很难修改, 但有的问题解决之后,便会铭记于心,使得下次再遇到此类的问题时,就变得迎刃而解,很 有成就感,多一份错误,就会多一份收获和经验,我相信在这样不断的磨炼中,我的代码水 平将会更上一层楼。文章出处登录后可见!
已经登录?立即刷新