收藏 分销(赏)

学生网上选课系统毕业设计.doc

上传人:可**** 文档编号:2194061 上传时间:2024-05-22 格式:DOC 页数:27 大小:1.64MB
下载 相关 举报
学生网上选课系统毕业设计.doc_第1页
第1页 / 共27页
学生网上选课系统毕业设计.doc_第2页
第2页 / 共27页
学生网上选课系统毕业设计.doc_第3页
第3页 / 共27页
学生网上选课系统毕业设计.doc_第4页
第4页 / 共27页
学生网上选课系统毕业设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

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.

5、jsp选课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技术Jav

7、aBean封装了程序的页面逻辑,可以实现代码的重复利用,容易维护和使用,利用动作元素就可以很容易的在各个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):25课程表(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 pri

11、vate 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;

12、public 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.pas

13、sword+;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;priv

14、ate 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(St

15、ring 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

16、address;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 x

17、uefen;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.S

18、QLServerDriver;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.getConnec

19、tion(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.execu

20、teQuery(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

21、.printStackTrace(); 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 pstm

22、t = 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(); Prep

24、aredStatement 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,cod

25、eToString(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

26、cno=+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();St

27、atement 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 nu

28、mber)/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;re

29、turn 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.getS

30、tring(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

31、e)System.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.printSt

32、ackTrace();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

33、.createStatement();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.

34、getString(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 s

35、core;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 setXu

36、efen(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;

37、private 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 =

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服