国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java聯(lián)系人管理系統(tǒng)簡單設(shè)計

2019-11-26 13:43:53
字體:
供稿:網(wǎng)友

本文實例為大家分享了java聯(lián)系人管理系統(tǒng)畢業(yè)設(shè)計,供大家參考,具體內(nèi)容如下

要求: 

      請使用XML保存數(shù)據(jù),完成一個聯(lián)系人管理系統(tǒng)。
      用戶必須經(jīng)過認證登錄后方可以使用系統(tǒng)。
      注冊、增加、刪除、查看聯(lián)系人功能。 
      分模塊進行設(shè)計。 

            兩層框架-用戶交互層,Dao層。
            其他支持層-數(shù)據(jù)封裝層。
            工具類-加密,工廠Bean。

開發(fā)步驟:

第一步:設(shè)計數(shù)據(jù)結(jié)構(gòu)-XML。
第一步:設(shè)計數(shù)據(jù)結(jié)構(gòu)-XML。
第三步:準(zhǔn)備資源并編碼實現(xiàn)。
第四步:運行測試。

<?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

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("-", ""); }}

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

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);}

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);//把節(jié)點從樹中移除  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; }}
package cn.hncu.contact.dao;public class contactDAOFactory { private contactDAOFactory(){ } public static contactDAO getContactDAO(){ return new contactImpl(); }}

cmd

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內(nèi)的操作都是對之前的操作,所以要退出到上一階段重新登陸,獲取更新之后的dom樹  System.out.println("1:顯示聯(lián)系人");  System.out.println("2:添加聯(lián)系人");  System.out.println("3:刪除聯(lián)系人");  System.out.println("4:修改聯(lián)系人");  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("請輸入要修改的聯(lián)系人的序號:"); int num=sc.nextInt(); sc.nextLine();//吸掉換行符1 System.out.println("請輸入要修改的聯(lián)系人的姓名:"); String name=sc.nextLine(); System.out.println("請輸入要修改的聯(lián)系人的姓別:"); String sex=sc.nextLine(); System.out.println("請輸入要修改的聯(lián)系人的電話:"); String tel=sc.nextLine(); Element e=dao.change(delIds[num-1],name,sex,tel); if(e!=null){  System.out.println(num+"號聯(lián)系人更新之后:姓名:"+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("請輸入刪除的聯(lián)系人序號:"); int num=sc.nextInt(); sc.nextLine();//吸掉換行符 Element e=dao.delete(delIds[num-1]); if(e==null){  System.out.println("刪除失敗,無此聯(lián)系人"); }else{  System.out.println("刪除聯(lián)系人:"+e.getElementsByTagName("name").item(0).getTextContent()+"成功..."); } } private void addContact() { System.out.println("請輸入聯(lián)系人信息:"); 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("添加聯(lián)系人"+e.getElementsByTagName("name").item(0).getTextContent()+"成功..."); } public static void main(String[] args) { new contanctAction(); }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 咸阳市| 浙江省| 余姚市| 宝兴县| 宜兰县| 连云港市| 沈丘县| 西宁市| 农安县| 新河县| 朝阳区| 清水县| 宕昌县| 仪陇县| 兴山县| 乌兰县| 华容县| 新邵县| 昌都县| 无为县| 林芝县| 高邮市| 府谷县| 茌平县| 宕昌县| 丹凤县| 兴和县| 闽清县| 太湖县| 汝阳县| 五大连池市| 望奎县| 开江县| 无为县| 伊金霍洛旗| 清水河县| 资中县| 鄂尔多斯市| 水城县| 长白| 庆元县|