1. 程式人生 > 程式設計 >java實現通訊錄管理系統

java實現通訊錄管理系統

本文例項為大家分享了java實現通訊錄管理系統的具體程式碼,供大家參考,具體內容如下

java實現通訊錄管理系統

完成專案的流程:

1.根據需求,確定大體方向
2.功能模組分析
3.介面實現
4.功能模組設計
5.coding
6.程式碼測試

下面是原始碼:

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();
 //建構函式
 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 "編號:"+id+" 姓名:"+name+" 性別:"+sex+" 通訊地址:"+address+" 郵箱地址:"+e_mail+" 電話:"+phoneNumber;
 }

 /*
       * 新增功能
  * */
 public static void addFunction(){//新增功能
  Infro infro = new Infro("","","");
  System.out.println("請輸入新增的資料:");
  Scanner in = new Scanner(System.in);
  System.out.println("輸入編號:");
  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("輸入電話:");
  infro.phoneNumber = in.next();
  list.add(index,infro);
  index++;
  if(list.isEmpty()){
   System.out.println("資料新增失敗啦");
  }else{
   System.out.println("資料新增成功啦");
   len++;//list集合長度加一
//   System.out.println(list.get(0).toString());
  }

 }
// public static void deleteFunction(){//刪除功能
//  System.out.println("輸入要刪除的聯絡人的編號");
//  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("輸入要刪除的聯絡人的編號");
   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;//一定要加這個,否則當做了刪除操作再做新增操作的時候會出現異常(類似於指標,棧)
     System.out.println("刪除完畢"+"此時通訊錄記錄條數為:" + --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("輸入修改後的電話:");
     String phoneNumber_1 = in_r.next();
     list.get(a).phoneNumber = phoneNumber_1;
     System.out.println("資料修改完畢");
    }
   }
  }
  /*
        * 查詢功能
  * */
 public static void searchFunction() throws Exception{//查詢功能
  System.out.println("請輸入要查詢的姓名:");
  Scanner in_1 = new Scanner(System.in);
  String s1=in_1.nextLine();
  for(int a= 0; a<len;a++){//切記,,這裡不能用a<=list.seze(),否則會陣列越界異常
   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("成功寫入一行資料到 通訊錄管理.txt 中");
  }
  writer.close();//關閉寫入流,釋放資源
 }
 /*
  *      讀取功能
  * */
 public static void readFunction() throws IOException{
  FileReader reader = new FileReader("通訊錄管理.txt");
  BufferedReader br = new BufferedReader(reader);
  String str;
  while((str = br.readLine()) != null){//每次讀取一行文字,判斷是否到達檔案尾
   System.out.println(str);
  }
  br.close();
 }
}


public class Demo extends JFrame {

 /*
  * 介面設計
  * */
 public Demo(){
  Container c = getContentPane(); //定義一個頂級容器c
  JPanel jp = new JPanel(); //新建JPanel面板--jp
  JButton button1 = new JButton("新建聯絡人");
  JButton button2 = new JButton("刪除聯絡人");
  JButton button3 = new JButton("編輯聯絡人");
  JButton button4 = new JButton("查詢聯絡人");
  JButton button5 = new JButton("顯示所有聯絡人");
  JButton button6 = new JButton("儲存聯絡人到本地");
  JButton button7 = new JButton("讀取本地聯絡人");
  jp.setLayout(new GridLayout(2,4,5,5));//新建網格佈局管理器(行數,列數,元件間的水平垂直間距)
  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新增到頂級容器c中
  setSize(600,500);
  setTitle("*通 訊 錄 管 理 系 統*");
  setVisible(true);
  setResizable(false);//窗體大小由程式設計師決定,使用者不能自由改變大小
  setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


  /*
   *按鍵響應
   * 
   * */
  button1.addActionListener(new ActionListener(){//新增功能實現
   public void actionPerformed(ActionEvent arg0){
    Infro.addFunction();
   }
  });
  button2.addActionListener(new ActionListener(){//刪除功能實現
   public void actionPerformed(ActionEvent arg0){
    Infro.deleteFunction();
   }
  });
  button3.addActionListener(new ActionListener(){//修改功能實現
   public void actionPerformed(ActionEvent arg0){
    Infro.reditFunction();
   }
  });
  button4.addActionListener(new ActionListener(){//查詢功能實現
   public void actionPerformed(ActionEvent arg0){
    try {
     Infro.searchFunction();
    } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });
  button5.addActionListener(new ActionListener(){//顯示功能實現
   public void actionPerformed(ActionEvent arg0){
    Infro.showFunction();
   }
  });
  button6.addActionListener(new ActionListener(){//儲存功能實現
   public void actionPerformed(ActionEvent arg0){
    try {
     Infro.writeFunction();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  });
  button7.addActionListener(new ActionListener(){//讀取功能實現
   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("","");
 }

}

ps:在用List集合的時候,遇到了一些小問題,這些小問題我在程式碼裡有註釋,希望以後不要再犯這種問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。