Java实验通讯录 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集中上机实习报告实验题目用java实现简单功能的学生通讯录
实验题目
用java实现简单功能的学生通讯录;
需求分析和系统设计
需求分析要实现的功能分析:
通过题目可知要设计一个学生通讯录,要求实现简单的通信录管理,能够
输入通信录卡片(实现增、删、改等功能),能够分组,并能够实现按名字(或
其他方式)查询功能;
实现界面:可以是DOS界面,功能按提示方式输入实现;可以是Windows界面,功能用菜单形式,输入界面用对话框形式。
概要设计
为了实现实现通讯录界面,需要完成对电话簿的添加,删除,修改功能,因此只需要完成对这三个按钮事件的处理。这三个按钮同样可以用一个监听器
类来实现事件的监听。区分他们的方法同样是根据按钮标题的不同来区分,当
鼠标单击列表组件时,显示不同人员的联系信息,所以需要为列表组件添加鼠
标事件监听器。
算法分析
在实现功能时只用了简单的面向对象的设计方法,在处理多个按钮事件时,区分按钮的关键是按钮的标题区分,我用了按钮命令事件处理,并用if else 来区分“添加”,“删除”,“修改”这三个按钮。界面上放入一个列表主件,
一个“姓名:”的标签和一个输入姓名的编辑框,一个“电话:”的标签和一
个联系电话的编辑框,一个“地址:”的标签和一个地址的编辑框,还有“添加:”、“删除:”、“修改:”等按钮,及对mouseClicked 事件的监听类。
构造了
JFrame mainFrm 为主窗口,
JTextField name 为姓名输入框,
JTextField tel 为电话输入框,
JTextField add 为地址输入框,
JList dataList 为列表组建,
String[] ming 为姓名数组,
String[] phone 为电话数组,
String[] addr 为地址数组。
在实现过程中,定义PhoneBook类继承了MouseAdapter类与ActionListener接口,就可以用Book类来实现按钮命令监听器和鼠标事件监听器。如果出现错误操作,会在控制台出现异常,且操作无效。
模块划分与说明
学生表
流程图
1,进入通讯录后先在姓名输入框内输入姓名如xx,在电话输入框内输入联系电话,在地址输入框内输入地址;
2,点击“添加”按钮,姓名xx出现在面板左侧的列表中;
3,(1)继续1,2,步骤可向学生通讯录中添加更多学生信息如yy;
(2)可对已添加的学生信息进行修改,如将xx的电话号改变:在列表中点击xx姓名,对xx信息进行修改,最后点击“修改”按钮,修改后的信息被保存;
(3)可对已添加的学生信息进行删除操作,如将xx的信息删除:在列表中点击xx姓名,然后点击“删除”按钮,即可将学生信息删除;
总体图:
流程图:
添加模块流程图:
程序源代码
package通讯录;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Book extends MouseAdapter implements ActionListener {
public static final int WIDTH=600;
public static final int HIGTH=400;
JFrame mainFrm;
JTextField name;
JTextField tel;
JTextField add;
JList dataList;
String[] ming;
String[] phone;
String[] addr;
int n=0;
void book(){
mainFrm=new JFrame();
mainFrm.setTitle("学生通讯录");
mainFrm.setSize(500,300);
mainFrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane=mainFrm.getContentPane();
ming=new String[10];
phone=new String[10];
addr=new String[10];
dataList=new JList(ming);
dataList.setSelectedIndex(1);
dataList.getSelectedValue();
JPanel P1=new JPanel();
JPanel P2=new JPanel();
JPanel P3=new JPanel();
P1.setSize(400,200);
contentPane.add(P1,BorderLayout.WEST); contentPane.add(P2,BorderLayout.CENTER); contentPane.add(P3,BorderLayout.NORTH);
P1.add(dataList);
P2.setLayout(new GridLayout(3,1));
JLabel l1=new JLabel("姓名:");
name=new JTextField();
JLabel l2=new JLabel("电话:");
tel=new JTextField();
JLabel l3=new JLabel("地址:");