还剩75页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
学生信息管理系统设计
1、系统简介本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等
2、功能设计
2.1需求分析本系统需要实现的功能
(1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作
(2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等
2.2总体设计学生信息管理系统主要包括管理员和学生两大模块管理员模块包括学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等用户模块包括学生信息查看、成绩信息查看、个人信息管理等系统总体结构如图所示总体结构图
2.3模块详细设计
1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等具体的结构图如图所示学生信息管理模块结构图
2、课程信息管理模块课程信息管理模块包括增加、删除、修改、查询、显示全部等具体的结构图如图所示课程信息管理模块结构图
3、选课信息管理模块选课信息管理模块包括查询、显示全部等具体的结构图如图所示选课信息管理模块结构图
4、成绩信息管理模块成绩信息管理模块包括修改成绩、查询、显示全部等具体的结构图如图所示成绩信息管理模块结构图
5、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等具体的结构图如图所示用户信息管理模块结构图
3、数据库设计在数据库student中共有4张数据表s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型s(学生信息表)字段名称数据类型描述snochar10学号,关键字snchar20姓名saint年龄sschar10性别sdchar10院系c(课程信息表)字段名称数据类型描述cnochar10课程号,关键字cnchar30课程名pcnochar10先行课程号sc(选课信息表)字段名称数据类型描述snochar10学号,关键字cnochar10课程号,关键字gint成绩unpw(用户信息表)字段名称数据类型描述unchar10用户名,关键字pwchar10密码qxint角色
4、界面库设计
1、学生信息管理系统的登录学生信息管理系统可由管理员和学生两种身份的人使用管理员和学生身份登录所能操作的功能有很大的区别系统初始化一个系统管理员,登录名admin密码admin学生登录系统的登录名为学号,密码也为学号(如10001),登录后可以修改密码登录界面管理员登录系统后的界面学生登录系统后的界面
2、实现管理员和学生操作功能的界面管理员的登录系统后可以进行学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等功能操作,其具体界面设计如下图所示学生信息管理功能的界面课程信息管理功能的界面选课信息管理功能的界面成绩信息管理功能的界面用户信息管理功能的界面学生的登录系统后可以进行学生信息查看、成绩信息查看、个人信息管理等功能操作,其具体界面设计如下图所示学生信息查看功能的界面成绩信息查看功能的界面个人信息管理功能的界面
5、程序类的设计SimpleStudentManager主函数类DLFrame登陆界面类ManagerFrane管理员界面类StudentFrame学生界面类SM学生信息管理的类SAdd用于学生信息管理中增加或修改某条记录的界面的类SSelect用于学生基本信息管理中查询时输入学号的界面的类CM课程信息管理的类CAdd用于课程信息管理中增加或修改某条记录的界面的类CSelect用于课程信息管理中查询时输入课程号的界面的类SCM选课信息管理的类SCSelect用于选课信息管理中查询时输入学号的界面的类GM成绩信息管理的类GAdd用于成绩信息管理中修改成绩的界面的类GSelect用于成绩信息管理中查询时输入学号的界面的类PM用户信息管理的类UAdd用于用户信息管理中修改密码的界面的类PSelect用于用户信息管理中查询时输入用户名的界面的类StudentS用于学生信息查看时输入学号的界面的类StudentSelect用于成绩信息查看时输入学号的界面的类PPM个人信息管理的类PPSelect用于个人信息管理查询时输入用户名的界面的类程序类的具体代码实现见工程文件夹中的代码及注释
6、系统的使用说明及环境配置学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名admin密码admin登录系统后可以进行相应的操作学生通过以自己的学号(如10001)作为用户名和密码登录系统后进行相应的学生权限范围内的操作数据库SQLServer2005连接数据库的登录名sa密码123代码importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classCAddextendsJFrameimplementsActionListener{//用于课程信息管理中增加或修改某条记录的界面JLabellcno=newJLabel课程号;JLabellcname=newJLabel课程名;JLabellpcno=newJLabel先行课程号;JTextFieldtcno=newJTextField10;JTextFieldtcname=newJTextField10;JTextFieldtpcno=newJTextField10;JButtonbtnOK=newJButton确定;JButtonbtnCancel=newJButton取消;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;booleanisNewsm=true;//用于判断是否显示课程信息管理的界面publicCAdd{//构造方法this.setTitle增加;this.setBounds200200146235;p.setLayoutnewFlowLayoutFlowLayout.LEFT;p.addlcno;p.addtcno;p.addlcname;p.addtcname;p.addlpcno;p.addtpcno;p.addbtnOK;p.addbtnCancel;this.addp;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;btnOK.addActionListenerthis;btnCancel.addActionListenerthis;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidinsertst{//插入记录Stringkch=null;Stringkcm=null;Stringxxkch=null;kch=tcno.getText;kcm=tcname.getText;xxkch=tpcno.getText;ifthis.getTitle==修改{//如果是修改记录,先删除再增加try{this.connDB;intrs1=stmt.executeUpdatedeletefromcwherecno=+kch+;}catchSQLExceptione{e.printStackTrace;}}Stringstr=insertintocvalues+kch++kcm++xxkch+;this.connDB;//连接数据库try{stmt.executeUpdatestr;JOptionPane.showMessageDialognullthis.getTitle+成功!提示JOptionPane.INFORMATION_MESSAGEnewImageIconmenu
4.gif;this.setVisiblefalse;}catchSQLExceptione{JOptionPane.showMessageDialognull课程号已存在!;tcno.setText;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==确定{this.insertst;ifisNewsm{newCM课程信息管理.display;}isNewsm=true;}ife.getActionCommand==取消{this.setVisiblefalse;newCM课程信息管理.display;}}}importjava.awt.Component;importjava.awt.FlowLayout;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.TableCellRenderer;classCMextendsJFrameimplementsActionListener{//课程信息管理JPanelp=newJPanel;JButtonbtnAdd=newJButton增加;JButtonbtnDelete=newJButton删除;JButtonbtnAlter=newJButton修改;JButtonbtnSearch=newJButton查询;JButtonbtnDisplay=newJButton显示;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;CSelectcst;Stringmkch=null;booleanbstd=false;CMStringtitle{//构造方法supertitle;addSouthp;this.addCenterp1;mb.addbtnAdd;mb.addbtnDelete;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;//连接数据库this.setBounds200200400260;btnAdd.addActionListenerthis;btnDelete.addActionListenerthis;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}CMCSelectcstStringtitle{//构造方法supertitle;this.cst=cst;bstd=true;addSouthp;this.addCenterp1;mb.addbtnAdd;mb.addbtnDelete;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200400260;btnAdd.addActionListenerthis;btnDelete.addActionListenerthis;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有的课程信息inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*fromc;whilers.next{//找出表中的记录数赋给ial.addrs.getStringcno;al.addrs.getStringcn;al.addrs.getStringpcno;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[3];String[]columnNames={课程号课程名先行课程号};try{rs=stmt.executeQueryselect*fromcorderbycno;whilers.next{playerInfo[j]
[0]=rs.getStringcno;playerInfo[j]
[1]=rs.getStringcn;playerInfo[j]
[2]=rs.getStringpcno;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;//创建网格p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoiddelete{//删除某个课程信息Stringkch=null;Stringkcm=null;Stringxxkch=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{//判断要删除的信息是否被选中JOptionPane.showMessageDialognull请选择要删除的记录!;}else{if!bstd{//判断选择的是不是查询后的结果intj1=0;try{rs=stmt.executeQueryselect*fromc;whilers.nextj1=row{//找出当前被选中的记录在数据库中的对应kch=rs.getStringcno;kcm=rs.getStringcn;xxkch=rs.getStringpcno;j1++;}}catchSQLExceptione{e.printStackTrace;}inti1=0;try{intrs1=stmt.executeUpdatedeletefromcwherecno=+kch+;//删除数据库中当前被选中的记录JOptionPane.showMessageDialognull记录删除成功!;this.dispose;newCM课程信息管理.display;}catchSQLExceptione{e.printStackTrace;}}else{try{intrs1=stmt.executeUpdatedeletefromcwherecno=+mkch+;//删除数据库中当前被选中的记录JOptionPane.showMessageDialognull记录删除成功!;this.dispose;newCM课程信息管理.display;}catchSQLExceptione{e.printStackTrace;}}}}publicvoidupdate{//修改某个课程记录Stringkch=null;Stringkcm=null;Stringxxkch=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{JOptionPane.showMessageDialognull请选择要修改的记录!;}else{intj1=0;try{if!bstd{//判断选择的是不是查询后的结果rs=stmt.executeQueryselect*fromc;}else{rs=stmt.executeQueryselect*fromcwherecno=+mkch+;}whilers.nextj1=row{//找出当前被选中的记录在数据库中的对应kch=rs.getStringcno;kcm=rs.getStringcn;xxkch=rs.getStringpcno;j1++;}}catchSQLExceptione{e.printStackTrace;}CAddcadd=newCAdd;cadd.setTitle修改;cadd.tcno.setTextkch;cadd.tcname.setTextkcm;cadd.tpcno.setTextxxkch;cadd.tcno.setEnabledfalse;this.dispose;}}publicvoidselect{//显示某个查询的结果mkch=cst.kch;playerInfo=newObject
[1]
[3];String[]columnNames={课程号课程名先行课程号};try{rs=stmt.executeQueryselect*fromcwherecno=+mkch+;whilers.next{playerInfo
[0]
[0]=rs.getStringcno;playerInfo
[0]
[1]=rs.getStringcn;playerInfo
[0]
[2]=rs.getStringpcno;}}catchSQLExceptione{e.printStackTrace;}ifplayerInfo
[0]
[1]==null{this.dispose;JOptionPane.showMessageDialognull课程号不存在!;newCM课程信息管理.display;}else{sTable=newJTableplayerInfocolumnNames;//创建网格p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==增加{newCAdd;this.dispose;}ife.getActionCommand==删除{this.delete;}ife.getActionCommand==修改{this.update;}ife.getActionCommand==查询{cst=newCSelect;this.dispose;}ife.getActionCommand==显示{this.dispose;newCM课程信息管理.display;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;publicclassCSelectextendsJFrameimplementsActionListener{//用于课程信息管理中查询时输入课程号的界面JLabelltitle=newJLabel课程号;JTextFieldtcno=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Stringkch=null;publicCSelect{//构造方法p.addltitle;p.addtcno;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidactionPerformedActionEvente{kch=tcno.getText;//取得当前输入课程号的值ifkch.equals{//判断是否输入了课程号JOptionPane.showMessageDialognull课程号不能为空,请重新输入!;}else{this.dispose;newCMthis课程信息管理.select;}}}importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classDLFrameextendsJFrameimplementsActionListenerItemListener{//登录界面JPanelp1=null;JPanelp2=null;JPanelp3=null;JLabeluserName=newJLabel用户;JTextFieldtxtUser=newJTextField;JLabelpassword=newJLabel密码;JPasswordFieldtxtPwd=newJPasswordField6;JLabelrole=newJLabel角色;JComboBoxcbrole=newJComboBox;JButtonbtnLogin=newJButton登录;JButtonbtncz=newJButton重置;JButtonbtnCancel=newJButton取消;JLabelimageLabel;Iconimage;staticintOK=1;staticintCANCEL=0;intactionCode=0;Connectioncon=null;Statementstmt=null;ResultSetrs=null;intqxian=0;publicDLFrame{//构造方法super登录界面;p1=newJPanel;p2=newJPanel;p3=newJPanel;cbrole.addItem管理员;cbrole.addItem学生;image=newImageIconpicture\\st.jpg;imageLabel=newJLabelimage;p
1.addimageLabel;this.setLayoutnewFlowLayout;this.setBounds100100246345;p
2.setLayoutnewGridLayout42;p
2.adduserName;p
2.addtxtUser;p
2.addpassword;p
2.addtxtPwd;p
2.addrole;p
2.addcbrole;p
3.addbtnLogin;p
3.addbtncz;p
3.addbtnCancel;this.addp1;this.addp2;this.addp3;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.show;btnLogin.addActionListenerthis;cbrole.addItemListenerthis;btncz.addActionListenerthis;btnCancel.addActionListenerthis;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoiditemStateChangedItemEvente{ife.getStateChange==ItemEvent.SELECTED{JComboBoxjcb=JComboBoxe.getSource;qxian=jcb.getSelectedIndex;}}publicvoidactionPerformedActionEvente{Objectsource=e.getSource;Stringun=null;Stringpw=null;booleansuccess=false;//用于判断是否登录成功ifsource==btnLogin{iftxtUser.getText.equals||txtPwd.getText.equals{//判断是否输入了用户名和密码JOptionPane.showMessageDialognull登录名和密码不能为空!;}else{this.connDB;try{rs=stmt.executeQueryselect*fromunpwwhereqx=+qxian;whilers.next{un=rs.getStringun.trim;pw=rs.getStringpw.trim;iftxtUser.getText.equalsun{iftxtPwd.getText.equalspw{actionCode=OK;this.setVisiblefalse;ifqxian==0{newManagerFrane;//进入管理员界面}ifqxian==1{newStudentFrame;//进入学生界面}success=true;break;}else{JOptionPane.showMessageDialognull密码错误!;txtPwd.setText;success=true;}}}if!success{JOptionPane.showMessageDialognull登录名错误!;txtUser.setText;txtPwd.setText;}}catchSQLExceptione1{e
1.printStackTrace;}}}elseifsource==btncz{txtUser.setText;txtPwd.setText;}elseifsource==btnCancel{System.exit0;}}}importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classGAddextendsJFrameimplementsActionListener{//用于成绩信息管理中修改成绩的界面JLabellcno=newJLabel学号;JLabellcname=newJLabel课程名;JLabellg=newJLabel成绩;JTextFieldtcno=newJTextField10;JTextFieldtcname=newJTextField10;JTextFieldtpcno=newJTextField10;JButtonbtnOK=newJButton确定;JButtonbtnCancel=newJButton取消;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;booleanisNewsm=true;//用于判断是否显示成绩信息管理的界面publicGAdd{//构造方法this.setTitle增加;this.setBounds200200146235;p.setLayoutnewFlowLayoutFlowLayout.LEFT;p.addlcno;p.addtcno;p.addlcname;p.addtcname;p.addlg;p.addtpcno;p.addbtnOK;p.addbtnCancel;this.addp;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;btnOK.addActionListenerthis;btnCancel.addActionListenerthis;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidinsertst{//修改成绩Stringkch=null;Stringkcm=null;Stringxxkch=null;kch=tcno.getText;kcm=tcname.getText;xxkch=tpcno.getText;Stringgcno=null;ifthis.getTitle==修改成绩{try{this.connDB;rs=stmt.executeQueryselectcnofromcwherecn=+kcm+;whilers.next{gcno=rs.getStringcno;//找出哪门课程的成绩要被修改}System.out.printlngcno;stmt.executeUpdateupdatescsetg=+xxkch+wheresno=+kch+andcno=+gcno+;}catchSQLExceptione{e.printStackTrace;}}}publicvoidactionPerformedActionEvente{ife.getActionCommand==确定{this.insertst;ifisNewsm{newGM成绩信息管理.display;this.dispose;}isNewsm=true;}ife.getActionCommand==取消{this.setVisiblefalse;newGM成绩信息管理.display;}}}importjava.awt.Component;importjava.awt.FlowLayout;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.TableCellRenderer;classGMextendsJFrameimplementsActionListener{//成绩信息管理JPanelp=newJPanel;JButtonbtnAlter=newJButton修改成绩;JButtonbtnSearch=newJButton查询;JButtonbtnDisplay=newJButton显示;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;GSelectgst;intii=0;Stringmxh=null;booleanbstd=false;GMStringtitle{//构造方法supertitle;addSouthp;this.addCenterp1;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200400260;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}GMGSelectgstStringtitle{//构造方法supertitle;this.gst=gst;bstd=true;addSouthp;this.addCenterp1;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200400260;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有的成绩信息inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*fromsccwherec.cno=sc.cno;whilers.next{//找出表中的记录数赋给ial.addrs.getStringsno;al.addrs.getStringcn;al.addrs.getStringg;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[3];String[]columnNames={学号课程名成绩};try{rs=stmt.executeQueryselect*fromsccwherec.cno=sc.cno;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringcn;playerInfo[j]
[2]=rs.getStringg;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;//创建网格p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidupdate{//修改某个学生的成绩信息Stringkch=null;Stringkcm=null;Stringxxkch=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{//判断要修改的信息是否被选中JOptionPane.showMessageDialognull请选择要修改的记录!;}else{intj1=0;try{if!bstd{//判断选择的是不是查询后的结果rs=stmt.executeQueryselect*fromsccwherec.cno=sc.cno;}else{rs=stmt.executeQueryselect*fromsccwherec.cno=sc.cnoandsno=+mxh+;}whilers.nextj1=row{kch=rs.getStringsno;kcm=rs.getStringcn;xxkch=rs.getStringg;j1++;}}catchSQLExceptione{e.printStackTrace;}GAddgadd=newGAdd;gadd.setTitle修改成绩;gadd.tcno.setTextkch;gadd.tcname.setTextkcm;gadd.tpcno.setTextxxkch;gadd.tcno.setEnabledfalse;gadd.tcname.setEnabledfalse;this.dispose;}}publicvoidselect{//显示某个学生的成绩查询结果intj=0;ii=gst.i;mxh=gst.gxh;playerInfo=newObject[ii]
[3];String[]columnNames={学号课程名成绩};try{rs=stmt.executeQueryselect*fromsccwherec.cno=sc.cnoandsno=+mxh+;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringcn;playerInfo[j]
[2]=rs.getStringg;j++;}}catchSQLExceptione{e.printStackTrace;}ifplayerInfo
[0]
[1]==null{this.dispose;JOptionPane.showMessageDialognull学号不存在!;newGM成绩信息管理.display;}else{sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==修改成绩{this.update;}ife.getActionCommand==查询{gst=newGSelect;this.dispose;}ife.getActionCommand==显示{this.dispose;newGM成绩信息管理.display;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjavax.swing.*;publicclassGSelectextendsJFrameimplementsActionListener{//用于成绩信息管理中查询时输入学号的界面JLabelltitle=newJLabel学号;JTextFieldtsno=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Stringgxh=null;inti=0;publicGSelect{//构造方法p.addltitle;p.addtsno;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidii{//取得符合条件的记录数Listal=newArrayList;try{rs=stmt.executeQueryselect*fromsccwherec.cno=sc.cnoandsno=+gxh+;whilers.next{al.addrs.getStringsno;al.addrs.getStringcn;al.addrs.getStringg;i++;//把符合条件的记录数赋给i}}catchSQLExceptione{e.printStackTrace;}}publicvoidactionPerformedActionEvente{gxh=tsno.getText;//取得当前输入学号的值this.connDB;this.ii;ifgxh.equals{//判断是否输入了学号JOptionPane.showMessageDialognull学号不能为空,请重新输入!;}else{this.dispose;newGMthis成绩信息管理.select;}}}importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classManagerFraneextendsJFrameimplementsActionListener{//管理员界面JPanelp1=newJPanel;JPanelp2=newJPanel;JButtonbtns=newJButton学生信息管理;JButtonbtnc=newJButton课程信息管理;JButtonbtnsc=newJButton选课信息管理;JButtonbtng=newJButton成绩信息管理;JButtonbtnu=newJButton用户信息管理;JButtonbtnClose=newJButton退出管理系统;JLabell=newJLabel管理员;ManagerFrane{//构造方法super学生信息管理系统;setSize350200;addNorthp1;addCenterp2;p
1.addl;p
2.addbtns;p
2.addbtnc;p
2.addbtnsc;p
2.addbtng;p
2.addbtnu;p
2.addbtnClose;btns.addActionListenerthis;btnc.addActionListenerthis;btnsc.addActionListenerthis;btng.addActionListenerthis;btnu.addActionListenerthis;btnClose.addActionListenerthis;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;show;}publicvoidactionPerformedActionEvente{ife.getActionCommand==学生信息管理newSM.display;ife.getActionCommand==课程信息管理{newCM课程信息管理.display;}ife.getActionCommand==选课信息管理{newSCM选课信息管理.display;}ife.getActionCommand==成绩信息管理{newGM成绩信息管理.display;}ife.getActionCommand==用户信息管理{newPM用户信息管理.display;}ife.getActionCommand==退出管理系统{System.exit0;}}}importjava.awt.Component;importjava.awt.FlowLayout;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.TableCellRenderer;classPMextendsJFrameimplementsActionListener{//用户信息管理JPanelp=newJPanel;JButtonbtnAlter=newJButton修改;JButtonbtnSearch=newJButton查询;JButtonbtnDisplay=newJButton显示;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;PSelectpst;Stringmyh=null;booleanbstd=false;PMStringtitle{//构造方法supertitle;addSouthp;this.addCenterp1;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200200260;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}PMPSelectpstStringtitle{//构造方法supertitle;this.pst=pst;bstd=true;addSouthp;this.addCenterp1;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200200260;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有用户的基本信息inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*fromunpwwhereqx=1;whilers.next{al.addrs.getStringun;al.addrs.getStringpw;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[2];String[]columnNames={用户名密码};try{rs=stmt.executeQueryselect*fromunpwwhereqx=1orderbyun;whilers.next{playerInfo[j]
[0]=rs.getStringun;playerInfo[j]
[1]=rs.getStringpw;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidupdate{//修改某个用户的密码Stringyh=null;Stringmm=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{JOptionPane.showMessageDialognull请选择要修改的记录!;}else{intj1=0;try{if!bstd{rs=stmt.executeQueryselect*fromunpwwhereqx=1;}else{rs=stmt.executeQueryselect*fromunpwwhereqx=1andun=+myh+;}whilers.nextj1=row{yh=rs.getStringun;mm=rs.getStringpw;j1++;}}catchSQLExceptione{e.printStackTrace;}UAdduadd=newUAdd;uadd.setTitle修改;uadd.tun.setTextyh;uadd.tpw.setTextmm;uadd.tun.setEnabledfalse;this.dispose;}}publicvoidselect{//显示某个查询的结果myh=pst.yh;playerInfo=newObject
[1]
[2];String[]columnNames={用户名密码};try{rs=stmt.executeQueryselect*fromunpwwhereqx=1andun=+myh+;whilers.next{playerInfo
[0]
[0]=rs.getStringun;playerInfo
[0]
[1]=rs.getStringpw;}}catchSQLExceptione{e.printStackTrace;}ifplayerInfo
[0]
[1]==null{this.dispose;JOptionPane.showMessageDialognull用户不存在!;newPM用户信息管理.display;}else{sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==修改{this.update;}ife.getActionCommand==查询{pst=newPSelect;this.dispose;}ife.getActionCommand==显示{this.dispose;newPM用户信息管理.display;}}}importjava.awt.Component;importjava.awt.FlowLayout;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.TableCellRenderer;classPPMextendsJFrameimplementsActionListener{//个人信息管理JPanelp=newJPanel;JButtonbtnAlter=newJButton修改密码;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;PPSelectpst;Stringmyh=null;booleanbstd=false;PPMStringtitle{//构造方法supertitle;addSouthp;this.addCenterp1;mb.addbtnAlter;this.connDB;this.setBounds200200200260;btnAlter.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}PPMPPSelectpstStringtitle{//构造方法supertitle;this.pst=pst;bstd=true;addSouthp;this.addCenterp1;mb.addbtnAlter;this.connDB;this.setBounds200200200260;btnAlter.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidupdate{//修改密码Stringyh=null;Stringmm=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{JOptionPane.showMessageDialognull请选择要修改的记录!;}else{intj1=0;try{if!bstd{rs=stmt.executeQueryselect*fromunpwwhereqx=1;}else{rs=stmt.executeQueryselect*fromunpwwhereqx=1andun=+myh+;}whilers.nextj1=row{yh=rs.getStringun;mm=rs.getStringpw;j1++;}}catchSQLExceptione{e.printStackTrace;}UAdduadd=newUAdd;uadd.setTitle修改密码;uadd.tun.setTextyh;uadd.tpw.setTextmm;uadd.tun.setEnabledfalse;this.dispose;}}publicvoidselect{//查询某个用户的个人信息myh=pst.yh;playerInfo=newObject
[1]
[2];String[]columnNames={用户名密码};try{rs=stmt.executeQueryselect*fromunpwwhereqx=1andun=+myh+;whilers.next{playerInfo
[0]
[0]=rs.getStringun;playerInfo
[0]
[1]=rs.getStringpw;}}catchSQLExceptione{e.printStackTrace;}ifplayerInfo
[0]
[1]==null{this.dispose;JOptionPane.showMessageDialognull用户不存在!;//newPPM用户信息管理.select;}else{sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}publicvoidactionPerformedActionEvente{this.update;}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;publicclassPPSelectextendsJFrameimplementsActionListener{//用于个人信息管理查询时输入用户名的界面JLabelltitle=newJLabel用户名;JTextFieldtun=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Stringyh=null;publicPPSelect{//构造方法p.addltitle;p.addtun;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidactionPerformedActionEvente{yh=tun.getText;//取得当前输入的用户名ifyh.equals{//判断是否输入了用户名JOptionPane.showMessageDialognull用户名不能为空,请重新输入!;}else{this.dispose;newPPMthis用户信息管理.select;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;publicclassPSelectextendsJFrameimplementsActionListener{//用于用户信息管理中查询时输入用户名的界面JLabelltitle=newJLabel用户名;JTextFieldtun=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Stringyh=null;publicPSelect{//构造方法p.addltitle;p.addtun;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidactionPerformedActionEvente{yh=tun.getText;//取得当前输入用户名的值ifyh.equals{//判断是否输入了用户名JOptionPane.showMessageDialognull用户名不能为空,请重新输入!;}else{this.dispose;newPMthis用户信息管理.select;}}}importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classSAddextendsJFrameimplementsActionListenerItemListener{//用于学生信息管理中增加或修改某条记录的界面JLabellsno=newJLabel学号;JLabellsname=newJLabel姓名;JLabellssex=newJLabel性别;JLabellsage=newJLabel年龄;JLabellsdept=newJLabel院系;JTextFieldtsno=newJTextField14;JTextFieldtsname=newJTextField14;JComboBoxcbssex=newJComboBox;JTextFieldtsage=newJTextField14;JComboBoxcbsdept=newJComboBox;JButtonbtnOK=newJButton确定;JButtonbtnCancel=newJButton取消;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Stringxb=男;Stringyx=计科系;booleanisNewsm=true;//用于判断是否显示学生管理的界面publicSAddStringxbStringyx{//构造方法this.xb=xb;this.yx=yx;this.setTitle增加;this.setBounds200200220210;ifxb.trim.equals男{cbssex.addItem男;cbssex.addItem女;}else{cbssex.addItem女;cbssex.addItem男;}ifyx.trim.equals计科系{cbsdept.addItem计科系;cbsdept.addItem物理系;cbsdept.addItem数学系;cbsdept.addItem外语系;}ifyx.trim.equals物理系{cbsdept.addItem物理系;cbsdept.addItem计科系;cbsdept.addItem数学系;cbsdept.addItem外语系;}ifyx.trim.equals外语系{cbsdept.addItem外语系;cbsdept.addItem计科系;cbsdept.addItem物理系;cbsdept.addItem数学系;}ifyx.trim.equals数学系{cbsdept.addItem数学系;cbsdept.addItem计科系;cbsdept.addItem物理系;cbsdept.addItem外语系;}p.setLayoutnewFlowLayoutFlowLayout.LEFT;p.addlsno;p.addtsno;p.addlsname;p.addtsname;p.addlsage;p.addtsage;p.addlssex;p.addcbssex;p.addlsdept;p.addcbsdept;p.addbtnOK;p.addbtnCancel;this.addp;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;cbssex.addItemListenerthis;cbsdept.addItemListenerthis;btnOK.addActionListenerthis;btnCancel.addActionListenerthis;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidinsertst{//插入记录Stringxh=null;Stringxm=null;intnl=0;xh=tsno.getText;xm=tsname.getText;try{nl=Integer.parseIntStringtsage.getText;ifthis.getTitle==修改{//如果是修改记录,先删除再增加try{this.connDB;intrs1=stmt.executeUpdatedeletefromswheresno=+xh+;}catchSQLExceptione{e.printStackTrace;}}Stringstr=insertintosvalues+xh++xm++nl++xb++yx+;this.connDB;//连接数据库try{stmt.executeUpdatestr;JOptionPane.showMessageDialognullthis.getTitle+成功!提示JOptionPane.INFORMATION_MESSAGEnewImageIconmenu
4.gif;this.setVisiblefalse;}catchSQLExceptione{JOptionPane.showMessageDialognull学号已存在!;tsno.setText;}}catchNumberFormatExceptione{//判断年龄是否为数字JOptionPane.showMessageDialognull年龄必须是整数!;tsage.setText;isNewsm=false;}ifthis.getTitle==增加{//如果是增加记录,对应的用户表中也增加一条记录try{stmt.executeUpdateinsertintounpwvalues+xh++xh++1+;}catchNullPointerExceptione{}catchSQLExceptione{//e.printStackTrace;}}}publicvoidactionPerformedActionEvente{ife.getActionCommand==确定{this.insertst;ifisNewsm{newSM.display;}isNewsm=true;}ife.getActionCommand==取消{this.setVisiblefalse;newSM.display;}}publicvoiditemStateChangedItemEvente{//下拉框的监听ife.getStateChange==ItemEvent.SELECTED{JComboBoxjcb=JComboBoxe.getSource;ifjcb.getSelectedItem==男||jcb.getSelectedItem==女{xb=Stringjcb.getSelectedItem;}else{yx=Stringjcb.getSelectedItem;}}}}importjava.awt.Component;importjava.awt.FlowLayout;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.TableCellRenderer;classSCMextendsJFrameimplementsActionListener{//选课信息管理JPanelp=newJPanel;JButtonbtnSearch=newJButton查询;JButtonbtnDisplay=newJButton显示;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;SCSelectscst;Stringmscxh=null;intii=0;booleanbstd=false;SCMStringtitle{//构造方法supertitle;addSouthp;this.addCenterp1;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200400260;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}SCMSCSelectscstStringtitle{//构造方法supertitle;this.scst=scst;bstd=true;addSouthp;this.addCenterp1;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200400260;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有选课信息inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*fromsc;whilers.next{//找出表中的记录数赋给ial.addrs.getStringsno;al.addrs.getStringcno;al.addrs.getStringg;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[3];String[]columnNames={学号课程号成绩};try{rs=stmt.executeQueryselect*fromscorderbysno;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringcno;playerInfo[j]
[2]=rs.getStringg;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;//创建网格p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidselect{//显示某个查询的结果ii=scst.i;mscxh=scst.scxh;intj=0;playerInfo=newObject[ii]
[3];String[]columnNames={学号课程号成绩};try{rs=stmt.executeQueryselect*fromscwheresno=+mscxh+;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringcno;playerInfo[j]
[2]=rs.getStringg;j++;}}catchSQLExceptione{e.printStackTrace;}ifplayerInfo
[0]
[1]==null{this.dispose;JOptionPane.showMessageDialognull课程号不存在!;newSCM选课信息管理.display;}else{sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==查询{scst=newSCSelect;this.dispose;}ife.getActionCommand==显示{this.dispose;newSCM选课信息管理.display;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjavax.swing.*;publicclassSCSelectextendsJFrameimplementsActionListener{//用于选课信息管理中查询时输入学号的界面JLabelltitle=newJLabel学号;JTextFieldtsno=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Stringscxh=null;inti=0;publicSCSelect{//构造方法p.addltitle;p.addtsno;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidii{//取得符合条件的记录数Listal=newArrayList;try{rs=stmt.executeQueryselect*fromscwheresno=+scxh+;whilers.next{al.addrs.getStringsno;al.addrs.getStringcno;al.addrs.getStringg;i++;//把符合条件的记录数赋给i}}catchSQLExceptione{e.printStackTrace;}}publicvoidactionPerformedActionEvente{scxh=tsno.getText;//取得当前输入学号的值this.connDB;this.ii;ifscxh.equals{//判断是否输入了学号JOptionPane.showMessageDialognull学号不能为空,请重新输入!;}else{this.dispose;newSCMthis选课信息管理.select;}}}publicclassSimpleStudentManager{publicstaticvoidmainString[]args{newDLFrame;}}importjava.awt.Component;importjava.awt.FlowLayout;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.TableCellRenderer;classSMextendsJFrameimplementsActionListener{//学生信息管理JPanelp=newJPanel;JButtonbtnAdd=newJButton增加;JButtonbtnDelete=newJButton删除;JButtonbtnAlter=newJButton修改;JButtonbtnSearch=newJButton查询;JButtonbtnDisplay=newJButton显示;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;SSelectsst;Stringmxh=null;booleanbstd=false;SM{//构造方法super学生信息管理;addSouthp;this.addCenterp1;mb.addbtnAdd;mb.addbtnDelete;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;//连接数据库//this.display;this.setBounds200200400260;btnAdd.addActionListenerthis;btnDelete.addActionListenerthis;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}SMSSelectsst{//构造方法super学生信息管理;this.sst=sst;bstd=true;addSouthp;this.addCenterp1;mb.addbtnAdd;mb.addbtnDelete;mb.addbtnAlter;mb.addbtnSearch;mb.addbtnDisplay;this.connDB;this.setBounds200200400260;btnAdd.addActionListenerthis;btnDelete.addActionListenerthis;btnAlter.addActionListenerthis;btnSearch.addActionListenerthis;btnDisplay.addActionListenerthis;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有学生的基本信息inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*froms;whilers.next{//找出表中的记录数赋给ial.addrs.getStringsno;al.addrs.getStringsn;al.addrs.getStringss;al.addrs.getIntsa;al.addrs.getStringsd;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[5];String[]columnNames={学号姓名年龄性别院系};try{rs=stmt.executeQueryselect*fromsorderbysno;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringsn;playerInfo[j]
[2]=rs.getIntsa;playerInfo[j]
[3]=rs.getStringss;playerInfo[j]
[4]=rs.getStringsd;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;//创建网格p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭数据库连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoiddelete{//删除某个学生的基本信息Stringxh=null;Stringxm=null;intnl=0;Stringxb=null;Stringyx=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{//判断要删除的信息是否被选中JOptionPane.showMessageDialognull请选择要删除的记录!;}else{if!bstd{//判断选择的是不是查询后的结果intj1=0;try{rs=stmt.executeQueryselect*froms;whilers.nextj1=row{//找出当前被选中的记录在数据库中的对应xh=rs.getStringsno;xm=rs.getStringsn;nl=rs.getIntsa;xb=rs.getStringss;yx=rs.getStringsd;j1++;}}catchSQLExceptione{e.printStackTrace;}inti1=0;try{intrs1=stmt.executeUpdatedeletefromswheresno=+xh+;//删除数据库中当前被选中的记录stmt.executeUpdatedeletefromunpwwhereun=+xh+;//删除对应的用户表中的记录JOptionPane.showMessageDialognull记录删除成功!;this.dispose;newSM.display;}catchSQLExceptione{e.printStackTrace;}}else{try{intrs1=stmt.executeUpdatedeletefromswheresno=+mxh+;stmt.executeUpdatedeletefromunpwwhereun=+mxh+;JOptionPane.showMessageDialognull记录删除成功!;this.dispose;newSM.display;}catchSQLExceptione{e.printStackTrace;}}}}publicvoidupdate{//修改某个学生的基本信息Stringxh=null;Stringxm=null;intnl=0;Stringxb=null;Stringyx=null;introw=-1;row=sTable.getSelectedRow;ifrow==-1{JOptionPane.showMessageDialognull请选择要修改的记录!;}else{intj1=0;try{if!bstd{//判断选择的是不是查询后的结果rs=stmt.executeQueryselect*froms;}else{rs=stmt.executeQueryselect*fromswheresno=+mxh+;}whilers.nextj1=row{//找出当前被选中的记录在数据库中的对应xh=rs.getStringsno;xm=rs.getStringsn;nl=rs.getIntsa;xb=rs.getStringss;yx=rs.getStringsd;j1++;}}catchSQLExceptione{e.printStackTrace;}SAddsadd=newSAddxbyx;sadd.setTitle修改;sadd.tsno.setTextxh;sadd.tsname.setTextxm;sadd.tsage.setText+nl;sadd.tsno.setEnabledfalse;this.dispose;}}publicvoidselect{//显示某个查询的结果mxh=sst.xh;playerInfo=newObject
[1]
[5];String[]columnNames={学号姓名年龄性别院系};try{rs=stmt.executeQueryselect*fromswheresno=+mxh+;whilers.next{playerInfo
[0]
[0]=rs.getStringsno;playerInfo
[0]
[1]=rs.getStringsn;playerInfo
[0]
[2]=rs.getIntsa;playerInfo
[0]
[3]=rs.getStringss;playerInfo
[0]
[4]=rs.getStringsd;}}catchSQLExceptione{e.printStackTrace;}ifplayerInfo
[0]
[1]==null{this.dispose;JOptionPane.showMessageDialognull学号不存在!;newSM.display;}else{sTable=newJTableplayerInfocolumnNames;//创建网格p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==增加{newSAdd男计科系;this.dispose;}ife.getActionCommand==删除{this.delete;}ife.getActionCommand==修改{this.update;}ife.getActionCommand==查询{sst=newSSelect学号;this.dispose;}ife.getActionCommand==显示{this.dispose;newSM.display;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.*;publicclassSSelectextendsJFrameimplementsActionListener{//用于学生基本信息管理中查询时输入学号的界面JLabelltitle=null;JTextFieldtsno=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Stringxh=null;publicSSelectStringstr{//构造方法ltitle=newJLabelstr;p.addltitle;p.addtsno;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidactionPerformedActionEvente{xh=tsno.getText;//取得当前输入学号的值ifxh.equals{//判断是否输入了学号JOptionPane.showMessageDialognull学号不能为空,请重新输入!;}else{this.dispose;newSMthis.select;}}}importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classStudentFrameextendsJFrameimplementsActionListener{JPanelp1=newJPanel;JPanelp2=newJPanel;JButtonbtns=newJButton学生信息查看;JButtonbtng=newJButton成绩信息查看;JButtonbtnu=newJButton个人信息管理;JButtonbtnClose=newJButton退出管理系统;JLabell=newJLabel学生;StudentFrame{super学生信息管理系统;setSize350200;addNorthp1;addCenterp2;p
1.addl;p
2.addbtns;p
2.addbtng;p
2.addbtnu;p
2.addbtnClose;btns.addActionListenerthis;btng.addActionListenerthis;btnu.addActionListenerthis;btnClose.addActionListenerthis;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;show;}publicvoidactionPerformedActionEvente{ife.getActionCommand==学生信息查看{newStudentS;}ife.getActionCommand==成绩信息查看{newStudentSelect;}ife.getActionCommand==个人信息管理{PPSelectppst=newPPSelect;}ife.getActionCommand==退出管理系统{System.exit0;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjavax.swing.*;publicclassStudentSextendsJFrameimplementsActionListener{//用于学生信息查看时输入学号的界面JLabelltitle=newJLabel学号;JTextFieldtsno=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Stringscxh=null;intii=0;publicStudentS{//构造方法p.addltitle;p.addtsno;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidii{//取得符合条件的记录数Listal=newArrayList;try{rs=stmt.executeQueryselect*fromswheresno=+scxh+;whilers.next{al.addrs.getStringsno;al.addrs.getStringsn;al.addrs.getStringss;al.addrs.getIntsa;al.addrs.getStringsd;ii++;//把符合条件的记录数赋给ii}}catchSQLExceptione{e.printStackTrace;}}classStudentMSextendsJFrame{//学生信息查看JPanelp=newJPanel;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;CSelectcst;Stringmkch=null;booleanbstd=false;StudentMS{//构造方法super学生信息查看;bstd=true;addSouthp;this.addCenterp1;this.connDB;this.setBounds200200400260;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有学生的基本信息inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*froms;whilers.next{al.addrs.getStringsno;al.addrs.getStringsn;al.addrs.getStringss;al.addrs.getIntsa;al.addrs.getStringsd;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[5];String[]columnNames={学号姓名年龄性别院系};try{rs=stmt.executeQueryselect*fromsorderbysno;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringsn;playerInfo[j]
[2]=rs.getIntsa;playerInfo[j]
[3]=rs.getStringss;playerInfo[j]
[4]=rs.getStringsd;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidselect{//查询某个学生的基本信息intj1=0;playerInfo=newObject[ii]
[5];String[]columnNames={学号姓名年龄性别院系};try{rs=stmt.executeQueryselect*fromswheresno=+scxh+;whilers.next{playerInfo[j1]
[0]=rs.getStringsno;playerInfo[j1]
[1]=rs.getStringsn;playerInfo[j1]
[2]=rs.getIntsa;playerInfo[j1]
[3]=rs.getStringss;playerInfo[j1]
[4]=rs.getStringsd;j1++;}}catchSQLExceptione{e.printStackTrace;}try{ifplayerInfo
[0]
[1]==null{this.dispose;}else{sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}catchArrayIndexOutOfBoundsExceptione{JOptionPane.showMessageDialognull学号不存在!;this.dispose;}}}publicvoidactionPerformedActionEvente{scxh=tsno.getText;//取得当前输入学号的值this.connDB;this.ii;ifscxh.equals{//判断是否输入了学号JOptionPane.showMessageDialognull学号不能为空,请重新输入!;}else{this.dispose;newStudentMS.select;}}}importjava.awt.event.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjavax.swing.*;publicclassStudentSelectextendsJFrameimplementsActionListener{//用于成绩信息查看时输入学号的界面JLabelltitle=newJLabel学号;JTextFieldtsno=newJTextField8;JButtonbtnOK=newJButton确定;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Stringscxh=null;intii=0;publicStudentSelect{//构造方法p.addltitle;p.addtsno;p.addbtnOK;addp;this.setBounds300280200160;btnOK.addActionListenerthis;this.setResizablefalse;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidii{//取得符合条件的记录数Listal=newArrayList;try{rs=stmt.executeQueryselect*fromscwheresno=+scxh+;whilers.next{al.addrs.getStringsno;al.addrs.getStringcno;al.addrs.getStringg;ii++;//把符合条件的记录数赋给ii}}catchSQLExceptione{e.printStackTrace;}}classStudentMextendsJFrame{//成绩信息查看JPanelp=newJPanel;JMenuBarmb=newJMenuBar;JPanelp1=newJPanel;;JTablesTable;JScrollPanescroll;Connectioncon=null;Statementstmt=null;ResultSetrs=null;Object[][]playerInfo;CSelectcst;Stringmkch=null;booleanbstd=false;StudentM{//构造方法super成绩信息查看;bstd=true;addSouthp;this.addCenterp1;this.connDB;this.setBounds200200400260;this.setJMenuBarmb;//this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;this.setResizablefalse;show;}publicvoiddisplay{//显示所有学生的成绩inti=0;intj=0;intk=0;Listal=newArrayList;try{rs=stmt.executeQueryselect*fromsc;whilers.next{al.addrs.getStringsno;al.addrs.getStringcno;al.addrs.getStringg;i++;}}catchSQLExceptione{e.printStackTrace;}playerInfo=newObject[i]
[3];String[]columnNames={学号课程号成绩};try{rs=stmt.executeQueryselect*fromscorderbysno;whilers.next{playerInfo[j]
[0]=rs.getStringsno;playerInfo[j]
[1]=rs.getStringcno;playerInfo[j]
[2]=rs.getStringg;j++;}}catchSQLExceptione{e.printStackTrace;}sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidselect{//查询某个学生的成绩intj1=0;playerInfo=newObject[ii]
[3];String[]columnNames={学号课程号成绩};try{rs=stmt.executeQueryselect*fromscwheresno=+scxh+;whilers.next{playerInfo[j1]
[0]=rs.getStringsno;playerInfo[j1]
[1]=rs.getStringcno;playerInfo[j1]
[2]=rs.getStringg;j1++;}}catchSQLExceptione{e.printStackTrace;}try{ifplayerInfo
[0]
[1]==null{this.dispose;}else{sTable=newJTableplayerInfocolumnNames;p
1.addsTable;scroll=newJScrollPanesTable;this.addscroll;}}catchArrayIndexOutOfBoundsExceptione{JOptionPane.showMessageDialognull学号不存在!;this.dispose;}}}publicvoidactionPerformedActionEvente{scxh=tsno.getText;//取得当前输入学号的值this.connDB;this.ii;ifscxh.equals{//判断是否输入了学号JOptionPane.showMessageDialognull学号不能为空,请重新输入!;}else{this.dispose;newStudentM.select;}}}importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classUAddextendsJFrameimplementsActionListener{//用于用户信息管理中修改密码的界面JLabellun=newJLabel用户;JLabellpw=newJLabel密码;JTextFieldtun=newJTextField10;JTextFieldtpw=newJTextField10;JButtonbtnOK=newJButton确定;JButtonbtnCancel=newJButton取消;JPanelp=newJPanel;Connectioncon=null;Statementstmt=null;ResultSetrs=null;booleanisNewsm=true;//用于判断是否显示用户信息管理的界面publicUAdd{//构造方法this.setTitle增加;this.setBounds200200146200;p.setLayoutnewFlowLayoutFlowLayout.LEFT;p.addlun;p.addtun;p.addlpw;p.addtpw;p.addbtnOK;p.addbtnCancel;this.addp;this.setResizablefalse;this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;btnOK.addActionListenerthis;btnCancel.addActionListenerthis;this.show;}publicvoidconnDB{//连接数据库try{Class.forNamecom.microsoft.sqlserver.jdbc.SQLServerDriver;}catchClassNotFoundExceptione{e.printStackTrace;}try{con=DriverManager.getConnectionjdbc:sqlserver://localhost:1433;DatabaseName=studentsa123;stmt=con.createStatement;}catchSQLExceptione{e.printStackTrace;}}publicvoidcloseDB//关闭连接{try{stmt.close;con.close;}catchSQLExceptione{e.printStackTrace;}}publicvoidinsertst{//插入记录Stringyh=null;Stringmm=null;yh=tun.getText;mm=tpw.getText;ifthis.getTitle==修改||this.getTitle==修改密码{//判断修改密码的角色(管理员、学生)try{//如果是修改,先删除再增加this.connDB;intrs1=stmt.executeUpdatedeletefromunpwwhereun=+yh+;}catchSQLExceptione{e.printStackTrace;}}Stringstr=insertintounpwvalues+yh++mm++1+;this.connDB;//连接数据库try{stmt.executeUpdatestr;JOptionPane.showMessageDialognullthis.getTitle+成功!;this.setVisiblefalse;}catchSQLExceptione{JOptionPane.showMessageDialognull用户已存在!;tun.setText;}}publicvoidactionPerformedActionEvente{ife.getActionCommand==确定{this.insertst;ifisNewsm{ifthis.getTitle==修改newPM用户信息管理.display;}isNewsm=true;}ife.getActionCommand==取消{this.setVisiblefalse;newPM用户信息管理.display;}}}。