Java课程设计——学生学籍管理系统

  • 格式:doc
  • 大小:954.50 KB
  • 文档页数:17

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计目的 (2)二、功能介绍 (2)三、程序流程 (3)四、设计步骤 (4)五、设计总结 (11)六、程序清单 (11)七、参考文献 (17)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计目的《java课程设计》是计算机相关专业的必修专业基础课程,其实践性,应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习《java程序设计》课程后,进行的一次全面的综合训练,java程序设计的目的是加深对理论教学内容的理解和掌握,是学生较系统的掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

二、功能介绍1、管理员登陆功能。

2、注册管理员功能。

3、按照学生学号搜索学籍信息功能。

4、显示所有学生学籍信息功能。

5、添加新的学生学籍信息功能。

6、删除指定学生学籍功能。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊三、程序流程四、设计步骤1、运行程序,通过LoginFrame类的构造方法LoginFrame()调用init()来初始化,生成界面,如果4-1所示,输入用户名、密码,如果用户名密┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊码正确,显示提示登录成功,如图4-2所示图4-1 登录界面图4-2 登录成功核心代码://验证用户public boolean check(String u,String p){boolean b=false;try{ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("select userpwd from users where username='"+u+"'");res=ps.executeQuery();if(res.next()){┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊String dbpwd=res.getString(1);if(dbpwd.equals(p)){b=true;}}}catch(Exception e){e.printStackTrace();}finally{this.close();}return b;}2、登录成功后,进入管理界面,如图4-3所示,然后按照提示,输入要查找的学籍的学生学号,点击搜索按钮,响应搜索按钮的事件处理,调用actionPerformed(ActionEvent e)实现事件监听,然后在这个方法中调用DBOperate类,创建一个DBOperate类对象,调用DBOperate类的getAXueJiInfo(String tnum)方法,参数为学号,然后显示出所查找学生的学籍信息,如图4-4所示:图4-3 学生学籍管理系统主界面┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图4-4 学生学籍管理系统主界面下的搜索界面核心代码://按学号查找学籍信息public xuejiBean getAXueJiInfo(String tnum){xuejiBean xjb=new xuejiBean();if(tnum.equals("")){return null;}int num=Integer.parseInt(tnum);try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM xueji WHERE num="+num+"");res=ps.executeQuery();while(res.next()){x jb.setNum(res.getInt(1));x jb.setSname(res.getString(2));x jb.setSex(res.getString(3));x jb.setMinzu(res.getString(4));x jb.setAge(res.getInt(5));x jb.setSdepart(res.getString(6));x jb.setStudytime(res.getString(7));x jb.setPface(res.getString(8));x jb.setAddress(res.getString(9));}} catch (Exception e) {e.printStackTrace();} finally{this.close();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}return xjb;}3、在管理界面的主界面中,点击搜索所有学籍信息,响应StuInfoFrame类中的actionPerformed(ActionEvent e)事件处理,然后在此方法中调用DBOperate类的ShowXueJiInfo()方法,然后在这个方法中查找数据库,将数据库返回的数据显示在JFrame中JTable内,显示结果如图4-5所示:图4-5 显示所有学生学籍信息的界面核心代码://显示所有学籍信息public ArrayList<xuejiBean> ShowXueJiInfo(){ArrayList<xuejiBean> al=new ArrayList<xuejiBean>();try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM xueji"); res=ps.executeQuery();while(res.next()){x uejiBean xjb=new xuejiBean();x jb.setNum(res.getInt(1));x jb.setSname(res.getString(2));x jb.setSex(res.getString(3));x jb.setMinzu(res.getString(4));x jb.setAge(res.getInt(5));x jb.setSdepart(res.getString(6));x jb.setStudytime(res.getString(7));x jb.setPface(res.getString(8));x jb.setAddress(res.getString(9));a l.add(xjb);}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊} catch (Exception e) {e.printStackTrace();// TODO: handle exception} finally{this.close();}return al;}4、添加新的学生学籍信息,点击添加新学籍按钮响应StuInfoFrame类中的actionPerformed(ActionEvent e)事件处理,然后在此方法中,创建DBOperate类的实例,通过DBOperate类的实例调用putInforIntoDb(String name,String sex,String minzu,int age,Stringdepart,String time,String face,String address)方法将新学籍信息录入数据库中,效果如图4-6所示:图4-6 添加学生学籍界面核心代码://录入学籍信息public boolean putInforIntoDb(String name,String sex,String minzu,int age,String depart,String time,String face,String address){boolean b=false;try {ConnDB cd=new ConnDB();conn=cd.getConn();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ps=(PreparedStatement) conn.prepareStatement("INSERT INTO xueji (sname,sex,minzu,age,sdepart,studytime,pface,address) VALUES (?,?,?,?,?,?,?,?)");ps.setString(1, name);ps.setString(2, sex );ps.setString(3, minzu);ps.setInt(4, age);ps.setString(5, depart);ps.setString(6, time);ps.setString(7, face);ps.setString(8, address);int cont=ps.executeUpdate();if(cont==1){b=true;}} catch (Exception e) {e.printStackTrace();// TODO: handle exception} finally{this.close();}return b;}5、在2中,搜索出某个学生的学籍信息后,可以点击“删除该学籍信息”按钮,然后该按钮响应tuInfoFrame类中的actionPerformed(ActionEvente)事件处理通过在此方法中创建DBOperate类的实例来调用DBOperate类中的Deleteuser(String id)方法来删除该学籍信息。

效果如图4-7所示:图4-7 删除指定学生学籍信息界面┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊6、在1中登录时,如果点击注册按钮,则响应LoginFrame类中的actionPerformed(ActionEvent e)事件处理,在此方法中创建了RegisterFrame的一个类对象,然后通过此类对象创建DBOperate类的实例,并通过此实例来调用DBOperate类的Register(Stringusername,String password,String sex,String email,String address)方法来向数据库中添加用户信息,效果如图4-8所示:图4-8 管理员注册界面核心代码://注册用户public boolean Register(String username,String password,String sex,String email,String address){boolean b=false;try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("INSERT INTO users (username,userpwd,sex,e_mail,address) VALUES (?,?,?,?,?)");ps.setString(1, username);ps.setString(2, password);ps.setString(3, sex);ps.setString(4, email);ps.setString(5, address);int num=ps.executeUpdate();if(num==1){b=true;┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}} catch (Exception e) {e.printStackTrace();// TODO: handle exception} finally{this.close();}return b;}7、通过以上操作,便完成了对该学生学籍系统的所有流程!五、设计总结一周的时间很快就过去了,在这短暂的Java课程设计过程中,我们在一起学习,加深我们对Java学科认识的深度,平时没怎么太在乎。