农工商职业技术学院实验报告
实验人:______ 同组人:______ 班级:______ 指导老师:_____
1、 实验题目
学生管理系统
2、 实验目的
? 掌握实际开发的步骤。
? 能够熟练开发和学生管理系统相类似的系统。 ? 掌握Java中的界面开发。 ? 掌握Java中如何连接数据库。
3、 实验设备及仪器
计算机一台,配置有JDK环境
4、 实验内容
编写学生管理系统程序,利用图形界面构造系统的客户端服务界面,连接数据库,使得学生教师能简单方便地对数据进行存储修改
5、 实验步骤
(1) 首先确定学生管理系统的用户。
(2) 学生管理系统的用户基本分为两类,分别是老师和学生。不管是哪种用
户都是必须经过登录才能进入学生管理系统的,所以该系统必须有一个登录界面,并且在该界面中能够让用户选择用户是老师还是学生。该系统是不会对外开放的,所以也不存在注册界面。
(3) 因为用户分为两种,所以每一种用户进行操作的界面应该是不同的。首
先是学生界面,在其中应该只有查询成绩和个人信息查询和插入。主要来学习如何进行学生界面开发。
(4) 除了学生界面外,还要有一个老师界面。老师在老师界面中可以对学生
信息进行管理,包括查询、修改和删除。同样也可以对学生的成绩进行管理,包括查询和插入,由于输入错误还要能够对学生的成绩进行修改,由于学生作弊还能够将学生的成绩进行删除。 (5) 首先数据库中应该有老师和学生这两个表,表中应该最少有用户名和密
码两项,使用表中的这两项就可以进行登录。在学生表中还应该具有一些和学籍相关的信息,包括年龄、班级等内容,这样就可以在系统中对
学生信息进行操作。
(6) 除此之外还需要一个成绩表,通过该表老师可以对学生的成绩进行查
询、插入、修改和删除。学生也可以通过该表对自己的成绩进行查询。 (7) 不管是老师和学生进入学生管理系统都是从登录界面进入的。在登录界
面中应该是让用户选择自己身份的,然后系统将根据用户的选择来判断用户的身份并进行查询不同的数据库。
(8) 对界面设计好基本形式后,就可以进行程序开发。首先要定义两个标签
和两个文本框,分别来表示用户名和密码。并且还需要定义一个下拉列表让用户来进行身份选择,其中选项包括“学生”和“老师”。在程序的最后还定义了两个按钮,从而让用户输入用户名和密码后进行登录。 (9) 在学生界面中,学生可以对自己的信息进行查询,在第一次登录时还可
以对自己的信息进行插入,并且学生能够查询自己的成绩。 (10) 因为学生要完成对信息和成绩的操作,所以这里的设计是在界面中定义
两个菜单,分别进行信息和成绩的操作。因为对信息的操作包括插入和查询,所以还需要在信息菜单下定义“插入”和“查询”两个子菜单。 (11) 对界面进行设计后,就可以进行程序开发。同样首先是创建一个窗口,
在窗口中要创建两个菜单,并且在信息菜单下还要创建“插入”和“查询”两个子菜单。
(12) 在学生界面中单击“信息”菜单下的“插入”子菜单,就会进入学生插
入界面,在该界面中学生可以输入自己的信息。
(13) 学生第一次插入信息后,老师是可以对学生的信息进行修改和删除的。
除此之外,学生还可以查询自己被修改后的信息,在信息菜单下有一个查询子菜单,单击该菜单就触发事件,从而进入查询学生信息界面。 (14) 在学生界面中还有一个“成绩”菜单,在学生的界面该菜单下只有一个
“查询”子菜单。单击“查询”子菜单,将触发事件,进入到查询成绩界面。 6、 附录
(1) 登陆界面
import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.sql.*;
public class systems extends JFrame implements ActionListener {
static systems 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 = \ 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,100); 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); }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==Enter)
{
String username , password; username = name.getText(); password = pwd.getText(); try {
Class.forName(\ }
catch (ClassNotFoundException ce) {
JOptionPane.showMessageDialog(ss,ce.getMessage()); }
if(stu.isSelected()) {
try {
Connection con = DriverManager.getConnection(\ Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(\* from STU\
while(rs.next()) {
if((rs.getString(\wd\
{
JOptionPane.showMessageDialog(ss,\登陆成功\
Students stu = new Students(); } else {
JOptionPane.showMessageDialog(ss,\登录失败\
} }
rs.close(); stmt.close(); }
catch (SQLException se) {
JOptionPane.showMessageDialog(ss,se.getMessage()); } }
else if(tch.isSelected()) {
try {
Connection con = DriverManager.getConnection(\ Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(\* from TCH\
while(rs.next()) {
if((rs.getString(\wd\ {
JOptionPane.showMessageDialog(ss,\登陆成功\
} else {
JOptionPane.showMessageDialog(ss,\登录失败\
} } }
catch (SQLException se) {
JOptionPane.showMessageDialog(ss,se.getMessage()); } } } else {
System.exit(0); } }
public static void main(String[] args) {
systems sys = new systems();