《Java应用开发》课程设计报告题目:学生信息管理系统指导老师: *** 姓名: ** 专业:计算机科学与技术班级: 10级1班日期: 2012年6月目录一、系统总体设计 (1)(一)设计目标及完成功能 (1)(二)系统流程图 (2)二、详细设计 (3)(二)系统设计 (7)(三)关键代码及技术 (9)三、使用与测试 (19)四、数据库设计 (20)总结(体会) (21)参考文献 (22)一、系统总体设计(一)设计目标及完成功能1、设计目标学生信息管理系统是学校的一项重要数据资源,因而学生信息管理必然成为学校的一项常规性的重要工作。
加强学生信息管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范,工作效率低,难以达到预期的目的。
为提高工作效率、保证学校能够及时准确了解各学生的各种信息及学生总体信息,开发学生信息管理系统。
2、完成功能完成学生信息的基本管理。
本系统分为管理员和学生管理两部分。
管理员管理项目如下:添加学生信息、修改学生信息、查询学生信息、删除学生信息;学生管理项目如下:添加学生信息、查询学生信息。
(二)系统流程图二、详细设计图2-1 登陆界面1图2-2 登陆界面2图2-3 系统主界面图2-4 添加学生信息界面图2-5 修改学生信息界面图2-6 查询学生信息界面图2-7 删除学生信息界面图2-8 系统信息界面图2-9 我的信息界面(二) 系统设计1、系统结构图2、类及功能列表(三) 关键代码及技术1、关键代码①登陆系统if(user1.getSelectedItem().equals("管理员")){try{Connctsql();stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);//结果集可滚动,可更新rst = stmt.executeQuery("SELECT * FROM usertable where id='"+ t1.getText().trim() +"'"); //将输入的账号与usertable表比对if(rst.next()){ //查询到输入的账号if(rst.getString(1).trim().equals(t2.getText().trim())&&!rst.getString(1). trim().equals("")){ this.dispose();Menu m=new Menu();}elseif(!rst.getString(1).trim().equals(t2.getText().trim())&&!rst.getString(1) .trim().equals("")){JOptionPane.showMessageDialog(null,"密码异常!","温馨提示!",RMATION_MESSAGE,null); }}else if(!rst.next()){JOptionPane.showMessageDialog(null,"不存在此用户!","温馨提示!",RMATION_MESSAGE,null);}if(t1.getText().equals("")){JOptionPane.showMessageDialog(null,"请输入账号!","温馨提示!",RMATION_MESSAGE,null);}}catch(Exception err){ System.out.println(err); }}else if(user1.getSelectedItem().equals("学生")){// 下拉框中选择是学生 try{Connctsql();stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);//结果集可滚动,可更新if(t1.getText().equals("")){JOptionPane.showMessageDialog(null,"请输入您的学号!","温馨提示!",RMATION_MESSAGE,null);}rst = stmt.executeQuery("SELECT * FROM stuuser where 学号='"+ t1.getText().trim() +"'");//将输入的账号与stuuser表比对while(rst.next()){if(rst.getString(1).trim().equals(t2.getText().trim())){newMenu2();dispose();}else{JOptionPane.showMessageDialog(null,"密码异常!","温馨提示!",RMATION_MESSAGE,null);t1.setText(null);//清空账号t2.setText(null); //清空密码}}}catch(Exception err){System.out.println(err);}}②添加学生信息public void actionPerformed(ActionEvent e){ if(e.getSource()==btnCancel){dispose();new Menu();}if(e.getSource()==btnAdd){if (txtXueHao.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入学号", "温馨提示", RMATION_MESSAGE);}else if (txtName.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入姓名", "温馨提示", RMATION_MESSAGE);}else if (txtYear.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入年龄", "温馨提示", RMATION_MESSAGE);}else if (txtDate.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "出生日期", "温馨提示", RMATION_MESSAGE);}else if (txtZY.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入专业", "温馨提示", RMATION_MESSAGE);}else if (txtYX.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入院系", "温馨提示", RMATION_MESSAGE);}else if (txtClass.getText().toString().equals("")){JOptionPane.showMessageDialog(null, "请输入班级", "温馨提示", RMATION_MESSAGE);}else{String sex;if(man.isSelected()){ sex="男";}else{ sex="女"; }Connctsql();try{Statement stmt = conn.createStatement();int a = stmt.executeUpdate("insert into 学籍信息表(学号 ,姓名,年龄, 出生日期, 性别,班级,专业,院系)values('"+txtXueHao.getText()+"','"+txtName.getText()+"','"+txtYear.getText( )+"','"+txtDate.getText()+"','"+sex+"','"+txtClass.getText()+"','"+txtZY.getTex t()+"','"+txtYX.getText()+"')");if(a==1){JOptionPane.showMessageDialog(null,"已成功添加","温馨提示",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"添加失败","温馨提示",RMATION_MESSAGE);}stmt.close();}catch (SQLException se){JOptionPane.showMessageDialog(null,se.getMessage());}}} else{txtClass.setText("");txtZY.setText("");txtYX.setText("");txtName.setText("");txtDate.setText("");txtXueHao.setText("");txtYear.setText("");txtXueHao.requestFocus();}}③修改学生信息public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){Menu m=new Menu();}else if(ae.getSource()==btnQuery){try{Connctsql();sql=con.createStatement();rs=sql.executeQuery("select * from 学籍信息表 where 学号='"+num.getText()+"'");if(rs.next()){num.setText(rs.getString("学号"));nam.setText(rs.getString("姓名"));tyear.setText(rs.getString("年龄").toString());tDate.setText(rs.getString("出生日期"));if(rs.getString("性别").equals("男")){man.setSelected(true);}else{women.setSelected(true);}clas.setText(rs.getString("班级"));scl.setText(rs.getString("专业"));tmz.setText(rs.getString("院系"));btnModify.setEnabled(true);nam.setEditable(true);tyear.setEditable(true);tDate.setEditable(true);clas.setEditable(true);scl.setEditable(true);tmz.setEditable(true);}else{JOptionPane.showMessageDialog(null, "不存在该记录!", "温馨提示", RMATION_MESSAGE);btnModify.setEnabled(false);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();nam.setEditable(false);tyear.setEditable(false);tDate.setEditable(false);clas.setEditable(false);scl.setEditable(false);tmz.setEditable(false);}}catch(SQLException e){ } }else if(ae.getSource()==btnModify){Connctsql();try{sql=con.createStatement();re=sql.executeUpdate("Update 学籍信息表set 姓名='"+nam.getText()+"',年龄='"+tyear.getText()+"',出生日期='"+tDate.getText()+"',班级='"+clas.getText()+"',专业='"+scl.getText()+"',院系='"+tmz.getText()+"' where 学号='"+num.getText()+"'");if(re==1){JOptionPane.showMessageDialog(null,"记录修改完毕!","温馨提示",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"记录修改失败!","温馨提示",RMATION_MESSAGE);}sql.close();}catch (SQLException se){JOptionPane.showMessageDialog(null,se.getMessage());}} else{btnModify.setEnabled(false);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();nam.setEditable(false);tyear.setEditable(false);tDate.setEditable(false);clas.setEditable(false);scl.setEditable(false);tmz.setEditable(false); } }④查询学生信息public void actionPerformed(ActionEvent e){if(e.getSource()==caln){dispose();new Menu();}else if(e.getSource()== serch){Connctsql();try{Statement stmt=conn.createStatement();ResultSet rs = stmt.executeQuery("select * from 学籍信息表where 学号='"+num.getText()+"'");if(rs.next()){num.setText(rs.getString("学号"));nam.setText(rs.getString("姓名"));tyear.setText(rs.getString("年龄").toString());tDate.setText(rs.getString("出生日期"));if(rs.getString("性别").equals("男"))man.setSelected(true);elsewomen.setSelected(true);clas.setText(rs.getString("班级"));scl.setText(rs.getString("专业"));tmz.setText(rs.getString("院系"));}else{JOptionPane.showMessageDialog(null, "不存在该记录!", "温馨提示", RMATION_MESSAGE);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();}}catch(SQLException se){}}else if(e.getSource()== reset){tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus(); }}⑤删除学生信息public void actionPerformed(ActionEvent ae){ if(ae.getSource()==btnCancel){this.dispose();new Menu();}else if(ae.getSource()==btnQuery){Connctsql();try{sql=con.createStatement();rs=sql.executeQuery("select * from 学籍信息表where 学号='"+num.getText()+"'");if(rs.next()){num.setText(rs.getString("学号"));nam.setText(rs.getString("姓名"));tyear.setText(rs.getString("年龄").toString());tDate.setText(rs.getString("出生日期"));if(rs.getString("性别").equals("男")){man.setSelected(true);}else {women.setSelected(true);}clas.setText(rs.getString("班级"));scl.setText(rs.getString("专业"));tmz.setText(rs.getString("院系"));btnDelete.setEnabled(true);nam.setEditable(true);tyear.setEditable(true);tDate.setEditable(true);clas.setEditable(true);scl.setEditable(true);tmz.setEditable(true);}else{JOptionPane.showMessageDialog(null, "不存在该记录!", "温馨提示", RMATION_MESSAGE);btnDelete.setEnabled(false);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();nam.setEditable(false);tyear.setEditable(false);tDate.setEditable(false);clas.setEditable(false);scl.setEditable(false);tmz.setEditable(false);}}catch(SQLException e){}}else if(ae.getSource()== btnDelete) //实现删除功能{try{Connctsql();sql=con.createStatement();re=sql.executeUpdate("DELETE FROM 学籍信息表where 学号='"+num.getText()+"'");if(re==1){JOptionPane.showMessageDialog(null,"记录删除完毕!","温馨提示",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"记录删除失败!","温馨提示",RMATION_MESSAGE);}sql.close();}catch (SQLException se){JOptionPane.showMessageDialog(null,se.getMessage());}} else{ btnDelete.setEnabled(false);tyear.setText("");tDate.setText("");tmz.setText("");num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus();nam.setEditable(false);tyear.setEditable(false);tDate.setEditable(false);clas.setEditable(false);scl.setEditable(false);tmz.setEditable(false); }}⑥连接数据库private void Connctsql(){//连接sqlserver2005数据库的函数try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=student","sa","123456789");//连接student数据库}catch(Exception e){System.out.println(e); }}2、关键技术①异常处理②窗口连接③数据库连接三、使用与测试1、登陆(口令与账号相同)①管理员登陆账号:王伟②学生登陆账号:1001、1002、10032、系统测试四、数据库设计1、关键表2、E-R图图4-2 数据库E-R图总结(体会)本学期课程设计涵盖了:Java以及数据库的各方面知识。