Java程序设计课程设计报告之学生信息管理系统(附全部源码)(共45页).doc

上传人:飞****2 文档编号:14078975 上传时间:2022-05-02 格式:DOC 页数:45 大小:477KB
返回 下载 相关 举报
Java程序设计课程设计报告之学生信息管理系统(附全部源码)(共45页).doc_第1页
第1页 / 共45页
Java程序设计课程设计报告之学生信息管理系统(附全部源码)(共45页).doc_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《Java程序设计课程设计报告之学生信息管理系统(附全部源码)(共45页).doc》由会员分享,可在线阅读,更多相关《Java程序设计课程设计报告之学生信息管理系统(附全部源码)(共45页).doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上计算机学院课程设计专 业: 计算机科学与技术 课程名称: JAVA程序设计 课题名称: 学生信息管理系统 教 师: 学 号: 姓 名: 20010年 6 月 25 日目 录 专心-专注-专业 第一章 总体设计1.1本系统的主要功能 本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。1.2系统包含的类及类之间的关系本系统共包括7个Java源文件和3个辅助文件。类之间的关系如图1-1所示MainWindowInputStudentModifyStudenDeleteStudentQueryStudentDatabaseImage

2、IconStuBeanFileStuBeanDatabaseFileStuBeanDatabaseStuBeanDatabase图 1-1 类之间的关系图1.3 Java源文件及其功能1.MainWindow.java该类负责创建学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。 2.InputStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供录入学生基本信息的界面。 3.ModifyStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供修改学生基本信息的界面。4.DeleteStudent.java该类创建

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

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

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

6、串(SQL语句、驱动)Stringsql strurl(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注Database无类型创建Database对象构造方法OpenConn无类型打开数据库连接无executeQueryResultSet执行SQL查询语句,返回结果集RS返回ResultSet类型结果集executeUpdate无类型执行SQL更新语句无closeStmt无类型关闭当前的Statement对象无closeConn无类型关闭数据库连接无(3)源代码见文件Database.java2.3类StuBean(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名

7、称返回结果的接口ResultSetrs字符串(SQL语句 数据库属性)Stringsql sNum sName sSex sMajor sGrade sBirth创建Database对象DatabaseDB(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注stuAdd添加学生信息无stuModify修改学生信息无stuDel删除学生信息无stuSearchString根据学号查询学生信息返回ResultSet类型结果集(3)源代码见文件StuBean.java2.4类InputStudent(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型

8、StuBeanaddStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth组合框JComboBoxSmajor单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonEntry reset(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注InputStudent无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文件InputStudent.java2.5类ModifyStudent(1

9、)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBeanmodifyStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth组合框JComboBoxSmajor单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonentry reset start(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注ModifyStudent无类型创建修改学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类

10、型清除文本框内容无(3)源代码见文件Modify.java2.6类QueryStudent(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBean queryStu文本域JTextFieldSnum Sname Sgrade Sbirth Smajor启动并执行打印作业PrintJobpri单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonquert print面板(查询结果之后)JPanelmessPanel(2)方法见表2-4表2-4 主要方法方法名称返回类型功能备注QueryStu

11、dent无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文件QueryStudent.java2.7类DeleteStudent(1)成员变量见表2-5表2-5 主要成员变量成员变量描述变量类型名称StuBean对象类型StuBeandelStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth Smajor单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtondel(2)方法见表2-4表2-4

12、 主要方法方法名称返回类型功能备注InputStudent无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文件DeleteStudent.java第三章 功能测试及运行效果3.1 系统主界面图3-1 系统主窗口3.2 录入学生信息界面图3-2 学生信息录入界面3.3 查询学生信息界面图3-3学生信息查询界面3.4 修改学生信息界面 图3-4学生信息修改界面3.5 修改学生信息界面 3-5学生信息删除界面工作总结通过这次课程设计,我锻炼了自己的动手能力,巩固了对面向对象程序设计概念的理解和J

13、AVA的运用,初步掌握JAVA开发应用程序的基本方法,学习了对数据库的基本操作,能够对Microsoft Acess的表做基本处理,提高了自己综合运用所学知识的能力。深刻认识到了基本知识的重要性。现在我知道了,不知道函数怎么来的,根本什么也做不了。除非照抄别人的代码,那样也根本不可能知道功能是如何实现的。现在很有必要加强基本语法知识的学习了。JAVA应用性很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合

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

15、提高自己!经过几个星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如数据库的连接,SQL语言的书写格式,全局参数的传递等。由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创建都需要从整体上考虑设计。这些都有待以后进一步改进。回顾起此次JAVA课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上

16、所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。参考文献1 耿祥义,张跃平.Java 2实用教程(第三版)M.北京:清华大学出版社,20062 (美)霍斯特曼(HorstmannC.S.)&nbs. Java2核心技术(卷高级特性原书第7版)/Sun公司核心技术丛书 M.机械工业出版社, 2006全部源码(此源码不在报告中,为了看着方便,附在了后面)。Database.javapackage Stu;impo

17、rt java.sql.*;/* * 连接数据库的类 */public class Database private Statement stmt=null;ResultSet rs=null;private Connection conn=null;String sql;String strurl=jdbc:odbc:scmanage;public Database()/* * 打开数据库连接 */public void OpenConn()throws ExceptiontryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn=DriverM

18、anager.getConnection(strurl);catch(Exception e) System.err.println(OpenConn:+e.getMessage();/* * 执行SQL查询语句,返回结果集RS */public ResultSet executeQuery(String sql)stmt = null;rs=null;trystmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery(sql);catch

19、(SQLException e)System.err.println(executeQuery:+e.getMessage();return rs;/* * 执行SQL更新语句 */public void executeUpdate(String sql)stmt=null;rs=null;trystmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);stmt.executeQuery(sql);mit();catch(SQLException e)System.err.pr

20、intln(executeUpdate:+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

21、 toGBK(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;DeleteStudent.javapackage Stu;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DeleteStudent extends JPanel implements ActionList

22、ener/* * */private static final long serialVersionUID = 1L;/* * 删除界面 */StuBean queryStu = new StuBean();StuBean delStu = new StuBean();JTextField Snum,Sname,Smajor,Sgrade,Sbirth;JRadioButton boy,girl;JButton del;ButtonGroup group = null;public DeleteStudent()Snum = new JTextField(20);del = new JButt

23、on(删除);Snum.addActionListener(this);del.addActionListener(this);Sname = new JTextField(20);Sname.setEditable(false);Smajor = new JTextField(20);Smajor.setEditable(false);Sgrade = new JTextField(20);Sgrade.setEditable(false);Sbirth = new JTextField(20);Sbirth.setEditable(false);group = new ButtonGrou

24、p();boy = new JRadioButton(男,false);girl = new JRadioButton(女,false);group.add(boy);group.add(girl);Box box0 = Box.createHorizontalBox();JLabel label = new JLabel(学生信息删除,JLabel.CENTER);label.setFont(new Font(黑体, Font.BOLD, 25);box0.add(label);Box box1 = Box.createHorizontalBox();box1.add(new JLabel(

25、学号:,JLabel.CENTER);box1.add(Snum);box1.add(del);Box box2 = Box.createHorizontalBox();box2.add(new JLabel(姓名:,JLabel.CENTER);box2.add(Sname);Box box3 = Box.createHorizontalBox();box3.add(new JLabel(性别:,JLabel.CENTER);box3.add(boy);box3.add(girl);Box box4 = Box.createHorizontalBox();box4.add(new JLabe

26、l(专业:,JLabel.CENTER);box4.add(Smajor);Box box5 = Box.createHorizontalBox();box5.add(new JLabel(年级:,JLabel.CENTER);box5.add(Sgrade);Box box6 = Box.createHorizontalBox();box6.add(new JLabel(出生:,JLabel.CENTER);box6.add(Sbirth);Box boxH = Box.createVerticalBox();boxH.add(box0);boxH.add(box1);boxH.add(bo

27、x2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue();JPanel messPanel = new JPanel();messPanel.add(boxH);messPanel.setBackground(Color.YELLOW);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();setVisible(true);/处理事件public void act

28、ionPerformed(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 = 该生信息已存在,您想删除该生的基本信息吗?;int yes = JOptionPane.showConfirmDialog(this,q,确认,JOptionPane.YES_NO_OPTION,JOptionP

29、ane.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_N

30、O_OPTION,JOptionPane.QUESTION_MESSAGE);if(ok = JOptionPane.YES_OPTION)delStu.stuDel(number);else if(ok = JOptionPane.NO_OPTION)Snum.setText(null);Sname.setText(null);Smajor.setText(null);Sgrade.setText(null);Sbirth.setText(null);else if(yes = JOptionPane.NO_OPTION)Snum.setText(null);Sname.setText(nu

31、ll);Smajor.setText(null);Sgrade.setText(null);Sbirth.setText(null); elseJOptionPane.showMessageDialog(this,该学号不存在!,警告, JOptionPane.WARNING_MESSAGE);InputStudent.javapackage Stu;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class InputStudent extends JPanel im

32、plements ActionListener/* * */private static final long serialVersionUID = 1L;/* * 录入界面 */StuBean addStu = new StuBean();StuBean queryStu = new StuBean();/设置“录入界面”窗口JTextField Snum,Sname,Sgrade,Sbirth;JComboBox Smajor;JRadioButton boy,girl;ButtonGroup group = null;JButton entry,reset;public InputStu

33、dent()Snum = new JTextField(20);Sname = new JTextField(20);Smajor = new JComboBox();tryFile f = new File(专业.txt);FileReader fr = new FileReader(f.getPath();BufferedReader br = new BufferedReader(fr);String s = null;while(s= br.readLine()!=null)Smajor.addItem(s);fr.close();br.close();catch(IOExceptio

34、n exp)Sgrade = new JTextField(20);Sbirth = new JTextField(20);group = new ButtonGroup();boy = new JRadioButton(男,true);girl = new JRadioButton(女,false);group.add(boy);group.add(girl);entry = new JButton(录入);reset = new JButton(重置);entry.addActionListener(this);reset.addActionListener(this);Box box0

35、= Box.createHorizontalBox();JLabel label = new JLabel(学生信息录入,JLabel.CENTER);label.setFont(new Font(黑体, Font.BOLD, 25);box0.add(label);Box box1 = Box.createHorizontalBox();box1.add(new JLabel(学号:,JLabel.CENTER);box1.add(Snum);Box box2 = Box.createHorizontalBox();box2.add(new JLabel(姓名:,JLabel.CENTER)

36、;box2.add(Sname);Box box3 = Box.createHorizontalBox();box3.add(new JLabel(性别:,JLabel.CENTER);box3.add(boy);box3.add(girl);Box box4 = Box.createHorizontalBox();box4.add(new JLabel(专业:,JLabel.CENTER);box4.add(Smajor);Box box5 = Box.createHorizontalBox();box5.add(new JLabel(年级:,JLabel.CENTER);box5.add(

37、Sgrade);Box box6 = Box.createHorizontalBox();box6.add(new JLabel(出生:,JLabel.CENTER);box6.add(Sbirth);Box boxH = Box.createVerticalBox();boxH.add(box0);boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue();JPanel putButton = new JP

38、anel();putButton.add(entry);putButton.add(reset);JPanel messPanel = new JPanel();messPanel.add(boxH);messPanel.setBackground(Color.red);putButton.setBackground(Color.cyan);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);add(putButton,BorderLayout.SOUTH);validate();setVisible(true);/事

39、件处理public void actionPerformed(ActionEvent e) if(e.getSource() = entry)String number = ;number = Snum.getText();String rs = new String4;rs = queryStu.stuSearch(number);if(rs != null)String w = 该生基本信息已存在,请到修改页面修改!;JOptionPane.showMessageDialog(this, w, 警告, JOptionPane.WARNING_MESSAGE);elseString name

40、 = Sname.getText();String major = (String)Smajor.getSelectedItem();String grade = Sgrade.getText();String birth = Sbirth.getText();String sex = null;if(boy.isSelected()sex = boy.getText();if(girl.isSelected()sex = girl.getText();addStu.stuAdd(number, name, sex, major, grade, birth);else if(e.getSource() = reset)clearMess();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁