学生信息管理实验设计报告.docx
《学生信息管理实验设计报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理实验设计报告.docx(22页珍藏版)》请在冰豆网上搜索。
学生信息管理实验设计报告
重庆交通大学信息科学与工程学院
设计性实验报告
班级:
计科专业2010级4班
学号:
姓名:
实验项目名称:
学生信息管理系统
实验所属课程:
数据库
实验室(中心):
语音大8楼801
指导教师:
实验完成时间:
2013年1月5日
一、实验目的
1.熟练使用SQLServer。
2.熟悉Java控件使用。
3.掌握Java连接SQLServer以及进行的操作。
4.建立学生信息管理系统,对学生的相应信息进行管理,实现学生信息管理的模拟。
二、实验内容及要求
1.学生信息管理
2.课程综合管理
3.教学计划管理
4.学生选课管理
5.学生成绩管理
6.学生奖惩管理
三、实验设备及软件
Eclipse3.7,SQLServer2000,PowerDesigner6.0
四、设计方案
系统中共建立了15个模型,分别是学校,学院,专业,班级,学生,籍贯,民族,奖罚,政治面貌,课程,选课,补考,补考明细表,教师,教师职称,物理模型如下图所示:
根据对应的物理模型,用生成的sql语言在sqlserver2000中建立数据库TXL,其中建立相应关系模型,建立表格XX(学校),XY(学院),ZY(专业),BJ(班级),XS(学生),JG(籍贯),MZ(民族),JF(奖罚),ZZ(政治面貌),KC(课程),XK(选课),BK(补考),BKS(补考明细表),JS(教师),ZC(教师职称),并建立一个管理员表Message,其中有管理员登陆用户名及密码(xyz,123)。
其中XS表格如下图:
接着根据相应的关系模型建立程序界面。
其功能模块如下图:
在所设计的界面中,除登陆外,还有:
1.学生信息管理
(1)学生信息管理
管理各学生的基本信息及籍贯,民族,政治面貌,学校,学院,专业,班级信息。
(2)学生选课管理
管理各学生应该选择的课程,将该学生的专业及学期对应课程搜索出来以供学生进行选择。
(3)学生成绩管理
管理各学生选择的专业的课程成绩及补考信息,并判断学生的成绩是否改进行补考。
(4)学生奖惩管理
管理各学生的奖惩信息。
(5)学生基本信息一览
显示所有学生的基本信息表
2.教学课程管理
(1)课程综合管理
管理开设的所有课程,对课程设置学期,学分及教师信息。
在此输入整个学校开设的所有课程。
(2)教学计划管理
管理各专业某学期的课程,各专业可对该学期的课程自由选课。
在此基础上,管理员可以添加,查找,修改,删除相关信息,成功的实现了学生的信息管理系统。
五、主要功能代码
//登录(Main.java)
publicvoidactionPerformed(ActionEvente)
{
Objectob=e.getSource();
if(ob==enter)
{
try
{
StringdriverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";//加载JDBC驱动
StringdbURL="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=TXL";//连接服务器和数据库TXL
StringuserName="sa";
StringuserPwd="";
ConnectiondbConn=null;
try
{
Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
}
catch(Exceptione1)
{
e1.printStackTrace();
}
Statementstmt=dbConn.createStatement();
ResultSetrs=stmt.executeQuery("select*fromManagerwherena='"+name.getText()+"'andnum='"+num.getText()+"'");
while(rs.next())
{
XSFrameframe=newXSFrame();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.show();
}
rs.close();
stmt.close();
}
catch(SQLExceptionse)
{
JOptionPane.showMessageDialog(this,se.getMessage());
}
}
else
{
inti=JOptionPane.showConfirmDialog(this,"确认退出吗?
","退出",JOptionPane.YES_NO_OPTION);
if(i==0)System.exit(0);
}
}
//学生信息添加(XXPanel.java)
if(ob==add)
{
intfull=1;
if(xs_num.getSelectedItem().equals("")||xs_name.getText().trim().equals("")||xs_age.getText().trim().equals(""))full=0;
if(place.getSelectedItem().equals("")||xs_num.getSelectedItem().equals("")||xs_birthday.getText().trim().equals(""))full=0;
if(politic.getSelectedItem().equals("")||xx_name.getText().trim().equals("")||xx_address.getText().trim().equals(""))full=0;
if(xy_name.getText().equals("")||zy_name.getText().trim().equals("")||bj_name.getText().trim().equals(""))full=0;
if(!
xs_man.isSelected()&&!
xs_woman.isSelected())full=0;
if(full==0)
{
JOptionPane.showMessageDialog(null,"输入信息不完整!
");
return;
}
try
{
Statementstmt=dbConn.createStatement();
ResultSetrs=stmt.executeQuery("select*fromXSwherexs_num='"+(String)xs_num.getSelectedItem()+"'");
inta=0;
while(!
rs.next())
{
Stringbj_num="";
Stringsex;
if(xs_man.isSelected())sex="1";
elsesex="2";
Strings1="select*fromXXwherexx_name='"+xx_name.getText()+"'";
if(!
stmt.executeQuery(s1).next())
{s1="insertintoXXvalues('"+xx_name.getText()+"','"+xx_address.getText()+"')";
stmt.executeUpdate(s1);}
Strings2="select*fromXYwherexy_name='"+xy_name.getText()+"'andxx_name='"+xx_name.getText()+"'";
if(!
stmt.executeQuery(s2).next())
{s2="insertintoXYvalues('"+xy_name.getText()+"','"+xx_name.getText()+"')";
stmt.executeUpdate(s2);}
Strings3="select*fromZYwherezy_name='"+zy_name.getText()+"'andxy_name='"+xy_name.getText()+"'";
if(!
stmt.executeQuery(s3).next())
{s3="insertintoZYvalues('"+zy_name.getText()+"','"+xy_name.getText()+"')";
stmt.executeUpdate(s3);}
Strings4="select*fromBJwherebj_name='"+bj_name.getText()+"'andzy_name='"+zy_name.getText()+"'";
if(!
stmt.executeQuery(s4).next())
{
ResultSetrs1=stmt.executeQuery("selectmax(bj_num)asbj_numfromBJ");
if(rs1.next())bj_num=String.valueOf(Integer.parseInt(rs1.getString("bj_num"))+1);
s4="insertintoBJvalues('"+bj_num+"',"+bj_name.getText()+",'"+zy_name.getText()+"')";
stmt.executeUpdate(s4);
}
else
{
ResultSetrs1=stmt.executeQuery(s4);
if(rs1.next())bj_num=rs1.getString("bj_num");
}
Strings5="select*fromJGwherejg_name='"+place.getSelectedItem()+"'";
if(!
stmt.executeQuery(s5).next())
{s5="insertintoJGvalues('"+place.getSelectedItem()+"')";
stmt.executeUpdate(s5);}
Strings6="select*fromZZwherezz_name='"+politic.getSelectedItem()+"'";
if(!
stmt.executeQuery(s6).next())
{s6="insertintoZZvalues('"+politic.getSelectedItem()+"')";
stmt.executeUpdate(s6);}
Strings7="select*fromMZwheremz_name='"+nation.getSelectedItem()+"'";
if(!
stmt.executeQuery(s7).next())
{s7="insertintoMZvalues('"+nation.getSelectedItem()+"')";
stmt.executeUpdate(s7);}
Strings8="insertintoXSvalues('"+(String)xs_num.getSelectedItem()+"','"+place.getSelectedItem()+"','"+politic.getSelectedItem()+"','"+nation.getSelectedItem()+"','"+bj_num+"','"+xs_name.getText()+"',"+sex+","+xs_age.getText()+",'"+xs_birthday.getText()+"',null)";
stmt.executeUpdate(s8);
xs_num.addItem((String)xs_num.getSelectedItem());
a=1;
break;
}
if(a==1)
{
JOptionPane.showMessageDialog(this,"添加成功!
");
}
else
{
JOptionPane.showMessageDialog(this,"添加失败!
");
}
}
catch(SQLExceptionse)
{
JOptionPane.showMessageDialog(this,se.getMessage());
}
}
//学生信息查找(XXPanel.java)
elseif(ob==search)
{
try
{
Statementstmt=dbConn.createStatement();
ResultSetrs=stmt.executeQuery("select*fromXSwherexs_num='"+(String)xs_num.getSelectedItem()+"'");
inta=0;
while(rs.next())//
{
if(rs.getString("xs_sex").equals("1"))xs_man.setSelected(true);
elsexs_woman.setSelected(true);
xs_name.setText(rs.getString("xs_name"));
xs_age.setText(rs.getString("xs_age"));
place.setSelectedItem(rs.getString("jg_name"));
nation.setSelectedItem(rs.getString("mz_name"));
xs_birthday.setText(rs.getString("xs_birthday"));
politic.setSelectedItem(rs.getString("zz_name"));
ResultSetrs1=stmt.executeQuery("select*fromBJwherebj_num='"+rs.getString("bj_num")+"'");
if(rs1.next())bj_name.setText(rs1.getString("bj_name"));
ResultSetrs2=stmt.executeQuery("select*fromZYwherezy_name='"+rs1.getString("zy_name")+"'");
if(rs2.next())zy_name.setText(rs2.getString("zy_name"));
ResultSetrs3=stmt.executeQuery("select*fromXYwherexy_name='"+rs2.getString("xy_name")+"'");
if(rs3.next())xy_name.setText(rs3.getString("xy_name"));
ResultSetrs4=stmt.executeQuery("select*fromXXwherexx_name='"+rs3.getString("xx_name")+"'");
if(rs4.next())
{
xx_name.setText(rs4.getString("xx_name"));
xx_address.setText(rs4.getString("xx_address"));
}
a=1;
break;
}
if(a==0)
{
JOptionPane.showMessageDialog(this,"没有学号为"+xs_num.getSelectedItem()+"的学生");
}
}
catch(SQLExceptionse)
{
JOptionPane.showMessageDialog(this,se.getMessage());
}
}
//学生信息修改(XXPanel.java)
elseif(ob==change)
{
intfull=1;
if(xs_num.getSelectedItem().equals("")||xs_name.getText().trim().equals("")||xs_age.getText().trim().equals(""))full=0;
if(place.getSelectedItem().equals("")||nation.getSelectedItem().equals("")||xs_birthday.getText().trim().equals(""))full=0;
if(politic.getSelectedItem().equals("")||xx_name.getText().trim().equals("")||xx_address.getText().trim().equals(""))full=0;
if(xy_name.getText().equals("")||zy_name.getText().trim().equals("")||bj_name.getText().trim().equals(""))full=0;
if(!
xs_man.isSelected()&&!
xs_woman.isSelected())full=0;
if(full==0)
{
JOptionPane.showMessageDialog(null,"输入信息不完整!
");
return;
}
try
{
Statementstmt=dbConn.createStatement();
ResultSetrs=stmt.executeQuery("select*fromXSwherexs_num='"+(String)xs_num.getSelectedItem()+"'");
inta=0;
while(rs.next())//
{
Stringbj_num="";
stmt.executeUpdate("deletefromBKSwherexs_num='"+(String)xs_num.getSelectedItem()+"'");
stmt.executeUpdate("deletefromXKwherexs_num='"+(String)xs_num.getSelectedItem()+"'");
stmt.executeUpdate("deletefromXSwherexs_num='"+(String)xs_num.getSelectedItem()+"'");
Stringsex;
if(xs_man.isSelected())sex="1";
elsesex="2";
Strings1="select*fromXXwherexx_name='"+xx_name.getText()+"'";
if(!
stmt.executeQuery(s1).next())
{s1="insertintoXXvalues('"+xx_name.getText()+"','"+xx_address.getText()+"')";
stmt.executeUpdate(s1);}
Strings2="select*fromXYwherexy_name='"+xy_name.getText()+"'andxx_name='"+xx_name.getText()+"'";
if(!
stmt.executeQuery(s2).next())
{s2="insertintoXYvalues('"+xy_name.getText()+"','"+xx_name.getText()+"')";
stmt.executeUpdate(s2);}
Strings3="select*fromZYwherezy_name='"+zy_name.getText()+"'andxy_name='"+xy_name.getText()+"'";
if(!
stmt.executeQuery(s3).next())
{s3="insertintoZYvalues('"+zy_name.getText()+"','"+xy_name.getText()+"')";
stmt.executeUpdate(s3);}
Strings4="select*fromBJwherebj_name='"+bj_name.getText()+"'andzy_name='"+zy_name.getText()+"'";