




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机学院课程设计专业:计算机科学与技术课程名称:JAVA 程序设计课题名称 :学生信息管理系统教师:学号:姓名:20010年 6 月 25 日目录第一章 总体设计11.1 本系统的主要功能11.2 系统包含的类及类之间的关系11.3 Java源文件及其功能11.4 相关文件及其功能2第二章 详细设计32.1 主类 MainWindow32.2 类 Database42.3 类 StuBean52.4 类 InputStudent62.5 类 ModifyStudent72.6 类 QueryStudent82.7 类 DeleteStudent9第三章 功能测试及运行效果103.1系统主界面
2、103.2录入学生信息界面113.3查询学生信息界面113.4修改学生信息界面123.5修改学生信息界面12工作总结13参考文献14咸宁学院计算机科学与技术学院课程设计报告第一章总体设计1.1 本系统的主要功能本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。1.2 系统包含的类及类之间的关系本系统共包括 7 个 Java 源文件和 3 个辅助文件。类之间的关系如图1-1 所示MainWindowImageIconInputModifyDeleteQueryStudentStudenStudentStudentStuBeanDatabaseFileS
3、tuBeanDatabaseFileStuBeanDatabaseStuBeanDatabase图 1-1类之间的关系图1.3 Java源文件及其功能1.MainWindow.java该类负责创建学生信息管理系统的主窗口,该类还有main 方法,程序从该类开始执行。2.InputStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供录入学生基本信息的界面。3.ModifyStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供修改学生基本信息的界面。4.DeleteStudent.java该类创建的对象是MainWindow类的重要
4、成员之一,负责提供删除学生基本信息的界面。5.QueryStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供查询学生基本信息以及打印1咸宁学院计算机科学与技术学院课程设计报告基本信息的界面。6.Database.java该类负责提供打开与关闭数据库连接的功能。7.StuBean.java该类负责数据库操作,包括对学生信息数据库的添加、查询、修改、删除。1.4 相关文件及其功能1.welcome.jpg为主窗口的背景图片,MainWidow需要调用该文件。2.icon.jpg该文件是窗口最小化时的窗口图标,MainWidow需要调用该文件。3. 专业 .txt该
5、文件为专业组合的组合键提供下拉菜单的内容,InputStudent 与 ModifyStudent 需要调用该文件。4 scmanage.mdb该文件为本程序数据源,负责保存学生基本信息,Database 连接到该数据库2咸宁学院计算机科学与技术学院课程设计报告第二章详细设计2.1 主类 MainWindow(1)成员变量见表2-1表 2-1 主要成员变量(属性)成员变量描述变量类型名称面板InputStudentins面板ModifyStudentmos面板DeleteStudentdes面板QueryStudentqus菜单栏JButtonBarbar菜单组JMenumenuSystem
6、menuStu菜单项JMenuItemitemWel itemExit itemSearch itemAdditemEdit itemDelete布局管理器CardLayoutcard(2)方法见表 2-2表 2-2主要方法方法名称返回类型功能备注MainWindow无类型创建窗口构造方法actionPerformed无类型处理响应事件继承自父类抽象方法main无类型执行程序程序的主函数(3)源代码见文件MainWindow.java3咸宁学院计算机科学与技术学院课程设计报告2.2 类 Database(1)成员变量见表2-3表 2-3 主要成员变量成员变量描述变量类型名称执行 SQL语句的接
7、口Statementstmt返回结果的接口ResultSetrs数据库连接接口Connectionconn字符串( SQL语句、驱动)Stringsql strurl(2)方法见表 2-4表 2-4主要方法方法名称返回类型功能备注Database无类型创建 Database 对象构造方法OpenConn无类型打开数据库连接无executeQueryResultSet执行 SQL查询语句,返回结果集RS返回 ResultSet类型结果集executeUpdate无类型执行 SQL更新语句无closeStmt无类型关闭当前的Statement对象无closeConn无类型关闭数据库连接无( 3)源
8、代码见文件 Database.java4咸宁学院计算机科学与技术学院课程设计报告2.3 类 StuBean(1)成员变量见表2-5表 2-5 主要成员变量成员变量描述变量类型名称返回结果的接口ResultSetrs字符串( SQL语句数据库属性)Stringsql sNumsNamesSex sMajor sGrade sBirth创建 Database 对象DatabaseDB(2)方法见表 2-4表 2-4主要方法方法名称返回类型功能备注stuAdd添加学生信息无stuModify修改学生信息无stuDel删除学生信息无stuSearchString根据学号查询学生信息返回 ResultS
9、et类型结果集(3)源代码见文件StuBean.java5咸宁学院计算机科学与技术学院课程设计报告2.4 类 InputStudent(1)成员变量见表2-5表 2-5 主要成员变量成员变量描述变量类型名称StuBean 对象类型StuBeanaddStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth组合框JComboBoxSmajor单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonEntry reset(2)方法见表 2-4表 2-4主要方法方法名称返回类型功能备注InputStuden
10、t无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文件InputStudent.java6咸宁学院计算机科学与技术学院课程设计报告2.5 类 ModifyStudent(1)成员变量见表2-5表 2-5 主要成员变量成员变量描述变量类型名称StuBean 对象类型StuBeanmodifyStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth组合框JComboBoxSmajor单选框ButtonGroupboy,girl按钮多斥作用域Button
11、Groupgroup按钮JButtonentry reset start(2)方法见表 2-4表 2-4主要方法方法名称返回类型功能备注ModifyStudent无类型创建修改学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文件Modify.java7咸宁学院计算机科学与技术学院课程设计报告2.6 类 QueryStudent(1)成员变量见表2-5表 2-5 主要成员变量成员变量描述变量类型名称StuBean 对象类型StuBeanqueryStu文本域JTextFieldSnum Sname Sgr
12、ade Sbirth Smajor启动并执行打印作业PrintJobpri单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtonquert print面板(查询结果之后)JPanelmessPanel(2)方法见表 2-4表 2-4主要方法方法名称返回类型功能备注QueryStudent无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文件QueryStudent.java8咸宁学院计算机科学与技术学院课程设计报告2.7 类 Delete
13、Student(1)成员变量见表2-5表 2-5 主要成员变量成员变量描述变量类型名称StuBean 对象类型StuBeandelStu queryStu文本域JTextFieldSnum Sname Sgrade Sbirth Smajor单选框ButtonGroupboy,girl按钮多斥作用域ButtonGroupgroup按钮JButtondel(2)方法见表 2-4表 2-4主要方法方法名称返回类型功能备注InputStudent无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无(3)源代码见文
14、件DeleteStudent.java9咸宁学院计算机科学与技术学院课程设计报告第三章功能测试及运行效果3.1系统主界面图 3-1 系统主窗口10咸宁学院计算机科学与技术学院课程设计报告3.2录入学生信息界面图 3-2 学生信息录入界面3.3查询学生信息界面图 3-3 学生信息查询界面11咸宁学院计算机科学与技术学院课程设计报告3.4修改学生信息界面图 3-4 学生信息修改界面3.5修改学生信息界面3-5 学生信息删除界面12咸宁学院计算机科学与技术学院课程设计报告工作总结通过这次课程设计,我锻炼了自己的动手能力,巩固了对面向对象程序设计概念的理解和 JAVA的运用,初步掌握 JAVA开发应用
15、程序的基本方法,学习了对数据库的基本操作,能够对 Microsoft Acess 的表做基本处理,提高了自己综合运用所学知识的能力。深刻认识到了基本知识的重要性。现在我知道了,不知道函数怎么来的,根本什么也做不了。除非照抄别人的代码,那样也根本不可能知道功能是如何实现的。现在很有必要加强基本语法知识的学习了。 JAVA应用性很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。 从而懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能
16、真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。其中对 JAVA图像用户界面、 JAVA数据库 JDBC 的运用、内部匿名类等 JAVA知识有了更深的理解与应用。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。提高了学习计算机的兴趣,增强了信心。在本次课程设计中,我遇到了很多的困难,这些困难搞得我焦头烂额,几度试图放弃,但最终坚持着一一把困难克服掉了。每当克服一个困难,都非常的兴奋,这些都是自己努力的结果。现在,我有信心面对接下来的挑战,在不断的实践中锻炼自己,提高自己!经过几个
17、星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如数据库的连接, SQL语言的书写格式,全局参数的传递等。由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创建都需要从整体上考虑设计。这些都有待以后进一步改进。回顾起此次 JAVA课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的
18、知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。13咸宁学院计算机科学与技术学院课程设计报告参考文献1 耿祥义,张跃平 .Java 2 实用教程(第三版) M. 北京 : 清华大学出版社 ,20062 (美)霍斯特曼(Horstmann C.S. )&nbs. Java2 核心技术 ( 卷高级特性原书第 7 版)/Sun公司核心技术丛书 M. 机械工业出版社 , 200614咸宁学院计算机科学与技术学院课程设计报告
19、全部源码(此源码不在报告中,为了看着方便,附在了后面)。Database.javapackage 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 Excepti
20、ontryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection(strurl);catch(Exception e)System.err.println("OpenConn:"+e.getMessage();/* 执行 SQL查询语句,返回结果集 RS*/15咸宁学院计算机科学与技术学院课程设计报告public ResultSet executeQuery(String sql)stmt = null;rs=null;trystmt=conn.crea
21、teStatement(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;trystmt=conn.createStatement(ResultSet
22、.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR _READ_ONLY);stmt.executeQuery(sql);mit();catch(SQLException e)System.err.println("executeUpdate:"+e.getMessage();public void closeStmt()trystmt.close();16咸宁学院计算机科学与技术学院课程设计报告catch(SQLException e)System.err.println("closeStmt:"+e.getMessag
23、e();/* 关闭数据库连接*/public void closeConn()tryconn.close();catch(SQLException ex)System.err.println("aq.closeConn:"+ex.getMessage();/* 转换编码*/public static String toGBK(String str)try if(str=null)str = ""elsestr=new String(str.getBytes("ISO-8859-1"),"GBK");catch (E
24、xception e) System.out.println(e);return str;DeleteStudent.javapackage Stu;17咸宁学院计算机科学与技术学院课程设计报告import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DeleteStudent extends JPanel implements ActionListener /*/private static final long serialVersionUID = 1L;/* 删除界面*/StuBean quer
25、yStu = 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
26、= 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 JRadioButto
27、n("女",false);group.add(boy);group.add(girl);Box box0 = Box.createHorizontalBox();18咸宁学院计算机科学与技术学院课程设计报告JLabel label = new JLabel("学生信息删除 ",JLabel.CENTER);label.setFont(new Font("黑体 ", Font.BOLD, 25);box0.add(label);Box box1 = Box.createHorizontalBox();box1.add(new JLabe
28、l("学号: ",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 =
29、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); b
30、ox6.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 Border
31、Layout();19咸宁学院计算机科学与技术学院课程设计报告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 String4;rs = queryStu.stuSearch(number);if(rs
32、 != null)String q = "该生信息已存在,您想删除该生的基本信息吗?"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(&
33、quot;男")boy.setSelected(true);elsegirl.setSelected(true);String m = "确定要删除该学号及全部信息吗?"intok=JOptionPane.showConfirmDialog(this,m,"确 认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok = JOptionPane.YES_OPTION)delStu.stuDel(number);else if(ok = JOptionPane.NO_OPT
34、ION)Snum.setText(null);Sname.setText(null);Smajor.setText(null);Sgrade.setText(null);20咸宁学院计算机科学与技术学院课程设计报告Sbirth.setText(null);else if(yes = JOptionPane.NO_OPTION)Snum.setText(null);Sname.setText(null);Smajor.setText(null);Sgrade.setText(null);Sbirth.setText(null);elseJOptionPane.showMessageDialog(
35、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 implements ActionListener /*/private static final long serialVersionUID = 1L;/* 录
36、入界面*/StuBean addStu = new StuBean();StuBean queryStu = new StuBean();/ 设置“录入界面”窗口21咸宁学院计算机科学与技术学院课程设计报告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);Sma
37、jor = 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(IOException exp)Sgrade = new JTextField(20);Sbirth = new JT
38、extField(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
39、 = 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);22咸宁学院计算机科学与技术学院课程设计报告box1.add(Snum);Box box2 =
40、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.CE
41、NTER); 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
42、(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
43、(Color.cyan);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);add(putButton,BorderLayout.SOUTH);23咸宁学院计算机科学与技术学院课程设计报告validate();setVisible(true);/ 事件处理public void actionPerformed(ActionEvent e) if(e.getSource() = entry)String number = ""number = Snum.getText();String rs = n
44、ew String4;rs = queryStu.stuSearch(number);if(rs != null)String w = "该生基本信息已存在,请到修改页面修改!"JOptionPane.showMessageDialog(this,w,"警告",JOptionPane.WARNING_MESSAGE);elseString name = 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();public void clearMess()Snum.s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司雇佣个人合同范例
- 虾滑工艺流程汇报
- 产品委托代销合同范例
- 公司策划部门招工合同范例
- 两人打井合同范例
- 公司项目提成合同范例
- 到期结算合同范例
- 公司用工合同范例6
- 内墙涂料修补合同范例
- 【初中数学】用图像表示变量之间的关系(第2课时)教学设计 2024-2025学年北师大版数学七年级下册
- 电子商务专升本考试(习题卷7)
- 人工智能:现代方法
- 北京医调委官网换方申请书
- 跨境电商:理论、操作与实务(微课版 第2版)PPT最终1-5章 10 店铺优化-v1
- 四川梓潼林江苎麻纺织有限责任公司 县林江苎麻公司利用补偿贸易技术改造(扩大)生产能力环评报告
- 公路工程交工竣工验收课件
- 胎心监护仪使用过程中出现意外情况的护理应急预案及处理流程
- 第讲 发达资本主义国家经济与政治
- 城市热力网设计规范标准
- 2023年06月上海市浦东新区临港新片区文员招考聘用笔试题库含答案详解
- 2023年国网数字科技控股有限公司(国网雄安金融科技集团有限公司) 招聘笔试备考题库及答案解析
评论
0/150
提交评论