面向对象程序设计课程设计——通讯录.doc

上传人:laozhun 文档编号:2386213 上传时间:2023-02-17 格式:DOC 页数:14 大小:345KB
返回 下载 相关 举报
面向对象程序设计课程设计——通讯录.doc_第1页
第1页 / 共14页
面向对象程序设计课程设计——通讯录.doc_第2页
第2页 / 共14页
面向对象程序设计课程设计——通讯录.doc_第3页
第3页 / 共14页
面向对象程序设计课程设计——通讯录.doc_第4页
第4页 / 共14页
面向对象程序设计课程设计——通讯录.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《面向对象程序设计课程设计——通讯录.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计——通讯录.doc(14页珍藏版)》请在三一办公上搜索。

1、面向对象程序设计课程设计报告题 目: 专 业: 班 级: 学 号: 姓 名: 指导老师: 时 间: 一、课程设计题目及所涉及知识点设计题目是“java通讯录”,所涉及的知识点主要是:1、利用Java图形界面进行对通讯录的整体界面设计,调用java.swing包里面的组件,如按钮(Jbutton)、文本框(JtextFrield)、标签(JLable)、文本域(JTextArea)、面板(JPanel)2、对组件进行布局管理,调用Java、awt包中的GridLayout和BorderLayout类实现按钮、标签、文本框、及文本域的布局。3、利用Jframe类中的getContentPane()

2、.add()方法进行添加组件,形成具体的界面。4、使用ActionListener类进行事件的监听。4、利用数据库的管理对通讯录的内容进行操作,调用java.sql包,通过加载JDBC驱动程序、创建数据库的连接、创建Statement、执行Statement、关闭数据库的连接等操作来实现其功能。二、课程设计思路设计思路:1、要实现有界面的通讯录,首先是对于主界面的创建,里面具体包含标签、文本框、按钮、文本域等组件。调用Jlabel(String text)方法,然后根据所需要的通讯录信息确定标签上显示内容具体分别为编号、姓名、性别、电话、Email、地址。对于每个标签的后面跟着一个文本框(Jt

3、extFrield()用来写对应标签内容的数据,其次就是对于按钮(JButton(String text))上面显示的内容根据所需要进行的操作进行修改,具体内容为增加、删除、查询、显示所有。调用JtextArea类来显示进行每个操作后应出现的信息。2、调用GridLayout、BordLayout和Jpanel类,利用GridLayout(4,4)布局通过面板的add()方法依次对标签、文本框、按钮进行添加,然后利用另一个面板对于文本域的添加,最后用BordLayout布局添加到容器中形成界面。3、对按钮添加监听器(ActionListener),分别对功能进行操作,在删除和查找的时候分别出现

4、另一个界面,分别是对姓名的删除和查找工作。4、利用电脑建立一个电话本的数据库文件,然后用数据源(ODBC)进行对数据库文件的添加,在程序过程中利用加载Jdbc-Odbc桥驱动程序,和DriveManager.getConnection()进行数据库的连接工作,同时调用SQL语句和执行SQL语句(executeQuery、executeUpdate)对功能进行操作管理。三、课程设计中遇到的难点及解决办法 1、首先是对于整体界面的建立,遇到的就是布局问题,不确定该用几个面板,然后通过进行反复尝试,最终完善了界面的设计。 2、在数据库操作中,建立连接倒是完成了,但是对于操作过程总是出现错误,主要是对

5、于executeQuery、executeUpdate里面参数的处理不到位,然后通过查阅书籍,和通过上网搜索等,进而达成了通讯录的目的。四、总结通过这些天对通讯录的建立,让我了解到了程序的重要性,它不仅仅是一种代码,而是因为它的出现让我们的生活得到了更大的改善,因此我也对于一些手机里面的功能不但是对一个功能的认识,我知道它后面是一个强大的代码,让我更加对于编程产生了兴趣,在这个过程中老师给予我了很大的帮助,丰富了我的知识面,也是通过这个程序,对于所学到的功能进一步得到深刻记忆。我想这是一次很丰富的课程设计,以此我会更加努力进取为进一步的程序编程课程做好准备,更加投入到自己的专业当中,这不仅仅是

6、一种学习,我应该用实际问题来运用,我想我会看到光亮彼岸、那是我向往已久的地方。五、附录主要源程序代码及运行结果1、进行Odbc数据源加载所创建的名为stu的数据库文件的操作 2主要代码如下:import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.sql.*;import javax.swing.*;public class 通讯录 extends JFrame implements ActionL

7、istener JPanel pane1,panel1,panel2;JLabel label1,label2,label3,label4,label5,label6,label7,label8,label9,label10,label11,label12,display; JButton button1,button2,button3,button4; JTextField text1,text2,text3,text4,text5,text6; TextArea text; Object b=new Object8006; Object t=地址,xingming ,电话,email,编号

8、 ,性别; /* * param args */通讯录() text=new TextArea(, 10, 60,TextArea.SCROLLBARS_BOTH); pane1 = new JPanel(new GridLayout(4,4); label1 =new JLabel(编号);label2 =new JLabel(性别);label3=new JLabel(地址); label4 =new JLabel(姓名); label5 =new JLabel(电话);label6 =new JLabel(email); label7 =new JLabel(编号);label8 =ne

9、w JLabel(性别);label9=new JLabel(地址); label10=new JLabel(姓名); label11 =new JLabel(电话);label12 =new JLabel(email); text1=new JTextField(); text2=new JTextField(); text3=new JTextField(); text4=new JTextField(); text5=new JTextField(); text6=new JTextField(); pane1.add(label1);pane1.add(text1);pane1.add

10、(label4);pane1.add(text2); pane1.add(label2);pane1.add(text3);pane1.add(label5);pane1.add(text4); pane1.add(label6);pane1.add(text5);pane1.add(label3);pane1.add(text6); button1= new JButton(查询);button2= new JButton(增加);button3= new JButton(删除); button4= new JButton(显示所有);panel1 = new JPanel(new Flow

11、Layout(FlowLayout.LEFT,40,1); pane1.add(button1);pane1.add(button2);pane1.add(button3);pane1.add(button4); panel2 = new JPanel();panel2.add(text);panel1.setSize(200,200); getContentPane().add(pane1,North); getContentPane().add(panel2,Center); setSize(450,320);setVisible(true); button2.addActionListe

12、ner(this);button1.addActionListener(this); button3.addActionListener(this);button4.addActionListener(this); /建立面板和给按钮加监听器public static void main(String args) / TODO Auto-generated method stub 通讯录 t=new 通讯录();Overridepublic void actionPerformed(ActionEvent e) if(查询.equals(e.getActionCommand() chaxun

13、j=new chaxun(text); if(增加.equals(e.getActionCommand() zengjia1 ff=new zengjia1(text1.getText(),text2.getText(),text3.getText(),text4.getText(),text5.getText(),text6.getText(),text1,text2,text3,text4,text5,text6); if(删除.equals(e.getActionCommand()/进行删除操作 shanchu c=new shanchu(); if(显示所有.equals(e.getA

14、ctionCommand() String d1=sun.jdbc.odbc.JdbcOdbcDriver; String d2=jdbc:odbc:stu; Connection con=null; Statement stmt; ResultSet rs; try Class.forName(d1); catch(ClassNotFoundException e1) System.out.println(无法加载+e1); catch(Exception e2) System.out.println(e2.getMessage(); try con=DriverManager.getCon

15、nection(d2,); stmt=con.createStatement(); rs =stmt.executeQuery(select * from stu); while (rs.next() text.append(编号: + rs.getString(1) + n); text.append(姓名: + rs.getString(2) + n); text.append(性别: + rs.getString(3) + n); text.append(电话号码: + rs.getString(4) + n); text.append(email: + rs.getString(5)

16、+ n); text.append(住址: + rs.getString(6) + n); / 显示查询到的图书信息 con.close(); / 关闭数据库 catch (SQLException eee) System.out.println(eee); / TODO Auto-generated method stubimport java.awt.TextArea;import java.io.*;import java.sql.*;import javax.swing.JLabel;/进行显示所有操作public class 显示所有 TextArea t;显示所有(TextArea

17、 a)t=a;String d1=sun.jdbc.odbc.JdbcOdbcDriver;String d2=jdbc:odbc:stu;Connection con=null;Statement stmt;ResultSet rs;tryClass.forName(d1); catch(ClassNotFoundException e1)System.out.println(无法加载+e1);catch(Exception e2)System.out.println(e2.getMessage();trycon=DriverManager.getConnection(d2,); stmt=

18、con.createStatement(); rs =stmt.executeQuery(select * from stu); while (rs.next() t.append(编号: + rs.getString(1) + n); t.append(姓名: + rs.getString(2) + n);t.append(性别: + rs.getString(3) + n);t.append(电话号码: + rs.getString(4) + n);t.append(email: + rs.getString(5) + n);t.append(住址: + rs.getString(6) +

19、 n); / 显示查询到的图书信息 con.close(); / 关闭数据库 catch (SQLException eee) System.out.println(eee);import javax.swing.JTextField;import java.sql.*;public class zengjia1 zengjia1(String a,String b1,String c,String d,String e,String f,JTextField a1,JTextField a2,JTextField a3,JTextField a4,JTextField a5,JTextFie

20、ld a6)String d1=sun.jdbc.odbc.JdbcOdbcDriver;String d2=jdbc:odbc:stu;Connection con=null;Statement stmt;tryClass.forName(d1); catch(ClassNotFoundException e1)System.out.println(无法加载+e1);catch(Exception e2)System.out.println(e2.getMessage();trycon=DriverManager.getConnection(d2,); stmt=con.createStat

21、ement(); String d3=insert into stu values + ( + + a + + , + + b1 + + , + + c + + ,+ +d + + , + + e + +,+f+ ); int t=stmt.executeUpdate(d3); stmt.close();catch(SQLException e4) System.out.printf(e4.getMessage();finally if( con!=null)trycon.close();catch(Exception e5)e5.printStackTrace(); a1.setText()

22、; a2.setText();a3.setText(); a4.setText();a5.setText();a6.setText();import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import javax.swing.*;/进行删除工作public class shanchu extends JFrame implements ActionListener JButton button; JTextField text; JL

23、abel lable; Choice cchaxun;ResultSet rs;shanchu() button=new JButton(确定); text= new JTextField(); lable= new JLabel(姓名); getContentPane().setLayout(new GridLayout(2,1); getContentPane().add(lable); getContentPane().add(text); getContentPane().add(button); button.addActionListener(this); setSize(150,

24、100); setVisible(true); setLayout(null);Overridepublic void actionPerformed(ActionEvent arg0) String d1=sun.jdbc.odbc.JdbcOdbcDriver;String d2=jdbc:odbc:stu;Connection con=null;Statement stmt;String s=text.getText();if (s.equals()JOptionPane.showMessageDialog(this, 请输入要删除的姓名, 删除功能,JOptionPane.WARNIN

25、G_MESSAGE);elsetryClass.forName(d1); catch(ClassNotFoundException e1)System.out.println(无法加载+e1);catch(Exception e2)System.out.println(e2.getMessage();trycon=DriverManager.getConnection(d2,); stmt=con.createStatement(); rs = stmt.executeQuery(select * from stu where 姓名 =+ + s + );if (!rs.next()JOpti

26、onPane.showMessageDialog(this, 没有此人, 删除功能,JOptionPane.WARNING_MESSAGE);else int n = JOptionPane.showConfirmDialog(this, 确认删除吗?,删除功能, JOptionPane.YES_NO_OPTION);if (n = JOptionPane.YES_OPTION) stmt.executeUpdate(delete from book where bookName =+ + s + );JOptionPane.showMessageDialog(this, 删除成功, 删除功能

27、,JOptionPane.INFORMATION_MESSAGE);text.setText(); elsetext.setText();con.close(); catch (SQLException eee) System.out.println(eee);import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import javax.swing.*;/进行查询工作public class chaxun extends JFrame

28、 implements ActionListener JButton button; JTextField text; JLabel lable; Choice cchaxun; TextArea t; chaxun(TextArea a ) t=a; button=new JButton(确定); text= new JTextField(); lable= new JLabel(姓名); getContentPane().setLayout(new GridLayout(2,1); getContentPane().add(lable); getContentPane().add(text

29、); getContentPane().add(button); button.addActionListener(this); setSize(150,100); setVisible(true); setLayout(null);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubString d1=sun.jdbc.odbc.JdbcOdbcDriver;String d2=jdbc:odbc:stu;String s=text.getText();Connection c

30、on=null;Statement stmt;ResultSet rs;if (s.equals()JOptionPane.showMessageDialog(this, 查询内容不能为 空, 查询系统,JOptionPane.WARNING_MESSAGE);elsetryClass.forName(d1); catch(ClassNotFoundException e1)System.out.println(无法加载+e1);catch(Exception e2)System.out.println(e2.getMessage();trycon=DriverManager.getConne

31、ction(d2,); stmt=con.createStatement(); rs =stmt.executeQuery(select * from stu where 姓名 =+ + s + ); text.setText();String panduan = false; while (rs.next() panduan = true;t.append(编号: + rs.getString(1) + n); t.append(姓名: + rs.getString(2) + n);t.append(性别: + rs.getString(3) + n);t.append(电话号码: + rs

32、.getString(4) + n);t.append(email: + rs.getString(5) + n);t.append(住址: + rs.getString(6) + n); / 显示查询到的图书信息 con.close(); / 关闭数据库if (panduan.equals(false)JOptionPane.showMessageDialog(this, 没有该记录, 查询系统,JOptionPane.WARNING_MESSAGE); catch (SQLException eee) System.out.println(eee);3、运行结果 主界面为: 执行查询操作: 执行显示所有操作:执行增加操作: 执行删除操作:六、指导老师评语及成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号