1、1、学生模块;2、管理员(老师)模块。 学生模块1、 学生登录;2、 学生注册;3、 学生选课;4、 学生退课;5、 查看已选课程;6、 学生成绩查询。 管理员(老师)模块1、 管理员登录(usename:admin; password:admin);2、 查看已开课程信息;3、 增加新开课程;4、 删除已有课程信息;5、 修改课程信息;6、 录入学生成绩。三、总体设计3.1、系统功能结构示意图3.2、系统功能说明 前台管理1、注册登录:用户的注册登录,包括学生用户的注册登录和管理员(老师)用户登录。2、选课退课:学生对已有课程的选择或对已选课程的退选功能。3、查询信息:学生对选课和成绩的查询
2、以及管理员(老师)对课程信息的查询。4、修改信息:管理员(老师)对课程信息的修改。5、增减课程:管理员(老师)增加新课程或删除已有课程。6、录入成绩:管理员(老师)录入学生课程学习的成绩。 后台管理1、 查询学生信息:已登录管理员查看学生属性信息,包括学生的姓名,性别,院系,以及联系电话。2、 查询课程信息:已登录管理员查看课程信息列表,包括课程的名字,上课时间,上课地点,任课老师,任课老师电话,以及课程学分。3、 查询选课信息:已登录管理员查看学生选课课程情况,包括学生姓名,课程名称,上课时间,上课地点,任课老师,学生电话,课程学分,以及学生课程成绩。3.3、数据库E-R图3.4、主要功能流
3、程图四、详细设计4.1、系统文件框架图4.2、设计模式及关键技术 设计模式系统中有管理员(老师)对学生选课的管理包括添加课程,删除课程及录入成绩等功能,学生可以注册和登录到该系统,登录该系统之后可以查看学校所开的课程的基本信息,学生可以选修其中的一些比较喜欢的课程,当学生又有其它想法对某课程不感兴趣的时候也可以退选已选的课程,然后重新选择喜欢的课程,选课结束后老师就给同学们上课,最后老师根据各个学生的表现或通过考试给同学们相应的考试分数(通过系统录入),最后学生可以通过此系统来查询所选课程的考试成绩。如果学生发现成绩或其他信息出现问题,可以通过提供的教师电话联系该开课老师,老师核对后可以进行相
4、应的修改。Jsp页面用于给用户提供界面,提交参数及显示结果。通过JavaBean处理参数并连接数据库,从数据库中获得用户请求的信息再交付给Servlet处理交付个用户显示在jsp页面。 关键技术 JavaBean、Servlet技术JavaBean封装了程序的页面逻辑,可以实现代码的重复利用,容易维护和使用,利用动作元素就可以很容易的在各个jsp页面使用JavaBean,将要用到的方法都封装到java文件中通过JavaBean技术,直接调用其中的各种方法实现与jsp页面的交互。 JDBC数据库连接技术数据库的连接在整个选课系统中是必不可少的,而且经常用到,于是我将它封装到dbcon.java的
5、java文件中,其中有数据库连接的几个基本步骤:加载驱动,获得连接,创建Statement对象等等,这样做的好处是在当有与数据库连接的相关操作时就直接利用JavaBean技术就能很方便的实现。 登录注册的验证技术登陆注册的验证主要通过专门编写的几个用于验证的函数和JavaScript脚本语言技术,以及数据库的创建时的数据的完整性约束等等来实现简单的验证 各页面之间跳转时参数的传递技术各个页面之间的跳转时参数的传递主要用到了几个jsp内置对象:request,session等。在整个系统所有页面都要用到的参数就用session对象的setAttribute()方法将参数存储到session对象中
6、,然后利用getAttribute()方法获取参数。request对象的getPatameter()方法用于获取表单提交的参数。 编码解码技术字符转换的函数codeToString()方法来处理系统中出现的乱码问题。通过对可能出现乱码的字符重新编码来解决乱码问题。4.3、数据库设计数据库:SQL Server 2000 个人版数据库名:jsp_db(jsp_db_Data.MDF; jsp_db_Log.LDF);学生信息表(stuInfo):课程表(course)学生选课表(sc)管理员登录信息表(adminInfo)4.4、关键程序代码(见附录)。五、测试与运行结果六、参考文献1、王珊,萨
7、师煊,数据库系统概论,北京高等教育出版社,2006.7;2、美布鲁斯埃克尔(Eckel,B.),陈昊鹏 译,Java编程思想(第4版),机械工业出版社,2007.6;3、美鲍格斯坦(Bergsten,H.),林琪、朱涛江 译,JSP设计(第三版),中国电力出版社,2004;4、刘卫国,严晖,数据库技术应用-SQL Server,清华大学出版社,2007.1七、设计心得通过这次课程设计,对JSP、SQLServer2000有了进一步的了解,也对网页设计有了一定的见解,对我们的网上选课系统进行分析,设计,实现。进一步的了解了JAVA编程和数据库。也增强了团队合作意识,共同合作精神。对以后的设计实现
8、有了一定的基础,在这次课程设计中得到了很大的收获。附录:adminbean.javapackage bean;import bean.dbcon;import java.sql.*;public class adminbean private 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) thi
9、s.tno = tno; public String getPassword() return password; public void setPassword(String password) this.password = password; public String checkTeacher() /教师登陆验证 String backstr=; boolean mark=true; if(this.tno=null|this.tno.equals() backstr+=li请输入教师编号!/b/libr mark=false; if(this.password=null|this.p
10、assword.equals(密 &码! if(mark) String sql=select * from adminInfo where tno=+this.tno+and password=+this.password+ try rs=db.getRs(sql); if(!rs.next() backstr=false else backstr=true catch(Exception e)e.printStackTrace(); db.closed(); return backstr;courseInfo.javapublic class courseInfo private
11、 String cno; private String cname; private String time; private String address; private String teacher; private 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 Stri
12、ng getZy() return zy; public void setZy(String zy) this.zy = zy; public String getZx() return zx; public void setZx(String 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 = cnam
13、e; public String getTime() return time; public void setTime(String time) this.time = time; public String getAddress() return address; public void setAddress(String address) this.address = address; public String getTeacher() return teacher; public void setTeacher(String teacher) this.teacher = teache
14、r; public String getPhone() return phone; public void setPhone(String phone) this.phone = phone; public String getXuefen() return xuefen; public void setXuefen(String xuefen) this.xuefen = xuefen;dbcon.javaimport java.util.*;import bean.scoretable;public class dbcon private static Connection con; pr
15、ivate Statement stm; private static String classname=com.microsoft.jdbc.sqlserver.SQLServerDriver private static String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=jsp_db public dbcon() public static Connection getConnection() /连接数据库 try Class.forName(classname); catch(Exception e) Sys
16、tem.out.println(getConnection方法异常!); e.printStackTrace(); try con = DriverManager.getConnection(url,sa, con=null; return con; public Statement getStm() getConnection(); stm=con.createStatement(); catch(Exception e)getStm()方法异常! return stm; public ResultSet getRs(String sql) getStm(); if(sql=null)sql
17、= rs=stm.executeQuery(sql); catch(Exception e)getRs()方法异常! rs=null; return rs; public void closed() if(rs!=null)rs.close(); catch(Exception e)e.printStackTrace(); if(stm!=null)stm.close(); catch(Exception e)e.printStackTrace(); if(con!=null)con.close(); public String codeToString(String str) /处理中文字符
18、串的函数 String s=str; try byte tempB=s.getBytes(ISO-8859-1 s=new String(tempB); return s; catch(Exception e) public void adduser(userbean user) throws SQLException /注册用户信息入数据库 con=dbcon.getConnection(); PreparedStatement pstmt = con.prepareStatement(insert into stuInfo values(?,?) pstmt.setString(1,cod
19、eToString(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(); pstmt.setString(6,codeToString(user.getPhone(); pstmt.setString(7,codeToString(use
20、r.getQuestion(); pstmt.setString(8,codeToString(user.getAnswer(); pstmt.execute(); con.close(); public void addcourse(courseInfo course) throws SQLException /增加的课程信息入数据库insert into course values(? pstmt.setString(1,codeToString(course.getCno(); pstmt.setString(2,codeToString(course.getCname(); pstmt
21、.setString(3,codeToString(course.getTime(); pstmt.setString(4,codeToString(course.getAddress(); pstmt.setString(5,codeToString(course.getTeacher(); pstmt.setString(6,codeToString(course.getPhone(); pstmt.setString(7,codeToString(course.getXuefen();addcourse()异常! /管理员 用 删除课程信息 public void deletecours
22、e(String courseId) String sql=delete from course where cno=+courseId+ con = getConnection(); Statement stm = con.createStatement(); stm.execute(sql); stm.close();deletecourse()函数异常! /验证函数集 public boolean checkcourse(String number) /添加课程信息时的验证 boolean num=false; ResultSet result = stm.executeQuery(select * from course where cno=+number+ if(result.next() num=true; else num=false; result.close(); System.out.print(添加课程验证异常 num=false; return num; public boolean checkuser_regester(String number) /select * from stuInfo where sno=+numbe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1