1、JAVA课程设计报告java技术课程设计2012年8月13日目 录目 录 2一、设计思路 3二、具体实现 3三、运行调试与分析讨论 5四、设计体会与小结 9五、参考文献 10六、附录 10一、设计思路随着社会经济的发展,同学中拥有手机的人越来越多,为方便对同学手机和电话号码的管理,设计电话号码管理软家来管理本班级同学的电话号码。该软件应支持添加、删除、修改、查询功能。并且查询功能分为两种情况显示查询的结果:(1)整体查询有两种显示方式:一是按加入序号次序显示,另一个是按姓名排序;(2)个别查询支持模糊查询,例如:输入“张”,则所有显示。 运用流式、卡片、整体布局方式对系统的主界面和各功能界面进
2、行设计;通过连接数据库的方式来实现对数据的存储;各功能实现时访问数据库,并对数据信息进行读取,运用Java语句对其进行输出,精确查询时显示在文本框中;模糊查询、整体查询时运用文本域显示,并运用滚动条进行调节查看查询结果。系统提示功能用来提醒用户的错误操作和输入时的错误信息,提醒用户进行改正二、具体实现该系统中的信息存储在数据库中,并实现以下各功能:添加功能:添加数据信息,当有新同学进入是可以添加该同学的信息。通过文本框读入添加信息,连接数据库后储存数据。精确查询:输入要查询同学的姓名,显示出该同学的信息。通过文本框读入要查找的信息,用SQL语句在数据库中进行查找。 模糊查询:当不知道同学的全名
3、时,输入该同学姓名中的一个或多个字运用SQL中的模糊查询语句即可找到名字中含有输入字的同学的信息。 整体查询:显示出数据库中全部同学的信息。删除功能:该功能和精确查询功能在同一功能模块中实现,有于删除同学信息并更新数据库信息。修改功能:当同学的信息改变时,用此功能更新同学信息。通过对数据库信息的更新保存最新信息。每种功能通过一个类来实现:类分分为主类、精确查询类、模糊查询类、整体查询类、修改类、添加类、提示类。主类(manager)实现系统主界面以及和各功能界面的连接;精确查询类(find)实现对数据库中数据的精确查询和删除;模糊查询类(mhcx)显示对数据的模糊查询;整体查询类(ztcx)用
4、来显示全部同学的电话信息;修改类(update)实现对数据的修改更新;添加类(tianjia)向数据库中添加新数据;提示类(about)实现对软件的介绍。该系统需要用数据库来实现对信息的存储,每次对信息的操作都要访问数据库,并对数据库的信息作相应的读入和取出。该系统流程图如下:图 1 系统流程图程序开始运行后产生系统的界面,此时由用户来选择需要的操作,程序根据用户的选择判断并响应相应的操作,图 2 程序流程图三、运行调试与分析讨论系统的详细设计代码请查阅附带的代码。以下仅对各个界面进行截图展示:图3系统主界面图 4 添加信息时的界面图 5 修改信息时的界面图 6 精确查询时的界面图 7 整体查
5、询界面图 8 模糊查询界面图 9 系统提示界面运行JAVA程序中的manager文件,显示系统的主界面,如图三所示,主界面有进入其他子功能的按钮,选择相应的按钮便可进入相应的功能。添加号码功能如图四所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否添加。修改号码功能如图五所示,首先输入要修改的人姓名,点击开始修改,在下面的文本框现实当前数据库内所存该人的信息,同时录入修改键变化为可点击,在文本框内输入要修改的号码,点击录入修改,系统将新信息录如数据库。点击精确查询按钮,将弹出查询对话框,输入姓名便可以精确查询到此人的所有电话号码信息。整体查询如图七所示,将显示数据库中所存的所有号
6、码信息。模糊查询如图八所示,在文本框中填写姓名的一个字,便可查询所有姓名中含有这个字的电话信息,并显示在文本域内。四、设计体会与小结一周的课设,自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对GUI组键的应用有了更深入的认识与掌握,另外还学到了一些新东西,比如JAVA 的SWING、AWT包,以前是没有接触过的,可是通过这次课程设计使得我们对这个包更了解。通过与数据库的连接掌握了Java与数据库的连接技术。 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过
7、程中,我会更加注视实践操作,使自己便好地学好计算机。五、参考文献1朱福喜,尹为民等编著.Java语言与面向对象程序设计.武汉:武汉大学出版社,2002.12 2冯军,程超等编著.JBuilder 9.0程序设计.北京:中国水利水电出版社,2004.53丁振凡,黎章等编著.Java语言实用教程.北京:北京邮电大学出版社,2005.84何桥,李肃义等编著.Java程序设计简明教程.北京:中国水利水电出版社,2004.9六、附录程序的主要代码:主界面模块主要代码manager.java public void actionPerformed(ActionEvent e) if(e.getSource
8、()=添加) card.show(pCenter,录入界面); else if(e.getSource()=修改) card.show(pCenter,修改界面); else if(e.getSource()=精确查询1) 精确查询.setVisible(true); else if(e.getSource()=整体查询1) card.show(pCenter,整体查询界面); else if(e.getSource()=模糊查询1) card.show(pCenter,模糊查询界面); else if(e.getSource()=bbbb) 关于.setVisible(true); publ
9、ic static void main(String args) new manager(); 添加功能模块主要代码tianjia.javapublic void textValueChanged(TextEvent e) if(e.getSource()=手机号码) String s=手机号码.getText(); for(int i=0;is.length();i+) char c=s.charAt(i); if(c9) String warning=请输入数字!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARN
10、ING_MESSAGE); 手机号码.setText(null); if(e.getSource()=家庭电话) String s=家庭电话.getText(); for(int i=0;is.length();i+) char c=s.charAt(i); if(c9) String warning=请输入数字!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); 家庭电话.setText(null); if(e.getSource()=办公电话) String s=办公电话.getText
11、(); for(int i=0;is.length();i+) char c=s.charAt(i); if(c9) String warning=请输入数字!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); 办公电话.setText(null); public void actionPerformed(ActionEvent e) String name=; String url=jdbc:odbc:diaoyou1; String s1=; String s2=; String s3=
12、; String s4=; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException eee) s1=姓名.getText(); s2=手机号码.getText(); s3=家庭电话.getText(); s4=办公电话.getText(); String sql=insert into number values(?,?,?,?); if(e.getSource()=确定) if(s1=)String warning=必须输入姓名!; JOptionPane.showMess
13、ageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else String m=添加此人电话!; int ok=JOptionPane.showConfirmDialog(this,m,确认,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) try Connection con=DriverManager.getConnection(url,null); Statement stmt=con.create
14、Statement(); PreparedStatement ps=con.prepareStatement(sql); ps.setString(1,s1); ps.setString(2,s2); ps.setString(3,s3); ps.setString(4,s4); ps.executeUpdate(); stmt.close(); con.close();catch(SQLException ex)System.out.println(ex.getMessage(); 姓名.setText(null); 手机号码.setText(null); 家庭电话.setText(null
15、); 办公电话.setText(null); if(e.getSource()=重置) 姓名.setText(null); 手机号码.setText(null); 家庭电话.setText(null); 办公电话.setText(null); 修改模块代码主要代码 update.java public void actionPerformed(ActionEvent e) String name=; String s1=; String s2=; String s3=; String s4=; String url=jdbc:odbc:diaoyou1; try Class.forName(s
16、un.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException eee) if(e.getSource()=开始修改) name=姓名.getText(); String sql=select * from number where 姓名=+name+; try Connection con=DriverManager.getConnection(url,null); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery(sql); wh
17、ile(rs.next() s1=rs.getString(姓名); s2=rs.getString(手机号码); s3=rs.getString(家庭电话); s4=rs.getString(办公电话); stmt.close(); con.close(); catch(SQLException ex)System.out.println(ex.getMessage(); if(s1!=null) 录入修改.setEnabled(true); 手机号码.setText(s2); 家庭电话.setText(s3); 办公电话.setText(s4); if(e.getSource()=录入修改
18、) name=姓名.getText(); s2=手机号码.getText(); s3=家庭电话.getText(); s4=办公电话.getText(); String sql2=update number set 手机号码=+s2+ where 姓名=+name+; String sql3=update number set 家庭电话=+s3+ where 姓名=+name+; String sql4=update number set 办公电话=+s4+ where 姓名=+name+; try Connection con=DriverManager.getConnection(url,
19、null); Statement stmt=con.createStatement(); stmt.executeUpdate(sql2); stmt.executeUpdate(sql3); stmt.executeUpdate(sql4); stmt.close(); con.close(); catch(SQLException exx)System.out.println(exx.getMessage(); if(e.getSource()=重置) 姓名.setText(null); 手机号码.setText(null); 家庭电话.setText(null); 办公电话.setTex
20、t(null); 精确查询模块主要代码 find.java public void actionPerformed(ActionEvent e) String name=; String url=jdbc:odbc:diaoyou1; String s1=; String s2=; String s3=; String s4=; if(e.getSource()=查询) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException eee) name=姓名.getText(); S
21、tring sql=select * from number where 姓名=+name+; if(name!=) try Connection con=DriverManager.getConnection(url,null); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery(sql); while(rs.next() s1=rs.getString(姓名); s2=rs.getString(手机号码); s3=rs.getString(家庭电话); s4=rs.getString(办公电话); st
22、mt.close(); con.close(); catch(SQLException ex)System.out.println(ex.getMessage(); if(s1!=null) 姓名.setText(s1); 手机号码.setText(s2); 家庭电话.setText(s3); 办公电话.setText(s4); if(e.getSource()=删除) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException eee) name=姓名.getText(); S
23、tring sql=delete from number where 姓名=+name+; try Connection con=DriverManager.getConnection(url,null); Statement stmt=con.createStatement(); stmt.executeUpdate(sql); stmt.close(); con.close(); catch(SQLException eex)System.out.println(eex.getMessage(); 姓名.setText(null); 手机号码.setText(null); 家庭电话.set
24、Text(null); 办公电话.setText(null); 整体查询模块完整代码 ztcx.javapublic class ztcx extends JPanel implements ActionListener JTextArea ruslt; JButton 查询; String name; String sql=; JScrollPane scroll; public ztcx() ruslt=new JTextArea(10,28); ruslt.setEditable(false); 查询=new JButton(查询); scroll=new JScrollPane(rus
25、lt); Box box2=Box.createHorizontalBox(); box2.add(查询); Box box3=Box.createHorizontalBox(); box3.add(scroll); Box boxH=Box.createVerticalBox(); boxH.add(box2); boxH.add(box3); 查询.addActionListener(this); JPanel pCenter=new JPanel(); pCenter.add(boxH); setLayout(new BorderLayout(); add(pCenter,BorderL
26、ayout.CENTER); validate(); public void actionPerformed(ActionEvent e) String url=jdbc:odbc:diaoyou1; String s1=; String s2=; String s3=; String s4=; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException eee) if(e.getSource()=查询) try Connection con=DriverManager.getC
27、onnection(url,null); Statement stmt=con.createStatement(); sql=select * from number; ResultSet rs=stmt.executeQuery(sql); ruslt.setText(姓 名 手机号码 家庭电话 办公电话n); if(!rs.next() ruslt.setText(无记录); else do s1=rs.getString(姓名); s2=rs.getString(手机号码); s3=rs.getString(家庭电话); s4=rs.getString(办公电话); ruslt.appe
28、nd(s1); ruslt.append(s2); ruslt.append(s3); ruslt.append(s4+n); while(rs.next(); stmt.close(); con.close(); catch(SQLException ex)System.out.println(ex.getMessage(); 模糊查询模块完整代码 mhcx.javapublic class mhcx extends JPanel implements ActionListener JTextArea ruslt; JTextField tj; JButton 查询; String name; String sql=; JLa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1