当前位置:   article > 正文

三种方法:一个简易的员工管理系统(一)_设计一个简单的员工管理系统,包含以下要求: 1.定义一个employee抽象类,包含员工姓

设计一个简单的员工管理系统,包含以下要求: 1.定义一个employee抽象类,包含员工姓
嘻嘻!又来更新博客啦!我会在代码中做详细注释给大家。这里先说下这第一种方法的思路:主题思路,是创建一个二维数组用来存数。如:a[?][5],因为二维数组的第二维是固定的5个数,所以可以确定。第一维可以根据大家要存多少数来自行决定!然后根据这个二维数组对数据进行增删改查。
  1. package 员工管理系统;
  2. public abstract class Employee { //创建员工父类
  3. String ID;
  4. String name;
  5. String position;
  6. int holiday;
  7. int salary;
  8. abstract double sumSalary(int salary,int holiday);//因为每个不同岗位的员工的工资结算方法不同,所以定义为抽象方法,自然员工父类也变成抽象类
  9. //abstract double display();
  10. }

  1. package 员工管理系统;
  2. public class CommonEmployee extends Employee { //创建普通员工类,里面实现普通员工的工资结算方法
  3. @Override
  4. double sumSalary(int salary, int holiday) {
  5. // TODO Auto-generated method stub
  6. return (salary+salary*0.1+salary*0.5+200)-(salary+salary*0.1+salary*0.5+200)/30*holiday;
  7. }
  8. }
  1. package 员工管理系统;
  2. public class Director extends Employee {// <pre name="code" class="java">创建经理员工类,里面实现普通员工的工资结算方法
@Overridedouble sumSalary(int salary, int holiday) {// TODO Auto-generated method stubreturn (salary+salary*0.08+salary*0.3+2000+3000)-(salary+salary*0.08+salary*0.3+2000+3000)/30*holiday;}}
 
  1. package 员工管理系统;
  2. public class Manager extends Employee {//<pre name="code" class="java">创建董事长员工类,里面实现普通员工的工资结算方法
@Overridedouble sumSalary(int salary, int holiday) {// TODO Auto-generated method stubreturn (salary+salary*0.2+salary*0.5+500)-(salary+salary*0.2+salary*0.5+500)/30*holiday;}}
 
  1. package 员工管理系统;
  2. import java.util.Scanner;
  3. public class TestEmd {
  4. public static void main(String[] args) {
  5. // TODO Auto-generated method stub
  6. CommonEmployee common=new CommonEmployee();//先得到各个员工类的对象,下面好进行操作
  7. Manager manager=new Manager();
  8. Director director=new Director();
  9. //Fun fun=new Fun();
  10. String a[][]=new String[10][5]; //这里就是我定义的二维数组,用来存放数值
  11. String b[][]=new String[10][5];
  12. int arr[]=new int[2];
  13. int k=-1;
  14. double o=0;
  15. String q[]={"编号:","姓名:","职务:","请假天数:","工资:"};
  16. d:for(int s=1;s>0;){
  17. p:while(true){
  18. int v=0;
  19. System.out.println("|---------------|");//进行业务的选择
  20. System.out.println("|-----1 增加-----|");
  21. System.out.println("|-----2 删除-----|");
  22. System.out.println("|-----3 修改-----|");
  23. System.out.println("|-----4 查询-----|");
  24. System.out.println("|-----0 退出-----|");
  25. System.out.println("|---------------|");
  26. System.out.println("|请选择业务!");
  27. Scanner sc=new Scanner(System.in);
  28. int s0=sc.nextInt();
  29. switch(s0){ //这里判断我用的是switch方法,不过本人还是喜欢用if判断,各人习惯不同吧。
  30. case 1:k++;
  31. arr=add(a,k);
  32. for(int i=0;i<=k;i++){
  33. // int x=(Integer.parseInt(b[i][4].trim()));
  34. // int x = Integer.valueOf(b[i][4]).intValue();
  35. //int x1=(Integer.parseInt(b[i][3]));
  36. if(a[i][2].equals("普通员工")){
  37. o=common.sumSalary(arr[0],arr[1]);
  38. o=Math.round(o);
  39. }
  40. if(a[i][2].equals("经理")){
  41. o=manager.sumSalary(arr[0],arr[1]);
  42. o=Math.round(o);
  43. }
  44. if(a[i][2].equals("董事长")){
  45. o=director.sumSalary(arr[0],arr[1]);
  46. o=Math.round(o);
  47. }
  48. a[i][4]=" "+o;
  49. }
  50. System.out.println("增加数据成功");
  51. //for(int i=0;i<=k;i++){
  52. for(int j=0;j<5;j++){
  53. System.out.print(q[j]+a[k][j]+" ");
  54. //}
  55. }
  56. break p;
  57. case 2: v=delete(q, a, k);
  58. if(v==0)
  59. System.out.println("无信息");
  60. else
  61. k--;
  62. break p;
  63. case 3: v=amend(q, a,k);
  64. /*arr=add(a,k);
  65. for(int i=0;i<=k;i++){
  66. if(a[i][2].equals("普通员工")){
  67. o=common.sumSalary(arr[0],arr[1]); 这里就是把输入的基本工资,通过调用各个对象特有的工资结算方法,来算出然后覆盖到原先基本工资suo
  68. o=Math.round(o);
  69. }
  70. if(a[i][2].equals("经理")){
  71. o=manager.sumSalary(arr[0],arr[1]);
  72. o=Math.round(o);
  73. }
  74. if(a[i][2].equals("董事长")){
  75. o=director.sumSalary(arr[0],arr[1]);
  76. o=Math.round(o);
  77. }
  78. a[i][4]=" "+o;
  79. }
  80. System.out.println("修改成功");*/
  81. if(v==0)
  82. System.out.println("没有找到匹配项");//这里也是设计一个变量的形式,来判断输出是否有信息
  83. break p;
  84. case 4:inquire(q, a, k);
  85. break p;
  86. case 0:System.out.println("退出系统");
  87. break d;
  88. }
  89. }
  90. System.out.println();
  91. }
  92. }
  93. public static int[] add(String a[][],int t){ //实现增加方法
  94. int arr[]=new int[2];
  95. System.out.println("请输入员工编号");
  96. Scanner sc1=new Scanner(System.in);
  97. String s1=sc1.next();
  98. System.out.println("请输入员工姓名");
  99. String s2=sc1.next();
  100. System.out.println("请输入员工职务(普通员工,经理,董事长)");
  101. String s3=sc1.next();
  102. System.out.println("请输入员工请假天数");
  103. int s4=sc1.nextInt();
  104. System.out.println("请输入员工基本工资");
  105. int s5=sc1.nextInt();
  106. String s6=""+s5;
  107. String s7=""+s4;
  108. arr[0]=s5;
  109. arr[1]=s4;
  110. {
  111. a[t][0]=s1; //我前面是把k传给了t,初值为-1,所以我在调用前k++了,大家可以翻上去看看哦。
  112. a[t][1]=s2; //这里就实现a[0][?]赋值
  113. a[t][2]=s3;
  114. a[t][3]=s7;
  115. a[t][4]=s6;
  116. }
  117. return arr;
  118. }
  119. public static int delete(String p[],String a[][],int t){
  120. int v=0;
  121. System.out.println("请输入要删除的员工姓名");
  122. Scanner sc1 = new Scanner(System.in);
  123. String name = sc1.next();
  124. int i; //因为我在函数中for循环太多次,不好判断是否满足if条件,所以这里设个变量,来记录,如果变量的值改变,说明是数组中是有我要删除的值,否则就可以待会在main中输出无要删除的信息。
  125. for(i=0;i<=t;i++){
  126. if(a[i][1].equals(name)){ /要删除的话,我要先查找里面是否有要删除的元素,所以这里做了个if判断
  127. for(int r=0;r<5;r++){
  128. System.out.print(p[r]+a[i][r]+" ");
  129. }
  130. for(int i1=0;i1<=t;i1++){
  131. for(int j=0;j<5;j++){
  132. if(i1==i&&i<t){
  133. v++;
  134. a[i1][j]=a[i1+1][j];//这里是删除的核心代码,数组删除就是要把该位删除,后面下标往前移一位。这里我先判断下,要删除的元素,是否是数组中的最后一个元素,如果是的话,就可以直接删除,不需要后面的进行移位,否则进行删除再移位。
  135. a[i1+1][j]=null;
  136. }
  137. if(i1==i&&i==t)
  138. v++;
  139. a[i][j]=null;
  140. }
  141. }
  142. System.out.println("删除成功");
  143. break;
  144. }
  145. //if(!(a[i][1].equals(name))){
  146. // break;
  147. //}
  148. }
  149. //System.out.println();
  150. return v;
  151. }
  152. public static int amend(String p[],String a[][],int t){ //这里是实现修改,我偷了下懒,修改直接调用的删除,增加方法,来达到修改的目的!这难道就是传说中的懒人的智慧吗?哈哈哈
  153. int m=0;
  154. CommonEmployee common=new CommonEmployee();
  155. Manager manager=new Manager();
  156. Director director=new Director();
  157. System.out.println("请输入要修改的姓名");
  158. Scanner sc2 = new Scanner(System.in);
  159. String name1 = sc2.next();
  160. int i;
  161. for(i=0;i<=t;i++){
  162. if(a[i][1].equals(name1)){
  163. for(int r=0;r<5;r++){
  164. System.out.print(p[r]+a[i][r]+" ");
  165. }
  166. for(int i1=0;i1<=t;i1++){
  167. for(int j=0;j<5;j++){
  168. if(i1==i&&i<t){
  169. /*for(int i2=0;i2<=i1;i2++){
  170. a[i2][]
  171. }*/
  172. m++;
  173. a[i1][j]=a[i1+1][j];
  174. a[i1+1][j]=null;
  175. }
  176. if(i1==i&&i==t)
  177. m++;
  178. a[i][j]=null;
  179. //b[i1][j]=a[i1][j];
  180. //System.out.println("删除成功");
  181. }
  182. }
  183. System.out.println();
  184. System.out.println("请重新输入信息");
  185. double o=0;
  186. int arr[]=new int[2];
  187. add(a,t);
  188. m++;
  189. for(int i1=0;i1<=t;i1++){
  190. if(a[i][2].equals("普通员工")){
  191. o=common.sumSalary(arr[0],arr[1]);
  192. o=Math.round(o);
  193. }
  194. if(a[i][2].equals("经理")){
  195. o=manager.sumSalary(arr[0],arr[1]);
  196. o=Math.round(o);
  197. }
  198. if(a[i][2].equals("董事长")){
  199. o=director.sumSalary(arr[0],arr[1]);
  200. o=Math.round(o);
  201. }
  202. a[i][4]=" "+o;
  203. }
  204. System.out.println("修改成功");
  205. }
  206. }
  207. //System.out.println("修改成功");
  208. return m;
  209. }
  210. public static void inquire(String p[],String a[][],int t){ //查询很简单,可以全部遍历一遍,全部输出查询,也可以像我这样,先取得要查询的name
  211. int y=0; // 然后和a[?][1]进行比较,因为第二维的下标1的位置就是存的保存后的各个数据的name
  212. System.out.println("请输入要查询的名字");
  213. Scanner sc3 = new Scanner(System.in);
  214. String name1 = sc3.next();
  215. for(int i=0;i<=t;i++){
  216. if(a[i][1].equals(name1)){
  217. for(int r=0;r<5;r++){
  218. y++;
  219. System.out.print(p[r]+a[i][r]+" ");
  220. }
  221. System.out.println();
  222. }
  223. }
  224. if(y==0){
  225. System.out.println("无信息");
  226. }
  227. }
  228. }


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

闽ICP备14008679号