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("输入要查询的keyword")));
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();
}
}
详细的程序执行结果大家能够自己測试下,或者读读代码看看也应该能够明确...
以下是类图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDQ2OTAwMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
总结:这个模拟并没有什么太大的难度。可是重点就是使用面向对象的思想去设计,然后各个类之间达到解耦。
java模拟而一个电话本操作的更多相关文章
- Qt入门(5)——用Qt控件创建一个电话本界面
具体实现步骤: 一.首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件 要注意其中各个空间对应的名称修改好 二.新建一个Qt应 ...
- C语言实现电话本 动态开辟 信息存储于文件
下面是我用C写的一个电话本小项目,实现的功能有:添加 删除 修改 查找 排序 清空 显示,功能还是比较全的,内存也是动态开辟的.能存储于本地,能从本地读出并显示 头文件部分代码,contact.h: ...
- BZOJ 4175: 小G的电话本 SAM+FFT
4175: 小G的电话本 Time Limit: 45 Sec Memory Limit: 256 MBSubmit: 195 Solved: 48[Submit][Status][Discuss ...
- 浏览器与服务器交互原理以及用java模拟浏览器操作v
浏览器应用服务器JavaPHPApache * 1,在HTTP的WEB应用中, 应用客户端和服务器之间的状态是通过Session来维持的, 而Session的本质就是Cookie, * 简单的讲,当浏 ...
- 一个电商项目的Web服务化改造6:单元测试4步走,构造数据、执行操作、断言、回滚
最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA. 有点挑战,做完了,会有很大进步. 单元测试,在很早之前的文章已经介绍过. 可以在这里看到相关的 ...
- 重学 Java 设计模式:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 黎明前的坚守,的住吗? 有人举过这样一个例子,先给你张北大的录 ...
- 用java中的Arraylist实现电话本系统管理
大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...
- 使用Java模拟一个简单的Dos学生成绩管理系统:
使用Java模拟学生成绩管理系统... ------------------- 学生成绩管理系统:需要实现的功能:1.录入学生的姓名和成绩2.显示列表.列表中包括学生姓名与成绩3.显示最高分.最低分的 ...
- websocket通信 实现java模拟一个client与webclient通信
发文原由: 熟悉socket通信的同学,对于socket模拟server与client,实现相互通信, 或者使用websocket与java模拟的websocket服务器通信(比如一个聊天室),对于这 ...
随机推荐
- Z-Score数据标准化处理(python代码)
#/usr/bin/python def Z_Score(data): lenth = len(data) total = sum(data) ave = float(total)/lenth tem ...
- 【bzoj】P4407于神之怒加强版(莫比乌斯反演)
题目链接 套路一般的枚举$gcd(i,j)=w$.设$min(n,m)=top$,则有 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}{m}gcd(i,j)$ $=\s ...
- NOIP2017赛前模拟(3):总结
题目: 1.购买板凳(100) 大意:区间修改最后查询全局最大值; 2.新排序(40分暴力) 大意:给一串长度小于100000的数列···每次操作找出序列中严格小于其左边的数字或者严格大于其右边的数字 ...
- mac/linux自带定时任务执行crontab的使用
1.编辑定时任务信息 sudo crontab -e #以root用户创建,也可以 -u 参数 编辑内容如下: 频率表达式分别对应为 分.时.日.周.月 LANG=zh_CN.UTF-8 */30 * ...
- net9:磁盘目录文件保存到XML文档及其XML文档的读写操作,以及绑定XML到treeview
原文发布时间为:2008-08-10 -- 来源于本人的百度文章 [由搬家工具导入] directorytoxml类: using System;using System.Data;using Sys ...
- C++ 回调函数的简单例子(转)
原文转自 http://blog.csdn.net/wnlwcg/article/details/6930990# 1.调用端 // 下面的这个_stdcall很重要的 void _stdcall T ...
- 第0章Linux环境到内核基础知识
#include<stdio.h> int main(void) { printf("hello world\n"); return 0; } gcc -g -wall ...
- AC日记——[ZJOI2009]假期的宿舍 cogs 1333
1333. [ZJOI2009] 假期的宿舍 ★★☆ 输入文件:zjoi09holiday.in 输出文件:zjoi09holiday.out 简单对比时间限制:1 s 内存限制:25 ...
- 在 .Net Core xUnit test 项目中使用配置文件
在对项目做集成测试的时候,经常会需要用到一些参数比如用户名密码等,这些参数不宜放在测试代码中.本文介绍一种方法:使用配置文件. 添加配置文件 在集成测试项目目录下新建文件:Configuration. ...
- Careercup | Chapter 2
链表的题里面,快慢指针.双指针用得很多. 2.1 Write code to remove duplicates from an unsorted linked list.FOLLOW UPHow w ...