您的位置 首页 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();
        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

        Infro a = new Infro("", "", "", "", "", "");
    }
}

推荐教程:《Java教程》

文章来源:智云一二三科技

文章标题:Java 实现通讯录管理系统教程

文章地址:https://www.zhihuclub.com/14577.shtml

关于作者: 智云科技

热门文章

网站地图