この記事の例は、参照のためにJava連絡先管理システムの卒業設計を共有しています。特定のコンテンツは次のとおりです
必要とする:
XMLを使用してデータを保存し、連絡先管理システムを完了してください。
ユーザーは、システムを使用する前に認証およびログインする必要があります。
登録、追加、削除、表示連絡機能を表示します。
モジュールで設計されています。
2層フレームワークユーザーインタラクションレイヤー、DAOレイヤー。
その他のサポートレイヤー - データカプセル化レイヤー。
ツール - 暗号化、工場豆。
開発手順:
ステップ1:データ構造を設計-XML。
ステップ1:データ構造を設計-XML。
ステップ3:リソースを準備し、それらをエンコードしてそれらを実装します。
ステップ4:テストを実行します。
<?xml version = "1.0" encoding = "utf-8" standalone = "no"?> <contacts> <user name = "jack" pwd = "1234"> <contact id = "707dede609dd4a2990f7cfa4cd5233f9" <Tel> 123456 </tel> </contact> <連絡先id = "80983802eaa6402d8bac8bb39e71c48f"> <name> 12 </name> <sex> 12 </sex> <tel> 12 </tel> </contact> </user> <use name = "PWD =" 4321 "> <連絡先id = "eedb795b97194c3aaa9bacda7e2948e9"> <name> xiaoming </name> <sex> female </sex> <tel> 123 </tel> </contact> </user> </contacts>
活動
パッケージcn.hncu.contact.util; import java.util.uuid; public class idgenerate {private idgenerate(){} public static string getId(){// return uuid.randomuid()。toString(); uuid.randomuuid()。toString()。置換( " - "、 "")を返します。 }}パッケージcn.hncu.contact.util; Import javax.xml.parsers.documentbuilder; Import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.transformer; import javax.xml.transform.domax.xmsfactoryfactoryfactoryfactoryfactoryfactoryfactory; javax.xml.transform.stream.streamResult; import org.w3c.dom.dom.document; public class mydocumentfactory {private static final string file_name = "./ xml/users.xml";プライベート静的ドキュメント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){新しいruntimeException( "xmlドキュメントストレージに失敗しました..."、e); } // ConfigurationError:構成例外}}ダオ
パッケージcn.hncu.contact.dao; Import java.util.list; import java.util.map; import org.w3c.dom.dom.dom.dom.dao; public intract contactDao {public abstract boolean login(string name、string pwd);パブリックアブストラクトリスト<Map <String、String >> QueryAll();パブリック抽象要素ADD(文字列名、文字列セックス、ストリングテル); public abstract void reg(string name、string pwd); public element delete(string id); //デフォルトの要約パブリック抽象要素の変更(文字列ID、文字列名、文字列セックス、文字列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を実装するcontactDao {private element currentuser;ドキュメント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();要素root =(要素)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; trueを返します。 }} 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 = culernuser.getElementsByTagname( "連絡先"); for(int i = 0; i <nodelist.getLength(); i ++){map <string、string> map = new hashmap <string、string>();要素e =(要素)nodeList.item(i);文字列id = e.getAttribute( "id"); map.put( "id"、id);文字列名= 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(マップ); }返品リスト。 } @Override public Element add(string name、string sex、string tel){document dom = mydocumentfactory.getDocument(); Element enewContact = dom.createElement( "連絡先"); enewContact.setattribute( "id"、idgenerate.getid());要素namenew = dom.createelement( "name"); namenew.settextcontent(name); enewcontact.appendchild(namenew);要素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 = culernuser.getElementsByTagname( "連絡先"); 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); eを返す; }} nullを返します。 } @Override public void reg(string name、string pwd){document dom = mydocumentfactory.getDocument();要素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 = culernuser.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); eを返す; }} nullを返します。 }}パッケージcn.hncu.contact.dao; public class contactDaofactory {private contactDaofactory(){} public static contactDao getContactDao(){return new ContactImpl(); }}CMD
パッケージ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 cncu.contact.dao.contact.dao.contactactdao cn.hncu.contact.dao.contactdaofactory; public class contactaction {private contactDao dao = contactDaofactory.getContactdao();プライベートスキャナーsc = null;プライベートストリングdelids []; public contactaction(){sc = new Scanner(system.in); while(true){system.out.println( "1:login"); System.out.println( "2:Register"); system.out.println( "0:exit");文字列op = sc.nextline(); if( "1" .equals(op)){login(); } else if( "2" .equals(op)){reg(); } else {// system.exit(0);壊す; }}} private void reg(){system.out.println( "username:");文字列名= sc.nextline(); System.out.println( "ユーザーパスワードを入力してください:");文字列pwd = sc.nextline(); System.out.println( "ユーザーパスワードを確認してください:");文字列pwd2 = sc.nextline(); if(pwd.equals(pwd2)){dao.reg(name、pwd); } else {system.out.println( "パスワード入力は一貫していません。もう一度登録してください"); }} private void login(){system.out.println( "ユーザー名を入力してください:");文字列名= sc.nextline(); System.out.println( "ユーザーパスワードを入力してください:");文字列pwd = sc.nextline(); boolean boo = dao.login(name、pwd); if(boo){system.out.println( "ログインに正常に...");手術(); } 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ツリーです。 //操作は以前の操作です。したがって、前のステージに終了して再度ログインする必要があります。 System.out.println( "2:連絡先を追加"); system.out.println( "3:連絡先を削除"); System.out.println( "4:連絡先を変更する"); System.out.println( "0:exit");文字列sel = sc.nextline(); if( "1" .equals(sel)){system.out.println( "serial number/tname/tgender/ttel"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ map.get( "Tel"); ChangContact(); system.out.println( "変更する連絡先の名前を入力してください:"); 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+"連絡先が更新された後の符号:name:"+e.getelementsbytagname( "name")。item(0).getTextContent()+"ジェンダー:"+e.getElementsBytagname( "sex)。番号: "+e.getElementsByTagname(" Tel ")。item(0).getTextContent()); } else {system.out.println( "修正に失敗..."); }} private void delcontact(){system.out.println( "削除された連絡先番号を入力してください:"); int num = sc.nextint(); sc.nextline(); // newline文字要素e = dao.delete(delids [num-1]); if(e == null){system.out.println( "delete failed、contact no contact"); } else {system.out.println( "連絡先を削除:"+e.getElementsByTagname( "name")。item(0).getTextContent()+"success ..."); }} private void addcontact(){system.out.println( "連絡先情報を入力してください:"); System.out.println( "name:");文字列名= sc.nextline(); System.out.println( "name:"); string sex = sc.nextline(); System.out.println( "tel:"); string tel = sc.nextline();要素E = dao.add(name、sex、tel); system.out.println( "contact"+e.getElementsbytagname( "name")。item(0).getTextContent()+"success ..."); } public static void main(string [] args){new Contactaction(); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。