Java程序设计课程设计报告之学生信息管理系统附全部源码.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 课程设计 报告 学生 信息管理 系统 全部 源码
- 资源描述:
-
Java程序设计课程设计报告之学生信息管理系统附全部源码 63 2020年4月19日 文档仅供参考 计算机学院课程设计 专 业: 计算机科学与技术 课程名称: JAVA程序设计 课题名称: 学生信息管理系统 教 师: 学 号: 姓 名: 0年 6 月 25 日 目 录 第一章 总体设计 1 1.1本系统的主要功能 1 1.2系统包含的类及类之间的关系 1 1.3 Java源文件及其功能 1 1.4相关文件及其功能 2 第二章 详细设计 3 2.1主类MainWindow 3 2.2类Database 4 2.3类StuBean 5 2.4类InputStudent 6 2.5类ModifyStudent 7 2.6类QueryStudent 8 2.7类DeleteStudent 9 第三章 功能测试及运行效果 10 3.1 系统主界面 10 3.2 录入学生信息界面 11 3.3 查询学生信息界面 11 3.4 修改学生信息界面 12 3.5 修改学生信息界面 12 工作总结 13 参考文献 14 第一章 总体设计 1.1本系统的主要功能 本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。 1.2系统包含的类及类之间的关系 本系统共包括7个Java源文件和3个辅助文件。类之间的关系如图1-1所示 Main Window Input Student Modify Studen Delete Student Query Student Database Image Icon StuBean File StuBean Database File StuBean Database StuBean Database 图 1-1 类之间的关系图 1.3 Java源文件及其功能 1.MainWindow.java 该类负责创立学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。 2.InputStudent.java 该类创立的对象是MainWindow类的重要成员之一,负责提供录入学生基本信息的界面。 3.ModifyStudent.java 该类创立的对象是MainWindow类的重要成员之一,负责提供修改学生基本信息的界面。 4.DeleteStudent.java 该类创立的对象是MainWindow类的重要成员之一,负责提供删除学生基本信息的界面。 5.QueryStudent.java 该类创立的对象是MainWindow类的重要成员之一,负责提供查询学生基本信息以及打印基本信息的界面。 6.Database.java 该类负责提供打开与关闭数据库连接的功能。 7.StuBean.java 该类负责数据库操作,包括对学生信息数据库的添加、查询、修改、删除。 1.4相关文件及其功能 1.welcome.jpg 为主窗口的背景图片,MainWidow需要调用该文件。 2.icon.jpg 该文件是窗口最小化时的窗口图标,MainWidow需要调用该文件。 3.专业.txt 该文件为专业组合的组合键提供下拉菜单的内容,InputStudent与ModifyStudent需要调用该文件。 4 scmanage.mdb 该文件为本程序数据源,负责保存学生基本信息,Database连接到该数据库 第二章 详细设计 2.1主类MainWindow (1)成员变量见表2-1 表2-1 主要成员变量(属性) 成员变量描述 变量类型 名称 面板 InputStudent ins 面板 ModifyStudent mos 面板 DeleteStudent des 面板 QueryStudent qus 菜单栏 JButtonBar bar 菜单组 JMenu menuSystem menuStu 菜单项 JMenuItem itemWel itemExit itemSearch itemAdd itemEdit itemDelete 布局管理器 CardLayout card (2)方法见表2-2 表2-2 主要方法 方法名称 返回类型 功能 备注 MainWindow 无类型 创立窗口 构造方法 actionPerformed 无类型 处理响应事件 继承自父类抽象方法 main 无类型 执行程序 程序的主函数 (3)源代码见文件MainWindow.java 2.2类Database (1)成员变量见表2-3 表2-3 主要成员变量 成员变量描述 变量类型 名称 执行SQL语句的接口 Statement stmt 返回结果的接口 ResultSet rs 数据库连接接口 Connection conn 字符串(SQL语句、驱动) String sql strurl (2)方法见表2-4 表2-4 主要方法 方法名称 返回类型 功能 备注 Database 无类型 创立Database对象 构造方法 OpenConn 无类型 打开数据库连接 无 executeQuery ResultSet 执行SQL查询语句,返回结果集RS 返回ResultSet类型结果集 executeUpdate 无类型 执行SQL更新语句 无 closeStmt 无类型 关闭当前的Statement对象 无 closeConn 无类型 关闭数据库连接 无 (3)源代码见文件Database.java 2.3类StuBean (1)成员变量见表2-5 表2-5 主要成员变量 成员变量描述 变量类型 名称 返回结果的接口 ResultSet rs 字符串(SQL语句 数据库属性) String sql sNum sName sSex sMajor sGrade sBirth 创立Database对象 Database DB (2)方法见表2-4 表2-4 主要方法 方法名称 返回类型 功能 备注 stuAdd 添加学生信息 无 stuModify 修改学生信息 无 stuDel 删除学生信息 无 stuSearch String[] 根据学号查询学生信息 返回ResultSet类型结果集 (3)源代码见文件StuBean.java 2.4类InputStudent (1)成员变量见表2-5 表2-5 主要成员变量 成员变量描述 变量类型 名称 StuBean对象类型 StuBean addStu queryStu 文本域 JTextField Snum Sname Sgrade Sbirth 组合框 JComboBox Smajor 单选框 ButtonGroup boy,girl 按钮多斥作用域 ButtonGroup group 按钮 JButton Entry reset (2)方法见表2-4 表2-4 主要方法 方法名称 返回类型 功能 备注 InputStudent 无类型 创立录入学生信息界面 构造方法 actionPerformed 无类型 处理响应事件 继承自父类抽象方法 clearMess 无类型 清除文本框内容 无 (3)源代码见文件InputStudent.java 2.5类ModifyStudent (1)成员变量见表2-5 表2-5 主要成员变量 成员变量描述 变量类型 名称 StuBean对象类型 StuBean modifyStu queryStu 文本域 JTextField Snum Sname Sgrade Sbirth 组合框 JComboBox Smajor 单选框 ButtonGroup boy,girl 按钮多斥作用域 ButtonGroup group 按钮 JButton entry reset start (2)方法见表2-4 表2-4 主要方法 方法名称 返回类型 功能 备注 ModifyStudent 无类型 创立修改学生信息界面 构造方法 actionPerformed 无类型 处理响应事件 继承自父类抽象方法 clearMess 无类型 清除文本框内容 无 (3)源代码见文件Modify.java 2.6类QueryStudent (1)成员变量见表2-5 表2-5 主要成员变量 成员变量描述 变量类型 名称 StuBean对象类型 StuBean queryStu 文本域 JTextField Snum Sname Sgrade Sbirth Smajor 启动并执行打印作业 PrintJob pri 单选框 ButtonGroup boy,girl 按钮多斥作用域 ButtonGroup group 按钮 JButton quert print 面板(查询结果之后) JPanel messPanel (2)方法见表2-4 表2-4 主要方法 方法名称 返回类型 功能 备注 QueryStudent 无类型 创立录入学生信息界面 构造方法 actionPerformed 无类型 处理响应事件 继承自父类抽象方法 clearMess 无类型 清除文本框内容 无 (3)源代码见文件QueryStudent.java 2.7类DeleteStudent (1)成员变量见表2-5 表2-5 主要成员变量 成员变量描述 变量类型 名称 StuBean对象类型 StuBean delStu queryStu 文本域 JTextField Snum Sname Sgrade Sbirth Smajor 单选框 ButtonGroup boy,girl 按钮多斥作用域 ButtonGroup group 按钮 JButton del (2)方法见表2-4 表2-4 主要方法 方法名称 返回类型 功能 备注 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学生信息删除界面 工作总结 经过这次课程设计,我锻炼了自己的动手能力,巩固了对面向对象程序设计概念的理解和JAVA的运用,初步掌握JAVA开发应用程序的基本方法,学习了对数据库的基本操作,能够对Microsoft Acess的表做基本处理,提高了自己综合运用所学知识的能力。 深刻认识到了基本知识的重要性。现在我知道了,不知道函数怎么来的,根本什么也做不了。除非照抄别人的代码,那样也根本不可能知道功能是如何实现的。现在很有必要加强基本语法知识的学习了。JAVA应用性很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。其中对JAVA图像用户界面、JAVA数据库JDBC的运用、内部匿名类等JAVA知识有了更深的理解与应用。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。 提高了学习计算机的兴趣,增强了信心。在本次课程设计中,我遇到了很多的困难,这些困难搞得我焦头烂额,几度试图放弃,但最终坚持着一一把困难克服掉了。每当克服一个困难,都非常的兴奋,这些都是自己努力的结果。现在,我有信心面对接下来的挑战,在不断的实践中锻炼自己,提高自己! 经过几个星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如数据库的连接,SQL语言的书写格式,全局参数的传递等。由于设计时间较短,因此该系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其它系统的关系,再到数据库设计、数据库结构实现及各功能模块的创立都需要从整体上考虑设计。这些都有待以后进一步改进。 回顾起此次JAVA课程设计,我仍感慨颇多,学到了很多的东西。同时不但巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,因此有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。 参考文献 [1] 耿祥义,张跃平.Java 2实用教程(第三版)[M].北京:清华大学出版社, [2] (美)霍斯特曼(Horstmann C.S.)&nbs. Java2核心技术(卷Ⅱ高级特性原书第7版)/Sun公司核心技术丛书 [M].机械工业出版社, 全部源码(此源码不在报告中,为了看着方便,附在了后面)。 Database.java package Stu; import 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 Exception{ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection(strurl); } catch(Exception e){ System.err.println("OpenConn:"+e.getMessage()); } } /** * 执行SQL查询语句,返回结果集RS */ public ResultSet executeQuery(String sql){ stmt = null; rs=null; try{ stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); } catch(SQLException e){ System.err.println("executeQuery:"+e.getMessage()); } return rs; } /** * 执行SQL更新语句 */ public void executeUpdate(String sql){ stmt=null; rs=null; try{ stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); stmt.executeQuery(sql); mit(); } catch(SQLException e){ System.err.println("executeUpdate:"+e.getMessage()); } } public void closeStmt(){ try{ stmt.close(); } catch(SQLException e){ System.err.println("closeStmt:"+e.getMessage()); } } /** * 关闭数据库连接 */ public void closeConn(){ try{ conn.close(); } catch(SQLException ex){ System.err.println("aq.closeConn:"+ex.getMessage()); } } /* *转换编码 */ public static String toGBK(String str){ try { if(str==null) str = ""; else str=new String(str.getBytes("ISO-8859-1"),"GBK"); } catch (Exception e) {System.out.println(e);} return str; } } DeleteStudent.java package Stu; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DeleteStudent extends JPanel implements ActionListener{ /** * */ 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 JButton("删除"); 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 ButtonGroup(); 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("学号:",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 JLabel("专业:",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(box2); 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 actionPerformed(ActionEvent e) { if(e.getSource() == del||e.getSource() == Snum){ String number = ""; number = Snum.getText(); String rs[] = new String[4]; rs = queryStu.stuSearch(number); if(rs != null){ String q = "该生信息已存在,您想删除该生的基本信息吗?"; int yes = JOptionPane.showConfirmDialog(this,q,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(yes == JOptionPane.YES_OPTION){ Sname.setText(rs[0]); Smajor.setText(rs[2]); Sgrade.setText(rs[3]); Sbirth.setText(rs[4]); if(rs[1].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_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(null); Smajor.setText(null); Sgrade.setText(null); Sbirth.setText(null); } } else{ JOptionPane.showMessageDialog(this,"该学号不存在!","警告", JOptionPane.WARNING_MESSAGE); } } } } InputStudent.java package Stu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class InputStudent extends JPanel implements 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 InputStudent(){ Snum = new JTextField(20); Sname = new JTextField(20); Smajor = new JComboBox(); try{ File 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(IOException 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 = 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)); 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(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 JPanel(); 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); } //事件处理 public void actionPerformed(ActionEvent e) { if(e.getSource() == entry){ String number = ""; number = Snum.getText(); String rs[] = new String[4]; rs = queryStu.stuSearch(number); if(rs != null){ String w = "该生基本信息已存在,请到修改页面修改!"; JOptionPane.showMessageDialog(this, w, "警告", JOptionPane.WARNING_MESSAGE); } else{ String name = Sname.getText(); String major = (String)Smajor.getSelectedItem(); Stri展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




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



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/11184203.html