《毕业设计(论文)学生网上选课系统毕业设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)学生网上选课系统毕业设计.doc(26页珍藏版)》请在三一办公上搜索。
1、 实训报告课题名称: 学生网上选课系统 系 别: 经济与信息管理系 班 级: 13级软件班 学 号: 学生姓名: 指导老师: 完成日期: 2015.11.15 目录一、设计任务与目的3二、需求分析 3三、总体设计33.1、系统功能结构示意图33.2、系统功能说明43.3、数据库E-R图43.4、主要功能流程图5四、详细设计64.1、系统文件框架图64.2、设计模式及关键技术64.3、数据库设计7五、测试与运行结果8六、参考文献9七、设计心得10附录11一、设计任务与目的传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和
2、时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。通过设计网上学生选课系统,使我们对JAVA的JSP编程以及数据库(SQL Server)的搭建的认识更加熟悉了解。二、需求分析本系统首先分为两大块:1、学生模块;2、管理员(老师)模块。l 学生模块1、 学生登录;2、 学生注册;3、 学生选课;4、 学生退课;5、 查看已选课程;6、 学生成绩查询。l 管理员(老师)模块1、 管理员登录(usename:admin; password:admin);2、 查看已开课程信息;3、 增加新开课程;4、 删除已有课程信息;5、 修改课程信息;6、 录入学生成绩。三、总
3、体设计3.1、系统功能结构示意图系统前台管理注册登录选课退课查询信息修改信息增减课程录入成绩后台管理查询学生信息查询课程信息查询选课信息3.2、系统功能说明l 前台管理1、注册登录:用户的注册登录,包括学生用户的注册登录和管理员(老师)用户登录。2、选课退课:学生对已有课程的选择或对已选课程的退选功能。3、查询信息:学生对选课和成绩的查询以及管理员(老师)对课程信息的查询。4、修改信息:管理员(老师)对课程信息的修改。5、增减课程:管理员(老师)增加新课程或删除已有课程。6、录入成绩:管理员(老师)录入学生课程学习的成绩。l 后台管理1、 查询学生信息:已登录管理员查看学生属性信息,包括学生的
4、姓名,性别,院系,以及联系电话。2、 查询课程信息:已登录管理员查看课程信息列表,包括课程的名字,上课时间,上课地点,任课老师,任课老师电话,以及课程学分。3、 查询选课信息:已登录管理员查看学生选课课程情况,包括学生姓名,课程名称,上课时间,上课地点,任课老师,学生电话,课程学分,以及学生课程成绩。3.3、数据库E-R图学生课程管理员(老师)姓名性别学号电话学院时间地点学分姓名电话学习任课成绩评分3.4、主要功能流程图regester.jsp注册页面index.jsp学生do_regester.jsp注册成功返回login.jspoperating.jsp操作界面selectcourse.j
5、sp选课yixuan.jsp查看已选tuike.jsp退课gueryscore.jsp成绩查询管理员index.jsplogin.jspmanagecourse.jsp操作界面course.jsp显示课程处理对应的jspdeletecourse.jsp删除课程updatecourse.jsp修改课程index.jsp录入成绩addcourse.jsp增加课程四、详细设计4.1、系统文件框架图4.2、设计模式及关键技术l 设计模式系统中有管理员(老师)对学生选课的管理包括添加课程,删除课程及录入成绩等功能,学生可以注册和登录到该系统,登录该系统之后可以查看学校所开的课程的基本信息,学生可以选修其
6、中的一些比较喜欢的课程,当学生又有其它想法对某课程不感兴趣的时候也可以退选已选的课程,然后重新选择喜欢的课程,选课结束后老师就给同学们上课,最后老师根据各个学生的表现或通过考试给同学们相应的考试分数(通过系统录入),最后学生可以通过此系统来查询所选课程的考试成绩。如果学生发现成绩或其他信息出现问题,可以通过提供的教师电话联系该开课老师,老师核对后可以进行相应的修改。Jsp页面用于给用户提供界面,提交参数及显示结果。通过JavaBean处理参数并连接数据库,从数据库中获得用户请求的信息再交付给Servlet处理交付个用户显示在jsp页面。l 关键技术 JavaBean、Servlet技术Java
7、Bean封装了程序的页面逻辑,可以实现代码的重复利用,容易维护和使用,利用动作元素就可以很容易的在各个jsp页面使用JavaBean,将要用到的方法都封装到java文件中通过JavaBean技术,直接调用其中的各种方法实现与jsp页面的交互。 JDBC数据库连接技术数据库的连接在整个选课系统中是必不可少的,而且经常用到,于是我将它封装到dbcon.java的java文件中,其中有数据库连接的几个基本步骤:加载驱动,获得连接,创建Statement对象等等,这样做的好处是在当有与数据库连接的相关操作时就直接利用JavaBean技术就能很方便的实现。 登录注册的验证技术登陆注册的验证主要通过专门编
8、写的几个用于验证的函数和JavaScript脚本语言技术,以及数据库的创建时的数据的完整性约束等等来实现简单的验证 各页面之间跳转时参数的传递技术各个页面之间的跳转时参数的传递主要用到了几个jsp内置对象:request,session等。在整个系统所有页面都要用到的参数就用session对象的setAttribute()方法将参数存储到session对象中,然后利用getAttribute()方法获取参数。request对象的getPatameter()方法用于获取表单提交的参数。 编码解码技术字符转换的函数codeToString()方法来处理系统中出现的乱码问题。通过对可能出现乱码的字符
9、重新编码来解决乱码问题。4.3、数据库设计数据库:SQL Server 2000 个人版数据库名:jsp_db(jsp_db_Data.MDF; jsp_db_Log.LDF);学生信息表(stuInfo):课程表(course)学生选课表(sc)管理员登录信息表(adminInfo)4.4、关键程序代码(见附录)。五、测试与运行结果六、参考文献1、王珊,萨师煊,数据库系统概论,北京高等教育出版社,2006.7;2、美布鲁斯埃克尔(Eckel,B.),陈昊鹏 译,Java编程思想(第4版),机械工业出版社,2007.6;3、美鲍格斯坦(Bergsten,H.),林琪、朱涛江 译,JSP设计(第
10、三版),中国电力出版社,2004;4、刘卫国,严晖,数据库技术应用-SQL Server,清华大学出版社,2007.1七、设计心得通过这次课程设计,对JSP、SQLServer2000有了进一步的了解,也对网页设计有了一定的见解,对我们的网上选课系统进行分析,设计,实现。进一步的了解了JAVA编程和数据库。也增强了团队合作意识,共同合作精神。对以后的设计实现有了一定的基础,在这次课程设计中得到了很大的收获。附录:adminbean.javapackage bean;import bean.dbcon;import java.sql.*;public class adminbean privat
11、e String tno;private String password;private ResultSet rs; private dbcon db= new dbcon();public adminbean()public String getTno() return tno;public void setTno(String tno) this.tno = tno;public String getPassword() return password;public void setPassword(String password) this.password = password;pub
12、lic String checkTeacher()/教师登陆验证String backstr=;boolean mark=true;if(this.tno=null|this.tno.equals()backstr+=请输入教师编号!;mark=false;if(this.password=null|this.password.equals()backstr+=请输入密 码!;mark=false;if(mark)String sql=select * from adminInfo where tno=+this.tno+and password=+this.passwo
13、rd+;tryrs=db.getRs(sql);if(!rs.next()backstr=false;else backstr=true;catch(Exception e)e.printStackTrace();db.closed();return backstr; courseInfo.javapackage bean;public class courseInfo private String cno;private String cname;private String time;private String address;private String teacher;private
14、 String phone;private String xuefen;private String zno;private String zy;private String zx;public String getZno() return zno;public void setZno(String zno) this.zno = zno;public String getZy() return zy;public void setZy(String zy) this.zy = zy;public String getZx() return zx;public void setZx(Strin
15、g zx) this.zx = zx;public String getCno() return cno;public void setCno(String cno) o = cno;public String getCname() return cname;public void setCname(String cname) ame = cname;public String getTime() return time;public void setTime(String time) this.time = time;public String getAddress() return add
16、ress;public void setAddress(String address) this.address = address;public String getTeacher() return teacher;public void setTeacher(String teacher) this.teacher = teacher;public String getPhone() return phone;public void setPhone(String phone) this.phone = phone;public String getXuefen() return xuef
17、en;public void setXuefen(String xuefen) this.xuefen = xuefen;dbcon.javapackage bean;import java.sql.*;import java.util.*;import bean.scoretable;public class dbconprivate static Connection con;private Statement stm;private ResultSet rs;private static String classname=com.microsoft.jdbc.sqlserver.SQLS
18、erverDriver;private static String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=jsp_db;public dbcon()public static Connection getConnection()/连接数据库 tryClass.forName(classname);catch(Exception e)System.out.println(getConnection方法异常!);e.printStackTrace();trycon = DriverManager.getConnectio
19、n(url,sa,);catch(Exception e)e.printStackTrace();con=null;return con;public Statement getStm()trygetConnection();stm=con.createStatement();catch(Exception e)e.printStackTrace();System.out.println(getStm()方法异常!);return stm;public ResultSet getRs(String sql)getStm();if(sql=null)sql=;tryrs=stm.executeQ
20、uery(sql);catch(Exception e)e.printStackTrace();System.out.println(getRs()方法异常!);rs=null;return rs;public void closed()tryif(rs!=null)rs.close();catch(Exception e)e.printStackTrace();tryif(stm!=null)stm.close();catch(Exception e)e.printStackTrace(); tryif(con!=null)con.close();catch(Exception e)e.pr
21、intStackTrace(); public String codeToString(String str)/处理中文字符串的函数 String s=str; try byte tempB=s.getBytes(ISO-8859-1); s=new String(tempB); return s; catch(Exception e) return s; public void adduser(userbean user) throws SQLException/注册用户信息入数据库trycon=dbcon.getConnection(); PreparedStatement pstmt =
22、 con.prepareStatement(insert into stuInfo values(?,?,?,?,?,?,?,?);pstmt.setString(1,codeToString(user.getSno();pstmt.setString(2,codeToString(user.getSname();pstmt.setString(3,codeToString(user.getPassword();pstmt.setString(4,codeToString(user.getSdept();pstmt.setString(5,codeToString(user.getSex();
23、pstmt.setString(6,codeToString(user.getPhone();pstmt.setString(7,codeToString(user.getQuestion();pstmt.setString(8,codeToString(user.getAnswer();pstmt.execute();con.close();catch(Exception e)public void addcourse(courseInfo course) throws SQLException/增加的课程信息入数据库trycon=dbcon.getConnection(); Prepare
24、dStatement pstmt = con.prepareStatement(insert into course values(?,?,?,?,?,?,?);pstmt.setString(1,codeToString(course.getCno();pstmt.setString(2,codeToString(course.getCname();pstmt.setString(3,codeToString(course.getTime();pstmt.setString(4,codeToString(course.getAddress();pstmt.setString(5,codeTo
25、String(course.getTeacher();pstmt.setString(6,codeToString(course.getPhone();pstmt.setString(7,codeToString(course.getXuefen();pstmt.execute();con.close();catch(Exception e)System.out.println(addcourse()异常!);/管理员 用 删除课程信息public void deletecourse(String courseId)String sql=delete from course where cno
26、=+courseId+;trycon = getConnection();Statement stm = con.createStatement();stm.execute(sql);con.close();stm.close();catch(Exception e)e.printStackTrace();System.out.println(deletecourse()函数异常!);/验证函数集public boolean checkcourse(String number)/添加课程信息时的验证boolean num=false;trycon = getConnection();State
27、ment stm = con.createStatement();ResultSet result = stm.executeQuery(select * from course where cno=+number+);if(result.next()num=true;elsenum=false;con.close();stm.close();result.close();catch(Exception e)System.out.print(添加课程验证异常);num=false;return num;public boolean checkuser_regester(String numbe
28、r)/boolean num=false;trycon = getConnection();Statement stm = con.createStatement();ResultSet result = stm.executeQuery(select * from stuInfo where sno=+number+);if(result.next()num=true;elsenum=false;con.close();stm.close();result.close();catch(Exception e)System.out.print(学生注册验证异常);num=false;retur
29、n num;SuppressWarnings(unchecked)public Collection getCourseInfo()trycon = getConnection();Statement stm = con.createStatement();ResultSet result = stm.executeQuery(select * from course);Collection ret = new ArrayList();while(result.next()courseInfo temp = new courseInfo();temp.setCno(result.getStri
30、ng(cno);temp.setCname(result.getString(cname);temp.setTime(result.getString(time);temp.setAddress(result.getString(address);temp.setTeacher(result.getString(teacher);temp.setPhone(result.getString(phone);temp.setXuefen(result.getString(xuefen);ret.add(temp);con.close();return ret;catch(Exception e)S
31、ystem.out.println(getCourseInfo()方法异常!);return null;/删除选课课信息public void deletexuanke(String userId,String courseId)String sql=delete from sc where sno=+userId+and cno=+courseId+;trycon = getConnection();Statement stm = con.createStatement();stm.execute(sql);con.close();catch(Exception e)e.printStack
32、Trace();System.out.println(deletexuanke()函数异常!);/查询成绩SuppressWarnings(unchecked)public Collection getScoreInfo(String userId)/String sql=select * from scoretable where sno=+userId+;String sql=select sno,cno,cname,xuefen,score from sc where sno=+userId+;trycon = getConnection();Statement stm = con.cr
33、eateStatement();ResultSet result = stm.executeQuery(sql);Collection ret = new ArrayList();while(result.next()scoretable temp = new scoretable();temp.setSno(userId);temp.setCno(result.getString(cno);temp.setCname(result.getString(cname);temp.setXuefen(result.getString(xuefen);temp.setScore(result.get
34、String(score);ret.add(temp);con.close();stm.close();result.close();return ret;catch(Exception e)System.out.println(getScoreInfo()方法异常!);return null;scoretable.javapackage bean;public class scoretable private String sno;private String cno;private String cname;private String xuefen;private String scor
35、e;public String getSno() return sno;public void setSno(String sno) this.sno = sno;public String getCno() return cno;public void setCno(String cno) o = cno;public String getCname() return cname;public void setCname(String cname) ame = cname;public String getXuefen() return xuefen;public void setXuefe
36、n(String xuefen) this.xuefen = xuefen;public String getScore() return score;public void setScore(String score) this.score = score;usebean.javapackage bean;import bean.*;import java.sql.*;SuppressWarnings(unused)public class userbean private String sno;private String sname;private String password;pri
37、vate String sdept;private String sex;private String phone;private String question;private String answer;private ResultSet rs; private dbcon db= new dbcon();public userbean()public String getSno()return sno;public void setSno(String sno)this.sno = sno;public String getSname()return sname;public void setSname(String sname)this.sname = sname;public String getPassword()return password;public void setPassword(String password)this.password = password;public String getSdept()return sdept;public void setSdept(String sdept)this.sdept = sdept;public String getSex()return sex;public void setSex(Str
链接地址:https://www.31ppt.com/p-3982046.html