学生信息管理系统+代码.docx
- 文档编号:24669266
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:115
- 大小:361.81KB
学生信息管理系统+代码.docx
《学生信息管理系统+代码.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统+代码.docx(115页珍藏版)》请在冰豆网上搜索。
学生信息管理系统学生信息管理系统+代码代码学生信息管理系统+代码(总80页)学生信息管理系统设计1、系统简介本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。
管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
2、功能设计2.1需求分析本系统需要实现的功能:
(1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
(2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
2.2总体设计学生信息管理系统主要包括管理员和学生两大模块。
管理员模块包括:
学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。
用户模块包括:
学生信息查看、成绩信息查看、个人信息管理等。
系统总体结构如图所示。
总体结构图2.3模块详细设计1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图所示。
学生信息管理模块结构图2、课程信息管理模块课程信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图所示。
课程信息管理模块结构图3、选课信息管理模块选课信息管理模块包括查询、显示全部等。
具体的结构图如图所示。
选课信息管理模块结构图4、成绩信息管理模块成绩信息管理模块包括修改成绩、查询、显示全部等。
具体的结构图如图所示。
成绩信息管理模块结构图5、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等。
具体的结构图如图所示。
用户信息管理模块结构图3、数据库设计在数据库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角色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=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()/连接数据库tryClass.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);catch(ClassNotFoundExceptione)e.printStackTrace();trycon=DriverManager.getConnection(jdbc:
sqlserver:
/localhost:
1433;DatabaseName=student,sa,123);stmt=con.createStatement();catch(SQLExceptione)e.printStackTrace();publicvoidcloseDB()/关闭连接trystmt.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()=修改)/如果是修改记录,先删除再增加trythis.connDB();intrs1=stmt.executeUpdate(deletefromcwherecno=+kch+);catch(SQLExceptione)e.printStackTrace();Stringstr=insertintocvalues(+kch+,+kcm+,+xxkch+);this.connDB();/连接数据库trystmt.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;ObjectplayerInfo;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();tryrs=stmt.executeQuery(select*fromc);while(rs.next()/找出表中的记录数赋给ial.add(rs.getString(cno);al.add(rs.getString(cn);al.add(rs.getString(pcno);i+;catch(SQLExceptione)e.printStackTrace();playerInfo=newObjecti3;StringcolumnNames=课程号,课程名,先行课程号;tryrs=stmt.executeQuery(select*fromcorderbycno);while(rs.next()playerInfoj0=rs.getString(cno);playerInfoj1=rs.getString(cn);playerInfoj2=rs.getString(pcno);j+;catch(SQLExceptione)e.printStackTrace();sTable=newJTable(playerInfo,columnNames);/创建网格p1.add(sTable);scroll=newJScrollPane(sTable);this.add(scroll);publicvoidconnDB()/连接数据库tryClass.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);catch(ClassNotFoundExceptione)e.printStackTrace();trycon=DriverManager.getConnection(jdbc:
sqlserver:
/localhost:
1433;DatabaseName=student,sa,123);stmt=con.createStatement();catch(SQLExceptione)e.printStackTrace();publicvoidcloseDB()/关闭连接trystmt.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,请选择要删除的记录!
);elseif(!
bstd)/判断选择的是不是查询后的结果intj1=0;tryrs=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;tryintrs1=stmt.executeUpdate(deletefromcwherecno=+kch+);/删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null,记录删除成功!
);this.dispose();newCM(课程信息管理).display();catch(SQLExceptione)e.printStackTrace();elsetryintrs1=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,请选择要修改的记录!
);elseintj1=0;tryif(!
bstd)/判断选择的是不是查询后的结果rs=stmt.executeQuery(select*fromc);elsers=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=newObject13;StringcolumnNames=课程号,课程名,先行课程号;tryrs=stmt.executeQuery(select*fromcwherecno=+mkch+);while(rs.next()playerInfo00=rs.getString(cno);playerInfo01=rs.getString(cn);playerInfo02=rs.getString(pcno);catch(SQLExceptione)e.printStackTrace();if(playerInfo01=null)this.dispose();JOptionPane.showMessageDialog(null,课程号不存在!
);newCM(课程信息管理).display();elsesTable=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.get
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 代码