Java实现的简单电话号码储存
2011-11-11 10:15
483 查看
package com.sinosuperman.example;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.TreeMap;
import javax.swing.JOptionPane;
public class PhoneNoteBook {
private final File phoneNoteBookFile;
private TreeMap<String, String> phoneNoteBookMap;
public PhoneNoteBook(String fileName) throws IOException {
phoneNoteBookMap = new TreeMap<String, String>();
phoneNoteBookFile = new File(fileName);
loadAllRecords();
}
private void loadAllRecords() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(phoneNoteBookFile));
String line = reader.readLine();
while (line != null) {
StringTokenizer str = new StringTokenizer(line, "\t");
String name = str.nextToken();
String phone = str.nextToken();
phoneNoteBookMap.put(name, phone);
line = reader.readLine();
}
reader.close();
}
private void addRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
String phone = JOptionPane.showInputDialog("Please enter the phone:\n");
if (JOptionPane.showConfirmDialog(null, "Are you sure?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
private void updateRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
String phone = JOptionPane.showInputDialog("Please enter his/her new phone name:\n");
if (!phoneNoteBookMap.containsKey(name)) {
if (JOptionPane.showConfirmDialog(null, "This name does not exist. Do you want to create a new one?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
} if (JOptionPane.showConfirmDialog(null, "Are you sure to modify his/her phone number?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
private void searchRecord() {
String name = JOptionPane.showInputDialog("Please the name for searching");
if (phoneNoteBookMap.containsKey(name)) {
JOptionPane.showMessageDialog(null, phoneNoteBookMap.get(name));
} else {
JOptionPane.showMessageDialog(null, "The name you are searching does not exists.");
}
}
private void removeRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
if (!phoneNoteBookMap.containsKey(name)) {
JOptionPane.showConfirmDialog(null, "This name does not exist. So you don't need to remove it.");
} else if (JOptionPane.showConfirmDialog(null, "Are you sure to remove his/her record?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.remove(name);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
public void display() {
String message = "Please select an operation:\n" +
"Enter \"1\" to add a new record;\n" +
"Enter \"2\" to update a existing record;\n" +
"Enter \"3\" to find a phone number;\n" +
"Enter \"4\" to remove a existing record.\n";
int choice = 0;
try {
choice = Integer.parseInt(JOptionPane.showInputDialog(message));
switch (choice) {
case 1:
addRecord();
break;
case 2:
updateRecord();
break;
case 3:
searchRecord();
break;
case 4:
removeRecord();
break;
default:
}
} catch (NumberFormatException e) {
}
if (JOptionPane.showConfirmDialog(null, "Would you want to continue?") != JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null, "Thank you.");
} else {
display();
}
}
}
测试驱动程序:
package com.sinosuperman.driver;
import java.io.IOException;
import com.sinosuperman.example.PhoneNoteBook;
public class Driver {
public static void main(String[] args) throws IOException {
PhoneNoteBook phoneNoteBook = new PhoneNoteBook("PhoneNoteBook.txt");
phoneNoteBook.display();
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.TreeMap;
import javax.swing.JOptionPane;
public class PhoneNoteBook {
private final File phoneNoteBookFile;
private TreeMap<String, String> phoneNoteBookMap;
public PhoneNoteBook(String fileName) throws IOException {
phoneNoteBookMap = new TreeMap<String, String>();
phoneNoteBookFile = new File(fileName);
loadAllRecords();
}
private void loadAllRecords() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(phoneNoteBookFile));
String line = reader.readLine();
while (line != null) {
StringTokenizer str = new StringTokenizer(line, "\t");
String name = str.nextToken();
String phone = str.nextToken();
phoneNoteBookMap.put(name, phone);
line = reader.readLine();
}
reader.close();
}
private void addRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
String phone = JOptionPane.showInputDialog("Please enter the phone:\n");
if (JOptionPane.showConfirmDialog(null, "Are you sure?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
private void updateRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
String phone = JOptionPane.showInputDialog("Please enter his/her new phone name:\n");
if (!phoneNoteBookMap.containsKey(name)) {
if (JOptionPane.showConfirmDialog(null, "This name does not exist. Do you want to create a new one?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
} if (JOptionPane.showConfirmDialog(null, "Are you sure to modify his/her phone number?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.put(name, phone);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
private void searchRecord() {
String name = JOptionPane.showInputDialog("Please the name for searching");
if (phoneNoteBookMap.containsKey(name)) {
JOptionPane.showMessageDialog(null, phoneNoteBookMap.get(name));
} else {
JOptionPane.showMessageDialog(null, "The name you are searching does not exists.");
}
}
private void removeRecord() {
String name = JOptionPane.showInputDialog("Please enter the name:\n");
if (!phoneNoteBookMap.containsKey(name)) {
JOptionPane.showConfirmDialog(null, "This name does not exist. So you don't need to remove it.");
} else if (JOptionPane.showConfirmDialog(null, "Are you sure to remove his/her record?") == JOptionPane.YES_OPTION) {
phoneNoteBookMap.remove(name);
} else {
JOptionPane.showMessageDialog(null, "Operation has been canceled");
}
}
public void display() {
String message = "Please select an operation:\n" +
"Enter \"1\" to add a new record;\n" +
"Enter \"2\" to update a existing record;\n" +
"Enter \"3\" to find a phone number;\n" +
"Enter \"4\" to remove a existing record.\n";
int choice = 0;
try {
choice = Integer.parseInt(JOptionPane.showInputDialog(message));
switch (choice) {
case 1:
addRecord();
break;
case 2:
updateRecord();
break;
case 3:
searchRecord();
break;
case 4:
removeRecord();
break;
default:
}
} catch (NumberFormatException e) {
}
if (JOptionPane.showConfirmDialog(null, "Would you want to continue?") != JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(null, "Thank you.");
} else {
display();
}
}
}
测试驱动程序:
package com.sinosuperman.driver;
import java.io.IOException;
import com.sinosuperman.example.PhoneNoteBook;
public class Driver {
public static void main(String[] args) throws IOException {
PhoneNoteBook phoneNoteBook = new PhoneNoteBook("PhoneNoteBook.txt");
phoneNoteBook.display();
}
}
相关文章推荐
- Java实现的简单电话号码储存
- Java实现的简单电话号码储存
- Java实现的简单电话号码储存
- Java实现最电话号码的简单加密源码
- java语言实现简单单链表链式储存结构。插入删除等操作。(有个地方看不出错误来,已经标注,望指正)
- java实现简单的五子棋
- JAVA中实现链式操作(方法链)的简单例子
- Nginx+Tomcat+Redis负载均衡Session共享实现超级简单(CentOS6.9系统 Java版本)
- RSA加密算法java简单实现方法(必看)
- MD5加密的简单java实现
- Java中Date与Calendar小究以及应用Gregoriancalendar类实现简单的日历
- Java简单队列的实现
- 关于java通信的一个简单聊天系统的实现
- Java之——简单的网络爬虫实现
- JAVA实现的简单多线程
- c++和java类的简单实现
- java实现权重的简单算法
- JAVA enum实现简单状态机功能
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- Java动态代理之JDK实现和CGlib实现(简单易懂)