栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

要求: 

      请使用XML保存数据,完成一个联系人管理系统。
      用户必须经过认证登录后方可以使用系统。
      注册、增加、删除、查看联系人功能。 
      分模块进行设计。 

            两层框架-用户交互层,Dao层。
            其他支持层-数据封装层。
            工具类-加密,工厂Bean。

开发步骤:

第一步:设计数据结构-XML。
第一步:设计数据结构-XML。
第三步:准备资源并编码实现。
第四步:运行测试。


 
 
  xiaoming
  male
  123456
 
  12
  12
  12
 
 
 
  xiaoming
  female
  123
 


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> 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> queryAll() {
 List> list=new ArrayList>();
 if(currentUser==null){
  return list ;
 }
 NodeList nodeList=currentUser.getElementsByTagName("contact");
 for(int i=0;i map= new HashMap();
  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


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> list = dao.queryAll();
 delIds=new String[list.size()];
 int i=0;
 for (Map 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 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();

 }

}

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/148951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号