当前位置: 移动技术网 > IT编程>开发语言>Java > java联系人管理系统简单设计

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

今日钢铁,网贷资讯聚集地,豪华21点

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

要求: 

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

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

开发步骤:

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

<?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);//把节点从树中移除
  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内的操作都是对之前的操作,所以要退出到上一阶段重新登陆,获取更新之后的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();

 }

}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网