1、 面向对象程序设计(Java)课程设计报告题目: 个人通讯录管理程序 学 院: 专 业: 班 级: 姓 名: 指导教师: 2010年12月31日29一、设计内容2二、设计要求2三、总体设计2四、具体设计2五、具体分工4六、程序设计41、UseSystem;类42、MySystem类53、User类184、UserService类215、DAO类27七、实习心得28一、设计内容设计GUI界面的个人通讯录,用户可以添加,删除,修改,查询,打印通讯录中的记录!二、设计要求用图形用户界面实现:1、能实现增加记录,删除记录,显示所有记录,查询记录,文件备份。2、通讯录的功能包括:姓名,电话,Email等
2、。3、使用数据库做后台连接!三、总体设计有5个类各类之间的关系!1、 DAO.java该类主要负责进行数据库连接,含有数据库的连接方法!2、 User.java实体类主要作用是实现java的封装特性,利用服务类实现各种增删改查的操作方法!3、 UserService.java该类主要是对各种操作方法的定义和实现,是实现增删改查等主要功能的服务类!4、 MySeystem该类主要是实现图形化界面的!实现按钮,输入框,标签等图形化界面!5、 UseSystem该类是程序的主类,该类含有main方法,程序从该类开始执行。UseSystemMySeystemUser.javaUserService.j
3、avaDAO.java四、具体设计将5个java文件保存到同一个文件夹中,例如:C:test。将5个java文件分别编译生成相应的字节码(class)文件。然后,用java解释器运行主类:主界面修改界面添加界面五、具体分工我参与设计添加页面,添加方法,数据库部分操作。六、程序设计代码:1、UseSystem;类public class UseSystem /* * param args */public static void main(String args) / TODO Auto-generated method stubnew MySystem().validate();2、MySys
4、tem类import java.awt.*;import java.awt.*;import java.awt.event.*;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.*;import javax.swing.*;import cn.cc.system.model.User;import cn.cc.system.service.UserService;public class MySystem
5、extends JFrame implements ActionListener, ItemListener UserService uService = new UserService();User u=new User();Choice choice = new Choice();JTextField t1 = new JTextField(15);JButton b1 = new JButton(查询);java.awt.List list = new java.awt.List(6, true);JButton b2 = new JButton(增加);JButton b3 = new
6、 JButton(删除);JButton b4 = new JButton(修改);JButton b5 = new JButton(导出);Container con = getContentPane();java.util.List uList = new ArrayList();/static Vector uv = new Vector(100);int flag=0;MySystem() super(个人通讯录管理程序);setSize(400, 400);con.setLayout(new BorderLayout();choice.add(姓名);choice.add(类别);c
7、hoice.add(手机号码);choice.add(查询全部记录);Panel p1 = new Panel();/ Panel p2=new Panel();Panel p3 = new Panel();p1.setBackground(Color.blue);p1.setSize(300, 10);/ p2.setBackground(Color.cyan);/ p2.setSize(380, 300);p3.setBackground(Color.green);list.setSize(300, 300);p1.add(choice);p1.add(t1);p1.add(b1);p3.
8、add(b2);p3.add(b4);p3.add(b3);p3.add(b5);con.add(North, p1);con.add(Center, list);con.add(South, p3);setVisible(true);validate();addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) setVisible(false);System.exit(0););b1.addActionListener(this);b2.addActionListener(this);b3.
9、addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);list.addItemListener(this);Overridepublic void actionPerformed(ActionEvent e) if (e.getSource() = b2) /通过产生外部窗体,来实现添加功能final JFrame newf = new JFrame(添加联系人);newf.setSize(400, 400);newf.setVisible(true);newf.setLayout(new G
10、ridLayout(10, 2);JLabel jb1 = new JLabel(联系人姓名:);final JTextField jtf1 = new JTextField(15);Panel pp1 = new Panel();pp1.add(jb1);pp1.add(jtf1);newf.getContentPane().add(pp1);JLabel jb2 = new JLabel(联系人电话:);final JTextField jtf2 = new JTextField(15);Panel pp2 = new Panel();pp2.add(jb2);pp2.add(jtf2);
11、newf.getContentPane().add(pp2);JLabel jb3 = new JLabel(固 定 电 话:);final JTextField jtf3 = new JTextField(15);Panel pp3 = new Panel();pp3.add(jb3);pp3.add(jtf3);newf.getContentPane().add(pp3);JLabel jb4 = new JLabel(联系人QQ :);final JTextField jtf4 = new JTextField(15);Panel pp4 = new Panel();pp4.add(jb
12、4);pp4.add(jtf4);newf.getContentPane().add(pp4);JLabel jb7 = new JLabel(联系人email:);final JTextField jtf7 = new JTextField(15);Panel pp7 = new Panel();pp7.add(jb7);pp7.add(jtf7);newf.getContentPane().add(pp7);JLabel jb8 = new JLabel(联系类别 :);final JTextField jtf8 = new JTextField(15);Panel pp8 = new P
13、anel();pp8.add(jb8);pp8.add(jtf8);newf.getContentPane().add(pp8);JLabel jb5 = new JLabel(联系人工作:);final JTextField jtf5 = new JTextField(15);Panel pp5 = new Panel();pp5.add(jb5);pp5.add(jtf5);newf.getContentPane().add(pp5);JLabel jb6 = new JLabel(现居住地地址:);final JTextField jtf6 = new JTextField(15);Pa
14、nel pp6 = new Panel();pp6.add(jb6);pp6.add(jtf6);newf.getContentPane().add(pp6);JButton bb1 = new JButton(提交);JButton bb2 = new JButton(关闭);Panel pp9 = new Panel();pp9.add(bb1);pp9.add(bb2);newf.getContentPane().add(pp9);/ JTextArea jta=new JTextArea();Panel pp10=new/ Panel();pp10.add(jta);newf.getC
15、ontentPane().add();bb1.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent ee) User u = new User();u.setName(jtf1.getText();u.setTel(jtf2.getText();u.setPhone(jtf3.getText();u.setQq(jtf4.getText();u.setWork(jtf5.getText();u.setAddress(jtf6.getText();u.setEmail(jtf7.getText();u.se
16、tCategory(jtf8.getText();if (uService.add(u) JOptionPane.showMessageDialog(null, 添加成功!); elseJOptionPane.showMessageDialog(null, 添加失败!););bb2.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent ee) newf.setVisible(false););if (b1 = e.getSource() /通过调用select();实现模糊查询list.removeAll
17、();select();if (b3 = e.getSource() /通过获得联系人在list中的索引号,来实现对联系人的删除if (flag = 0) JOptionPane.showMessageDialog(null, 不能删除该行!);u = uList.get(flag - 1);if (uService.delById(u.getId() JOptionPane.showMessageDialog(null, 删除成功!);uList.remove(flag - 1);list.removeAll();list.add(编号 + + 姓名 + + 电话);for (User u1
18、 :uList) list.add(u1.getId() + : + u1.getName() + + u1.getTel(); elseJOptionPane.showMessageDialog(null, 删除失败!);if(b4=e.getSource()/通过获得联系人在list中的索引号,同弹出一个外部窗体其中 /有联系人的信息,用户可以修改.并在将其存入数据库if (flag = 0) JOptionPane.showMessageDialog(null, 不能修改首行!);return; u = uList.get(flag - 1); final JFrame newf = n
19、ew JFrame(添加联系人); newf.setSize(400, 400); newf.setVisible(true); newf.setLayout(new GridLayout(10, 2); JLabel jb1 = new JLabel(联系人姓名:); final JTextField jtf1 = new JTextField(u.getName(),15); Panel pp1 = new Panel(); pp1.add(jb1); pp1.add(jtf1); newf.getContentPane().add(pp1); JLabel jb2 = new JLabe
20、l(联系人电话:); final JTextField jtf2 = new JTextField(u.getTel(),15); Panel pp2 = new Panel(); pp2.add(jb2); pp2.add(jtf2); newf.getContentPane().add(pp2); JLabel jb3 = new JLabel(固 定 电 话:); final JTextField jtf3 = new JTextField(u.getPhone(),15); Panel pp3 = new Panel(); pp3.add(jb3); pp3.add(jtf3); ne
21、wf.getContentPane().add(pp3); JLabel jb4 = new JLabel(联系人QQ :); final JTextField jtf4 = new JTextField(u.getQq(),15); Panel pp4 = new Panel(); pp4.add(jb4); pp4.add(jtf4); newf.getContentPane().add(pp4); JLabel jb7 = new JLabel(联系人email:); final JTextField jtf7 = new JTextField(u.getEmail(),15); Pan
22、el pp7 = new Panel(); pp7.add(jb7); pp7.add(jtf7); newf.getContentPane().add(pp7); JLabel jb8 = new JLabel(联系类别 :); final JTextField jtf8 = new JTextField(u.getCategory(),15); Panel pp8 = new Panel(); pp8.add(jb8); pp8.add(jtf8); newf.getContentPane().add(pp8); JLabel jb5 = new JLabel(联系人工作:); final
23、 JTextField jtf5 = new JTextField(u.getWork(),15); Panel pp5 = new Panel(); pp5.add(jb5); pp5.add(jtf5); newf.getContentPane().add(pp5); JLabel jb6 = new JLabel(现居住地地址:); final JTextField jtf6 = new JTextField(u.getAddress(),15); Panel pp6 = new Panel(); pp6.add(jb6); pp6.add(jtf6); newf.getContentP
24、ane().add(pp6); JButton bb1 = new JButton(提交); JButton bb2 = new JButton(关闭); Panel pp9 = new Panel(); pp9.add(bb1); pp9.add(bb2); newf.getContentPane().add(pp9); bb1.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent ee) u.setName(jtf1.getText();u.setTel(jtf2.getText();u.setPho
25、ne(jtf3.getText();u.setQq(jtf4.getText();u.setWork(jtf5.getText();u.setAddress(jtf6.getText();u.setEmail(jtf7.getText();u.setCategory(jtf8.getText();if(uService.update(u)JOptionPane.showMessageDialog(null, 修改成功!);select();else JOptionPane.showMessageDialog(null, 修改失败!);); bb2.addMouseListener(new Mo
26、useAdapter() public void mouseClicked(MouseEvent ee) newf.setVisible(false););if(b5=e.getSource()/实现全部联系人的导出File f=new File(user_information.txt);try FileWriter w_file=new FileWriter(f);BufferedWriter b_file=new BufferedWriter(w_file);b_file.write(联系人编号t姓名t手机号码t固定电话tqq号码temailt类别t工作t现居住地地址t);b_file.
27、flush();for(User u:uService.getAllUser()b_file.write(u.getId()+t+u.getName()+t+u.getTel()+t+u.getPhone()+t+u.getQq()+t+u.getEmail()+t+u.getCategory()+t+u.getWork()+t+u.getAddress()+n); b_file.flush();JOptionPane.showMessageDialog(null, 导出成功!); catch (IOException e1) / TODO Auto-generated catch block
28、e1.printStackTrace();Overridepublic void itemStateChanged(ItemEvent a) int sum = Integer.parseInt(a.getItem().toString(); flag=sum; public void select()if (choice.getSelectedItem().equals(姓名) /对姓名进行模糊查询uList.clear();for (User u : uService.getUser(name, t1.getText()uList.add(u);list.removeAll();list.
29、add(编号 + + 姓名 + + 电话);for (User u :uList) list.add(u.getId() + : + u.getName() + + u.getTel();if (choice.getSelectedItem().equals(类别) /对类别进行模糊查询uList.clear();for (User u : uService.getUser(category, t1.getText()uList.add(u);list.removeAll();list.add(编号 + + 姓名 + + 电话);for (User u : uList) list.add(u.
30、getId() + : + u.getName() + + u.getTel();if (choice.getSelectedItem().equals(手机号码) /对手机号码进行模糊查询uList.clear();for (User u : uService.getUser(tel, t1.getText()uList.add(u);list.removeAll();list.add(编号 + + 姓名 + + 电话);for (User u : uList) list.add(u.getId() + : + u.getName() + + u.getTel();if (choice.ge
31、tSelectedItem().equals(查询全部记录) /对全部的联系人进行查询uList.clear();for (User u : uService.getAllUser()uList.add(u);list.removeAll();list.add(编号 + + 姓名 + + 电话);for (User u : uList) list.add(u.getId() + : + u.getName() + + u.getTel();3、User类public class User private int id;private String name;private String tel
32、;private String email;private String phone;private String category;private String address;private String work;private String qq;public User() super();/ TODO Auto-generated constructor stubpublic User(int id, String name, String tel, String email, String phone,String category, String address, String
33、work,String q) super();this.id = id;this.name = name;this.tel = tel;this.email = email;this.phone = phone;this.category = category;this.address = address;this.work = work;this.qq=q;public String getQq() return qq;public void setQq(String qq) this.qq = qq;public int getId() return id;public void setI
34、d(int id) this.id = id;public String getName() return name;public void setName(String name) this.name = name;public String getTel() return tel;public void setTel(String tel) this.tel = tel;public String getEmail() return email;public void setEmail(String email) this.email = email;public String getPh
35、one() return phone;public void setPhone(String phone) this.phone = phone;public String getCategory() return category;public void setCategory(String category) this.category = category;public String getAddress() return address;public void setAddress(String address) this.address = address;public String
36、 getWork() return work;public void setWork(String work) this.work = work;4、UserService类import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import cn.cc.system.model.*;public class UserService extends DAO /* * 方法目的:添加联系人 * param u * return */public boolean add(User u)boolean
37、 flag=false;StringBuilder sql=new StringBuilder();sql.append(insert into TB_user (name,tel,phone,qq,email,category,work,address) values(?,?,?,?,?,?,?,?);con=DAO.getConnect();try pst=con.prepareStatement(sql.toString();pst.setString(1,u.getName();pst.setString(2,u.getTel();pst.setString(3,u.getPhone(
38、);pst.setString(4,u.getQq();pst.setString(5,u.getEmail();pst.setString(6,u.getCategory();pst.setString(7,u.getWork();pst.setString(8,u.getAddress();if(pst.executeUpdate()0)flag=true;pst.close();con.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return flag;/* * 方法目的:根据编号删除联系人 * param id * return */public boolean delById(int id)boolean flag=false;StringBuilder sql=new StringBuilder();sql.append(delete from TB_user where id=?);
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922