当前位置:   article > 正文

员工工资管理系统(JAVA完整课设和详细思路)_薪资管理java

薪资管理java

这是一篇基于JAVA的员工工资管理系统的课程设计,编译环境是eclipse。

下面进入正文:

一. 课设题目

      题目:设计员工工资管理系统
      实现功能:   1.输入 5 名员工姓名、工号、月工资;
                           2.统计每人的年收入及收入最高和最低的员工,计算他们的平均工资;
                           3.按月工资降序排序;
                           4.统计高于平均工资和低于平均工资的员工;
                           5.输入工号名称查询员工的姓名和月工资。

二.实验思路

           大致思路是首先用 3 个一维数组分别存储 5 名员工的 姓名、工号、月工资,设
           计实现员工信息录入功能,再分多个模块分别在方法里实现各个功能:
                1.统计年收入及所有员工平均收入,即计算平均值;
                2.统计收入最高和最低的员工,即计算最值;
                3.按月工资高低降序排序,首先复制一个月工资数组,再用冒泡排序;
                4.统计高于平均工资和低于平均工资的员工;
                5.输入工号查询姓名和月工资,即得设计员工工号输入功能,并显示月工资功能。
                   然后再对登录界面进行比较美观的设计;
                   最后通过指令对这些方法进行调用,从而实现全部功能。

三.源代码

  1. public class employee {
  2. public static void main(String[] args) {
  3. String[] name = new String[5];//定义一个name员工姓名的数组
  4. String[] jobNumber = new String[5];//定义一个jobNumber员工工号的数组
  5. double[] wage = new double[5];//定义一个wage员工月工资的数组
  6. for(int i=0;i<5;i++) {
  7. @SuppressWarnings("resource")
  8. Scanner sc = new Scanner(System.in);
  9. System.out.println("请输入第"+(i+1)+"个员工的姓名:");
  10. name[i] = sc.nextLine();
  11. System.out.println("请输入第"+(i+1)+"个员工的工号:");
  12. jobNumber[i] = sc.nextLine();
  13. System.out.println("请输入第"+(i+1)+"个员工的工资:");
  14. wage[i] = sc.nextDouble();
  15. }
  16. System.out.println("信息录入成功!");
  17. System.out.println("*****************************************************");
  18. System.out.println("*****************************************************");
  19. System.out.println(" 欢迎使用员工工资管理系统");
  20. System.out.println("-----------------------------------------------------");
  21. System.out.println(" 【1】--------显示所有员工的年收入及他们的平均工资");
  22. System.out.println(" 【2】-----------显示收入最高和最低的员工");
  23. System.out.println(" 【3】-----------显示按月工资高低降序排序");
  24. System.out.println(" 【4】------显示统计高于平均工资和低于平均工资的员工");
  25. System.out.println(" 【5】-------------查询员工的姓名和月工资");
  26. System.out.println(" 【-1】-----------------退出系统!!!");
  27. System.out.println("*****************************************************");
  28. System.out.println("*****************************************************");
  29. System.out.println("请输入编号查询:");
  30. while(true){
  31. @SuppressWarnings("resource")
  32. Scanner sc = new Scanner(System.in);
  33. int input = sc.nextInt();
  34. if(1 == input) {
  35. statistics(name,jobNumber,wage);
  36. }
  37. else if(2 == input) {
  38. inquire(wage,name);
  39. }
  40. else if(3 == input) {
  41. rank(wage);
  42. }
  43. else if(4 == input) {
  44. statistics(name,wage);
  45. }
  46. else if(5 == input) {
  47. inquire(name,jobNumber,wage);
  48. }
  49. else if(-1 == input) {
  50. System.out.println("已成功退出系统!!!");
  51. break;
  52. }
  53. else{
  54. System.out.println("编号输入有误,请重新输入!!!");
  55. }
  56. }
  57. }
  58. //1.统计年收入及所有员工平均工资
  59. public static void statistics(String name[],String jobNumber[],double wage[]) {
  60. for(int i=0;i<5;i++) {
  61. System.out.println("员工工号: "+jobNumber[i]+" 员工姓名: "+name[i]+" 月工资: "+wage[i]+" 年收入: " + wage[i]*12);
  62. }
  63. double all = 0;
  64. for(int i=0;i<5;i++) {
  65. all = all + wage[i]*12;
  66. }
  67. System.out.println("他们的平均工资: "+(all/5/12));
  68. System.out.println("\n请输入编号继续查询:");
  69. }
  70. //2.统计收入最高和最低的员工
  71. public static void inquire(double wage[],String name[]) {
  72. double big = wage[0];//假设wage[0]为最高
  73. String bigName = name[0];
  74. for(int i=1;i<5;i++) {
  75. if(wage[i]>big) {
  76. big = wage[i];
  77. bigName = name[i];
  78. }
  79. }
  80. System.out.println("收入最高的员工为: "+bigName+" 其工资为: "+big);
  81. double small = wage[0];//假设wage[0]为最低
  82. String smallName = name[0];
  83. for(int i=1;i<5;i++) {
  84. if(wage[i]<small) {
  85. small = wage[i];
  86. smallName = name[i];
  87. }
  88. }
  89. System.out.println("-----------------------------------");
  90. System.out.println("收入最低的员工为: "+smallName+" 其工资为: "+small);
  91. System.out.println("\n请输入编号继续查询:");
  92. }
  93. //3.按月工资高低降序排序
  94. public static void rank(double wage[]) {
  95. double[]b = Arrays.copyOf(wage, 5);
  96. Arrays.sort(b);
  97. System.out.println("按月工资高低降序排序为: ");
  98. for(int i=4;i>=0;i--) {
  99. System.out.println(b[i]);
  100. }
  101. System.out.println("\n请输入编号继续查询:");
  102. }
  103. //4.统计高于平均工资和低于平均工资的员工
  104. public static void statistics(String name[],double wage[]) {
  105. double sum = 0;
  106. for(int i=0;i<5;i++) {
  107. sum = sum + wage[i];
  108. }
  109. double average = sum/5;
  110. for(int i=0;i<5;i++) {
  111. if(wage[i]>average) {
  112. System.out.println("高于平均工资的员工有: " +name[i]+" 他的工资为: "+wage[i]);
  113. }
  114. }
  115. System.out.println("---------------------------------------");
  116. for(int i=0;i<5;i++) {
  117. if(wage[i]<average) {
  118. System.out.println("低于平均工资的员工有: "+name[i]+" 他的工资为: "+wage[i]);
  119. }
  120. }
  121. System.out.println("\n请输入编号继续查询:");
  122. }
  123. //5.输入工号查询姓名和月工资
  124. public static void inquire(String name[],String jobNumber[],double wage[]) {
  125. int j = 0;
  126. System.out.print("请输入工号进行查询: ");
  127. @SuppressWarnings("resource")
  128. Scanner scan = new Scanner(System.in);
  129. String s = scan.nextLine();
  130. for(int i=0;i<5;i++) {
  131. if(s.equals(jobNumber[i])) {
  132. System.out.println("员工: "+name[i]+" 月工资: "+wage[i]);
  133. System.out.print("\n再次查询请输入【5】,");
  134. j++;
  135. }
  136. }
  137. if(0 == j) {
  138. System.out.println("无此员工工号!!!");
  139. }
  140. System.out.println("请输入编号继续查询:");
  141. }
  142. }

四.运行结果

 

五.心得体会

本次课设我的题目是设计员工工资管理系统,对于我本人来说还是有些难度,编写过程
中也遇到了很多问题,尤其是在输出按月工资降序排序之后,总是会干扰其他功能的输出,
导致其他输出数据错误。通过询问老师与同学以及在哔哩哔哩上观看视频讲解,翻阅课本,
最终才解决了这些问题。通过本次课程设计,锻炼了自己的耐心,确实有些问题很难修改,
但有的问题解决之后,便会铭记于心,使得下次再遇到此类的问题时,就变得迎刃而解,很
有成就感,多一份错误,就会多一份收获和经验,我相信在这样不断的磨炼中,我的代码水
平将会更上一层楼。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/754365
推荐阅读
相关标签
  

闽ICP备14008679号