`
郑云飞
  • 浏览: 822161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Map写的员工信息的录入(逻辑业务分开了)

 
阅读更多
//package app1;
import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
class EmployeeRepeat 
{
	private String strEmpID;// 员工编号
	private String chrGender;// 性别
	private String strTelNumber;// 电话号码
	private double dblSalary;// 工资
	//构造函数,初始化成员变量
	EmployeeRepeat(String strEmpID, String chrGender, String strTelNumber,double dblSalary) 
	{
      this.strEmpID = strEmpID;
	  this.chrGender = chrGender;
	  this.strTelNumber = strTelNumber;
	  this.dblSalary = dblSalary;
    }
	EmployeeRepeat()
	{
	}
	public String getStrEmpID() //员工编号
	{
		return strEmpID;//返回员工编号
	}
	//比较录入的数据是否已经出现
	public String checkAndPut(EmployeeRepeat er,HashMap<String,EmployeeRepeat> hm) 
	{
		if (hm.containsKey(er.getStrEmpID()))
		{
			return "员工编号重复,数据录入失败";
		}
		else
		{
			hm.put(er.getStrEmpID(), er);
		}
		return "数据录入成功";
	}
	public String toString()//重写toString()方法
	{
		return strEmpID + "\t\t\t" + chrGender + "\t\t\t" + strTelNumber + "\t\t\t" + dblSalary;
	}
	public void Info() throws IOException
	{
		HashMap<String, EmployeeRepeat> hm = new HashMap<String, EmployeeRepeat>();
		System.out.println("***************************录入员工信息******************************");
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		boolean flag = true;// 标记是否继续录入的标志
		
			
		while (flag) 
		{
			try
		    {
				EmployeeRepeat er = new EmployeeRepeat();
				System.out.print("员工编号:");
				strEmpID = br.readLine();
				System.out.print("员工性别:");
				chrGender = br.readLine();
				System.out.print("员工电话:");
				strTelNumber = br.readLine();
				System.out.print("员工工资:");
				dblSalary = Double.parseDouble(br.readLine());
				System.out.println(checkAndPut(new EmployeeRepeat(strEmpID, chrGender, strTelNumber, dblSalary), hm));
				System.out.println("是否继续录入员工信息(Y 继续 其他键停止录入)");
				String ok = br.readLine();
				if (!(ok.equals("y") || ok.equals("Y"))) // 键盘控制事件
				{
					flag = false;
					System.out.println("****************员工基本信息表*******************");
					System.out.println("员工编号\t\t员工性别\t\t员工电话\t\t员工工资");
					for (Iterator<String> it = hm.keySet().iterator();it.hasNext();)
					{
						System.out.println(hm.get(it.next()));
					}
				}
		  }
		 catch (Exception m)//捕获输入的类型错误的情况(员工工资必须是double类型的)
		   {
			System.out.println("输入错误,请重新输入:");
		   }
	 }
		
   }
}
public class EmployeeTestRepeat
{
   public static void main(String[] args) 
		{
		   EmployeeRepeat ee = new EmployeeRepeat();
		   try 
			{
			  ee.Info();
		    }
		catch (Exception e)
			{
			 System.out.println(e.toString());
		   }
	  }
}

 

分享到:
评论

相关推荐

    mfc 学生信息录入

    根据给定的信息,我们可以分析并总结出以下与MFC(Microsoft Foundation Classes)学生信息录入相关的知识点: ### MFC概述 MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的类库,它封装了Windows...

    写map文件并读出

    Map文件可以包含各种信息,如网格布局、地形类型、障碍物位置等。在这个场景中,我们将关注如何创建一个简单的方格地图,并使用Java来读写这些数据,不涉及二进制文件操作。 首先,我们需要了解基本的文件读写概念...

    常用MAP消息体结构说明.

    例如,`mmMAP_OPEN_REQ_T`代表MAP OPEN业务的请求消息,其中包含了对话标识(DigId)、事件标识(InvkId)、应用上下文值(ACValue)、版本号(ACVer)等信息。对应的响应消息`mmMAP_OPEN_RSP_T`则包含结果(Result...

    C语言头文件 MAP C语言头文件 MAP

    C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...

    员工信息管理系统

    员工信息管理模块是系统的核心,涉及到数据录入、查询、修改和删除操作。VC++可以利用STL(Standard Template Library)中的容器,如`std::vector`和`std::map`,来存储和操作员工数据。同时,为了保证数据的一致性...

    JDK11使用MapStruct

    JDK11使用MapStruct

    map-api具体业务接口包

    "map-api具体业务接口包" 是一个专门为地图应用设计的API集合,它的主要目标是为开发者提供一套完整的接口,以便在各种业务场景中方便地集成和操作地图功能。这个包的引入,意味着开发者可以轻松地在自己的应用程序...

    素材_tilemap素材_使用TileMap快速构造2D关卡_

    - 运行时编辑:在游戏运行过程中,可以根据游戏逻辑动态修改TileMap,实现如地形变化、生长植被等效果。 - 故事进展:随着玩家在游戏中推进,TileMap可以揭示新的区域,隐藏或显示内容,增加探索感。 6. 性能优化...

    java学生管理系统map

    在Java编程中,Map接口是集合框架的一部分,它提供了一个关联键值对的无序容器...同时,结合面向对象编程,设计了Student类以及相关的服务类,以实现完整的业务逻辑。这样的设计既易于理解和维护,也具有较好的扩展性。

    java一键xml转map,一键map转xml工具类

    XML因其结构化和易于解析的特性,在数据交换和配置文件中广泛使用,而Map则作为Java中存储键值对的高效数据结构。在实际开发中,我们可能需要在XML和Map之间进行转换,以便于数据处理。本文将详细讲解如何使用Java...

    GameMap_地图_gamemap_gamemap官网_分割地图_gamemap下_

    《GameMap:游戏地图设计与分割技术详解》 在游戏开发中,地图是构建游戏世界不可或缺的元素。本文将深入探讨GameMap,一种专用于游戏地图设计和管理的工具,以及其中涉及到的关键技术和概念。 首先,我们要理解...

    SSH增删改查使用Map容器

    SSH,即Spring、Struts和Hibernate,是Java Web开发中常用的一个集成框架,它整合了这三个框架的功能,便于实现业务逻辑、数据访问和控制层的高效管理。在SSH框架下,Map容器通常被用于存储和操作数据,尤其在进行...

    读取properties返回map并写入文件

    本篇文章将详细讲解如何读取.properties文件,将其内容转化为Map对象,以及如何将这个Map对象写回到新的文件中。 首先,我们需要了解什么是.properties文件。这是一种文本格式的文件,用于存储键值对,其中每个键和...

    MapStruct 1.2.0 参考指南

    通过注释处理器的方式,MapStruct让开发者可以专注于业务逻辑,而将繁琐的映射代码工作交给工具来处理。MapStruct 1.2.0版本针对性能、安全性和易用性进行了优化,并且伴随着活跃的社区支持,是Java开发者进行对象...

    echarts map-geo 使用实例

    6. **交互功能**:ECharts 支持地图的点击、悬浮等交互事件,可以通过配置 `emphasis` 来设置高亮样式,通过监听 `click`、`mouseover` 等事件来实现相应的业务逻辑。 7. **动态更新**:在应用运行时,可以通过调用...

    rammap自动运行程序

    3. 输入命令`RAMMap.exe RUN &lt;profile&gt;`,其中`&lt;profile&gt;`是RAMMap内置的分析模式,如`EmptyCache`用于清空系统缓存,`AllPhysical`显示所有物理内存信息等。例如,要运行“EmptyCache”模式,命令将是`RAMMap.exe ...

    map.toString()后转换成Map类型

    ### Map.toString()后转换成Map类型的实现方法及解析 在Java编程中,有时我们需要将一个`Map`对象转换为字符串形式进行存储或传输,而在接收端又需要将该字符串重新转换回`Map`对象以便进一步处理。本篇将详细介绍...

    在Java 8中将List转换为Map对象方法

    在上面的代码中,我们使用了Collectors.toMap()方法来将List转换为Map,key是empId,值是整个员工对象。 但是,如果List中有重复的empId,映射到Map时,Key不能重复的,这时我们可以使用BinaryOperator方法来解决这...

    mapserver-manual

    - **扩展插件**:用户可以通过编写插件来扩展MapServer的功能,如支持新的数据格式或实现特定的业务逻辑。 #### 四、MapServer应用场景 - **地理信息系统开发**:MapServer是构建GIS应用的强大工具,可用于开发各种...

Global site tag (gtag.js) - Google Analytics