java模拟而一个电话本操作

哈哈,大家平时都在使用电话本,下面使用java来模拟而一个简单的电话本吧...

首先给出联系人的抽象类

package net.itaem.po;

/**
 *
 * 电话人的信息
 * */
public class User {

	private String name;
	private String phoneNumber;
	private String companyName;
	private String email;
	private String address;
	private String birthday;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPhoneNumber() {
		return phoneNumber;
	}
	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}
	public String getCompanyName() {
		return companyName;
	}
	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getBirthday() {
		return birthday;
	}
	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", phoneNumber=" + phoneNumber
				+ ", companyName=" + companyName + ", email=" + email
				+ ", address=" + address + ", birthday=" + birthday + "]";
	}
	public User(String name, String phoneNumber, String companyName,
			String email, String address, String birthday) {
		this.name = name;
		this.phoneNumber = phoneNumber;
		this.companyName = companyName;
		this.email = email;
		this.address = address;
		this.birthday = birthday;
	}

	public User(String name, String phoneNumber){
		this.name = name;
		this.phoneNumber = phoneNumber;
	}

}

给出操作数据库的UserDao,这里只是简单的模拟操作...所以使用打印来提示操作结果

下面给出工具类,用来获得MVC中的VIEW的请求内容

package net.itaem.tool;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class GetInput {
    private static BufferedReader bufReader;

    static{
    	bufReader = new BufferedReader(new InputStreamReader(System.in));
    }

	public static String getInputString(String info) throws IOException{
		System.out.println(info);
		String result = null;
		result = bufReader.readLine();   //读取内存输入的一行数据
		return result;
	}

	public static void main(String[] args) throws IOException{
	}
}

下面给出控制类,相当于MVC中的C,Controller,这个类负责和DAO,VIEW,TOOL等其它类交互...

package net.itaem.operate;

import java.io.IOException;

import net.itaem.dao.UserDao;
import net.itaem.po.User;
import net.itaem.tool.GetInput;

/**
 * 操作类
 * */
public class Operate {

	public Operate(){
		start();
	}

	public void start(){
		try {
			while(true){   //一直运行
				run();
			}
		} catch (IOException e) {
			e.printStackTrace();

		}
	}

	private void run() throws IOException{
		System.out.println("======================电话本===================");

		System.out.println("1查看所有联系人");
		System.out.println("2增加联系人");
		System.out.println("3删除联系人");
		System.out.println("4搜索联系人");
		System.out.println("5退出");

		String choose = GetInput.getInputString("输入你的选择");
		char choice = choose.toCharArray()[0];
		switch(choice){
		case ‘1‘:
			System.out.println(UserDao.getInstance().findAll());  //输出所有电话本用户
			break;
		case ‘2‘:
			UserDao.getInstance().add(new User(GetInput.getInputString("输入名字"),
					GetInput.getInputString("输入电话号码")));
			break;
		case ‘3‘:
			UserDao.getInstance().delete(new User(GetInput.getInputString("输入名字"),
					GetInput.getInputString("输入电话号码")));
			break;
		case ‘4‘:
			System.out.println(UserDao.getInstance().findUsersByKeyword(GetInput.getInputString("输入要查询的关键字")));
			break;
		case ‘5‘:
			exit();
			break;
		default:
			System.out.println("sorry your input was wrong, please input 1、2、3、4");
		}
	}

	private void exit(){
		System.exit(0);  //退出
	}

	public static void main(String[] args) {
		new Operate().start();
	}
}

具体的程序运行结果大家可以自己测试下,或者读读代码看看也应该可以明白...

下面是类图:

总结:这个模拟并没有什么太大的难度,但是重点就是使用面向对象的思想去设计,然后各个类之间达到解耦。

java模拟而一个电话本操作,布布扣,bubuko.com

时间: 2024-10-12 19:52:22

java模拟而一个电话本操作的相关文章

Select Checkbox关键字——模拟选择一个Checkbox的操作

Select   Checkbox关键字:模拟选择一个Checkbox的操作: 该关键字接收[  locator  ]一个参数,locator可以通过id或者name等进行定位: ========================================================================== Select   Checkbox                                    id=box 原文地址:https://www.cnblogs.

用结构体实现一个电话本

结构体是c语言又一个存储数据的类型,那么用结构体怎么实现一个简单的可以存储1000个人信息的电话本呢?     一.首先需要定义一个结构体,包含一个人的信息(比如姓名,性别,年龄,电话,住址等等).我们先来定义一个结构体.     typedef struct Pdhb-info     {       char name[5];       char sex[3];       int age;       char tele[12];       char addr[30];     }Pd

WP8 电话本编程

通讯录搜索:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286416(v=vs.105).aspx过滤条件:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286417(v=vs.105).aspx 程序联系人存储的API在空间Windows.Phone.PersonalInformation下,下面来看一下如何去使用这些API来操作联系

微信电话本的未来在农村

一夜之间,微信电话本就在用户的手机联系人之间广为流传,似乎微信电话本真的火.真的如此吗?何玺认为,微信电话本的火爆可能是暂时的假象,就它目前的功能不做改进的话,用不了多久,它就将成为过去. 关于微信电本 据微信团队介绍,使用微信电话本拨打电话,需要通话双方都下载该APP并开通免费通话功能.免费通话功能无法在对方没有安装微信电话本.或者没有微信登录(安装了微信的情况下).或者号码未开通免费功能的情况下直接拨打. "微信电话本"通话功能本身免费,但在2G/3G/4G网络下会消耗流量,WiF

JAVA电话本系统

package com.sunhang.phonebook; import java.text.ParseException;import java.util.ArrayList;import java.util.List;import java.util.Scanner; public class PhoneBook { //存放联系人的容器 List<Contacts> list = new ArrayList<Contacts>(); /** * 增加联系人 */ publi

记一次开发:Qt简单电话本程序

前言 断断续续学习C++一年了,现在要做课设,觉得控制台界面实在太难看,于是用Qt做一个图形化的程序出来. 学习Qt也没有多久,只是了解了个大概,这次开发基本上是啃了2天的官方帮助文档,然后利用各种Qt提供的轮子实现的.有些地方做的确实还很不完善,不过似乎没有什么致命的bug. 代码质量底下,谨慎模仿. Qt真的是一个很好的C++扩展库,学习完C++觉得没有用武之地的可以去学习一下Qt来开发几个图形化软件来练练手. 项目介绍 实现一个简单的电话本程序,能够实现添加.查找.修改.删除.保存到文件等

android/java模拟登录正方教务系统

最近闲来无事,打算开始写博客,也算是对自己知识的一个总结.本篇将讲解如何使用HttpClient模拟登录正方教务系统. 需要使用道德jar包:HttpClient,Jsoup.(下载jar包) 本次模拟登录的成都大学的教务系统,其他学校的教务系统,可参照本文给出的流程和代码进行修改并测试. 基本流程: 1).使用谷歌浏览器打开教务系统首页,并打开浏览器开发者工具记录浏览过程,然后正常登录并浏览自己的课表,成绩等信息. 2).下载jar包,将jar引用到自己需要的项目中,可创建一个新的工具类. 3

java模拟实现生产者---消费者问题

本文章为小编原创,请尊重文章的原创性,转载请注意写明转载来源:http://blog.csdn.net/u012116457 已知技术参数: 生产者消费者问题,描述一组生产者向一组消费者提供产品/消息.它们共享一个有界缓冲区,生产者向其中放产品/消息,消费者从中取产品/消息.只要缓冲区未满,生产者可放产品/消息,只要缓冲区有数据,消费者可取消息.即应满足下列二个同步条件: 1.只有在缓冲池中至少有一个缓冲区已存入消息后,消费者才能从中提取消息,否则消费者必须等待. 2.只有缓冲池中至少有一个缓冲

JAVA模拟内存分配与释放——首次适应算法

前言 首次适应算法(FF,first fit)是内存基于顺序搜索的动态分配分区算法,在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止,然后在按照作业的大小从该分区中划出一块内存空间,分配给请求者,余下的空闲分区仍留在空闲链中.若从链首直至链尾都不能找到一个能满足要求的分区,则表明系统中已没有足够大的内存分配给该进程,内存分配失败,返回. 该算法倾向于优先利用内存中低地址部分的空闲分区,从而保留了高地址部分不断被划分.这为以后到达的大作业分配大的的内存空间创造了条件.其缺