| PINGDINGSHAN UNIVERSITY |
专业实训(四)
项目报告
题 目: 学生学籍管理系统
院(系): 软件学院
专业年级: Java(1)班
* ** ***
学 号: **********
指导教师: **
2012年 5 月 26 日
1 项目简介.................................................................................2
1.1项目的意义........................................................................2
1.2 项目说明...........................................................................2
1.3 关键技术...........................................................................2
2 总体设计.................................................................................2
2.1 总体结构图..................................................................................3
2.2 数据库的设计.............................................................................3
3 详细设计与实现.....................................................................3
3.1登陆界面.......................................................................................4
3.2 系统主界面.................................................................................4
3.3 删除界面.....................................................................................4
3.4 添加界面.....................................................................................5
4 代码设计(主要)........................................................................5
4.1 登陆代码.....................................................................................6
4.2 添加代码.....................................................................................8
4.3 删除代码...................................................................................12
5 课程总结与分析..........................................................................15
参考文献..................................................................................15
学生学籍管理系统
(一) 项目简介
1.1项目的意义
随着高校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。高等院校 需要一个信息管理系统来管理学生的各种信息,以提高管理的水平。
1.2项目的说明
学生信息管理系统平台的实现 目标包括以下几个方面:实现学生信息录入、查询、删除,管理学生档案,提高学生档案的管理水 平,效率和保密性。本文介绍的学生信息管理系统将计算机用于现代化管理,在学校 学生管理中心进行关于学生信息的处理, 完成了许多功能, 如添加信息、查询信息、删除信息等。本文通过对学生管理信息系统的分析与设计,介绍了该系统的设计思想、设计方法和开发 的步骤及成果。
1.3 关键技术
主要运用Java语言,用到其中的swing、awt图形界面和数据库SQL2000 sqlserver等技术
(二) 总体设计
2.1 总体结构图
图3-1 总体结构图
2.2 数据库设计
本系统需要用到学生表格,建立一个source数据库,如图3-2所示
图3-2
(三)详细设计与实现
由数据库编程可知,应该先设计一个数据库来存放相关表格数据,并且通过 java 的数据库编程 知识来实现对学生信息的管理。
3.1 用户登陆界面
用户可以选择管理员和学生不同的身份登录 如图4-1所示
图4-1 登陆界面
3.2系统主界面
此界面包含了一个菜单条,两个菜单项——设置、选项。其中选项包含添加与查看,设置包含注销登录与退出。如图4-2所示。
3.3 查看界面
在这个界面可以实现对学生的信息的升序查询,按专业查询,并且可以实现对指定的学生删除 如图4-4
图4-4
3.4添加用户界面
包括添加管理员与学生,添加各自的对应信息如图4-5-1、4-5-2所示
图 4-5-1
图4-5-2
(四)代码设计
4.1 登陆代码
管理员登陆:
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
Connection con;
Statement sql;
ResultSet rs;
String pw="";
String txt1=t1.getText();
String txt2=t2.getText();
try{
Class.forName("source.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ee)
{System.out.println(ee);}
if(c1.getSelectedItem().equals("管理员"))
{
try{
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * from Admin");
while(rs.next())
{
String name=rs.getString("name");
String password=rs.getString("password");
if(txt1.length()==0)
{
JOptionPane.showMessageDialog(this,"请输入账号","警告",JOptionPane.WARNING_MESSAGE);break;
}
else if(txt2.length()==0)
{
JOptionPane.showMessageDialog(this,"请输入密码","警告",JOptionPane.WARNING_MESSAGE);break;
}
else if(txt1.length()!=0&&txt2.length()!=0)
{
if(txt1.equals(name)&&txt2.equals(password))
{
mw=new mainWindow("学生管理系统");
mw.showWindow();
this.setVisible(false);break;
}}}
con.close();
}
catch(SQLException e1)
{System.out.println(e1);}
}
学生登录
else if(c1.getSelectedItem().equals("学生"))
{
while(rs.next())
{
String name=rs.getString("name");
String num=rs.getString("num");
if(txt1.length()==0)
{
JOptionPane.showMessageDialog(this,"请输入账号","警告",JOptionPane.WARNING_MESSAGE);break;
}
else if(txt2.length()==0)
{
JOptionPane.showMessageDialog(this,"请输入密码","警告",JOptionPane.WARNING_MESSAGE);break;
}
else if(txt1.length()!=0&&txt2.length()!=0)
{
if(txt1.equals(name)&&txt2.equals(num))
{
mw1=new mainWindow1("学生管理系统");
mw1.showWindow();
this.setVisible(false);break;
}
}
4.2 添加用户的代码
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
Connection con;
Statement sql;
ResultSet rs;
String txt1=t1.getText();
String txt2=pf2.getText();
if(txt1!=null&&txt2!=null)
{
try{
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
sql.executeUpdate("insert into admin values('"+txt1+"','"+txt2+"')");
con.close();
JOptionPane.showMessageDialog(this,"成功添加管理员"+t1.getText(),"添加成功",JOptionPane.WARNING_MESSAGE);
closeInsertWindow();
}
catch(Exception e1)
{
System.out.println(e1);
}
}
else if(txt1==null||txt2==null)
{
JOptionPane.showMessageDialog(this,"请将资料填写清楚","警告",JOptionPane.WARNING_MESSAGE);
}
}
else if(e.getSource()==load)
{
String num=numField.getText();
String name=nameField.getText();
String subject1=(String)subject.getSelectedItem();
String grade=gradeField.getText();
String birthday=birthField.getText();
String choice;
if(male.isSelected())
{
choice=male.getText();
}
else
{
choice=female.getText();
}
Connection con;
Statement sql;
ResultSet rs;
try
{
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
rs=sql.executeQuery("select * from student");
while(rs.next())
{
String num1=rs.getString("num");
if(num.equals(num1))
{
JOptionPane.showMessageDialog(this,"学号已存在","警告",JOptionPane.WARNING_MESSAGE);
}
}
if(num!=null&&name!=null&&subject1!=null&choice!=null&&grade!=null&&birthday!=null)
{
sql.executeUpdate("insert into student values('"+name+"','"+num+"','"+choice+"','"+subject1+"','"+grade+"','"+birthday+"')");
}
rs.close();
sql.close();
con.close();
closeInsertWindow();
}
catch(Exception e2)
{
System.out.println(e2);
}
}
}
public void focusGained(FocusEvent e) {
if(e.getSource()==t1)
{
l4.setText("");
}
}
public void focusLost(FocusEvent e)
{
if((JTextField)e.getSource()==t1)
{
int flag=0;
Connection con;
Statement sql;
ResultSet rs;
String txt1=t1.getText();
try{
Class.forName("source.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ee)
{System.out.println(ee);}
try{
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * from Admin");
while(rs.next())
{
String name=rs.getString("name");
if(txt1.equals(name))
{
flag=1;
}
}
if(flag==1)
{l4.setText("账号已存在");t1.setText("");}
else
{l4.setText("可创建用户");}
con.close();
}
catch(SQLException e1)
{System.out.println(e1);}
}
else if(e.getSource()==pf2)
{
String txt2=pf1.getText();
String txt3=pf2.getText();
if(!txt3.equals(txt2))
{
l5.setText("两次密码不一致");
}
else if(txt3.equals(txt2))
{
l5.setText("");
}} }}
4.3查看与删除的主要代码
查看的代码
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
if(cb1.isSelected())
{
int i=0;
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("source.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ee)
{System.out.println(ee);}
try{
init();//初始化表格
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
rs=sql.executeQuery("select * from student order by num");
while(rs.next())
{
String num=rs.getString(1);
String name=rs.getString(2);
String sex=rs.getString(3);
String subject=rs.getString(4);
String grade=rs.getString(5);
String birthday=rs.getString(6);
data[i][0]=num;
data[i][1]=name;
data[i][2]=sex;
data[i][3]=subject;
data[i][4]=grade;
data[i][5]=birthday;
i++;
}
rs.close();
sql.close();
con.close();
table.repaint();
}
catch(Exception e1)
{e1.printStackTrace();}
}
else
{
int i=0;
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("source.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ee)
{System.out.println(ee);}
try{
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
if(jcb.getSelectedItem()=="数学")
{
init();//初始化表格
rs=sql.executeQuery("select * from student where subject='数学'");
while(rs.next())
{
String num=rs.getString(1);
String name=rs.getString(2);
String sex=rs.getString(3);
String subject=rs.getString(4);
String grade=rs.getString(5);
String birthday=rs.getString(6);
data[i][0]=num;
data[i][1]=name;
data[i][2]=sex;
data[i][3]=subject;
data[i][4]=grade;
data[i][5]=birthday;
i++;
}
}
else if(jcb.getSelectedItem()=="文学")
{
init();//初始化表格
rs=sql.executeQuery("select * from student where subject='文学'");
while(rs.next())
{
String num=rs.getString(1);
String name=rs.getString(2);
String sex=rs.getString(3);
String subject=rs.getString(4);
String grade=rs.getString(5);
String birthday=rs.getString(6);
data[i][0]=num;
data[i][1]=name;
data[i][2]=sex;
data[i][3]=subject;
data[i][4]=grade;
data[i][5]=birthday;
i++;
}
}
else if(jcb.getSelectedItem()=="计算机")
{
init();//初始化表格
rs=sql.executeQuery("select * from student where subject='计算机'");
while(rs.next())
{
String num=rs.getString(1);
String name=rs.getString(2);
String sex=rs.getString(3);
String subject=rs.getString(4);
String grade=rs.getString(5);
String birthday=rs.getString(6);
data[i][0]=num;
data[i][1]=name;
data[i][2]=sex;
data[i][3]=subject;
data[i][4]=grade;
data[i][5]=birthday;
i++;
}
}
con.close();
table.repaint();
}
catch(Exception e2)
{e2.printStackTrace();}
}
}
删除的代码
else if(e.getSource()==b2)
{
int n=JOptionPane.showConfirmDialog(this,"确认删除吗?","确认对话框",JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_OPTION)
{
String num=(String)table.getValueAt(table.getSelectedRow(),1);
//System.out.println(num);
Connection con;
Statement sql;
ResultSet rs;
String condition="delete from student where num='"+num+"'";
try{
Class.forName("source.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ee)
{System.out.println(ee);}
try
{
con=DriverManager.getConnection("jdbc:odbc:source");
sql=con.createStatement();
sql.executeUpdate(condition);
table.repaint();
}
catch(Exception e2)
{
e2.printStackTrace();
}
}
}
}
五 课程总结与分析
在学生信息管理系统中,涵盖了学生信息管理工作的大部分功能,能够满足用户对数据查询、 添加、删除的基本需要,基于后台数据库,基本满足用户对数据的操作要求,并且尽量做到 程序设计人性化,方便用户进行操作。学生信息管理系统在设计中,由于在知识、经验方面都存在着不足,且时间也比较仓促,就简化了某些方面内容。 学生信息管理系统还有一些需在改进的地方。
参考文献
[1]Java2 实用教程/耿祥义,张跃平编著.-3版-北京-清华大学出版社