java联系人管理系统简单设计

java联系人管理系统简单设计,第1张

java联系人管理系统简单设计

本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下

要求: 

请使用XML保存数据,完成一个联系人管理系统。



      用户必须经过认证登录后方可以使用系统。



      注册、增加、删除、查看联系人功能。


 

      分模块进行设计。


两层框架-用户交互层,Dao层。



            其他支持层-数据封装层。



            工具类-加密,工厂Bean。


开发步骤:

第一步:设计数据结构-XML。



第一步:设计数据结构-XML。



第三步:准备资源并编码实现。



第四步:运行测试。


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding="UTF-8" standalone="no"?><contacts>  <user name="Jack" pwd="1234">  <contact id="707dede609dd4a2990f7cfa4cd5233f9">   <name>xiaoming</name>   <sex>male</sex>   <tel>123456</tel></contact>  <contact id="80983802eaa6402d8bac8bb39e71c48f">   <name>12</name>   <sex>12</sex>   <tel>12</tel>  </contact></user>  <user name="Rose" pwd="4321">  <contact id="eedb795b97194c3aaa9bacda7e2948e9">   <name>xiaoming</name>   <sex>female</sex>   <tel>123</tel>  </contact></user> </contacts>

util

1 2 3 4 5 6 7 8 9 10 11 12 13 package cn.hncu.contact.util;   import java.util.UUID;   public class IDGenerate {  private IDGenerate(){    }  public static String getID(){ // return UUID.randomUUID().toString();  return UUID.randomUUID().toString().replace("-", "");  } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 package cn.hncu.contact.util;   import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult;   import org.w3c.dom.Document;   public class myDocumentFactory {  private static final String FILE_NAME="./xml/users.xml";  private static Document dom=null;  static{  DocumentBuilder db;  try {   db=DocumentBuilderFactory.newInstance().newDocumentBuilder();   dom=db.parse(FILE_NAME);  } catch (Exception e) {   throw new RuntimeException("xml文档解析失败...",e);  }  }  public static Document getDocument(){  return dom;  }  public static void save(){  try {   Transformer tf=TransformerFactory.newInstance().newTransformer();   tf.transform(new DOMSource(dom), new StreamResult(FILE_NAME));  } catch (Exception e) {   throw new RuntimeException("xml文档存储失败...", e);  } // ConfigurationError:配置异常  } }

dao

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package cn.hncu.contact.dao;   import java.util.List; import java.util.Map;   import org.w3c.dom.Element;     public interface contactDAO {  public abstract boolean login(String name,String pwd);  public abstract List<Map<String, String>> queryAll();  public abstract Element add(String name,String sex,String tel);  public abstract void reg(String name,String pwd);  public Element delete(String id);//默认abstract  public abstract Element change(String id, String name, String sex,   String tel); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 package cn.hncu.contact.dao;   import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;   import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList;   import cn.hncu.contact.util.IDGenerate; import cn.hncu.contact.util.myDocumentFactory;   public class contactImpl implements contactDAO{    private Element currentUser;  Document dom=null;  public contactImpl(){    } // private static String name=null; // private static String pwd=null;  @Override // public boolean login(String name2, String pwd2) {  public boolean login(String name, String pwd) { // name=name2; // pwd=pwd2;  dom=myDocumentFactory.getDocument();  Element root=(Element) dom.getFirstChild();  NodeList nodelist=root.getElementsByTagName("user");  for(int i=0;i<nodelist.getLength();i++){   Element e=(Element) nodelist.item(i);   if(e.getAttribute("name").equalsIgnoreCase(name)&&e.getAttribute("pwd").equalsIgnoreCase(pwd)){   currentUser=e;   return true;   }  }  return false;  }  @Override  public List<Map<String, String>> queryAll() {  List<Map<String, String>> list=new ArrayList<Map<String,String>>();  if(currentUser==null){   return list ;  }  NodeList nodeList=currentUser.getElementsByTagName("contact");  for(int i=0;i<nodeList.getLength();i++){   Map<String, String> map= new HashMap<String, String>();   Element e=(Element) nodeList.item(i);   String id=e.getAttribute("id");   map.put("id", id);   String name=e.getElementsByTagName("name").item(0).getTextContent();   map.put("name", name);   String sex=e.getElementsByTagName("sex").item(0).getTextContent();   map.put("sex", sex);   String tel=e.getElementsByTagName("tel").item(0).getTextContent();   map.put("tel", tel);   list.add(map);  }  return list;  }    @Override  public Element add(String name,String sex,String tel) {  Document dom=myDocumentFactory.getDocument();  Element eNewContact=dom.createElement("contact");  eNewContact.setAttribute("id", IDGenerate.getID());  Element nameNew=dom.createElement("name");  nameNew.setTextContent(name);  eNewContact.appendChild(nameNew);  Element sexNew=dom.createElement("sex");  sexNew.setTextContent(sex);  eNewContact.appendChild(sexNew);  Element telNew=dom.createElement("tel");  telNew.setTextContent(tel);  eNewContact.appendChild(telNew);  currentUser.appendChild(eNewContact);  myDocumentFactory.save(); // login(name, pwd);  return eNewContact;  }  public Element delete(String id) {  NodeList nodeList=currentUser.getElementsByTagName("contact");  for(int i=0;i<nodeList.getLength();i++){   Element e=(Element) nodeList.item(i);   if(e.getAttribute("id").equals(id)){   currentUser.removeChild(e);//把节点从树中移除   myDocumentFactory.save(); //  login(name, pwd);   return e;   }  }  return null;  }  @Override  public void reg(String name, String pwd) {  Document dom=myDocumentFactory.getDocument();  Element userNew=dom.createElement("user");  userNew.setAttribute("name", name);  userNew.setAttribute("pwd", pwd);  dom.getFirstChild().appendChild(userNew);  myDocumentFactory.save();  }  @Override  public Element change(String id, String name, String sex, String tel) {  NodeList nodeList=currentUser.getElementsByTagName("contact");  for(int i=0;i<nodeList.getLength();i++){   Element e=(Element) nodeList.item(i);   if(e.getAttribute("id").equals(id)){   e.getElementsByTagName("name").item(0).setTextContent(name);   e.getElementsByTagName("sex").item(0).setTextContent(sex);   e.getElementsByTagName("tel").item(0).setTextContent(tel);   myDocumentFactory.save(); //  login(name, pwd);   return e;   }  }  return null;  }   } 1 2 3 4 5 6 7 8 9 10 package cn.hncu.contact.dao;   public class contactDAOFactory {  private contactDAOFactory(){    }  public static contactDAO getContactDAO(){  return new contactImpl();  } }

cmd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 package cn.hncu.contact.cmd;   import java.util.List; import java.util.Map; import java.util.Scanner;   import org.w3c.dom.Element;   import cn.hncu.contact.dao.contactDAO; import cn.hncu.contact.dao.contactDAOFactory;   public class contanctAction {  private contactDAO dao=contactDAOFactory.getContactDAO();  private Scanner sc=null;  private String delIds[];  public contanctAction(){  sc=new Scanner(System.in);  while (true) {   System.out.println("1:登录");   System.out.println("2:注册");   System.out.println("0:退出");   String op=sc.nextLine();   if ("1".equals(op)) {   Login();   } else if ("2".equals(op)) {   Reg();   } else { //  System.exit(0);   break;   }  }  }  private void Reg() {  System.out.println("请输入用户名:");  String name=sc.nextLine();  System.out.println("请输入用户密码:");  String pwd=sc.nextLine();  System.out.println("请确认用户密码:");  String pwd2=sc.nextLine();  if(pwd.equals(pwd2)){   dao.reg(name,pwd);  }else{   System.out.println("两次密码输入不一致,请重新注册");  }    }  private void Login() {  System.out.println("请输入用户名:");  String name=sc.nextLine();  System.out.println("请输入用户密码:");  String pwd=sc.nextLine();  boolean boo=dao.login(name, pwd);  if(boo){   System.out.println("登录成功...");   operation();  }else{   System.out.println("denglushibai");  }  }  private void operation() {  List<Map<String, String>> list = dao.queryAll();  delIds=new String[list.size()];  int i=0;  for (Map<String, String> map : list) {   String id=map.get("id");   delIds[i++]=id;  } // while (true) {   //因为共用同一棵dom树,所以每次增删改查之后,还是原来那棵dom树.   //而while内的 *** 作都是对之前的 *** 作,所以要退出到上一阶段重新登陆,获取更新之后的dom树   System.out.println("1:显示联系人");   System.out.println("2:添加联系人");   System.out.println("3:删除联系人");   System.out.println("4:修改联系人");   System.out.println("0:退出");   String sel = sc.nextLine();   if ("1".equals(sel)) {   System.out.println("序号\t姓名\t性别\t电话");   System.out.println("------------------------------");   int j = 1;   for (Map<String, String> map : list) {    String name = map.get("name");    String sex = map.get("sex");    String tel = map.get("tel");    System.out.println((j++) + "\t" + name + "\t" + sex + "\t"     + tel);   }   } else if ("2".equals(sel)) {   addContact();   } else if ("3".equals(sel)) {   delContact();   } else if ("4".equals(sel)) {   changeContact();   } else if ("0".equals(sel)) {   return; //  break;   } // }   operation();  }  private void changeContact() {  System.out.println("请输入要修改的联系人的序号:");  int num=sc.nextInt();  sc.nextLine();//吸掉换行符1  System.out.println("请输入要修改的联系人的姓名:");  String name=sc.nextLine();  System.out.println("请输入要修改的联系人的姓别:");  String sex=sc.nextLine();  System.out.println("请输入要修改的联系人的电话:");  String tel=sc.nextLine();    Element e=dao.change(delIds[num-1],name,sex,tel);  if(e!=null){   System.out.println(num+"号联系人更新之后:姓名:"+e.getElementsByTagName("name").item(0).getTextContent()    +"性别:"+e.getElementsByTagName("sex").item(0).getTextContent()    +"电话号码:"+e.getElementsByTagName("tel").item(0).getTextContent());  }else{   System.out.println("修改失败...");  }    }  private void delContact() {  System.out.println("请输入删除的联系人序号:");  int num=sc.nextInt();  sc.nextLine();//吸掉换行符  Element e=dao.delete(delIds[num-1]);  if(e==null){   System.out.println("删除失败,无此联系人");  }else{   System.out.println("删除联系人:"+e.getElementsByTagName("name").item(0).getTextContent()+"成功...");  }    }  private void addContact() {  System.out.println("请输入联系人信息:");  System.out.println("姓名:");  String name=sc.nextLine();  System.out.println("姓别:");  String sex=sc.nextLine();  System.out.println("电话:");  String tel=sc.nextLine();  Element e=dao.add( name,sex, tel);  System.out.println("添加联系人"+e.getElementsByTagName("name").item(0).getTextContent()+"成功...");    }  public static void main(String[] args) {  new contanctAction();    }   }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/588152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存