学生信息管理系统(Java)+代码_第1页
学生信息管理系统(Java)+代码_第2页
学生信息管理系统(Java)+代码_第3页
学生信息管理系统(Java)+代码_第4页
学生信息管理系统(Java)+代码_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...wd......wd......wd...学生信息管理系统设计系统简介本系统提供了学生信息管理中常见的根本功能,主要包括管理员和学生两大模块。管理员的主要功能有对学生信息和课程信息进展增加、删除、修改、查找等操作,对选课信息进展管理,对成绩信息和用户信息进展修改、查找等操作。学生的主要功能有对学生信息和成绩信息进展查看,对个人的密码信息进展修改等。功能设计2.1需求分析本系统需要实现的功能:〔1〕、管理员对学生信息和课程信息进展增加、删除、修改、查找等操作,对选课信息进展管理,对成绩信息和用户信息进展修改、查找等操作。〔2〕、学生对学生信息和成绩信息进展查看,对个人的密码信息进展修改等。2.2总体设计学生信息管理系统主要包括管理员和学生两大模块。管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。系统总体构造如以下列图。总体构造图2.3模块详细设计1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。具体的构造图如以下列图。学生信息管理模块构造图2、课程信息管理模块课程信息管理模块包括增加、删除、修改、查询、显示全部等。具体的构造图如以下列图。课程信息管理模块构造图3、选课信息管理模块选课信息管理模块包括查询、显示全部等。具体的构造图如以下列图。选课信息管理模块构造图4、成绩信息管理模块成绩信息管理模块包括修改成绩、查询、显示全部等。具体的构造图如以下列图。成绩信息管理模块构造图5、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等。具体的构造图如以下列图。用户信息管理模块构造图数据库设计在数据库student中共有4张数据表:s〔学生信息表〕、c〔课程信息表〕、sc〔选课信息表〕、unpw〔用户信息表〕,下面定义每张表的字段名称和数据类型。s〔学生信息表〕字段名称数据类型描述snochar(10)学号,关键字snchar(20)姓名saint年龄sschar(10)性别sdchar(10)院系c〔课程信息表〕字段名称数据类型描述cnochar(10)课程号,关键字cnchar(30)课程名pcnochar(10)先行课程号sc〔选课信息表〕字段名称数据类型描述snochar(10)学号,关键字cnochar(10)课程号,关键字gint成绩unpw〔用户信息表〕字段名称数据类型描述unchar(10)用户名,关键字pwchar(10)密码qxint角色界面库设计1、学生信息管理系统的登录学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。系统初始化一个系统管理员,登录名:admin密码:admin学生登录系统的登录名为学号,密码也为学号〔如:10001〕,登录后可以修改密码。登录界面管理员登录系统后的界面学生登录系统后的界面2、实现管理员和学生操作功能的界面管理员的登录系统后可以进展学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等功能操作,其具体界面设计如以下列图所示。学生信息管理功能的界面课程信息管理功能的界面选课信息管理功能的界面成绩信息管理功能的界面用户信息管理功能的界面学生的登录系统后可以进展学生信息查看、成绩信息查看、个人信息管理等功能操作,其具体界面设计如以下列图所示。学生信息查看功能的界面成绩信息查看功能的界面个人信息管理功能的界面程序类的设计SimpleStudentManager主函数类DLFrame登陆界面类ManagerFrane管理员界面类StudentFrame学生界面类SM学生信息管理的类SAdd用于学生信息管理中增加或修改某条记录的界面的类SSelect用于学生根本信息管理中查询时输入学号的界面的类CM课程信息管理的类CAdd用于课程信息管理中增加或修改某条记录的界面的类CSelect用于课程信息管理中查询时输入课程号的界面的类SCM选课信息管理的类SCSelect用于选课信息管理中查询时输入学号的界面的类GM成绩信息管理的类GAdd用于成绩信息管理中修改成绩的界面的类GSelect用于成绩信息管理中查询时输入学号的界面的类PM用户信息管理的类UAdd用于用户信息管理中修改密码的界面的类PSelect用于用户信息管理中查询时输入用户名的界面的类StudentS用于学生信息查看时输入学号的界面的类StudentSelect用于成绩信息查看时输入学号的界面的类PPM个人信息管理的类PPSelect用于个人信息管理查询时输入用户名的界面的类程序类的具体代码实现见工程文件夹中的代码及注释系统的使用说明及环境配置学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名:admin密码:admin登录系统后可以进展相应的操作。学生通过以自己的学号〔如10001〕作为用户名和密码登录系统后进展相应的学生权限范围内的操作。数据库:SQLServer2005连接数据库的登录名:sa密码:123代码:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classCAddextendsJFrameimplementsActionListener{//用于课程信息管理中增加或修改某条记录的界面 JLabellcno=newJLabel("课程号:"); JLabellcname=newJLabel("课程名:"); JLabellpcno=newJLabel("先行课程号:"); JTextFieldtcno=newJTextField(10); JTextFieldtcname=newJTextField(10); JTextFieldtpcno=newJTextField(10); JButtonbtnOK=newJButton("确定"); JButtonbtnCancel=newJButton("取消"); JPanelp=newJPanel(); Connectioncon=null; Statementstmt=null; ResultSetrs=null; booleanisNewsm=true;//用于判断是否显示课程信息管理的界面 publicCAdd(){//构造方法 this.setTitle("增加"); this.setBounds(200,200,146,235); p.setLayout(newFlowLayout(FlowLayout.LEFT)); p.add(lcno); p.add(tcno); p.add(lcname); p.add(tcname); p.add(lpcno); p.add(tpcno); p.add(btnOK); p.add(btnCancel); this.add(p); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btnOK.addActionListener(this); btnCancel.addActionListener(this); this.show(); } publicvoidconnDB(){//连接数据库 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } try{ con=DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=student", "sa","123"); stmt=con.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidcloseDB()//关闭连接 { try{ stmt.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidinsertst(){//插入记录 Stringkch=null; Stringkcm=null;Stringxxkch=null; kch=tcno.getText(); kcm=tcname.getText(); xxkch=tpcno.getText(); if(this.getTitle()=="修改"){//如果是修改记录,先删除再增加 try{ this.connDB(); intrs1=stmt.executeUpdate("deletefromcwherecno='" +kch+"'"); }catch(SQLExceptione){ e.printStackTrace(); } } Stringstr="insertintocvalues('"+kch+"','"+kcm+"','" +xxkch+"')"; this.connDB();//连接数据库 try{ stmt.executeUpdate(str); JOptionPane.showMessageDialog(null,this.getTitle()+"成功!", "提示",JOptionPane.INFORMATION_MESSAGE,newImageIcon( "menu4.gif")); this.setVisible(false); } catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"课程号已存在!"); tcno.setText(""); } } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="确定"){ this.insertst(); if(isNewsm){ newCM("课程信息管理").display(); } isNewsm=true; } if(e.getActionCommand()=="取消"){ this.setVisible(false); 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; CM(Stringtitle){//构造方法 super(title); add("South",p); this.add("Center",p1); mb.add(btnAdd); mb.add(btnDelete); mb.add(btnAlter); mb.add(btnSearch); mb.add(btnDisplay); this.connDB();//连接数据库 this.setBounds(200,200,400,260); btnAdd.addActionListener(this); btnDelete.addActionListener(this); btnAlter.addActionListener(this); btnSearch.addActionListener(this); btnDisplay.addActionListener(this); this.setJMenuBar(mb); //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); show(); } CM(CSelectcst,Stringtitle){//构造方法 super(title); this.cst=cst; bstd=true; add("South",p); this.add("Center",p1); mb.add(btnAdd); mb.add(btnDelete); mb.add(btnAlter); mb.add(btnSearch); mb.add(btnDisplay); this.connDB(); this.setBounds(200,200,400,260); btnAdd.addActionListener(this); btnDelete.addActionListener(this); btnAlter.addActionListener(this); btnSearch.addActionListener(this); btnDisplay.addActionListener(this); this.setJMenuBar(mb); //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); show(); } publicvoiddisplay(){//显示所有的课程信息 inti=0; intj=0; intk=0; Listal=newArrayList(); try{ rs=stmt.executeQuery("select*fromc"); while(rs.next()){//找出表中的记录数赋给i al.add(rs.getString("cno")); al.add(rs.getString("cn")); al.add(rs.getString("pcno")); i++; } }catch(SQLExceptione){ e.printStackTrace(); } playerInfo=newObject[i][3]; String[]columnNames={"课程号","课程名","先行课程号"}; try{ rs=stmt.executeQuery("select*fromcorderbycno"); while(rs.next()){ playerInfo[j][0]=rs.getString("cno"); playerInfo[j][1]=rs.getString("cn"); playerInfo[j][2]=rs.getString("pcno"); j++; } }catch(SQLExceptione){ e.printStackTrace(); } sTable=newJTable(playerInfo,columnNames);//创立网格 p1.add(sTable); scroll=newJScrollPane(sTable); this.add(scroll); } publicvoidconnDB(){//连接数据库 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } try{ con=DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=student", "sa","123"); stmt=con.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidcloseDB()//关闭连接 { try{ stmt.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoiddelete(){//删除某个课程信息 Stringkch=null; Stringkcm=null; Stringxxkch=null; introw=-1; row=sTable.getSelectedRow(); if(row==-1){//判断要删除的信息是否被选中 JOptionPane.showMessageDialog(null,"请选择要删除的记录!"); }else{ if(!bstd){//判断选择的是不是查询后的结果 intj1=0; try{ rs=stmt.executeQuery("select*fromc"); while(rs.next()&&j1<=row){//找出当前被选中的记录在数据库中的对应 kch=rs.getString("cno"); kcm=rs.getString("cn"); xxkch=rs.getString("pcno"); j1++; } }catch(SQLExceptione){ e.printStackTrace(); } inti1=0; try{ intrs1=stmt.executeUpdate("deletefromcwherecno='" +kch+"'");//删除数据库中当前被选中的记录 JOptionPane.showMessageDialog(null,"记录删除成功!"); this.dispose(); newCM("课程信息管理").display(); }catch(SQLExceptione){ e.printStackTrace(); } }else{ try{ intrs1=stmt.executeUpdate("deletefromcwherecno='" +mkch+"'");//删除数据库中当前被选中的记录 JOptionPane.showMessageDialog(null,"记录删除成功!"); this.dispose(); newCM("课程信息管理").display(); }catch(SQLExceptione){ e.printStackTrace(); } } } } publicvoidupdate(){//修改某个课程记录 Stringkch=null; Stringkcm=null; Stringxxkch=null; introw=-1; row=sTable.getSelectedRow(); if(row==-1){ JOptionPane.showMessageDialog(null,"请选择要修改的记录!"); }else{ intj1=0; try{ if(!bstd){//判断选择的是不是查询后的结果 rs=stmt.executeQuery("select*fromc"); }else{ rs=stmt.executeQuery("select*fromcwherecno='"+mkch +"'"); } while(rs.next()&&j1<=row){//找出当前被选中的记录在数据库中的对应 kch=rs.getString("cno"); kcm=rs.getString("cn"); xxkch=rs.getString("pcno"); j1++; } }catch(SQLExceptione){ e.printStackTrace(); } CAddcadd=newCAdd(); cadd.setTitle("修改"); cadd.tcno.setText(kch); cadd.tcname.setText(kcm); cadd.tpcno.setText(xxkch); cadd.tcno.setEnabled(false); this.dispose(); } } publicvoidselect(){//显示某个查询的结果 mkch=cst.kch; playerInfo=newObject[1][3]; String[]columnNames={"课程号","课程名","先行课程号"}; try{ rs=stmt.executeQuery("select*fromcwherecno='"+mkch+"'"); while(rs.next()){ playerInfo[0][0]=rs.getString("cno"); playerInfo[0][1]=rs.getString("cn"); playerInfo[0][2]=rs.getString("pcno"); } }catch(SQLExceptione){ e.printStackTrace(); } if(playerInfo[0][1]==null){ this.dispose(); JOptionPane.showMessageDialog(null,"课程号不存在!"); newCM("课程信息管理").display(); }else{ sTable=newJTable(playerInfo,columnNames);//创立网格 p1.add(sTable); scroll=newJScrollPane(sTable); this.add(scroll); } } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="增加"){ newCAdd(); this.dispose(); } if(e.getActionCommand()=="删除"){ this.delete(); } if(e.getActionCommand()=="修改"){ this.update(); } if(e.getActionCommand()=="查询"){ cst=newCSelect(); this.dispose(); } if(e.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=newJTextField(8); JButtonbtnOK=newJButton("确定"); JPanelp=newJPanel(); Stringkch=null; publicCSelect(){//构造方法 p.add(ltitle); p.add(tcno); p.add(btnOK); add(p); this.setBounds(300,280,200,160); btnOK.addActionListener(this); this.setResizable(false); this.show(); } publicvoidactionPerformed(ActionEvente){ kch=tcno.getText();//取得当前输入课程号的值 if(kch.equals("")){//判断是否输入了课程号 JOptionPane.showMessageDialog(null,"课程号不能为空,请重新输入!"); }else{ this.dispose(); newCM(this,"课程信息管理").select(); } }}importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classDLFrameextendsJFrameimplementsActionListener,ItemListener{//登录界面 JPanelp1=null; JPanelp2=null; JPanelp3=null; JLabeluserName=newJLabel("用户:"); JTextFieldtxtUser=newJTextField(); JLabelpassword=newJLabel("密码:"); JPasswordFieldtxtPwd=newJPasswordField(6); 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=newImageIcon("picture\\st.jpg"); imageLabel=newJLabel(image); p1.add(imageLabel); this.setLayout(newFlowLayout()); this.setBounds(100,100,246,345); p2.setLayout(newGridLayout(4,2)); p2.add(userName); p2.add(txtUser); p2.add(password); p2.add(txtPwd); p2.add(role); p2.add(cbrole); p3.add(btnLogin); p3.add(btncz); p3.add(btnCancel); this.add(p1); this.add(p2); this.add(p3); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.show(); btnLogin.addActionListener(this); cbrole.addItemListener(this); btncz.addActionListener(this); btnCancel.addActionListener(this); } publicvoidconnDB(){//连接数据库 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } try{ con=DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=student", "sa","123"); stmt=con.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidcloseDB()//关闭连接 { try{ stmt.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoiditemStateChanged(ItemEvente){ if(e.getStateChange()==ItemEvent.SELECTED){ JComboBoxjcb=(JComboBox)e.getSource(); qxian=jcb.getSelectedIndex(); } } publicvoidactionPerformed(ActionEvente){ Objectsource=e.getSource(); Stringun=null; Stringpw=null; booleansuccess=false;//用于判断是否登录成功 if(source==btnLogin){ if(txtUser.getText().equals("")||txtPwd.getText().equals("")){//判断是否输入了用户名和密码 JOptionPane.showMessageDialog(null,"登录名和密码不能为空!"); }else{ this.connDB(); try{ rs=stmt.executeQuery("select*fromunpwwhereqx=" +qxian); while(rs.next()){ un=rs.getString("un").trim(); pw=rs.getString("pw").trim(); if(txtUser.getText().equals(un)){ if(txtPwd.getText().equals(pw)){ actionCode=OK; this.setVisible(false); if(qxian==0){ newManagerFrane();//进入管理员界面 } if(qxian==1){ newStudentFrame();//进入学生界面 } success=true; break; }else{ JOptionPane.showMessageDialog(null,"密码错误!"); txtPwd.setText(""); success=true; } } } if(!success){ JOptionPane.showMessageDialog(null,"登录名错误!"); txtUser.setText(""); txtPwd.setText(""); } }catch(SQLExceptione1){ e1.printStackTrace(); } } }elseif(source==btncz){ txtUser.setText(""); txtPwd.setText(""); }elseif(source==btnCancel){ System.exit(0); } }}importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classGAddextendsJFrameimplementsActionListener{//用于成绩信息管理中修改成绩的界面 JLabellcno=newJLabel("学号:"); JLabellcname=newJLabel("课程名:"); JLabellg=newJLabel("成绩:"); JTextFieldtcno=newJTextField(10); JTextFieldtcname=newJTextField(10); JTextFieldtpcno=newJTextField(10); JButtonbtnOK=newJButton("确定"); JButtonbtnCancel=newJButton("取消"); JPanelp=newJPanel(); Connectioncon=null; Statementstmt=null; ResultSetrs=null; booleanisNewsm=true;//用于判断是否显示成绩信息管理的界面 publicGAdd(){//构造方法 this.setTitle("增加"); this.setBounds(200,200,146,235); p.setLayout(newFlowLayout(FlowLayout.LEFT)); p.add(lcno); p.add(tcno); p.add(lcname); p.add(tcname); p.add(lg); p.add(tpcno); p.add(btnOK); p.add(btnCancel); this.add(p); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btnOK.addActionListener(this); btnCancel.addActionListener(this); this.show(); } publicvoidconnDB(){//连接数据库 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } try{ con=DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=student", "sa","123"); stmt=con.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidcloseDB()//关闭连接 { try{ stmt.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidinsertst(){//修改成绩 Stringkch=null; Stringkcm=null; Stringxxkch=null; kch=tcno.getText(); kcm=tcname.getText(); xxkch=tpcno.getText(); Stringgcno=null; if(this.getTitle()=="修改成绩"){ try{ this.connDB(); rs=stmt.executeQuery("selectcnofromcwherecn='"+kcm +"'"); while(rs.next()){ gcno=rs.getString("cno");//找出哪门课程的成绩要被修改 } System.out.println(gcno); stmt.executeUpdate("updatescsetg='"+xxkch +"'wheresno='"+kch+"'andcno='"+gcno+"'"); }catch(SQLExceptione){ e.printStackTrace(); } } } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="确定"){ this.insertst(); if(isNewsm){ newGM("成绩信息管理").display(); this.dispose(); } isNewsm=true; } if(e.getActionCommand()=="取消"){ this.setVisible(false); 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; GM(Stringtitle){//构造方法 super(title); add("South",p); this.add("Center",p1); mb.add(btnAlter); mb.add(btnSearch); mb.add(btnDisplay); this.connDB(); this.setBounds(200,200,400,260); btnAlter.addActionListener(this); btnSearch.addActionListener(this); btnDisplay.addActionListener(this); this.setJMenuBar(mb); //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); show(); } GM(GSelectgst,Stringtitle){//构造方法 super(title); this.gst=gst; bstd=true; add("South",p); this.add("Center",p1); mb.add(btnAlter); mb.add(btnSearch); mb.add(btnDisplay); this.connDB(); this.setBounds(200,200,400,260); btnAlter.addActionListener(this); btnSearch.addActionListener(this); btnDisplay.addActionListener(this); this.setJMenuBar(mb); //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); show(); } publicvoiddisplay(){//显示所有的成绩信息 inti=0; intj=0; intk=0; Listal=newArrayList(); try{ rs=stmt.executeQuery("select*fromsc,cwhereo=o"); while(rs.next()){//找出表中的记录数赋给i al.add(rs.getString("sno")); al.add(rs.getString("cn")); al.add(rs.getString("g")); i++; } }catch(SQLExceptione){ e.printStackTrace(); } playerInfo=newObject[i][3]; String[]columnNames={"学号","课程名","成绩"}; try{ rs=stmt.executeQuery("select*fromsc,cwhereo=o"); while(rs.next()){ playerInfo[j][0]=rs.getString("sno"); playerInfo[j][1]=rs.getString("cn"); playerInfo[j][2]=rs.getString("g"); j++; } }catch(SQLExceptione){ e.printStackTrace(); } sTable=newJTable(playerInfo,columnNames);//创立网格 p1.add(sTable); scroll=newJScrollPane(sTable); this.add(scroll); } publicvoidconnDB(){//连接数据库 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } try{ con=DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=student", "sa","123"); stmt=con.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidcloseDB()//关闭连接 { try{ stmt.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidupdate(){//修改某个学生的成绩信息 Stringkch=null; Stringkcm=null; Stringxxkch=null; introw=-1; row=sTable.getSelectedRow(); if(row==-1){//判断要修改的信息是否被选中 JOptionPane.showMessageDialog(null,"请选择要修改的记录!"); }else{ intj1=0; try{ if(!bstd){//判断选择的是不是查询后的结果 rs=stmt .executeQuery("select*fromsc,cwhereo=o"); }else{ rs=stmt .executeQuery("select*fromsc,cwhereo=oandsno='" +mxh+"'"); } while(rs.next()&&j1<=row){ kch=rs.getString("sno"); kcm=rs.getString("cn"); xxkch=rs.getString("g"); j1++; } }catch(SQLExceptione){ e.printStackTrace(); } GAddgadd=newGAdd(); gadd.setTitle("修改成绩"); gadd.tcno.setText(kch); gadd.tcname.setText(kcm); gadd.tpcno.setText(xxkch); gadd.tcno.setEnabled(false); gadd.tcname.setEnabled(false); this.dispose(); } } publicvoidselect(){//显示某个学生的成绩查询结果 intj=0; ii=gst.i; mxh=gst.gxh; playerInfo=newObject[ii][3]; String[]columnNames={"学号","课程名","成绩"}; try{ rs=stmt .executeQuery("select*fromsc,cwhereo=oandsno='" +mxh+"'"); while(rs.next()){ playerInfo[j][0]=rs.getString("sno"); playerInfo[j][1]=rs.getString("cn"); playerInfo[j][2]=rs.getString("g"); j++; } }catch(SQLExceptione){ e.printStackTrace(); } if(playerInfo[0][1]==null){ this.dispose(); JOptionPane.showMessageDialog(null,"学号不存在!"); newGM("成绩信息管理").display(); }else{ sTable=newJTable(playerInfo,columnNames); p1.add(sTable); scroll=newJScrollPane(sTable); this.add(scroll); } } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="修改成绩"){ this.update(); } if(e.getActionCommand()=="查询"){ gst=newGSelect(); this.dispose(); } if(e.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=newJTextField(8); JButtonbtnOK=newJButton("确定"); JPanelp=newJPanel(); Connectioncon=null; Statementstmt=null; ResultSetrs=null; Stringgxh=null; inti=0; publicGSelect(){//构造方法 p.add(ltitle); p.add(tsno); p.add(btnOK); add(p); this.setBounds(300,280,200,160); btnOK.addActionListener(this); this.setResizable(false); this.show(); } publicvoidconnDB(){//连接数据库 try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); } try{ con=DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=student", "sa","123"); stmt=con.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidcloseDB()//关闭连接 { try{ stmt.close(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidii(){//取得符合条件的记录数 Listal=newArrayList(); try{ rs=stmt .executeQuery("select*fromsc,cwhereo=oandsno='" +gxh+"'"); while(rs.next()){ al.add(rs.getString("sno")); al.add(rs.getString("cn")); al.add(rs.getString("g")); i++;//把符合条件的记录数赋给i } }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidactionPerformed(ActionEvente){ gxh=tsno.getText();//取得当前输入学号的值 this.connDB(); this.ii(); if(gxh.equals("")){//判断是否输入了学号 JOptionPane.showMessageDialog(null,"学号不能为空,请重新输入!"); }else{ this.dispose(); newGM(this,"成绩信息管理").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("学生信息管理系统"); setSize(350,200); add("North",p1); add("Center",p2); p1.add(l); p2.add(btns); p2.add(btnc); p2.add(btnsc); p2.add(btng); p2.add(btnu); p2.add(btnClose); btns.addActionListener(this); btnc.addActionListener(this); btnsc.addActionListener(this); btng.addActionListener(this); btnu.addActionListener(this); btnClose.addActionListener(this); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); show(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="学生信息管理") newSM().display(); if(e.getActionCommand()=="课程信息管理"){ newCM("课程信息管理").display(); } if(e.getActionCommand()=="选课信息管理"){ newSCM("选课信息管理").display(); } if(e.getActionCommand()=="成绩信息管理"){ newGM("成绩信息管理").display(); } if(e.getActionCommand()=="用户信息管理"){ newPM("用户信息管理").display(); } if(e.getActionCommand()=="退出管理系统"){ System.exit(0); } }}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; PM(Stringtitle){//构造方法 super(title); add("South",p); this.add("Center",p1); mb.add(btnAlter); mb.add(btnSearch); mb.add(btnDisplay); this.connDB(); this.setBounds(200,200,200,260); btnAlter.addActionListener(this); btnSearch.addActionListener(this); btnDisplay.addActionListener(this); this.setJMenuBar(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论