`
youngmaster
  • 浏览: 58516 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java SE 基础回顾编程之: 员工工资及信息管理系统

阅读更多
package com.youngmaster;
import java.util.Scanner;

/**
 * application name        Employee.java
 * copyright               Copyright  2008 少爷 版权所有
 * company                 personal
 * time                    2009-3-22
 *
 * @author             	 youngmaster
 * @version              ver 1.0
 */

//Employee类
class Employee{

	//Employee类属性
	private int id;
	private String name;
	private int grade;
	private int basicSalary;
	private int factSalary;

	public Employee(){//默认构造函数
	}

	public Employee(int id,String name,int grade,int basicSalary){//构造函数
		this.id = id;
		this.name = name;
		this.grade = grade;
		this.basicSalary = basicSalary;
	}

	public int getId(){//获得ID
		return id;
	}

	public void setId(int id){//设定ID
		this.id = id;
	}

	public String getName(){//获得姓名
		return name;
	}

	public void setName(String name){//设定姓名
		this.name = name;
	}

	public int getGrade(){//获得等级
		return grade;
	}

	public void setGrade(int grade){//设定等级
		this.grade = grade;
	}

	public int getBasicSalary(){//获得基本工资
		return basicSalary;
	}

	public void setBasicSalary(int basicSalary){//设定基本工资
		this.basicSalary = basicSalary;
	}
	
	public int getFactSalary(){//获得基本工资
		return factSalary;
	}

	public void setFactSalary(int factSalary){//设定基本工资
		this.factSalary = factSalary;
	}

}



//Manager 类
 class Manager{
	private int count = 0;//计数器,记下所有添加的记录
	private int i;
	Scanner sc = new Scanner(System.in);
	Employee[] emp = new Employee[1000];//可包含1000条记录,为Employee类集合
	
	//插入员工
	public void insertEmp(){
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t**************添加员工*************");
		System.out.print("\t\t请输入ID:");
		int num1 = sc.nextInt();
		System.out.print("\t\t请输入员工名:");
		String name = sc.next();
		System.out.print("\t\t请输入员工等级:");
		int num2 = sc.nextInt();
		System.out.print("\t\t请输入员工的基本工资:");
		int wage = sc.nextInt();
		emp[count] = new Employee(num1,name,num2,wage);
		count ++;
	}

	//依ID删除员工
	public void deletEmpById(){
		int i,k= 0;
		boolean flag = false;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");		
		System.out.print("\t\t请选择您将删除的ID:");
		int key = sc.nextInt();
		for(i=0;i<count;i++){
		if(key == emp[i].getId()){
			flag = true;
			k = i;
			break; 
		}
	       }
	   	if(flag == false){
		System.out.printf("\n\t\t不存在ID为 %d 的员工\n",key);
	    	}
	   	if(flag == true){
		   for(i=k;i<count;i++){
			emp[i] = emp[i+1];
		   }

		count --;
	       }
        }


	//显示所有员工	
	public void showAllEmps(){
		int i;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t****************************************");
		System.out.println("\t\t|-------------------------------------|");
		System.out.println("\t\t| ID |  员工名  | 等级 | 基本工资 |");
		System.out.println("\t\t|-------------------------------------|");
		for(i=0;i<count;i++){
		System.out.printf("\t\t|    %d   |    %s    |   %d  |   %d   |",emp[i].getId(),emp[i].getName(),emp[i].getGrade(),emp					[i].getBasicSalary());
		System.out.println();
	 }	
	}

	//依ID查询员工
	public void showEmpById(){
		int i;
		boolean flag = false;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");
		System.out.println("\n\t\t-----------------------------");
		System.out.print("\t\t请输入您要查询的ID:");
		int input = sc.nextInt();
		for(i=0;i<count;i++){
		  if(input == emp[i].getId()){
			System.out.println("\t\t|-------------------------------------|");
			System.out.println("\t\t| ID |  员工名  | 等级 | 基本工资 |");
			System.out.printf("\t\t|  %d |    %s    |   %d  |   %d   |",emp[i].getId(),emp[i].getName(),emp[i].getGrade(),emp				[i].getBasicSalary());
			flag = true;
			break;
			}
		}

	     if(flag == false){
		System.out.printf("\n\t\t不存在ID为 %d 的员工,请重新尝试!",input);
		showEmpById();	
		}

 	}

	//更新员工信息
	public void updateEmp(){
		boolean flag = false;
		int i = 0;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");
		System.out.print("\n\t\t请输入您需要的ID:");
		int num = sc.nextInt();
		for(i=0;i<count;i++){
		 if(num == emp[i].getId()){
			System.out.print("\n\t\tID:"); 
			int id = sc.nextInt();
			System.out.print("\t\t员工姓名:");
			String name = sc.next();
			System.out.print("\t\t员工等级:");
			int grade = sc.nextInt();
			System.out.print("\t\t基本工资:");
			int basicSalary = sc.nextInt();
			int factSalary = emp[i].getBasicSalary() + emp[i].getGrade()*500;
			emp[i].setFactSalary(factSalary);
			emp[i]=new Employee(id,name,grade,basicSalary);	
			flag = true;
			break;
		}
	   }
		if(flag == false){
		System.out.printf("\n\t\t不存在ID为 %d 的员工,请重新尝试!\n",num);
		updateEmp();
		}
	}

	//计算工资
	public void computeSalary(){
		int i = 0;
		boolean flag = false;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");
		System.out.print("\n\t\t请输入ID:");
		int num = sc.nextInt();
		
		
		for(i=0;i<count;i++){
		if(num == emp[i].getId())
		{
			
			System.out.println("\n\t\t欢迎使用企业人事管理系统");
			System.out.println("\t\t***********************************************");
			System.out.println("\t\t|--------------------------------------------|");
			System.out.println("\t\t| ID |  员工名  | 等级 | 基本工资 | 实际工资 |");
			System.out.printf("\t\t| %d |   %s  |  %d  |   %d   |    %d   |",emp[i].getId(),emp[i].getName(),emp[i].getGrade			(),emp[i].getBasicSalary(),(emp[i].getBasicSalary() + emp[i].getGrade()*500));
			flag = true;
			break;
		 }
	    }
		if(flag == false){
		System.out.printf("\n\t\t工号为 %d 的员工不存在,请重新尝试!\n",num);
		computeSalary();
		} 
	}

	
	
	//显示所有工资
	public void showAllSalary(){
		int i;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t***********************************************");
		System.out.println("\t\t|--------------------------------------------|");
		System.out.println("\t\t| ID |  员工名  | 等级 | 基本工资 | 实际工资 |");
		System.out.println("\t\t|--------------------------------------------|");
		for(i=0;i<count;i++){
		System.out.printf("\t\t| %d |   %s  |  %d  |   %d   |    %d   |",emp[i].getId(),emp[i].getName(),emp[i].getGrade			(),emp[i].getBasicSalary(),(emp[i].getBasicSalary() + emp[i].getGrade()*500));
		System.out.println();
	 }	
	}

	//依ID查询工资
	public void showSalaryById(){
		int i;
		boolean flag = false;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");
		System.out.print("\n\t\t请输入您要查询的ID:");
		int input = sc.nextInt();
		for(i=0;i<count;i++){
		if(input == emp[i].getId()){
			System.out.println("\n\t\t欢迎使用企业人事管理系统");
			System.out.println("\t\t***********************************************");
			System.out.println("\t\t|--------------------------------------------|");
			System.out.println("\t\t| ID |  员工名  | 等级 | 基本工资 | 实际工资 |");
			System.out.printf("\t\t| %d  |   %s  |  %d  |   %d   |    %d    |",emp[i].getId(),emp[i].getName(),emp[i].getGrade		(),emp[i].getBasicSalary(),	(emp[i].getBasicSalary() + emp[i].getGrade()*500));
			flag = true;
			break;
		   }
	   }

	   if(flag == false){
		System.out.printf("\n\t\t不存在ID为 %d 的员工,请重新尝试!\n",input);
		showSalaryById();
	   }
	}

	//工资更新
	public void updateSalary(){
		int i;
		boolean flag = false;
		System.out.println("\n\t\t****************************************************");
		System.out.println("\n\t\t请输入您要更改工资的员工的ID和基本工资:");
		System.out.print("\t\tID:");
		int num = sc.nextInt();
		System.out.print("\t\t基本工资:");
		int newBasicSalary = sc.nextInt();
		for(i=0;i<count;i++){
		  if(num == emp[i].getId()){
			emp[i].setBasicSalary(newBasicSalary);
			emp[i].setFactSalary(emp[i].getBasicSalary() + emp[i].getGrade() * 500);
			flag = true;
			break;
		   }
	        }
		
		
		System.out.println("\t\t|--------------------------------------------|");
		System.out.println("\t\t| ID |  员工名  | 等级 | 基本工资 | 实际工资 |");
	    	if(flag == true){
		  for(i =0;i<count;i++){
		  System.out.printf("\t\t| %d |   %s  |  %d  |   %d   |    %d   |",emp[i].getId(),emp[i].getName(),emp[i].getGrade			(),emp[i].getBasicSalary(),(emp[i].getBasicSalary() + emp[i].getGrade()*500));
			}
		}

		if(flag == false){
		System.out.printf("\n\t\t不存在ID为 %d 的员工,请重新尝试!\n",num);
		updateSalary();
	     	}
	}
}



//Controller类
class Controller{

	Manager manager = new Manager();

	//登录菜单
	public void showLoginMenu(){ 
		System.out.println("\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");
		while(true){
	
		Scanner sc = new Scanner(System.in);
		System.out.print("\t\t姓名:");
		String name = sc.next();

		System.out.print("\t\t密码:");
		Eraser eraser = new Eraser('*');
		Thread eraserThread = new Thread(eraser);
		eraserThread.start(); //启动一个线程
		String password = sc.next();
		eraser.setActive(false);
		System.out.println();
		if("master".equals(name)&&"007".equals(password)){
		System.out.printf("\t\t%s ,您已经登录成功!\n\n",name);
		break;
		}
		else{
		System.out.println("\t\t您的登录名或密码错误,请重新尝试!\n");
		showLoginMenu();
		}
	    }
      }

	//主菜单
	public void showMainMenu(){
		System.out.println("\t\t欢迎使用企业人事管理系统\n"
		 +"\t\t*****************************");
		System.out.println("\t\t请选择您要进行的操作");
		System.out.println("\t\t1.员工信息管理");
		System.out.println("\t\t2.工资结算管理");
		System.out.print("\n\t\t返回请按 9 ,请选择您需要的菜单(1,2,9):");//返回请按 9
	
		Scanner sc = new Scanner(System.in);//是否可放在类声明区域
		int num1 = sc.nextInt();
		switch(num1){
			case 1:
				showEmpMenu();break;//调用本类内部方法

			case 2:
				showSalaryMenu();break;//调用本类内部方法

			case 9:
				showLoginMenu();break;

			default: 
				System.out.println("\t\t输入错误,请重新尝试!");
				showMainMenu();break;
	}
  }

	//员工菜单
	public void showEmpMenu(){
		
		boolean flag = true;
		System.out.println("\n\t\t欢迎使用企业人事管理系统");
		System.out.println("\t\t*****************************");
		System.out.println("\t\t1.增加员工信息");
		System.out.println("\t\t2.删除员工信息");
		System.out.println("\t\t3.显示员工信息");
		System.out.println("\t\t4.显示特定员工");
		System.out.println("\t\t5.更新员工信息");
		System.out.print("\n\t\t返回请按 9,请选择您需要的操作(1,2,3,4,5,9):");
	
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		switch(num){
			case 1:
				while(flag){
         			manager.insertEmp();
         			System.out.print("\n\t\t插入成功!返回上一级菜单请按 9,继续添加请按1:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showEmpMenu();break;

			case 2: 
				while(flag){
         			manager.deletEmpById();
         			System.out.print("\n\t\t删除成功!返回上一级菜单请按 9:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showEmpMenu();break;

			case 3: 
				while(flag){
         			manager.showAllEmps();
         			System.out.print("\n\t\t显示完毕!返回上一级菜单请按 9:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showEmpMenu();break;

			case 4: 
				while(flag){
				manager.showEmpById();
         			System.out.print("\n\t\t查询完毕!返回上一级菜单请按 9:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showEmpMenu();break;

			case 5: 
				while(flag){	
				manager.updateEmp();
         			System.out.print("\n\t\t更新完毕!返回上一级菜单请按 9:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showEmpMenu();break;

			case 9:
				showMainMenu();break;

			default: 
				System.out.println("\t\t输入错误,请重新选择!");
				showEmpMenu();break;
	   }
 }

	//工资菜单
	public void showSalaryMenu(){

		System.out.println("\n\t\t欢迎使用企业人事管理系统\n"
		+"\t\t*****************************");
		System.out.print("\t\t请选择以下操作\n");
		System.out.println("\t\t1.计算员工工资");
		System.out.println("\t\t2.显示所有工资");
		System.out.println("\t\t3.查询员工工资");
		System.out.println("\t\t4.更新员工工资");
		System.out.print("\n\t\t返回请按 9,请选择您需要的操作(1,2,3,4,9):");
		
		boolean flag = true;
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		switch(num){
			case 1:
				while(flag){	
				manager.computeSalary();
         			System.out.print("\n\t\t操作成功!返回上一级菜单请按 9:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showSalaryMenu();break;

			case 2:
				while(flag){	
				manager.showAllSalary();
         			System.out.print("\n\t\t操作成功!返回上一级菜单请按 9:"); 
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showSalaryMenu();break;

				
			case 3:
				while(flag){	
				manager.showSalaryById();
         			System.out.print("\n\t\t查询完毕!返回上一级菜单请按 9:");  
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showSalaryMenu();break;
				
			case 4:
				while(flag){	
				manager.updateSalary();
         			System.out.print("\n\t\t更新完毕!返回上一级菜单请按 9:");  
         			int num1 = sc.nextInt();
         			if(num1 == 9){
         			flag = false; 
   				}
  			  }
         			showSalaryMenu();break;
			
			case 9:
				
				showMainMenu();break;

			default: 
				System.out.println("\t\t输入错误,请重新选择!");
				showSalaryMenu();break;
	        }

       }

 }



//屏蔽密码(接口实现)
 class Eraser implements Runnable{
	private boolean active;
	private String mask;

	public Eraser(){
		this('*');
	}
	
	public Eraser(char maskChar){
		active = true;
		mask ="\010"+maskChar;
	}
	
	public void setActive(boolean active){
		this.active = active;
	}

	public boolean isActive(){
		return active;
	}

	public void run(){
		while(isActive()){
		System.out.print(mask);
	}
  }
}


//程序入口
public class EPMS{

	public static void main(String[] args){
	
		Scanner scanner = new Scanner(System.in);
		Controller con = new Controller();
		System.out.println("\t\t欢迎使用企业人事管理系统\n"
		 +"\t\t*****************************\n"
         +"\t\t1.登录系统\n"
		 +"\t\t2.退出\n");
	
		System.out.print("\t\t请选择(1,2):");
		int num = scanner.nextInt();
		System.out.println();
		switch(num){
			case 1:
				con.showLoginMenu();break;
			case 2:
				System.exit(0);break;
	}

		con.showMainMenu();//显示主菜单,进而提供更多功能
  }

}



 

2
0
分享到:
评论

相关推荐

    Java SE重点总结

    这个学习总结涵盖了从基础到高级的Java编程知识点,旨在帮助初学者建立坚实的编程基础,同时也适合有经验的开发者进行回顾和提升。下面将详细阐述Java SE中的重要概念和技能。 1. **基础语法**:Java是一种强类型、...

    基于Java的超市管理系统的设计与实现.pdf

    6. 信息管理系统:文档中提到的管理系统,说明这是一个特定功能的信息管理系统,用于超市的人力资源管理。信息管理系统通常包括各种数据库操作,例如数据的增删改查,以及对应的业务逻辑处理。 7. 人力资源管理...

    java程序设计考试试题及答案.doc

    这份“java程序设计考试试题及答案.doc”文档很显然是为了帮助学习者准备Java编程相关的考试,或者是作为复习材料来使用的。它可能包含了各种类型的题目,如选择题、填空题、简答题以及编程题,覆盖了Java语言的基础...

    Java基础思维导图

    这份"Java基础思维导图"涵盖了Java SE(标准版)的核心概念,旨在帮助学习者系统地理解和记忆Java编程的关键知识点。思维导图是一种有效的学习工具,它通过图形化的方式将复杂的知识结构清晰地呈现出来,便于快速...

    Java图书馆管理系统(附配套视频)

    Java图书馆管理系统是一款使用Java编程语言开发的应用软件,主要目的是为了方便图书馆进行图书的管理和借阅操作。这个系统充分利用了Java的强大功能,尤其是其面向对象的设计哲学,为用户提供了一个直观、易用的界面...

    经典的java课件,个人搜索经典,全面

    11. **Java SE和Java EE的区别**:Java SE(标准版)是基础平台,而Java EE(企业版)添加了服务器端开发的支持,如Servlet、JSP和EJB。 12. **Java虚拟机(JVM)**:理解JVM的工作原理,包括类加载、内存管理和...

    Java简明教程(第2版)课件

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是简洁、高效且可移植性强,被应用于各种领域,如Web开发、移动应用(尤其是Android平台)、企业...

    java语言学习,北京大学讲义

    通过学习这份北京大学的Java讲义,初学者不仅可以掌握Java语言的基本语法,还能了解其核心概念和常用库的使用,为进一步深入学习Java编程和相关框架打下坚实的基础。同时,这份讲义也适合有一定经验的开发者回顾和...

    java外国留学课件

    该课程旨在帮助学生掌握Java编程的基础与高级特性,并通过实践项目加深理解。 #### 二、课程书籍推荐 - **主教材**:《Java Programming》作者 Walter Savitch 和 Frank Carrano,ISBN: 0131354515。新版教材同样...

    java初级程序设计(和各位分享)

    12. **Java标准库**:Java SE(Standard Edition)提供了一系列丰富的类库,如IO流、集合、网络编程、XML处理等,这些都可以在实际编程中直接使用。 13. **调试与测试**:了解如何使用IDE(如Eclipse、IntelliJ ...

    李兴华javase全部笔记

    这些笔记将有助于初学者系统地学习和理解Java SE的核心概念,同时也对有经验的开发者回顾和巩固基础知识大有裨益。李兴华老师的课堂笔记通过实例和清晰的解释,将理论知识与实践操作相结合,使得学习过程更加生动...

    learn-java:目标是在1.5个月内获得Oracle Certified Java SE 11 Developer的证书

    在追求Oracle Certified Java SE 11 Developer认证的过程中,你需要深入理解和掌握Java这门强大的编程语言。这个学习计划旨在1.5个月内帮助你达到专业级别的Java技能。以下是一份详细的Java学习指南,涵盖从基础到...

    李耀龙java总结汇报.zip

    10. **Java SE, EE, ME**:Java Standard Edition (SE) 是基础平台,适用于桌面应用。Java Enterprise Edition (EE) 用于企业级应用,包括Web服务和分布式系统。Java Micro Edition (ME) 适用于嵌入式设备和移动设备...

    FLEX和JAVA,英文原版

    4. **Java基础**:简要回顾Java语言的基础知识及其在RIA中的作用。 5. **Java服务器端开发**:介绍如何使用Java进行服务器端编程,包括数据库连接、Web服务开发等。 6. **Flex与Java集成**:详细讲解如何将Flex...

    java核心技术

    《Java核心技术》这本书是Java学习者和开发者必备的经典之作,它涵盖了Java语言的基础知识以及高级特性,为读者提供了一个系统性的学习框架。 ### 第十版更新要点 #### 1. Java SE 9新特性 随着Java SE 9的发布,...

    java笔记

    Java编程语言是信息技术领域中最广泛使用的编程语言之一,尤其在企业级应用开发中占据着核心地位。本笔记将深入探讨Java的关键概念和技术,帮助你掌握这个强大的编程工具。 1. **Java简介** Java是由Sun ...

    Objects-Java-SE-11-Developer-1Z0-819-OCP-Course ---第1部分

    1. **Java基础**:首先,课程可能会回顾Java的基础知识,包括Java环境的搭建、编写与运行第一个Java程序,以及了解Java的语法结构,如变量、常量、数据类型和运算符。 2. **类与对象**:作为面向对象编程的核心,...

    应聘java软件工程师.pdf

    Java软件工程师是信息技术行业中至关重要的角色,他们负责设计、开发、测试和维护使用Java编程语言构建的软件系统。Java以其跨平台性、稳定性和高效性,广泛应用于企业级应用、移动应用(尤其是Android)、大数据...

    Java程序设计_课程设计任务书模板-2024.doc

    在信息化时代,高效的信息管理系统对于任何组织都至关重要。特别是在高校环境中,随着学生数量的增加以及信息量的爆炸式增长,传统的手工管理模式已经无法满足需求。因此,《Java程序设计》课程设计选择了“简单图书...

    Java英语总结

    在深入探讨Java英语词汇之前,我们先简要回顾一下这些词汇的基本含义以及它们在Java编程中的应用场景。 #### primitive ['primitiv] 原始 - **含义**:指基本数据类型,如`int`, `float`, `char`等。 - **应用场景*...

Global site tag (gtag.js) - Google Analytics