数据库课程设计姓名:于晴学号:121842237班级:1班指导教师:陈学进14年12月30学生信息管理系统1、内容简介学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。一.需求分析本系统需要实现的功能:(1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。(2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。2总体设计学生信息管理系统主要包括管理员和学生两大模块。管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。系统总体结构如图所示。总体结构图3模块详细设计1、学生信息管理模块学生信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。学生信息管理模块结构图2、选课信息管理模块选课信息管理模块包括查询、显示全部等。具体的结构图如图所示。选课信息管理模块结构图3、成绩信息管理模块成绩信息管理模块包括修改成绩、查询、显示全部等。具体的结构图如图所示。成绩信息管理模块结构图4、用户信息管理模块用户信息管理模块包括修改、查询、显示全部等。具体的结构图如图所示。用户信息管理模块结构图2、数据库设计在数据库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角色3、界面库设计1、学生信息管理系统的登录学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。系统初始化一个系统管理员,登录名:admin密码:admin学生登录系统的登录名为学号,密码也为学号(如:10001),登录后可以修改密码。登录界面管理员登录系统后的界面2、实现管理员和学生操作功能的界面管理员的登录系统后可以进行学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等功能操作,其具体界面设计如下图所示。学生信息管理功能的界面选课信息管理功能的界面成绩信息管理功能的界面用户信息管理功能的界面学生的登录系统后可以进行学生信息查看、成绩信息查看、个人信息管理等功能操作,其具体界面设计如下图所示。学生信息查看功能的界面成绩信息查看功能的界面个人信息管理功能的界面4、程序类的设计SimpleStudentManager主函数类DLFrame登陆界面类ManagerFrane管理员界面类StudentFrame学生界面类SM学生信息管理的类SAdd用于学生信息管理中增加或修改某条记录的界面的类SSelect用于学生基本信息管理中查询时输入学号的界面的类CM课程信息管理的类CAdd用于课程信息管理中增加或修改某条记录的界面的类CSelect用于课程信息管理中查询时输入课程号的界面的类SCM选课信息管理的类SCSelect用于选课信息管理中查询时输入学号的界面的类GM成绩信息管理的类GAdd用于成绩信息管理中修改成绩的界面的类GSelect用于成绩信息管理中查询时输入学号的界面的类PM用户信息管理的类UAdd用于用户信息管理中修改密码的界面的类PSelect用于用户信息管理中查询时输入用户名的界面的类StudentS用于学生信息查看时输入学号的界面的类StudentSelect用于成绩信息查看时输入学号的界面的类PPM个人信息管理的类PPSelect用于个人信息管理查询时输入用户名的界面的类程序类的具体代码实现见工程文件夹中的代码及注释5、系统的使用说明及环境配置学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名: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();}}}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();//连接数