📄 teacherpanel.java
字号:
inquestPass();
}
catch(SQLException sqle){}
}
else
{
JOptionPane.showMessageDialog(TeacherPanel.this, "你输入的密码不匹配,请重新输入!", "用户帐户", JOptionPane.WARNING_MESSAGE);
oldPasswordField.setText(null);
newPasswordField.setText(null);
againPasswordField.setText(null);
}
}
if(e.getSource() == resetButton) //重置按钮
{
oldPasswordField.setText(null);
newPasswordField.setText(null);
againPasswordField.setText(null);
}
}
//选课名单界面中的按钮监听
if(selected == 1 && e.getSource() == queryButton)
{
query = "SELECT 课程名,成绩表.学号,姓名 FROM 学生基本信息表,成绩表,课程信息表,教师表 WHERE 成绩表.学号=学生基本信息表.学号 AND 成绩表.课程号=课程信息表.课程号 AND 课程信息表.教师=教师表.教师 AND 登陆帐号='"
+ LoginFrame.myTextField.getText()
+ "' AND 成绩表.课程号=" + courseNumTextField.getText();
getTable(query);
}
//成绩管理界面按钮监听 //成绩管理界面按钮监听 //成绩管理界面按钮监听
if(selected == 2)
{
if(e.getSource() == queryButton) //查询按钮
{
if(stuNumTextField.getText().equals( "" )||courseNumTextField.getText().equals( "" ))
{
JOptionPane.showMessageDialog(TeacherPanel.this, "请填好查询信息" );
//setTitle( "无记录显示" );
}
else
{
try
{
insertQuery = "SELECT 课程名,分数 FROM 成绩表,课程信息表,教师表 WHERE 学号 = '"
+stuNumTextField.getText()+"' AND 成绩表.课程号='"+courseNumTextField.getText()
+"' AND 登陆帐号='"+LoginFrame.myTextField.getText()
+"' AND 课程信息表.教师=教师表.教师";
selected = 52; //不同方法
inputGrade();
}
catch(SQLException ee)
{
JOptionPane.showMessageDialog (TeacherPanel.this, ee ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
}
}
}
if(e.getSource() == updateButton) //更新按钮
{
try
{
if(stuNumTextField.getText().equals( "" ) || courseNumTextField.getText().equals( "" ) || gradeTextField.getText().equals( "" ))
{
JOptionPane.showMessageDialog(TeacherPanel.this, "请填好更新成绩记录" );
//setTitle( "无记录显示" );
}
else
{
insertQuery = "SELECT 学号,课程名,成绩表.课程号 FROM 成绩表,课程信息表,教师表 WHERE 学号 = '"
+ stuNumTextField.getText()+"' AND 成绩表.课程号='" + courseNumTextField.getText()
+"' AND 登陆帐号='"+LoginFrame.myTextField.getText()
+"' AND 课程信息表.教师=教师表.教师";
insertUpdate = "UPDATE 成绩表 SET 分数=" + gradeTextField.getText()
+" WHERE 学号='"+stuNumTextField.getText()
+"' AND 课程号 IN(SELECT 课程号 "
+" FROM 课程信息表,教师表 WHERE 课程号='"+courseNumTextField.getText()
+"' AND 登陆帐号='"+LoginFrame.myTextField.getText()
+"' AND 课程信息表.教师=教师表.教师)";
inputGrade();
}
}
catch(SQLException ee)
{
JOptionPane.showMessageDialog (TeacherPanel.this, ee, "学生选课管理系统",
JOptionPane.WARNING_MESSAGE );
}
}
if(e.getSource() == resetButton) //重置按钮
{
stuNumTextField.setText(null);
courseNumTextField.setText(null);
courseNameTextField.setText(null);
gradeTextField.setText(null);
}
}
if(selected == 3) //统计学生成绩界面监听
{
if(byTotalButton.isSelected())
{
query = "SELECT '学号'=成绩表.学号,'姓名'=姓名,'总分'=SUM(分数),'平均分'=AVG(分数) "
+ " FROM 学生基本信息表,成绩表,课程信息表,教师表 "
+ " WHERE 学生基本信息表.学号=成绩表.学号 "
+ " AND 课程信息表.课程号=成绩表.课程号 "
+ " AND 课程信息表.教师=教师表.教师 "
+ " AND 教师表.登陆帐号='"
+ LoginFrame.myTextField.getText()
+ "' GROUP BY 成绩表.学号,姓名 ORDER BY SUM(分数) DESC";
}
if(byAverageButton.isSelected())
{
query = "SELECT '学号'=成绩表.学号,'姓名'=姓名,'总分'=SUM(分数),'平均分'=AVG(分数) "
+ " FROM 学生基本信息表,成绩表,课程信息表,教师表 "
+ " WHERE 学生基本信息表.学号=成绩表.学号 "
+ " AND 课程信息表.课程号=成绩表.课程号 "
+ " AND 课程信息表.教师=教师表.教师 "
+ " AND 教师表.登陆帐号='"
+ LoginFrame.myTextField.getText()
+ "' GROUP BY 成绩表.学号,姓名 ORDER BY AVG(分数) DESC";
}
getTable(query); //建立表格
}
if(selected == 4) //教师个人信息界面监听
{
if(e.getSource() == queryButton) //查询按钮
{
try
{
insertQuery="SELECT * FROM 教师表 WHERE 登陆帐号='"
+ LoginFrame.myTextField.getText()+"'";
inquest();
}
catch(SQLException ee)
{
JOptionPane.showMessageDialog(TeacherPanel.this, ee,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
}
}
if(e.getSource() == updateButton) //更新按钮
{
try
{
insertUpdate = "UPDATE 教师表 SET 院系='" + collegeTextField.getText()
+ "',性别='" + sexTextField.getText()
+ "',年龄='" + ageTextField.getText()
+ "',职称='" + titleTextField.getText()
+ "' WHERE 登陆帐号 = '"+LoginFrame.myTextField.getText()+"'";
update();
}
catch(SQLException ee)
{
JOptionPane.showMessageDialog (TeacherPanel.this ,ee ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
}
}
if(e.getSource() == resetButton) //重置按钮
{
numTextField.setText(null);
nameTextField.setText(null);
collegeTextField.setText(null);
sexTextField.setText(null);
ageTextField.setText(null);
titleTextField.setText(null);
}
}
}
//下面两个是修改密码所用的似有方法
private void inquestPass() throws SQLException
{
loginUserName = LoginFrame.myTextField.getText();
oldPassword = new String(oldPasswordField.getPassword());
insertQuery = "SELECT * FROM 教师表 WHERE 登陆帐号='"
+ LoginFrame.myTextField.getText()+"' AND 登陆密码='" + oldPassword + "'";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException cnfe){}
con=DriverManager.getConnection(url, username, password);
stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(insertQuery);
boolean moreRecords=rs.next();
if(!moreRecords)
{
JOptionPane.showMessageDialog(TeacherPanel.this, "请输入当前使用的密码", "警告", JOptionPane.WARNING_MESSAGE);
con.close();
return;
}
else
try
{
updatePass();
}
catch ( SQLException sqlex )
{
JOptionPane.showMessageDialog (TeacherPanel.this,"你输入的数据类型不匹配或长度超出了\n" +
"允许的长度,请重新输入或联系管理员!",
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
}
}
//也是修改密码所用方法
private void updatePass() throws SQLException
{
String newPassword = new String(newPasswordField.getPassword());
insertUpdate = "UPDATE 教师表 SET 登陆密码='" + newPassword
+ "' WHERE 登陆帐号='" + LoginFrame.myTextField.getText() + "'";
int insert = stmt.executeUpdate( insertUpdate ); //executeUpdate返回一个整型值
if (insert >=1)
{
JOptionPane.showMessageDialog(TeacherPanel.this,"密码修改成功!" );
}
con.close();
}
/**
成绩管理所用的方法 成绩管理所用的方法 成绩管理所用的方法
*/
private void inputGrade() throws SQLException
{
//加载驱动程序以连接数据库
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,username,password);
}
//捕获加载驱动程序异常
catch ( ClassNotFoundException cnfex )
{
System.err.println("装载 JDBC/ODBC 驱动程序失败。" );
//cnfex.printStackTrace();
JOptionPane.showMessageDialog (TeacherPanel.this, cnfex ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
System.exit( 1 ); // terminate program
}
//捕获连接数据库异常
catch ( SQLException sqlex )
{
System.err.println( "无法连接数据库" );
//sqlex.printStackTrace();
JOptionPane.showMessageDialog (TeacherPanel.this, sqlex ,
"学生选课管理系统",JOptionPane.WARNING_MESSAGE );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -