华中科技大学文华学院《学生成绩管理系统》课程设计实验报告题目:学生成绩管理系统学部:信息科学与技术学部专业:计算机技术应用班级:学号:姓名:编写日期:2一、课程设计目的我是用java来写的这个小项目,应为我打算以后从事java方面的工作,这次的课程设计报告我就用java来写的。以来可以加深我对java的理解,又可以让我多了解java方面的知识。做这个小的学生成绩管理系统来加深对JAVA所学知识的巩固,因为我们以前学习过java,但不是学习的很彻底,现在借用这个机会多学习学习java的知识,以及学习JAVA与数据库的连接和JAVA的GUI图形界面。二、需求分析此系统实现如下系统功能:(1)实现学生和老师都可以登录。(2)学生可以查询自己的成绩,还可以查询自己相关的信息。(3)老师登录进入可以录入学生的成绩,还可以添加学生信息,可以方便新来的学生信息的统计。(4)设计人机对话界面,操作使用方便,让每一个使用者都能很好理解操作,所有的人都可以使用。三、系统模块设计此系统可分为2个模块:1:教师管理模块和学生操作模块,期中教师又包括学生信息输入与学生成绩录入等;2:学生模块则包括学生成绩查询与学生信息录入查询操作等。系统流程图:3首先是登录系统,选择学生和教师登陆,如图所示:用户登录教师学生学生信息录入学生成绩录入学生信息查询学生成绩查询4登录教师管理界面:教师能使用的功能:(1)学生信息的添加:5(2)学生成绩的录入:学生管理界面:6学生管理的功能:1自己信息的查询:72学生成绩的查询:四、数据库1、学生表:FieldTypeNullKeyCommentIDVarchar(10)——主码用户名(学号)PwdVarchar(10)————密码NameChar(10)————姓名8SexChar(10)————性别ClassChar(10)————班级CollageChar(10)————学院2、教师表FieldTypeNullKeyCommentIDVarchar(10)——主码用户名PwdVarchar(10)————密码3、成绩表FieldTypeNullKeyCommentSidchar(10)——主码学号计算机网络char(10)————课程Linux操作系统char(10)————课程计算机专业英语char(10)————课程计算机信息技术char(10)————课程Java程序设计char(10)————课程数据库应用实训char(10)————课程高等数学char(10)————课程XMLchar(10)————课程9五、E-R图SCTS学生表IDnamePwdSexClassClocage教师表IDPwd计算机系成绩计算机专业英语Java程序设计计算机信息技术基础数据库应用实训教程计算机网络Linux操作系统XML高等数学SID(ID)六、心得体会通过本次课程设计,成功的完成了这个小型简单的系统的设计,在整个设计过程中我对JAVA使用和它强大的作用有了一个更深刻的认识,尽管这个系统很简单,但是它让我综合运用了所学的JAVA的很多内容,在此基础上,对JAVA的基础知识得到了更好的巩固。刚开始的时候听说有数据库课程设计的时候,不知道自己改如何下手,老师也没有跟我们讲多少关于数据库与语言之间连接改怎么用,所以刚开始自己什么都不知道。后来通过老师讲解一点,自己慢慢在网上查找一些资料,慢慢的朝着自己喜欢的java的方向发展起来。刚开始的时候在网上看很多资料,网上的资料并不是所有的都适合我们的。在查找资料这方面我花了很多时间的,后来自己动手就感觉到跟难了,自己通过不断的敲代码,一次一次的不成功让我有了放弃的念头,最后在一天没有碰过代码的情况下我有坚持过来了,还是不断的实践,在网上一次又一次的收索资料,最后终于在自己不断的努力下和别人的帮组下,10终于完成了这个小项目,也算是我的第一个作品。我相信着也是一个很好的开头,在后面的日子里,我一定会坚持的,竟然自己选择了这条路,不管怎样都要都要走下去,跪着也要完成自己的路。在今后的日子里我相信还会有跟多的困难,更多让人头痛的地方,通过这一次我对自己的今后更有信心,我相信我能做得更好。我认为最大的收获是提高了自己的动手能力。在平时的上机中大多数是根据书上的思想和布局来写程序的。这次的课程设计要自己思考自己写,考虑的东西比平时上机考虑的要多的多。在整个设计过程中写代码不是最难的,最难的是构思和布局。这次课程设计也是一次很好的实践活动,让我们体会到了java的神奇作用。附录:源代码1、用户登录界面importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.sql.*;publicclassSystemsextendsJFrameimplementsActionListener{staticSystemsss;JPanelpanel=newJPanel();JLabellabel1=newJLabel(输入姓名:);JTextFieldname=newJTextField();JLabellabel2=newJLabel(密码:);JPasswordFieldpwd=newJPasswordField();JButtonEnter=newJButton(登录);JButtonExit=newJButton(退出);Stringurl=E:\\mysql\\TM1.jpg;ButtonGroupbgp=newButtonGroup();JRadioButtonstu=newJRadioButton(学生);JRadioButtontch=newJRadioButton(教师);publicSystems(){11super(登录系统);this.setResizable(false);JLabelimg=newJLabel(newImageIcon(url));img.setBounds(0,0,500,125);panel.add(img);stu.setBounds(165,210,70,20);tch.setBounds(265,210,70,20);bgp.add(stu);bgp.add(tch);panel.add(stu);panel.add(tch);Enter.setBounds(150,250,80,20);Exit.setBounds(270,250,80,20);Enter.addActionListener(this);Exit.addActionListener(this);panel.add(Enter);panel.add(Exit);panel.setLayout(null);this.add(panel);label1.setBounds(135,130,100,25);panel.add(label1);name.setBounds(265,130,100,25);panel.add(name);label2.setBounds(135,165,100,25);panel.add(label2);pwd.setBounds(265,165,100,25);panel.add(pwd);this.setBounds(100,100,500,350);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==Enter){Stringusername,password;username=name.getText();password=newString(pwd.getPassword());try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);}catch(ClassNotFoundExceptionce)12{JOptionPane.showMessageDialog(ss,ce.getMessage());}if(stu.isSelected()){try{Connectioncon=DriverManager.getConnection(jdbc:odbc:shujuku,sa,);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(select*fromSTU);while(rs.next()){if(rs.getString(ID).equals(username))if((rs.getString(Pwd).equals(password))){JOptionPane.showMessageDialog(ss,登陆成功);Studentsstu=newStudents();}else{JOptionPane.showMessageDialog(ss,登录失败);}}rs.close();stmt.close();}catch(SQLExceptionse){JOptionPane.showMessageDialog(ss,se.getMessage());}}elseif(tch.isSelected()){try{Connectioncon=DriverManager.getConnection(jdbc:odbc:shujuku,sa,);Statementstmt=con.createStatement();13ResultSetrs=stmt.executeQuery(select*fromTCH);while(rs.next()){if(rs.getString(ID).equals(username))if((rs.getString(Pwd).equals(password))){JOptionPane.showMessageDialog(ss,登陆成功);Teacherstch=newTeachers();}else{JOptionPane.showMessageDialog(ss,登录失败);}}}catch(SQLExceptionse){JOptionPane.showMessageDialog(ss,se.getMessage());}}}else{System.exit(0);}}publicstaticvoidmain(String[]args){Systemssys=newSystems();}}2、学生登录界面:importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;14publicclassStudentsextendsJFrameimplementsActionListener{JMenuBarjmb=newJMenuBar();JMenuMessage=newJMenu(信息);JMenuScore=newJMenu(成绩);JMenuItemItem1=newJMenuItem(插入);JMenuItemItem2=newJMenuItem(查询);JMenuItemItem3=newJMenuItem(查询);publicStudents(){super(学生界面);this.setSize(500,400);this.setVisible(true);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setJMenuBar(jmb);jmb.add(Message);jmb.add(Score);Message.add(Item1);Message.add(Item2);Score.add(Item3)