Java课程设计报告_学生信息管理系统_第1页
Java课程设计报告_学生信息管理系统_第2页
Java课程设计报告_学生信息管理系统_第3页
Java课程设计报告_学生信息管理系统_第4页
Java课程设计报告_学生信息管理系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录 第一章 总体设计1本系统的主要功能1系统包含的类及类之间的关系11.3 Java源文件及其功能1相关文件及其功能2第二章 详细设计3主类MainWindow3类Database4类StuBean5类InputStudent6类ModifyStudent7类QueryStudent8类DeleteStudent9第三章 功能测试及运行效果103.1 系统主界面103.2 录入学生信息界面113.3 查询学生信息界面113.4 修改学生信息界面123.5 修改学生信息界面12工作总结13参考文献14 第一章 总体设计 本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询

2、、删除学生信息的功能。本系统共包括7个Java源文件和3个辅助文件。类之间的关系如图1-1所示MainWindowInputStudentModifyStudenDeleteStudentQueryStudentDatabaseImageIconStuBeanFileStuBeanDatabaseFileStuBeanDatabaseStuBeanDatabase图 1-1 类之间的关系图 Java源文件及其功能1.MainWindow.java该类负责创立学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。 2.InputStudent.java该类创立的对象是MainWin

3、dow类的重要成员之一,负责提供录入学生根本信息的界面。 3.ModifyStudent.java该类创立的对象是MainWindow类的重要成员之一,负责提供修改学生根本信息的界面。该类创立的对象是MainWindow类的重要成员之一,负责提供删除学生根本信息的界面。该类创立的对象是MainWindow类的重要成员之一,负责提供查询学生根本信息以及打印根本信息的界面。该类负责提供翻开与关闭数据库连接的功能。该类负责数据库操作,包括对学生信息数据库的添加、查询、修改、删除。1.4相关文件及其功能1.为主窗口的背景图片,MainWidow需要调用该文件。 2.icon.jpg该文件是窗口最小化时

4、的窗口图标,MainWidow需要调用该文件。 3.专业.txt该文件为专业组合的组合键提供下拉菜单的内容,InputStudent与ModifyStudent需要调用该文件。4该文件为本程序数据源,负责保存学生根本信息,Database连接到该数据库第二章 详细设计MainWindow1成员变量见表2-1表2-1 主要成员变量属性成员变量描述变量类型名称面板InputStudentins面板ModifyStudentmos面板DeleteStudentdes面板QueryStudentqus菜单栏JButtonBarbar菜单组JMenumenuSystem menuStu菜单项JMenuI

5、temitemWel itemExit itemSearch itemAdd itemEdit itemDelete布局管理器CardLayoutcard2方法见表2-2表2-2 主要方法方法名称返回类型功能备注MainWindow无类型创立窗口构造方法actionPerformed无类型处理响应事件继承自父类抽象方法main无类型执行程序程序的主函数3源代码见文件Database1成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称执行SQL语句的接口Statementstmt返回结果的接口ResultSetrs数据库连接接口Connectionconn字符串SQL语句、驱动St

6、ringsql strurl2方法见表2-4表2-4 主要方法方法名称返回类型功能备注Database无类型创立Database对象构造方法OpenConn无类型翻开数据库连接无executeQueryResultSet执行SQL查询语句,返回结果集RS返回ResultSet类型结果集executeUpdate无类型执行SQL更新语句无closeStmt无类型关闭当前的Statement对象无closeConn无类型关闭数据库连接无3源代码见文件Database.java1成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称返回结果的接口ResultSetrs字符串SQL语句 数据

7、库属性Stringsql sNum sName sSex sMajor sGrade sBirth创立Database对象DatabaseDB2方法见表2-4表2-4 主要方法方法名称返回类型功能备注stuAdd添加学生信息无stuModify修改学生信息无stuDel删除学生信息无stuSearchString根据学号查询学生信息返回ResultSet类型结果集1成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBeanaddStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth组合框JComboBoxSm

8、ajor单项选择框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonEntry reset2方法见表2-4表2-4 主要方法方法名称返回类型功能备注InputStudent无类型创立录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型去除文本框内容无3源代码见文件InputStudent.java1成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBeanmodifyStu queryStu文本域JTextFieldSnum Sname S

9、grade Sbirth组合框JComboBoxSmajor单项选择框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonentry reset start2方法见表2-4表2-4 主要方法方法名称返回类型功能备注ModifyStudent无类型创立修改学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型去除文本框内容无3源代码见文件Modify.java类QueryStudent1成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBean qu

10、eryStu文本域JTextFieldSnum Sname Sgrade Sbirth Smajor启动并执行打印作业PrintJobpri单项选择框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonquert print面板查询结果之后JPanelmessPanel2方法见表2-4表2-4 主要方法方法名称返回类型功能备注QueryStudent无类型创立录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型去除文本框内容无3源代码见文件QueryStudent.java类Dele

11、teStudent1成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBeandelStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth Smajor单项选择框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtondel2方法见表2-4表2-4 主要方法方法名称返回类型功能备注InputStudent无类型创立录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型去除文本框内容无3源代码见文件Dele

12、teStudent.java工作总结通过这次课程设计,我锻炼了自己的动手能力,稳固了对面向对象程序设计概念的理解和JAVA的运用,初步掌握JAVA开发应用程序的根本方法,学习了对数据库的根本操作,能够对Microsoft Acess的表做根本处理,提高了自己综合运用所学知识的能力。深刻认识到了根本知识的重要性。现在我知道了,不知道函数怎么来的,根本什么也做不了。除非照抄别人的代码,那样也根本不可能知道功能是如何实现的。现在很有必要加强根本语法知识的学习了。JAVA应用性很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的缺乏,许多程序看似简单,真正去做才知道知识并没有

13、自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。其中对JAVA图像用户界面、JAVA数据库JDBC的运用、内部匿名类等JAVA知识有了更深的理解与应用。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。提高了学习计算机的兴趣,增强了信心。在本次课程设计中,我遇到了很多的困难,这些困难搞得我焦头烂额,几度试图放弃,但最终坚持着一一把困难克服掉

14、了。每当克服一个困难,都非常的兴奋,这些都是自己努力的结果。现在,我有信心面对接下来的挑战,在不断的实践中锻炼自己,提高自己!经过几个星期的设计和开发,系统根本开发完毕。在本次课程设计中困难遇到不少,比方数据库的连接,SQL语言的书写格式,全局参数的传递等。由于设计时间较短,所以该系统还有许多不尽如人意的地方,比方用户界面不够美观,功能不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创立都需要从整体上考虑设计。这些都有待以后进一步改进。

15、回忆起此次JAVA课程设计,我仍感慨颇多,学到了很多的东西。同时不仅稳固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。参考文献1 耿祥义,张跃平.Java 2实用教程第三版M.北京:清华大学出版社,20062 美霍斯特曼Horstmann C.S.&nbs. Java2核心技术(卷高级特性原书第7版)/Sun公司核心技术丛书 M.机械工业出版社,

16、 20064. 系统的主要源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class MainWindow extends JFrame implements ActionListener InputStudent ins;ModifyStudent mos;QueryStudent qus;DeleteStudent des;/ 建立菜单栏JMenuBar bar;/ 建立“系统管理菜单组JMenu menuSystem;JMenuItem itemExit;J

17、MenuItem itemWel;/ 建立“学生管理菜单组JMenu menuStu;JMenuItem itemSearch;JMenuItem itemAdd;JMenuItem itemEdit;JMenuItem itemDelete;File file = null;CardLayout card;JLabel label = null;JPanel pCenter;public MainWindow() / 事件处理public void actionPerformed(ActionEvent e) /返回欢迎界面if(e.getSource() = itemWel)int ok

18、= JOptionPane.showConfirmDialog(this, "确认返回吗?", "确认对话框",JOptionPane.YES_NO_OPTION);if (ok = JOptionPane.YES_OPTION)card.show(pCenter,"欢迎界面");/退出else if (e.getSource() = itemExit) int n = JOptionPane.showConfirmDialog(this, "确认退出吗?", "确认对话框",JOptionPa

19、ne.YES_NO_OPTION);if (n = JOptionPane.YES_OPTION)System.exit(0); /录入else if (e.getSource() = itemAdd) ins.clearMess();card.show(pCenter, "录入界面"); /修改else if (e.getSource() = itemEdit) mos.clearMess();card.show(pCenter, "修改界面");/查询else if (e.getSource() = itemSearch) qus.clearMess

20、();card.show(pCenter,"查询界面"); /删除else if (e.getSource() = itemDelete) card.show(pCenter, "删除界面");public static void main(String args) new MainWindow(); import java.sql.*;/连接数据库的类public class Database private Statement stmt=null;ResultSet rs=null;private Connection conn=null;Strin

21、g sql;String strurl="jdbc:odbc:scmanage"public Database() /翻开数据库连接public void OpenConn()throws ExceptiontryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection(strurl);catch(Exception e) System.err.println("OpenConn:"+e.getMessage();/执行SQL查询语句

22、,返回结果集RSpublic ResultSet executeQuery(String sql)/执行SQL更新语句 public void executeUpdate(String sql)stmt=null;rs=null;trystmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);stmt.executeQuery(sql);conn mit();catch(SQLException e)System.err.println("executeUpdate:

23、"+e.getMessage(); public void closeStmt()trystmt.close();catch(SQLException e)System.err.println("closeStmt:"+e.getMessage(); /关闭数据库连接public void closeConn()tryconn.close();catch(SQLException ex)System.err.println("aq.closeConn:"+ex.getMessage();/转换编码public static String toG

24、BK(String str)try if(str=null)str = ""elsestr=new String(str.getBytes("ISO-8859-1"),"GBK"); catch (Exception e) System.out.println(e);return str;import java.sql.*; import javax.swing.*; /有关学生信息数据库操作的类public class StuBean String sql;ResultSet rs = null;String sNum;String

25、 sName;String sSex;String sMajor;String sGrade;String sBirth;/添加学生信息 public void stuAdd(String num, String name, String sex,String major, String grade, String birth)/ 修改学生信息 public void stuModify(String num, String name, String sex,String major, String grade, String birth)/删除学生信息 public void stuDel(

26、String num)/ 根据学号查询学生信息 public String stuSearch(String num)import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class QueryStudent extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L;/ 查询界面PrintJob pri;Graphics g = null;StuBean

27、queryStu = new StuBean();JTextField Snum,Sname,Smajor,Sgrade,Sbirth;JRadioButton boy,girl;JButton query,print;ButtonGroup group = null;JPanel messPanel;public QueryStudent()/事件处理public void actionPerformed(ActionEvent e) public void clearMess()Snum.setText(null);Sname.setText(null);Smajor.setText(nu

28、ll);Sgrade.setText(null);Sbirth.setText(null);import java.awt.*;import java.io.*;import javax.swing.*;public class ModifyStudent extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L;/修改界面StuBean modStu = new StuBean();StuBean queryStu = new StuBean();JTextField Snu

29、m,Sname,Sgrade,Sbirth;JComboBox Smajor;JRadioButton boy,girl;ButtonGroup group = null;JButton start,entry,reset;JComboBox oldMess;public ModifyStudent()public void actionPerformed(ActionEvent e) String number = Snum.getText();String rs = new String4;rs = queryStu.stuSearch(number);if(e.getSource() =

30、 start|e.getSource() = Snum)oldMess.removeAllItems();if(rs != null)String q = "该生信息已存在,您想修改他她的根本信息吗?"JOptionPane.showMessageDialog(this,q,"警告" ,JOptionPane.QUESTION_MESSAGE);entry.setEnabled(true);oldMess.addItem("姓名:"+rs0);oldMess.addItem("专业:"+rs2);oldMess.a

31、ddItem("年级:"+rs3);oldMess.addItem("生日:"+rs4); if(rs1.equals("男") boy.setSelected(true); else girl.setSelected(true);elseentry.setEnabled(false);JOptionPane.showMessageDialog(this,"该学号不存在无法修改!","警告", JOptionPane.WARNING_MESSAGE);clearMess();else if(e.

32、getSource() = entry)if(rs != null)String m = "根本信息将被修改!"int ok = JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(ok = JOptionPane.YES_OPTION)String name = Sname.getText();String major = (String)Smajor.getSelectedItem();String g

33、rade = Sgrade.getText();String birth = Sbirth.getText();String sex = null;if(boy.isSelected()sex = boy.getText();if(girl.isSelected()sex = girl.getText();modStu.stuModify(number, name, sex, major, grade, birth);else if(ok = JOptionPane.NO_OPTION)entry.setEnabled(true);elseString w = "该学号没有根本信息,

34、不能修改!"JOptionPane.showMessageDialog(this, w, "警告",JOptionPane.WARNING_MESSAGE);entry.setEnabled(false);clearMess();else if(e.getSource() = reset)clearMess();entry.setEnabled(false);public void clearMess()Snum.setText(null);Sname.setText(null);Sgrade.setText(null);Sbirth.setText(null);

35、oldMess.removeAllItems();import java.awt.*; import java.awt.event.*;import javax.swing.*; import java.io.*;public class InputStudent extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L; /录入界面StuBean addStu = new StuBean();StuBean queryStu = new StuBean();/设置“录入界面窗

36、口JTextField Snum,Sname,Sgrade,Sbirth;JComboBox Smajor;JRadioButton boy,girl;ButtonGroup group = null;JButton entry,reset;public InputStudent()/事件处理public void actionPerformed(ActionEvent e) public void clearMess()Snum.setText(null);Sname.setText(null);Sgrade.setText(null);Sbirth.setText(null);import

37、 java.awt.*;import java.awt.event.*;import javax.swing.*; import java.util.*;public class QueryStudent extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L;/ 查询界面PrintJob pri; Graphics g = null;StuBean queryStu = new StuBean();JTextField Snum,Sname,Smajor,Sgrade,Sb

38、irth;JRadioButton boy,girl;JButton query,print;ButtonGroup group = null;JPanel messPanel;public QueryStudent()/事件处理public void actionPerformed(ActionEvent e) public void clearMess()Snum.setText(null);Sname.setText(null);Smajor.setText(null);Sgrade.setText(null);Sbirth.setText(null);import java.awt.*

39、;import java.awt.event.*;import javax.swing.*;public class DeleteStudent extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L;/删除界面StuBean queryStu = new StuBean();StuBean delStu = new StuBean();JTextField Snum,Sname,Smajor,Sgrade,Sbirth;JRadioButton boy,girl;JButt

40、on del;ButtonGroup group = null;public DeleteStudent()/处理事件public void actionPerformed(ActionEvent e) if(e.getSource() = del|e.getSource() = Snum)String number = ""number = Snum.getText();String rs = new String4;rs = queryStu.stuSearch(number);if(rs != null)String q = "该生信息已存在,您想删除该生的

41、根本信息吗?"int yes = JOptionPane.showConfirmDialog(this,q,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(yes = JOptionPane.YES_OPTION)Sname.setText(rs0); Smajor.setText(rs2);Sgrade.setText(rs3); Sbirth.setText(rs4);if(rs1.equals("男")boy.setSelected(true);else girl.setSelected(true);String m = "确定要删除该学号及全部信息吗?"int ok = JOptionPane.showConfirmDialog(this,m, "确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(ok = JOptionPane.YES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论