- 浏览: 306533 次
- 性别:
- 来自: 北京
最新评论
-
zczjdyj123:
...
Linux SSH 登录其他机器 -
chenzheng8975:
搞得不错 32个赞。。。。。
圆角PopupWindow对话框和圆角EditText -
guoxianyu521:
感谢楼主!!!!
DateChooser日期选择器swing -
雪尹江泽:
千言万语,就一句:太感谢你了!
圆角PopupWindow对话框和圆角EditText -
laozhao:
非常感谢楼主,非常好用。抄走了。呵呵。
DateChooser日期选择器swing
1,电话本主应用程序。注意:该程序为控制台应用程序,所有操作均在控制台进行。
package com.peak.telbook; import java.util.Scanner; /** * 电话本应用程序的主要控制逻辑类,包含程序的主入口main方法。 * * @author PeifengYan * @version 1.0 12/10/2008 */ public class Application { /**创建一个操作实体类Operate的对象*/ Operate op = new Operate(); /**创建一个输入格式检查类TelNoteRegex的对象*/ TelNoteRegex tnr = new TelNoteRegex(); /** 创建一个菜单显示类Menu的对象*/ Menu mu = new Menu(); /** 创建一个使用标准输入流输入的对象*/ Scanner sc = new Scanner(System.in); /** * 创建一个应用程序的启动方法,通过该方法把应用程序启动起来。 */ public void start() { while (true) { mu.mainMenu(); System.out.println("请做出选择(1-6):"); String input = sc.next(); if (tnr.menuRegex(1, 6, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: //添加记录 op.addLogic(); break; case 2: //查找记录 op.searchLogic(); break; case 3: //修改记录 op.modifyLogic(); break; case 4: //删除记录 op.deleteLogic(); break; case 5: //排序记录 op.orderLogic(); break; case 6: //退出系统 op.exitLogic(); break; } }else{ System.out.println("选择错误,请重新输入!"); continue; } } } /** * 程序运行的入口main方法 */ public static void main(String[] args) { /** * 创建一个电话本应用程序的实例 */ new Application().start(); } }
2,电话本逻辑控制类。
package com.peak.telbook; import java.util.Scanner; import java.util.Vector; import java.util.Collections; /** * 该类主要用来对Vector中的对象进行操作,包括添加新记录,查看全部信息,修改信息,删除信息等操作。 * * @author PeifengYan * @version 1.0 12/10/2008 */ public class Operate { /** 创建存放Person类型的Vector的对象 */ private Vector<Person> v = new Vector<Person>(); /** 创建一个Person类型的数组 */ Person[] exist = { new Person(1, "zhangsan", "23", "M", "13243275849", "shanghai"), new Person(2, "wangyan", "22", "F", "01043275819", "beijing"), new Person(3, "zhangke", "21", "M", "01324327584", "dalian"), new Person(4, "liusan", "23", "F", "01354455825", "shanghai"), new Person(5, "chuilan", "20", "F", "13948888888", "tangshan") }; /** 创建Menu类的对象 */ private Menu mu = new Menu(); /** 创建TelNoteRegex类的对象 */ TelNoteRegex tnr = new TelNoteRegex(); /** 创建一个Scanner的实例用来输入 */ Scanner sc = new Scanner(System.in); /** * Operate的构造方法,并初始化Person类型的数组exist中的元素到Vector里面. */ public Operate() { for (int i = 0; i < exist.length; i++) { v.add(exist[i]); } } /** * 通过输入键盘获得一个ID号并对其进行验证的方法 * * @return int类型的ID号 */ public int addID() { while (true) { System.out.println("请输入记录中的ID号:"); String id = sc.next(); if (tnr.idRegex(id)) { int ID = Integer.parseInt(id); return ID; } else { System.out.println("ID号输入错误!"); continue; } } } /** * 通过键盘输入获得姓名并对其进行验证的方法 * * @return String类型的name(姓名) */ public String addName() { while (true) { System.out.println("---->请输入姓名(2-10汉字或英文字母):"); String name = sc.next().trim(); if (tnr.nameRegex(name)) return name; else { System.out.println("姓名输入错误!"); continue; } } } /** * 通过键盘输入获得年龄并对其进行验证的方法 * * @return String类型的age(年龄) */ public String addAge() { while (true) { System.out.println("---->请输入年龄(1--120):"); String age = sc.next().trim(); if (tnr.ageRegex(age)) return age; else { System.out.println("年龄输入错误!"); continue; } } } /** * 通过键盘输入获得性别并对其进行验证的方法 * * @return String类型的sex(性别) */ public String addSex() { while (true) { System.out.println("---->请输入性别(只能为男(m,M),女(f,F):"); String sex = sc.next().trim(); if (tnr.sexRegex(sex)) return sex; else { System.out.println("性别输入错误!"); continue; } } } /** * 通过键盘输入获得电话号码并对其进行验证的确方法 * * @return String类型的telNum(电话号码) */ public String addTelNum() { while (true) { System.out .println("---->请输入电话(如:010-12345678 (0376)1234567 13146666666):"); String telNum = sc.next().trim(); if (tnr.telNumRegex(telNum)) return telNum; else { System.out.println("电话输入错误!"); continue; } } } /** * 通过键盘输入获得住址并对其进行验证的确方法 * * @return String类型的address(住址) */ public String addAdd() { while (true) { System.out.println("---->请输入住址(3-30汉字或英文字母):"); String address = sc.next().trim(); if (tnr.addressRegex(address)) return address; else { System.out.println("住址输入错误!"); continue; } } } /** * 用户添加信息业务逻辑控制 */ public void addLogic() { while (true) { mu.addMenu(); System.out.println("请做出选择(1-3):"); String input = sc.next(); if (tnr.menuRegex(1, 3, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: // 添加新记录 addOperation(); break; case 2: // 查看全记录 showAll(); break; case 3: // 返回上一级 return; } }else { System.out.println("选择错误,请重新输入!"); continue; } } } /** * 用户查询信息业务逻辑控制 */ public void searchLogic() { while (true) { mu.searchMenu(); System.out.println("请做出选择(1-7):"); String input = sc.next(); if (tnr.menuRegex(1, 7, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: // 按姓名查找 String name = addName(); System.out.println("--------------------->按姓名查找的结果为:"); searchByName(name); break; case 2: // 按年龄查找 String age = addAge(); System.out.println("--------------------->按年龄查找的结果为:"); searchByAge(age); break; case 3: // 按性别查找 String sex = addSex(); System.out.println("--------------------->按性别查找的结果为:"); searchBySex(sex); break; case 4: // 按号码查找 String telNum = addTelNum(); System.out.println("--------------------->按号码查找的结果为:"); searchByTelNum(telNum); break; case 5: // 按住址查找 String address = addAdd(); System.out.println("--------------------->按住址查找的结果为:"); searchByAdd(address); break; case 6: // 查看全记录 showAll(); break; case 7: // 返回上一级 return; } }else { System.out.println("选择错误,请重新输入!"); continue; } } } /** * 修改信息业务逻辑控制 */ public void modifyLogic() { while (true) { mu.modifyMenu(); System.out.println("请做出选择(1-3):"); String input = sc.next(); if (tnr.menuRegex(1, 3, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: // 查看全记录 showAll(); break; case 2: // 获得要修改记录的ID号并算出在其在Vector中的位置 int id = addID(); int index = modify(id); // 判断电话本中是否这条记录 if (index != -1) { subModifyLogic(index); // 进入修改指定记录逻辑控制 } else System.out.println("对不起,电话本中没有这个ID号!"); break; case 3: // 返回上一级 return; } }else { System.out.println("选择错误,请重新输入!"); continue; } } } /** * 子修改信息业务逻辑控制 */ public void subModifyLogic(int index) { Person p = v.get(index); System.out.println("你选择的记录信息是:" + p); while (true) { mu.subModifyMenu(); System.out.println("请做出选择(1-6):"); String input = sc.next(); if (tnr.menuRegex(1, 6, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: // 修改姓名 String name = addName(); p.setName(name); v.set(index, p); System.out.println("姓名修改成功!结果如下:"); System.out.println(v.get(index)); break; case 2: // 修改年龄 String age = addAge(); p.setAge(age); v.set(index, p); System.out.println("年龄修改成功!结果如下:"); System.out.println(v.get(index)); break; case 3: // 修改性别 String sex = addSex(); p.setSex(sex); v.set(index, p); System.out.println("性别修改成功!结果如下:"); System.out.println(v.get(index)); break; case 4: // 修改号码 String telNum = addTelNum(); p.setTelNum(telNum); v.set(index, p); System.out.println("号码修改成功!结果如下:"); System.out.println(v.get(index)); break; case 5: // 修改住址 String address = addAdd(); p.setAddress(address); v.set(index, p); System.out.println("住址修改成功!结果如下:"); System.out.println(v.get(index)); break; case 6: // 返回上一级 return; } }else { System.out.println("选择错误,请重新输入!"); continue; } } } /** * 删除信息业务逻辑控制 */ public void deleteLogic() { while (true) { mu.deleteMenu(); System.out.println("请做出选择(1-4):"); String input = sc.next(); if (tnr.menuRegex(1, 4, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: // 查看全记录 showAll(); break; case 2: // 删除指定记录 System.out.println("请输入你要删除记录的ID"); int id = addID(); delete(id); break; case 3: // 删除全部记录 deleteAll(); break; case 4: // 返回上一级 return; } }else { System.out.println("选择错误,请重新输入!"); continue; } } } /** * 排序信息业务逻辑控制 */ public void orderLogic() { while (true) { mu.orderMenu(); System.out.println("请做出选择(1-5):"); String input = sc.next(); if (tnr.menuRegex(1, 5, input)){ int choose = Integer.parseInt(input); switch (choose) { case 1: // 按姓名排序 orderName(); break; case 2: // 按年龄排序 orderAge(); break; case 3: // 按性别排序 orderSex(); break; case 4: // 查看全部记录 showAll(); break; case 5: // 返回上一级 return; } }else { System.out.println("选择错误,请重新输入!"); continue; } } } /** * 退出系统逻辑控制 */ public void exitLogic() { while (true) { System.out.println("你确定要退出系统吗?Y/N:"); String exit = sc.next(); int cmd = tnr.cmdRegex(exit); switch (cmd) { case 1: // 确认要退出系统 System.out.println("已经安全退出系统,欢迎下次使用!"); System.exit(0); break; case -1: // 命令输入错误 System.out.println("对不起,你输入的命令错误!"); continue; case 0: // 取消退出系统 return; } } } /** * 添加新用户信息方法,通过键盘输入获得姓名、年龄、性别、电话、住址. * 并把刚添加进去的记录显示出来. * */ public void addOperation() { System.out.println("请按照:姓名、年龄、性别、电话、住址依次输入!"); String name = addName(); String age = addAge(); String sex = addSex(); String telNum = addTelNum(); String address = addAdd(); int id = v.size(); v.add(new Person(++id, name, age, sex.toUpperCase(), telNum, address)); System.out.println("添加成功!添加的记录为:"); System.out.println(v.get(modify(id)));//调用modify方法找到id号对应的索引号 } /** * 查询全部用户信息 */ public void showAll() { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { System.out.println("---------------------->电话本中所有人的信息如下:"); for (Person i : v) { System.out.println(i); } } } /** * 按姓名查询用户信息 * * @param name * 用户要查找的姓名 */ public void searchByName(String name) { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { for (int i = 0; i < v.size(); i++) { if (v.get(i).getName().equals(name)) { System.out.println(v.get(i)); } } } } /** * 按年龄查询用户信息 * * @param age * 用户要查找的年龄 */ public void searchByAge(String age) { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { for (int i = 0; i < v.size(); i++) { if (v.get(i).getAge().equals(age)) { System.out.println(v.get(i)); } } } } /** * 按性别查询用户信息 * * @param sex * 用户要查找的性别 */ public void searchBySex(String sex) { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { for (int i = 0; i < v.size(); i++) { if (v.get(i).getSex().equals(sex)) { System.out.println(v.get(i)); } } } } /** * 按电话号码查询用户信息 * * @param telNum * 用户要查找的电话 */ public void searchByTelNum(String telNum) { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { for (int i = 0; i < v.size(); i++) { if (v.get(i).getTelNum().equals(telNum)) { System.out.println(v.get(i)); } } } } /** * 按地址查询用户信息 * * @param address * 用户要查找的住址 */ public void searchByAdd(String address) { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { for (int i = 0; i < v.size(); i++) { if (v.get(i).getAddress().equals(address)) { System.out.println(v.get(i)); } } } } /** * 修改指定记录信息 * * @param id * 用户输入的ID号 * @return 对ID号进行验证的返回值,如果存在返回其在Vector对象的中的索引号,否则返回-1 */ public int modify(int id) { for (int i = 0; i < v.size(); i++) { if (v.get(i).getID() == id) { return i; } } return -1; } /** * 删除指定用户信息,并让用户作出确认动作,以免造成误操作. * * @param id * 用户指定要删除的ID号 */ public void delete(int id) { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { for (int i = 0; i < v.size(); i++) { if (v.get(i).getID() == id) { System.out.println("你要删除的信息是:\n" + v.get(i)); while (true) { System.out.println("确定要删除吗?Y/N"); String exit = sc.next(); int cmd = tnr.cmdRegex(exit); switch (cmd) { case 1: // 确认要删除记录 System.out.println("指定记录已被删除!"); v.remove(i); return; case -1: // 命令输入错误 System.out.println("对不起,你输入的命令错误!"); continue; case 0: // 取消删除 return; } } } } } } /** * 删除全部用户信息,并让用户作出确认动作,以免造成误操作. */ public void deleteAll() { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { while (true) { System.out.println("确定要删除全部记录吗?Y/N"); String exit = sc.next(); int cmd = tnr.cmdRegex(exit); switch (cmd) { case 1: // 确认要删除全部记录 v.removeAllElements(); System.out.println("全部信息已被删除!"); return; case -1: // 命令输入错误 System.out.println("对不起,你输入的命令错误!"); continue; case 0: // 取消删除 return; } } } } /** * 按用户姓名排序信息 */ public void orderName() { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { Collections.sort(v, new OrderByName()); System.out.println("------------------------>按姓名排序的结果是:"); for (Person i : v) { System.out.println(i); } } } /** * 按用户年龄排序信息 */ public void orderAge() { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { Collections.sort(v, new OrderByAge()); System.out.println("------------------------>按年龄排序的结果是:"); for (Person i : v) { System.out.println(i); } } } /** * 按用户性别排序信息 */ public void orderSex() { if (v.size() == 0) { System.out.println("电话本中已经没有任何信息,请添加记录后再做其他操作!"); } else { Collections.sort(v, new OrderBySex()); System.out.println("------------------------>按性别排序的结果是:"); for (Person i : v) { System.out.println(i); } } } }
3,显示菜单类
package com.peak.telbook; /** * 该类主要用来在屏幕上输出菜单选项。 * * @author PeifengYan * @version 1.0 12/10/2008 */ public class Menu { /** * 显示主菜单界面的方法 */ public void mainMenu() { System.out.println("*************************"); System.out.println("** 1 添加记录 **"); System.out.println("** 2 查找记录 **"); System.out.println("** 3 修改记录 **"); System.out.println("** 4 删除记录 **"); System.out.println("** 5 排序记录 **"); System.out.println("** 6 退出系统 **"); System.out.println("*************************"); } /** * 显示添加菜单界面的方法 */ public void addMenu() { System.out.println("*************************"); System.out.println("** 1 添加新记录 **"); System.out.println("** 2 查看全记录 **"); System.out.println("** 3 返回上一级 **"); System.out.println("*************************"); } /** * 显示查找菜单界面的方法 */ public void searchMenu() { System.out.println("*************************"); System.out.println("** 1 按姓名查找 **"); System.out.println("** 2 按年龄查找 **"); System.out.println("** 3 按性别查找 **"); System.out.println("** 4 按号码查找 **"); System.out.println("** 5 按住址查找 **"); System.out.println("** 6 查看全记录 **"); System.out.println("** 7 返回上一级 **"); System.out.println("*************************"); } /** * 显示修改菜单界面的方法 */ public void modifyMenu() { System.out.println("*************************"); System.out.println("** 1 查看全记录 **"); System.out.println("** 2 修改指定记录 **"); System.out.println("** 3 返回上一级 **"); System.out.println("*************************"); } /** * 显示修改子菜单界面的方法 */ public void subModifyMenu() { System.out.println("*************************"); System.out.println("** 1 修改姓名 **"); System.out.println("** 2 修改年龄 **"); System.out.println("** 3 修改性别 **"); System.out.println("** 4 修改号码 **"); System.out.println("** 5 修改住址 **"); System.out.println("** 6 返回上一级 **"); System.out.println("*************************"); } /** * 显示删除菜单界面的方法 */ public void deleteMenu() { System.out.println("*************************"); System.out.println("** 1 查看全记录 **"); System.out.println("** 2 删除指定记录 **"); System.out.println("** 3 删除全部记录 **"); System.out.println("** 4 返回上一级 **"); System.out.println("*************************"); } /** * 显示排序菜单界面的方法 */ public void orderMenu() { System.out.println("*************************"); System.out.println("** 1 按姓名排序 **"); System.out.println("** 2 按年龄排序 **"); System.out.println("** 3 按性别排序 **"); System.out.println("** 4 查看全部记录 **"); System.out.println("** 5 返回上一级 **"); System.out.println("*************************"); } }
4,个人信息对象
package com.peak.telbook; /** * 这个类用来把电话本中的信息,按照每个人的信息进行分条整理。 * <p>然后再把每个人的信息分成多个属性,包括他的姓名、年龄、性别、电话、住址。</p> * <p>改写该类的toString()方法,为方便以后对个人信息的查找输出。</p> * <p>给每个人分配一个唯一的ID属性,以便在电话本中进行区别,ID的添加是自动进行的。</p> * * @author PeifengYan * @version 1.0 12/10/2008 */ public class Person { /** * 成员变量m_id用户ID 属性 */ private int m_id; /** * 成员变量m_name用户姓名属性 */ private String m_name; /** * 成员变量m_age用户年龄属性 */ private String m_age; /** * 成员变量m_sex用户性别属性 */ private String m_sex; /** * 成员变量m_telNum用户电话号码属性 */ private String m_telNum; /** * 成员变量m_address用户地址属性 */ private String m_address; /** * 无参数构造方法,创建Person对象。 */ Person() { } /** * 有参数构造方法,把传进来的各种属性值赋值给要创建的对象。 * * @param id * 自动添加进去的ID属性 * @param name * 传进来的姓名 * @param age * 传进来的年龄 * @param sex * 传进来的性别 * @param telNum * 传进来的电话 * @param address * 传进来的住址 */ public Person(int id, String name, String age, String sex, String telNum, String address) { this.m_id = id; this.m_name = name; this.m_age = age; this.m_sex = sex; this.m_telNum = telNum; this.m_address = address; } /** * 读取用户ID号 * * @return int类型的ID属性 */ public int getID() { return m_id; } /** * 读取用户名 * * @return String类型的m_name属性 */ public String getName() { return m_name; } /** * 设置用户名 */ public void setName(String name) { this.m_name = name; } /** * 读取用户年龄 * * @return String类型的m_age属性 */ public String getAge() { return m_age; } /** * 设置用户年龄 */ public void setAge(String age) { this.m_age = age; } /** * 读取用户性别 * * @return String类型的m_sex属性 */ public String getSex() { return m_sex; } /** * 设置用户性别 */ public void setSex(String sex) { this.m_sex = sex; } /** * 读取用户电话号码 * * @return String类型的m_telNum属性 */ public String getTelNum() { return m_telNum; } /** * 设置用户电话号码 */ public void setTelNum(String telNum) { this.m_telNum = telNum; } /** * 读取用户地址 * * @return String类型的m_address属性 */ public String getAddress() { return m_address; } /** * 设置用户地址 */ public void setAddress(String address) { this.m_address = address; } /** * 重写toString()方法,方便以后对象的输出显示。 */ @Override public String toString() { return "序号:" + this.m_id+"#" + "\t姓名:" + this.m_name + "\t年龄:" + this.m_age + "\t性别:" + this.m_sex + "\t电话:" + this.m_telNum + "\t住址:" + this.m_address; } }
5,用来验证用户输入数据合法性的正则式类
package com.peak.telbook; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 这个类的功能是利用正则表达式对输入的内容进行验证. * * @author PeifengYan * @version 1.0 12/10/2008 */ public class TelNoteRegex { /** * 无参数的构造方法 */ public TelNoteRegex() { } /** * 对菜单的输入选项,根据预先设定的范围进行验证, * 验证时首先判断输入的是不是数字,再进行范围判断。 * * @param min 菜单选项的最小值. * @param max 菜单选项的最大值. * @param input 用户输入的菜单选项. * @return 一个布尔类型值,验证成功返回为真,否则为假。 */ public boolean menuRegex(int min, int max, String input) { Pattern p = Pattern.compile("\\d"); Matcher m = p.matcher(input); if (m.matches()) { int choose = Integer.parseInt(input); if (choose >= min && choose <= max) return true; else return false; } else return false; } /** * 对从键盘输入的ID进行验证. * * @param id 用户输入的ID号码. * @return 一个布尔类型值,验证成功返回为真,否则为假。 */ public boolean idRegex(String id) { Pattern p = Pattern.compile("\\d"); Matcher m = p.matcher(id); if (m.matches()) { return true; } else return false; } /** * 对用户从键盘输入的姓名进行验证。 * * @param name 用户输入的姓名. * @return 一个布尔类型值,验证成功返回为真,否则为假。 */ public boolean nameRegex(String name) { Pattern p = Pattern.compile("[\u4e00-\u9fa5a-zA-Z]{2,10}"); Matcher m = p.matcher(name); return m.matches(); } /** * 对用户从键盘输入的年龄进行验证, * 首先判断是不是数字再进行范围判定。 * * @param age 用户输入的年龄. * @return 一个布尔类型值,验证成功返回为真,否则为假. */ public boolean ageRegex(String age) { Pattern p = Pattern.compile("\\d{1,3}"); Matcher m = p.matcher(age); int a = 0; if (m.matches()) { a = Integer.parseInt(age); } return (a <= 120 && a > 0); } /** * 对用户从键盘输入的性别进行范围验证, * 只接受用户输入四个字符m,M,f,F。 * <p>男用(m,M)表示,女用(f,F)表示。</p> * * @param sex 用户输入的性别. * @return 一个布尔类型值,验证成功返回为真,否则为假。 */ public boolean sexRegex(String sex) { if (sex.equals("m") || sex.equals("M") || sex.equals("f") || sex.equals("F")) return true; else return false; } /** * 对用户从键盘输入的电话号码进行验证.电话号码可以有多种表示方法,如: * <p>1,(010)12345678</p> * <p>2,010-12345678</p> * <p>3,13213313333</p> * 如果是手机号码,判断是不是以13开头,如果不是,返回值为假。 * * @param telNum 用户输入的电话号码. * @return 一个布尔类型值,验证成功返回为真,否则为假。 */ public boolean telNumRegex(String telNum) { Pattern p = Pattern .compile("\\(0\\d{2,3}\\)[- ]?\\d{7,8}|0\\d{2,3}[- ]?\\d{7,8}|13\\d{9}"); Matcher m = p.matcher(telNum); return m.matches(); } /** * 对用户从键盘输入的住址进行验证, * 把住址的字符范围限定在(3-30)个字符之间. * * @param address 用户输入的住址. * @return 一个布尔类型值,验证成功返回为真,否则为假。 */ public boolean addressRegex(String address) { Pattern p = Pattern.compile("[\u4e00-\u9fa5a-zA-Z0-9_]{3,30}"); Matcher m = p.matcher(address); return m.matches(); } /** * 对用户从键盘输入的系统命令进行验证. * <p>退出系统只接受y/Y,不退出只接受n/N,其他命令不予接受.</p> * * @param cmd 用户输入的命令. * @return 返回1时:确认;返回0时:取消;返回-1时:输入的命令不满足要求。 */ public int cmdRegex(String cmd) { if (cmd.equals("y") || cmd.equals("Y") || cmd.equals("n") || cmd.equals("N")) { if (cmd.equals("y") || cmd.equals("Y")) return 1; /* 输入的是y/Y */ else return 0; /* 输入的是n/N */ } else return -1; /*输入的不是要求的命令*/ } }
6,按年龄进行排序的实现类
package com.peak.telbook; import java.util.Comparator; /** * 这个类实现了Comparator接口, * 用来对Person类按照里面的成员变量Age进行排序。 * * @author PeifengYan * @version 1.0 12/10/08 */ public class OrderByAge implements Comparator<Person> { /** * 对compare方法进行重写,用来比较Person对象里面的age属性, * 按照数字的自然顺序进行比较。 */ @Override public int compare(Person p1, Person p2) { return p1.getAge().compareTo(p2.getAge()); } }
7,按姓名进行排序的实现类
package com.peak.telbook; import java.util.Comparator; /** * 这个类实现了Comparator接口, * 用来对Person类按照里面的成员变量name进行排序。 * * @author PeifengYan * @version 1.0 12/10/08 */ public class OrderByName implements Comparator<Person>{ /** * 对compare方法进行重写,用来比较Person对象里面的name属性, * 按照字符的自然排序进行比较。 */ @Override public int compare(Person p1, Person p2) { return p1.getName().compareTo(p2.getName()); } }
8,按性别进行排序的实现类
package com.peak.telbook; import java.util.Comparator; /** * 这个类实现了Comparator接口, * 用来对Person类按照里面的成员变量sex进行排序。 * * @author PeifengYan * @version 1.0 12/10/08 */ public class OrderBySex implements Comparator<Person>{ /** * 对compare方法进行重写,用来比较Person对象里面的sex属性, * 按照字母的自然排序进行比较。 */ @Override public int compare(Person p1, Person p2) { return p1.getSex().compareTo(p2.getSex()); } }
相关推荐
综上所述,这段代码展示了如何使用MFC框架来构建一个简单的电话本应用程序,包括用户界面的设计、数据结构的定义、以及对用户操作的响应处理。对于初学者而言,这是一个很好的学习MFC编程的起点,可以帮助理解MFC...
(1) 实现简单电话本功能,用姓名来搜索电话号码; (2) 用户输入姓名,程序查找并输出结果; (3) 用户可以通过输入,添加姓名和电话号码; (4) 用户可以删除姓名和电话号码; (5) 电话本可以保存在指定文件...
《简易电话本》以其简洁的用户界面和实用性,使得小型企业的通讯管理变得简单易行。虽然功能相对基础,但对于只需要基础联系人管理的组织来说,这款软件已经足够满足需求,而且无需复杂的培训即可上手使用。它体现了...
在本文中,我们将深入探讨如何使用Servlet技术来实现一个简单的Web电话本应用。Servlet是Java Web开发中的核心组件,用于处理HTTP请求并生成响应。这个"web电话本简单实现"项目是一个非常适合初学者上手的实例,它...
本项目“MFC c++ 实现简易电话簿”是一个基于MFC框架的C++程序,旨在提供一个基本的电话簿功能,用户可以存储、查找和管理联系人的电话号码。 ### MFC框架简介 MFC是微软对Windows API进行封装后的类库,它将...
标题中的“汇编编写的电话本 实现了电话本的大多数功能”表明这是一个使用汇编语言编写的程序,主要用于管理电话联系人。汇编语言是一种低级编程语言,程序员需要直接对应机器指令进行编程,因此它对计算机硬件的...
在这个特定的场景中,我们讨论的是一个使用C语言实现的电话本软件。这个软件提供了电话簿常见的功能,如查询、删除、修改和增加联系人信息,这些都是日常生活中非常实用的功能。 首先,我们要理解C语言实现这样一个...
《C语言实现的哈希表简易电话本》 在编程世界中,C语言以其简洁、高效的特点被广泛用于系统级编程和底层开发。对于初学者来说,通过C语言编写简单的应用,如电话本,是学习编程基础知识的好方法。在这个项目中,...
6. 存储过程:高级的电话本应用可能使用数据库的存储过程来优化性能或实现复杂的业务规则。 7. 数据备份与恢复:为了防止数据丢失,可能会有备份和恢复功能,这需要设计和实现相关的脚本或程序。 8. 错误处理与...
在本项目中,我们关注的是一个使用C++编程语言实现的电话本程序。这个程序具有控制台用户界面,提供了一种存储和管理联系人信息的方式。C++是一种强大的、通用的编程语言,它允许程序员使用面向对象编程(OOP)的...
在这个“数据结构电话本”的项目中,我们聚焦于使用链表来设计一个电话本的C#实现。这个实现可能利用了散列表(哈希表)的概念,以提高查找和插入联系人的效率。 链表是一种线性数据结构,它的元素不连续存储,而是...
(1) 实现简单电话本功能,用姓名来搜索电话号码; (2) 用户输入姓名,程序查找并输出结果; (3) 用户可以通过输入,添加姓名和电话号码; (4) 用户可以删除姓名和电话号码; (5) 电话本可以保存在指定文件...
3. **分页功能**:为了提高用户体验,电话本项目实现了分页显示联系人列表。这通常通过计算总页数,设置每页显示的记录数,以及处理上一页、下一页和指定页码的请求来实现。在Servlet中,需要根据用户请求的页码查询...
《简单的电话本管理系统C语言实现详解》 电话本管理系统是一个常见的小型软件应用,它能够帮助用户存储、查找和管理联系人的电话号码和其他相关信息。在这个项目中,我们将探讨如何使用C语言来实现这样一个系统,...
这是我们在学习JavaSE的时候,老师布置的作业,即简单实现一个能插入、更新、删除、查询、打印显示的小程序,真的很小很粗糙,但是体现了Java面向对象的编程特点,并再现了相关的知识点,对初学者可能有一定借鉴……
在汇编语言编程中,实现电话本功能是一项挑战性的任务,因为这涉及到数据的存储、检索和用户交互。本文将详细探讨如何通过汇编程序来设计一个基础的电话本系统。 首先,我们要理解汇编语言的基本概念。汇编语言是一...
6. **设计模式**:虽然这是一个简单的项目,但良好的设计原则和模式如单例模式(用于电话本实例的唯一性)和工厂模式(用于创建联系人对象)可能会被应用。 7. **测试**:开发过程中,单元测试是必不可少的,开发者...
汇编语言实现电话本功能,增加,删除,查找等功能简单实现
在本项目中,"Java语言实现电话本系统的详细代码(系统1.0)"是一个使用Java编程语言构建的基础电话本管理程序。这个系统1.0版本是开发者初次尝试创建的一个简单的电话簿应用,它可能包含了基本的数据存储、查询和管理...