1、 《学生成绩管理系统》课程设计 试验汇报 题 目 学生成绩管理系统 学 院 数学和信息工程学院 专 业 计算机科学和技术 班 级 同组组员 编写日期
2、 一、 课程设计目标 做这个小学生成绩管理系统来加深对JAVA所学知识巩固,和学习JAVA和数据库连接和JAVAGUI图形界面。 二、 需求分析 此系统实现以下系统功效: (1)使得学生成绩管理工作愈加清楚、条理化、自动化。 (2)经过用户名和密码登录系统,查询学生基础资料,学生所学课程成绩,等功效。 轻易地完成学生信息查询操作。 (3) 设计人机友好界面,功效安排合理,操作使用方便,而且深入考虑系统在安全性,完整性,并发控制,备份和恢复等方面功效要求。 三、系统模块设计 用户登录 此系统可分为2个模块,老师管理
3、模块和学生操作模块,期中老师又包含学生信息输入和学生成绩录入等;学生模块则包含学生成绩查询和学生信息录入查询操作等。 系统步骤图: 学生 学生信息查询 学生成绩查询 老师 学生成绩录入 学生信息录入 四、数据库 1、学生表: Field Type Null Key Comment ID Varchar(10) —— PRI 用户名(学号) Pwd Varchar(10) —— —— 密码 Name Char(10) —— —— 姓名 Sex Char(10
4、) —— —— 性别 Class Char(10) —— —— 班级 Collage Char(10) —— —— 学院 2、老师表 Field Type Null Key Comment ID Varchar(10) —— PRI 用户名 Pwd Varchar(10) —— —— 密码 3、成绩表 Field Type Null Key Comment Sid char(10) —— PRI 学号 计算机网络 char(10) —— —— 课程 Linux操作系统 char(10) ——
5、—— 课程 计算机专业英语 char(10) —— —— 课程 计算机信息技术 char(10) —— —— 课程 Java程序设计 char(10) —— —— 课程 数据库应用实训 char(10) —— —— 课程 高等数学 char(10) —— —— 课程 XML char(10) —— —— 课程 五、E-R图 六、心得体会 经过此次课程设计,成功完成了这个小型简单系统设计,在整个设计过程中我对JAVA使用和它强大作用有了一个更深刻认识,尽管这个系统很简单,不过它让我综合利用了这个学
6、期所学JAVA很多内容,在此基础上,对JAVA基础知识得到了愈加好巩固。 在制作过程中我也学到很多思想:首先,要学会统筹全局,合理计划,比如在制作整个框架时候提前就要做全方面考虑,要把整个结构图画出来,而且要对数据库表里东西做全方面计划。同时在编写程序时候也要想好先实现什么功效,再实现什么功效,这么做出来东西才有条理性,更轻易实现和了解。其次,要细心仔细。Java程序即使轻易了解,但在写过程中一不留心就会出现错误。当然犯错是在所难免,和性质相关错误能够经过思索讨论后进行更正,但假如粗心大意,出现输入上错误就极难发觉和修改,会耽搁很多时间。 我认为最大收获是提升了自己动手能力。在平时上机中大
7、多数是依据书上思想和布局来写程序。这次课程设计要自己思索自己写,考虑东西比平时上机考虑要多多。在整个设计过程中写代码不是最难,最难是构思和布局。这次课程设计也是一次很好实践活动,让我们体会到了java神奇作用。 附录:源代码 1、用户登录界面 import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.sql.*; public class Systems extends JFrame implements ActionListener { static Syst
8、ems ss; JPanel panel = new JPanel(); JLabel label1 = new JLabel("输入姓名:"); JTextField name = new JTextField(); JLabel label2 = new JLabel("密 码:"); JPasswordField pwd = new JPasswordField(); JButton Enter = new JButton("登录"); JButton Exit = new JButton("退出"); String url = "E:\\mysql
9、\\TM1.jpg"; ButtonGroup bgp = new ButtonGroup(); JRadioButton stu = new JRadioButton("学生"); JRadioButton tch = new JRadioButton("老师"); public Systems() { super("登录系统"); this.setResizable(false); JLabel img = new JLabel(new ImageIcon(url)); img.setBounds(0,0,500,125); pa
10、nel.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
11、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);
12、 panel.add(pwd); this.setBounds(100,100,500,350); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if(e.getSource()==Enter) { String username , password; username = name.getText(); passw
13、ord = new String(pwd.getPassword()); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException ce) { JOptionPane.showMessageDialog(ss,ce.getMessage()); } if(stu.isSelected()) { try { Connection con = DriverManage
14、r.getConnection("jdbc:odbc:shujuku","sa",""); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select * from STU"); while(rs.next()) { if(rs.getString("ID").equals(username)) if((rs.getString("Pwd").equals(password)))
15、 { JOptionPane.showMessageDialog(ss,"登陆成功"); Students stu = new Students(); } else { JOptionPane.showMessageDialog(ss,"登录失败"); } } rs.close(); stmt.close(); }
16、catch (SQLException se) { JOptionPane.showMessageDialog(ss,se.getMessage()); } } else if(tch.isSelected()) { try { Connection con = DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statement stmt = con.createStatement(); Resul
17、tSet rs = stmt.executeQuery("select * from TCH"); while(rs.next()) { if(rs.getString("ID").equals(username)) if((rs.getString("Pwd").equals(password))) { JOptionPane.showMessageDialog(ss,"登陆成功"); Teachers tch=new Teachers(); } else
18、 { JOptionPane.showMessageDialog(ss,"登录失败"); } } } catch (SQLException se) { JOptionPane.showMessageDialog(ss,se.getMessage()); } } } else { System.exit(0); } } public static void main(String[] args) { Systems sy
19、s = new Systems(); } } 2、学生登录界面: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Students extends JFrame implements ActionListener { JMenuBar jmb = new JMenuBar(); JMenu Message = new JMenu("信息"); JMenu Score = new JMenu("成绩"); JMenuItem Item1 = ne
20、w JMenuItem("插入"); JMenuItem Item2 = new JMenuItem("查询"); JMenuItem Item3 = new JMenuItem("查询"); public Students() { super("学生界面"); this.setSize(500,400); this.setVisible(true); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setJMenuBa
21、r(jmb); jmb.add(Message); jmb.add(Score); Message.add(Item1); Message.add(Item2); Score.add(Item3); Item1.addActionListener(this); Item2.addActionListener(this); Item3.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource()==Item1
22、) { AddMsg ad = new AddMsg(); } else if(e.getSource()==Item2) { Serch ser = new Serch(); } else { Score so = new Score(); } } public static void main(String[] args) { Students stu = new Students(); } } 3、老师登录界面: import java.awt.*; import javax.s
23、wing.*; import java.awt.event.*; public class Teachers extends JFrame implements ActionListener { JMenuBar bar = new JMenuBar(); JMenu menu1 = new JMenu("信息"); JMenu menu2 = new JMenu("成绩"); JMenuItem item1 = new JMenuItem("录入信息"); JMenuItem item2 = new JMenuItem("录入成绩"); JPanel jpl
24、 = new JPanel(); public Teachers() { super("老师界面"); this.setSize(500,300); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setJMenuBar(bar); this.add(jpl); jpl.setLayout(null); bar.add(menu1); bar.add(menu
25、2); menu1.add(item1); menu2.add(item2); item1.addActionListener(this); item2.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource()==item1) { AddMsg msg = new AddMsg(); } else { Addscore as = new Addscore(); } } pu
26、blic static void main(String[] args) { Teachers tch = new Teachers(); } } 4、学生用户添加界面: import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.sql.*; public class AddMsg extends JFrame implements ActionListener { static AddMsg s; /*添加学生信息控件*/ JPanel jpl
27、 new JPanel(); JLabel label1 = new JLabel("添加基础信息",JLabel.CENTER); JLabel label2 = new JLabel("学号:",JLabel.CENTER); JLabel label3 = new JLabel("姓名:",JLabel.CENTER); JLabel label4 = new JLabel("性别:",JLabel.CENTER); JLabel label5 = new JLabel("班级:",JLabel.CENTER); JLabel label6 = new JLab
28、el("学院:",JLabel.CENTER); JTextField num = new JTextField(2); JTextField nam = new JTextField(4); ButtonGroup bgp = new ButtonGroup(); JRadioButton man = new JRadioButton("男"); JRadioButton women = new JRadioButton("女"); JTextField clas = new JTextField(); JTextField scl = new JTextFiel
29、d(); JButton reset = new JButton("重置"); JButton addmsg = new JButton("添加"); public AddMsg() { super("添加学生信息"); this.setResizable(false); this.setSize(500,400); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(jpl); jpl.setLayout(null
30、); addmsg.addActionListener(this); reset.addActionListener(this); /*插入面板*/ label1.setBounds(100,20,300,20); jpl.add(label1); label2.setBounds(100,50,70,20); jpl.add(label2); num.setBounds(190,50,140,20); jpl.add(num); label3.setBounds(100,90,70,20); jpl.add(label3);
31、 nam.setBounds(190,90,140,20); jpl.add(nam); label4.setBounds(100,130,70,20); jpl.add(label4); man.setBounds(190,130,60,20); women.setBounds(270,130,60,20); jpl.add(man); jpl.add(women); bgp.add(man); bgp.add(women); label5.setBounds(100,170,70,20); jpl.add(label5)
32、 clas.setBounds(190,170,140,20); jpl.add(clas); label6.setBounds(100,210,70,20); jpl.add(label6); scl.setBounds(190,210,140,20); jpl.add(scl); reset.setBounds(120,250,90,20); addmsg.setBounds(240,250,90,20); jpl.add(reset); jpl.add(addmsg); } public void actionPe
33、rformed(ActionEvent e) { if(e.getSource()==addmsg) { String sex; if(man.isSelected()) { sex="男"; } else { sex="女"; } try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException ce) { JOpt
34、ionPane.showMessageDialog(s,ce.getMessage()); } try { Connection con = DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statement stmt = con.createStatement(); String str = "insert into STU(ID , Pwd , Name , Sex , Class , Collage)values('"+num.getText()+"','"+"123
35、','"+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')"; // int a = stmt.executeUpdate("insert into STU(ID , Pwd , Name , Sex , Class , Collage)values('"+num.getText()+"','"+"12345678','"+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')"); System.out.p
36、rintln(str); int a = stmt.executeUpdate(str); if(a==1) { JOptionPane.showMessageDialog(s,"已成功添加"); } else { JOptionPane.showMessageDialog(s,"添加失败"); } stmt.close(); } catch (SQLException se) { JOptionPane.showMessageDialog(s,se.get
37、Message()); } } else { num.setText(""); nam.setText(""); clas.setText(""); scl.setText(""); num.requestFocus(); } } public static void main(String[] args) { AddMsg amg = new AddMsg(); } } 5、学生成绩添加: import java.awt.*; import javax.swing.*; import
38、java.awt.event.*; import java.sql.*; public class Addscore extends JFrame implements ActionListener { static Addscore ss; JLabel[] label = {new JLabel("学号:") , new JLabel("计算机网络:") , new JLabel("Linux操作系统:") , new JLabel("计算机专业英语:") , new JLabel("计算机信息技术基础:") , new JLabel("Java程序设计:") , new
39、 JLabel("数据库应用实训教程:") , new JLabel("高等数学:") , new JLabel("XML:")}; JTextField[] txt = {new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField() ,new JTextField() ,new JTextField() }; JButton add = new JButton("添加"); JBut
40、ton reset = new JButton("重置"); JPanel jpl = new JPanel(); JLabel title = new JLabel("添加学生成绩" , JLabel.CENTER); Font f = new Font("黑体" , Font.BOLD , 16 ); int s = 100; public Addscore() { super("添加学生信息"); this.setResizable(false); this.setSize(500,600); this.setDefaultCloseO
41、peration(EXIT_ON_CLOSE); this.setVisible(true); this.add(jpl); add.addActionListener(this); reset.addActionListener(this); jpl.setLayout(null); title.setBounds(150,40,200,20); title.setFont(f); title.setForeground(Color.red); jpl.setBackground(Color.LIGHT_GRAY); jpl.add
42、title);
for(int i = 0 ; i 43、ublic void actionPerformed(ActionEvent e)
{
if(e.getSource()==add)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException ce)
{
JOptionPane.showMessageDialog(ss,ce.getMessage());
}
try
{
Connection con = DriverMan 44、ager.getConnection("jdbc:odbc:shujuku","sa","");
Statement stmt = con.createStatement();
int a = stmt.executeUpdate("insert into 计算机系成绩(SID , 计算机网络 , Linux操作系统 , 计算机专业英语 , 计算机信息技术基础 , Java程序设计 , 数据库应用实训教程 , 高等数学 , Xml)values('"+txt[0].getText()+"','"+txt[1].getText()+"','"+txt[2].getText() 45、"','"+txt[3].getText()+"','"+txt[4].getText()+"','"+txt[5].getText()+"','"+txt[6].getText()+"','"+txt[7].getText()+"','"+txt[8].getText()+"')");
if(a==1)
{
JOptionPane.showMessageDialog(ss,"添加成功");
}
else
{
JOptionPane.showMessageDialog(ss,"添加失败");
}
}
46、
catch (SQLException se)
{
JOptionPane.showMessageDialog(ss,se.getMessage());
}
}
else
{
for(int i = 0 ; i 47、core();
}
}
6、学生信息查询:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Serch extends JFrame implements ActionListener
{
/*查询学生信息控件*/
static Serch s;
JPanel jpl = new JPanel();
JLabel SCH = new JLabel("查询学生信息",JLabel.CENTER);
JL 48、abel label1 = new JLabel("请输入学号:",JLabel.CENTER);
JButton serch = new JButton("查询");
JLabel label2 = new JLabel("姓名:",JLabel.CENTER);
JLabel label3 = new JLabel("班级:",JLabel.CENTER);
JLabel label4 = new JLabel("学校:",JLabel.CENTER);
JLabel label5 = new JLabel("性别:",JLabel.CENTER);
ButtonG 49、roup bgp = new ButtonGroup();
JRadioButton man = new JRadioButton("男");
JRadioButton women = new JRadioButton("女");
JTextField num = new JTextField();
JTextField nam = new JTextField();
JTextField clas = new JTextField();
JTextField scl = new JTextField();
JButton reset = new JButton(" 50、重置");
public Serch()
{
this.setSize(500,400);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(jpl);
jpl.setLayout(null);
serch.addActionListener(this);
reset.addActionListener(this);
/*查询面板*/
SCH.setBo
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818