一、准备工作说明:1、Java编译工具为MyEclipse6.0;系统连接数据库为SQLServer2014,使用jdbc连接;驱动包为jdbc.jar;2、数据库登录名为“sa”,登录密码为“fang”;3、访问的数据库名称为“javaTest”,里面有两张表,一张为学生表:“STU”,用于学生身份登录访问;学生成功登录进系统后只能访问自己的基本信息及成绩;另一张为教师表“TCH”,用于教师身份登录访问;教师登陆成功后可访问任意学生信息及成绩;4、STU包括学生用户名(学号)、学生密码、姓名、性别、班级、院系、英语成绩、数学成绩、计算机成绩、Linux成绩、Java成绩字段;STU表初始只有ID字段和Pwd字段有值,且两者相同;ID字段为主键,与密码一起不能为空;其他全为null;ID、Pwd、Name、Gender、Class、Depart字段构成了学生基本信息,均为字符串型;English、Math、Computer、Linux、Java字段构成了学生成绩信息,均为整型;初始数据如下表所示:5、TCH包括教师用户名、密码两个字段;同样ID为主键,和密码一起不能为空,均为字符串型;教师登陆成功后可访问任意学生信息及成绩;教师表如下所示:二、系统功能说明1、登录界面系统实现按不同身份下的用户名和密码登录,用户名和密码需与数据库中对应的表的字段值一致方可成功登录,否则提示失败;登录界面如下:2、学生版信息成绩查询界面学生身份登录成功后,进入学生版信息成绩查询界面,如下所示:2.1【我的信息】选项卡进入该选项卡时,学号文本框是默认显示的用户名;且所有文本框均不可操作;在【我的信息】页卡中,首次登录需要执行【插入】操作,插入自己相应的信息到后台数据库中;插入成功后才可点击【查询】执行查询操作;查询成功后在面板上进行相应显示;2.1.1插入操作首次登录可执行【插入】操作,界面如下:其中学生编号不可编辑,其他均可,编辑完成后点【添加】,若成功则提示成功;再次执行【插入】时系统提示不可操作,界面如下:2.1.2查询操作未执行插入后点击【查询】按钮时:在完成插入操作后,执行查询,显示如下:2.2【我的成绩】选项卡进入该选项卡时,学号文本框是默认显示的用户名;且所有文本框均不可操作;成绩由教师录入,学生没权限录入,因此点击【成绩查询】时,如果教师并没有录入成绩,此时显示如下提示:当教师已对成绩进行录入后,学生点击【成绩查询】按钮进行如下成绩显示:至此,学生版成绩信息管理系统功能结束;3、教师版信息成绩查询界面3.1【学生信息】选项卡进入该选项卡后,直接在面板上显示STU表中所有学生的信息,如下所示:3.1.1录入信息操作点击【录入信息】按钮,可插入学生信息,如下图所示输入完整后点击添加,即完成对新信息的录入;同时在学生信息的主界面上同步显示录入后的信息;3.1.2查询信息操作点击【查询信息】按钮,输入所要查询学生的学号,可显示所要查询学生的信息,如下图所示;3.1.3修改信息操作点击【修改信息】按钮,选中所要修改学生的记录,可执行学生信息的修改,如下图所示;输入完成后点击【确定】完成信息的修改,同时在学生信息主界面上同步更新;3.2【学生成绩】选项卡进入该选项卡后,直接在面板上显示STU表中所有学生的成绩,如下所示:3.2.1录入信息操作点击【录入成绩】按钮,可插入学生成绩,如下图所示输入完整后点击添加,即完成对新信息的录入;同时在学生成绩的主界面上同步显示录入后的成绩;3.1.2查询成绩操作点击【查询成绩】按钮,输入所要查询学生的学号,可显示所要查询学生的成绩,如下图所示;3.1.3修改成绩操作点击【修改成绩】按钮,选中所要修改学生的记录,可执行学生成绩的修改,如下图所示;输入完成后点击【确定】完成信息的修改,同时在学生信息主界面上同步更新;三、源码(包名:stuSystem,共10个java文件)1、登录页面文件:CheckIn.java代码:/*一、本程序实现用户登录界面;*1、界面包括顶端一张图片,左侧一个图片;2、中间有用户名、密码两个标签上下排列,同一行还有文本框和密码框上下排列;3、下面是学生和教师两个单选按钮,供用户选择角色;4、最下面是确定和取消两个按钮;二、功能:实现用户的登录;在系统相连的数据库中,应有两张表,一张为学生表:STU,表中有两个字段:ID和Pwd,均为字符串类型,分别存放学生的姓名和密码;另一张为教师表:TCH,表中有两个字段:ID和Pwd,均为字符串类型,分别存放教师的姓名和密码;1、数据库成功连接驱动判断;2、数据库成功登录判断;3、用户名和密码为空判断;4、用户身份为空判断;5、用户名和密码是否正确判断;6、如学生身份登录正确则跳转至学生成绩信息系统页面;7、如教师身份登录正确则跳转至教师版学生成绩信息系统页面;8、点取消按钮退出系统;*/packagestuSystem;importjava.sql.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;importstuSysFind.Systems;publicclassCheckInextendsJFrameimplementsActionListener{JLabellab_name,//定义“用户名”标签;lab_password,//定义“密码”标签;lab1,//定义用来显示登录图片的标签,无文字内容;lab2;//定义用来显示登录图片的标签,无文字内容;JTextFieldtext_name;//定义用来输入用户名的文本框;JPasswordFieldpwd;//定义用来输入密码的密码框;JButtonbut_enter,//定义“登录“按钮;but_exit;//定义“退出”按钮;JRadioButtonrbu_stu,//定义”学生“单选按钮;rbu_tea;//定义”教师“单选按钮;ButtonGroupbgp;//定义一个按钮组,用来存放所有的单选按钮,以实现只能选其一的功能;PreparedStatementps=null;Connectioncon=null;ResultSetrs=null;Stringforname=com.microsoft.sqlserver.jdbc.SQLServerDriver;Stringurl=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=javaTest;Stringuser=sa;Stringpassword=fang;Vectortable=null;publicstaticvoidmain(String[]args){CheckInci=newCheckIn();}publicCheckIn(){//定义无参构造函数,用来初始化显示窗体;super(学生成绩管理信息系统);this.setLayout(null);//窗体在默认情况下是边界布局,此时控件的边界设置函数不起作用,需将边界布局清空;面板同理;lab1=newJLabel(newImageIcon(pic\\sysPic.jpg));lab1.setBounds(0,0,450,100);lab2=newJLabel(newImageIcon(pic\\pic3_2.png));lab2.setBounds(25,130,83,114);lab_name=newJLabel(用户名:,JLabel.CENTER);lab_name.setBounds(160,140,50,30);text_name=newJTextField(5);text_name.setBounds(220,145,100,20);lab_password=newJLabel(密码:,JLabel.CENTER);lab_password.setBounds(160,180,50,30);pwd=newJPasswordField(8);pwd.setBounds(220,185,100,20);bgp=newButtonGroup();rbu_stu=newJRadioButton(学生);rbu_stu.setBounds(165,225,70,20);rbu_tea=newJRadioButton(教师);rbu_tea.setBounds(260,225,70,20);bgp.add(rbu_stu);bgp.add(rbu_tea);but_enter=newJButton(登录);but_enter.setBounds(148,270,80,30);but_enter.addActionListener(this);but_exit=newJButton(退出);but_exit.setBounds(245,270,80,30);but_exit.addActionListener(this);this.add(lab1);this.add(lab2);this.add(lab_name);this.add(text_name);this.add(lab_password);this.add(pwd);this.add(rbu_stu);this.add(rbu_tea);this.add(but_enter);this.add(but_exit);ImageIconimageIcon=newImageIcon(pic\\sysIcon.jpg);this.setIconImage(imageIcon.getImage());this.setResizable(false);this.setSize(450,350);this.setLocation(450,260);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}publicvoidjudge(Stringforname,StringnameInput,StringpwdInput){try{Class.forName(forname);}catch(ClassNotFoundExceptionce){//判断驱动是否正确安装;JOptionPane.showMessageDialog(this,ce.getMessage()+isnotfound);this.dispose();}if(nameInput.equals()){//判断用户名是否为空;JOptionPane.showMessageDialog(this,请输入用户名!);text_name.grabFocus();return;}if(pwdInput.equals()){//判断密码是否为空;JOptionPane.showMessageDialog(this,请输入密码!);pwd.grabFocus();return;}if((!rbu_stu.isSelected())&&(!rbu_tea.isSelected())){//判断身份选择是否为空;JOptionPane.showMessageDialog(this,请选择学生或教师身份!);return;}}publicvoidactionPerformed(ActionEvente){if(e.getSource().equals(but_enter)){//System.out.println(enter);StringnameInput=text_name.getText().trim();StringpwdInput=pwd.getText().trim();this.judge(forname,nameInput,pwdInput);if(rbu_stu.isSelected()){//如果选中了学生界面;try{con=DriverManager.getConnection(ur