本文實(shí)例為大家分享了java實(shí)現(xiàn)通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
完成項(xiàng)目的流程:
1.根據(jù)需求,確定大體方向
2.功能模塊分析
3.界面實(shí)現(xiàn)
4.功能模塊設(shè)計(jì)
5.coding
6.代碼測(cè)試
下面是源代碼:
import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; import java.util.concurrent.SynchronousQueue; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; import javax.swing.text.html.HTMLDocument.Iterator; class Infro{ public String id; public String name; public String sex; public String address; public String e_mail; public String phoneNumber; static int index = 0; static ArrayList<Infro> list = new ArrayList(); static int len = list.size(); //構(gòu)造函數(shù) public Infro(String id,String name,String sex,String address,String e_mail,String phoneNumber){ this.id = id; this.name = name; this.sex = sex; this.address = address; this.e_mail = e_mail; this.phoneNumber = phoneNumber; } public String toString(){ return "編號(hào):"+id+" 姓名:"+name+" 性別:"+sex+" 通訊地址:"+address+" 郵箱地址:"+e_mail+" 電話(huà):"+phoneNumber; } /** * 添加功能 **/ public static void addFunction(){//添加功能 Infro infro = new Infro("","","","","",""); System.out.println("請(qǐng)輸入添加的數(shù)據(jù):"); Scanner in = new Scanner(System.in); System.out.println("輸入編號(hào):"); infro.id = in.next(); System.out.println("輸入姓名:"); infro.name = in.next(); System.out.println("輸入性別:"); infro.sex = in.next(); System.out.println("輸入通訊地址:"); infro.address = in.next(); System. out.println("輸入郵箱地址:"); infro.e_mail = in.next(); System.out.println("輸入電話(huà):"); infro.phoneNumber = in.next(); list.add(index,infro); index++; if(list.isEmpty()){ System.out.println("數(shù)據(jù)添加失敗啦"); }else{ System.out.println("數(shù)據(jù)添加成功啦"); len++;//list集合長(zhǎng)度加一 // System.out.println(list.get(0).toString()); } } // public static void deleteFunction(){//刪除功能 // System.out.println("輸入要?jiǎng)h除的聯(lián)系人的編號(hào)"); // Scanner in_2 = new Scanner(System.in); // String d1 = in_2.nextLine(); // for(int a= 0; a<len;a++){ // if(d1.equals(list.get(a).id)){ // list.remove(list.get(a)); // len --; // } // } // } /** * 刪除功能 **/ public static void deleteFunction(){ System.out.println("輸入要?jiǎng)h除的聯(lián)系人的編號(hào)"); Scanner in_2 = new Scanner(System.in); String d1 = in_2.nextLine(); java.util.Iterator<Infro> it = list.iterator(); while (it.hasNext()){ Infro infro = it.next(); if (infro.id.equals(d1)){ it.remove(); --index;//一定要加這個(gè),否則當(dāng)做了刪除操作再做添加操作的時(shí)候會(huì)出現(xiàn)異常(類(lèi)似于指針,棧) System.out.println("刪除完畢"+"此時(shí)通訊錄記錄條數(shù)為:" + --len); } } } /** * 修改功能 **/ public static void reditFunction(){ System.out.println("輸入要修改的通訊錄的Id"); Scanner in_r = new Scanner(System.in); String r1 = in_r.nextLine(); for(int a = 0; a < len;a++){ if(r1.equals(list.get(a).id)){ System.out.println("輸入修改后的姓名:"); String name_1 = in_r.next(); list.get(a).name = name_1; System.out.println("輸入修改后的性別:"); String sex_1 = in_r.next(); list.get(a).sex = sex_1; System.out.println("輸入修改后的通訊地址:"); String address_1 = in_r.next(); list.get(a).address = address_1; System.out.println("輸入修改后的郵箱地址:"); String e_mail_1 = in_r.next(); list.get(a).e_mail = e_mail_1; System.out.println("輸入修改后的電話(huà):"); String phoneNumber_1 = in_r.next(); list.get(a).phoneNumber = phoneNumber_1; System.out.println("數(shù)據(jù)修改完畢"); } } } /** * 查詢(xún)功能 **/ public static void searchFunction() throws Exception{//查詢(xún)功能 System.out.println("請(qǐng)輸入要查詢(xún)的姓名:"); Scanner in_1 = new Scanner(System.in); String s1=in_1.nextLine(); for(int a= 0; a<len;a++){//切記,,這里不能用a<=list.seze(),否則會(huì)數(shù)組越界異常 if(s1.equals(list.get(a).name)){ System.out.println(list.get(a).toString()); } } } /** * 顯示功能 **/ public static void showFunction(){ for(int i = 0 ;i<len;i++){ System.out.println(list.get(i).toString()); } } /** * 保存功能 **/ public static void writeFunction() throws IOException{ FileWriter writer = new FileWriter("通訊錄管理.txt"); for(int i = 0 ;i<len;i++){ String []strwriter = new String[len]; strwriter[i]=list.get(i).toString(); writer.write(strwriter[i]); writer.write("\r\n"); System.out.println("成功寫(xiě)入一行數(shù)據(jù)到 通訊錄管理.txt 中"); } writer.close();//關(guān)閉寫(xiě)入流,釋放資源 } /** * 讀取功能 **/ public static void readFunction() throws IOException{ FileReader reader = new FileReader("通訊錄管理.txt"); BufferedReader br = new BufferedReader(reader); String str; while((str = br.readLine()) != null){//每次讀取一行文本,判斷是否到達(dá)文件尾 System.out.println(str); } br.close(); } } public class Demo extends JFrame { /** * 界面設(shè)計(jì) **/ public Demo(){ Container c = getContentPane(); //定義一個(gè)頂級(jí)容器c JPanel jp = new JPanel(); //新建JPanel面板--jp JButton button1 = new JButton("新建聯(lián)系人"); JButton button2 = new JButton("刪除聯(lián)系人"); JButton button3 = new JButton("編輯聯(lián)系人"); JButton button4 = new JButton("查找聯(lián)系人"); JButton button5 = new JButton("顯示所有聯(lián)系人"); JButton button6 = new JButton("保存聯(lián)系人到本地"); JButton button7 = new JButton("讀取本地聯(lián)系人"); jp.setLayout(new GridLayout(2,4,5,5));//新建網(wǎng)格布局管理器(行數(shù),列數(shù),組件間的水平垂直間距) jp.add(button1); jp.add(button2); jp.add(button3); jp.add(button4); jp.add(button5); jp.add(button6); jp.add(button7); c.add(jp);//將JPanel面板jp添加到頂級(jí)容器c中 setSize(600,500); setTitle("*通 訊 錄 管 理 系 統(tǒng)*"); setVisible(true); setResizable(false);//窗體大小由程序員決定,用戶(hù)不能自由改變大小 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); /** *按鍵響應(yīng) * **/ button1.addActionListener(new ActionListener(){//添加功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ Infro.addFunction(); } }); button2.addActionListener(new ActionListener(){//刪除功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ Infro.deleteFunction(); } }); button3.addActionListener(new ActionListener(){//修改功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ Infro.reditFunction(); } }); button4.addActionListener(new ActionListener(){//查詢(xún)功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ try { Infro.searchFunction(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); button5.addActionListener(new ActionListener(){//顯示功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ Infro.showFunction(); } }); button6.addActionListener(new ActionListener(){//保存功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ try { Infro.writeFunction(); } catch (IOException e) { e.printStackTrace(); } } }); button7.addActionListener(new ActionListener(){//讀取功能實(shí)現(xiàn) public void actionPerformed(ActionEvent arg0){ try { Infro.readFunction(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } public static void main(String[] args) { // TODO Auto-generated method stub new Demo(); Infro a = new Infro("", "", "", "", "", ""); } }
推薦教程:《Java教程》
Atas ialah kandungan terperinci Java 實(shí)現(xiàn)通訊錄管理系統(tǒng)教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)