选课系统的设计与实现

时间:2022-06-05 08:18:23

选课系统的设计与实现

【摘 要】网上选课系统依据用户的使用的功能划分为三个模块:学生模块、教师模块、管理员模块。实现了学生对课程的查看及修改;教师对课程的添加及管理;管理员对整个系统的运营维护及对系统用户的管理。

【关键词】网上选课;体系结构;JSP

【Abstract】In accordance with the function, the elective system can be divided into three modules: Students’ Module, Teachers’ Module and Managers’ Module. The students can check and modify the courses.The teachers can add and manage the courses.

【Key words】Online Course;System architecture;JSP

网上选课系统很多,在进行本系统的研发之前通过大量的调查与研究,决定采用B/S架构体系,用JSP语言来编写动态网页、用Java语言编写中间组件,用MYSQL做数据库服务器,用TOMCAT做WEB服务器。

1 系统数据库表

该系统数据库一共由用户信息表、课程信息表、用户课程关系表、公告信息表、留言信息表、错误日志表六个表构成。课程信息表(course表):存储课程信息,用来向教师,管理员,学生展示可选择的科目信息。留言信息表(message表):存储用户的留言信息,其中readed表示留言信息是否被阅读过,0表示未阅读过,1表示阅读过。

2 系统文件架构设计

学生、教师、管理员三个模块的表在一个文件夹。用class类文件进行分类,对常用的处理算法以及工具类单独封装成一个util包。系统使用到的公共界面放在文件夹common中。

3 主要模块的设计与实现

3.1 登录模块功能

用户输入正确的用户名和密码,进入系统进行各种操作的窗口,具有对用户身份进行验证的功能,把用户的用户角色信息传递给系统,以便系统提供不同的显示界面,实现不同权限的用户进行不同的操作。

public void doPost(HttpServletRequest request, Http Servlet Response response)

throws ServletException,IOException{String type = request.getParameter("user_type");

String username = request.getParameter("username");

String pwd = Encrypt.getInstance().md5Encrypt(request.getParameter("password"));

HttpSession session = request.getSession();

String url = "";User user = Factory.getUserDaoImp().find(username, pwd, type);

PrintWriter out =response.getWriter();Log log=null;if (user != null) {

boolean flag=Factory.getUserDaoImp().modifyStatus("1",user.getId());

if(!flag){response.sendRedirect("index.jsp");}session.set Attribute("user", user);

if ("0".equals(type)) {url = "admin/index.jsp";} else if ("1".equals(type)) {

url = "teacher/index.jsp";} else {url = "student/index.jsp";}

request.getRequestDispatcher(url).forward(request, response);

} else {response.sendRedirect("index.jsp");}

3.2 管理员模块功能

(1)找回密码。为了提高系统的友好性,对管理员设计一项找回密码的功能。实现管理员找密码的代码如下。

(2)公告、选课。当需要紧急信息或者最新选课情况是,管理员和教师都可以通过公告,来及时与更新公告与新闻。

if(flag){Course course=cd.findById(c_id);if(course!=null){

course.setAvaliable(course.getAvaliable()-1);flag=cd.modify Course(course);}

User user=ud.getInfo(u_id);

System.out.println("学生号是"+user.getId()+"学生选课数目是"+user.getCounts());

flag=ud.modifyCounts(u_id, user.getCounts()+1);

request.getRequestDispatcher("courseFindAllById").forward(request, response);}}}

3.3 教师模块功能

(1)课程管理。课程是教师角色的主要功能模块,教师用户可以对自己教授的课程进行信息录入,对存在信息错误的课程查询及修改等操作。

throws ServletException, IOException {

String id = RandomUtil.getString();String name = request.getParameter("course_name");

String tips = request.getParameter("course_tips");

int score=Integer.parseInt(request.getParameter("course _score"));

int counts = Integer.parseInt(request.getParameter("course _counts"));

int avaliable = Integer.parseInt(request.getParameter("course _avaliable"));

String begin_time = request.getParameter("begin_time");

String end_time = request.getParameter("end_time");

String address = request.getParameter("course_address");

User user=(User) request.getSession().getAttribute("user");

Course course=new Course();course.setId(id);course.set Name(name);course.setTips(tips);

course.setScore(score);course.setCounts(counts);course.set Avaliable(avaliable);

course.setBegin_time(begin_time);course.setEnd_time (end _time);

course.setAddress(address);course.setTeacherId(user.getId());

CourseDao cd=Factory.getCourseDao();boolean flag=cd.add Course(course);

if(flag){request.setAttribute("course", course);

request.getRequestDispatcher("teacher/course/course_info.jsp").forward(request, response)

【参考文献】

[1]李俊民.MySQL数据库开发实例解析[M].北京:机械工业出版社,2006:100-105.

[2]耿祥义.JSP实用教程.2版[M].北京:清华大学出版社,2007:10-12.

[3]黄缙华.MySQL入门很简单[M].北京:清华大学出版社,2011:53-55.

[4]前沿科技.精通CSS+DIV网页样式布局[M].北京:中国人民邮电出版社,2007:8-11.

[5]李刚.疯狂Java讲义[M].北京:中国电子工业出版社,2008:12-15.

上一篇:信息时代做好企业档案安全管理工作的思考 下一篇:飞机维修企业生产管理信息化系统分析