石家庄铁道大学选课管理系统
1、项目需求:
本项目所开发的学生选课系统完成学校对学生的选课信息的统计与管理,减少数据漏掉的情况,同时也节约人力、物力和财力。告别以往的人工统计。
2.系统要求与功能设计
2.1 页面要求
(1)能够在Tomcat服务器中正确部署,并通过浏览器查看;
(2)网站页面整体风格统一;
(3)首页(登录页)要求实现不同用户登录后,进入的功能页不相同。
(4)教师功能页:有添加课程、修改个人信息、浏览选课学生信息三个模块。
(5)学生功能页:有修改个人信息、浏览课程信息、选课三个功能模块。
(5)管理员功能页:有添加教师信息、添加学生信息两个模块。
2.2功能要求:
(1)添加教师信息:管理员可以添加教师基本信息,教师基本信息包括:教师工号(八位数字组成,例如02000081)、教师姓名、教师性别、教师所在学院、职称(教授、副教授、讲师、助教)组成;
(2)添加学生信息:管理可以添加学生基本信息,学生基本信息包括学号(八位数字组成,例如20180052)、学生姓名、学生性别、所在班级、所属专业组成;
(3)添加课程信息:教师登陆后,可以添加自己任职的课程基本信息,课程基本信息包括:课程编号(六位数字组成,例如050013),课程名称、选课人数、任课教师(任课教师不需录入,那位教师填写课程信息,那位教师就是任课教师);
(4)修改个人信息:教师或学生登陆后可以修改个人信息,但教师工号或学号不能修改,另外教师或学生只能修改自己的信息,无法看到或修改其他学生或教师的基本信息。
(5)浏览课程信息:学生登陆后可以看到所有课程的列表信息,点击课程名称可以查看课程的详细信息,包括已选课人数;点击教师名称可以查看教师的详细信息。
(6)选课:进入选课页面,课程信息列表显示所有选课人数未达到课程设置的选课人数上限,点击课程名称可以看到课程详细信息,点击课程详细信息页面的“选课”按钮,可以实现选课功能。
(7)浏览选课学生信息:教师进入该页面后,可以看到自己设置的课程信息列表,点击课程名称,可以看到,选择该课程的所有学生基本信息列表。
(8)登陆功能:管理员、教师、学生登陆后可以看到不同的功能页面,教师或学生登陆后只能看到自己的相关信息,不同教师、不同学生登陆后无法查看其他人的信息。(要求至少创建两个教师用户、十个学生用户演示选课过程)
Dao
Servlet
package Servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Bean.Classes; import Bean.Login; import Bean.Student; import Bean.Teacher; import Dao.ChooseDao; import Dao.ClassesDao; import Dao.LoginDao; import Dao.StudentDao; import Dao.TeacherDao; /** * Servlet implementation class AddServlet */ @WebServlet("/addServlet") public class AddServlet extends HttpServlet { public AddServlet() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8");//设置从jsp或HTML中请求数据的值,也就是设置为中文,防止乱码 String method=req.getParameter("method");//getParameter()获取的是客户端设置的数据。 if(method.equals("teacher")) { String tname=req.getParameter("name"); String tsex=req.getParameter("sex"); String tnumber=req.getParameter("tnumber"); String tacademy=req.getParameter("tacademy"); String twork=req.getParameter("twork"); Teacher teacher=new Teacher(tname, tnumber, tsex, tacademy, twork); TeacherDao TD=new TeacherDao(); Login lg=new Login(tnumber, teacher.getPassword()); LoginDao lD =new LoginDao(); lD.insert(lg); if(TD.insert(teacher)) { //如果添加成功 req.setAttribute("message", "添加成功"); //这里表示,在req的作用域中设置一个massage变量,变量内容是:添加成功 //然后,当跳转到它下一个界面时,这个作用域里的值可以通过Object message =request.getAttribute("message")拿出来使用 req.getRequestDispatcher("admin.jsp").forward(req, resp); } else { //处理失败 req.setAttribute("message", "添加重复,请重新输入"); req.getRequestDispatcher("addTeacher.jsp").forward(req, resp); } } else if(method.equals("student")) { String sname=req.getParameter("sname"); String ssex=req.getParameter("sex"); String snumber=req.getParameter("snumber"); String sgrade=req.getParameter("sgrade"); String specialities=req.getParameter("specialities"); Student student=new Student(sname, snumber, ssex, sgrade, specialities); StudentDao SD=new StudentDao(); if(SD.insert(student)) { Login lg=new Login(snumber, student.getPassword()); LoginDao lD =new LoginDao(); lD.insert(lg); //如果添加成功 req.setAttribute("message", "添加成功"); //这里表示,在req的作用域中设置一个massage变量,变量内容是:添加成功 //然后,当跳转到它下一个界面时,这个作用域里的值可以通过Object message =request.getAttribute("message")拿出来使用 req.getRequestDispatcher("admin.jsp").forward(req, resp); } else { //处理失败 req.setAttribute("message", "添加重复,请重新输入"); req.getRequestDispatcher("addStudent.jsp").forward(req, resp); } } else if(method.equals("class")) { String cname=req.getParameter("cname"); String cnumber=req.getParameter("cnumber"); String cteacher=req.getParameter("cteacher"); String most=req.getParameter("most"); int a=Integer.parseInt(most); Classes classes=new Classes(cnumber,cname,cteacher,a); ClassesDao cD = new ClassesDao(); if(cD.insert(classes)) { //如果添加成功 req.setAttribute("message", "添加成功"); //这里表示,在req的作用域中设置一个massage变量,变量内容是:添加成功 //然后,当跳转到它下一个界面时,这个作用域里的值可以通过Object message =request.getAttribute("message")拿出来使用 req.getRequestDispatcher("teacher.jsp").forward(req, resp); } else { //处理失败 req.setAttribute("message", "添加重复,请重新输入"); req.getRequestDispatcher("teacherAddClass.jsp").forward(req, resp); } } else if(method.equals("choose")) { String snumber=req.getParameter("snumber"); String sname=req.getParameter("sname"); String cname=req.getParameter("cname"); String cnumber=req.getParameter("cnumber"); String cteacher=req.getParameter("cteacher"); String most=req.getParameter("most"); String have=req.getParameter("have"); int a=Integer.parseInt(most); int b=Integer.parseInt(have); Classes classes=new Classes(cnumber,cname,cteacher,a); ChooseDao chD=new ChooseDao(); if((a>b)&&chD.insert(snumber,sname,classes)) { //如果添加成功 req.setAttribute("message", "添加成功"); //这里表示,在req的作用域中设置一个massage变量,变量内容是:添加成功 //然后,当跳转到它下一个界面时,这个作用域里的值可以通过Object message =request.getAttribute("message")拿出来使用 req.getRequestDispatcher("selectServlet?method=class").forward(req, resp); } else { //处理失败 req.setAttribute("message", "添加重复或所选课容量已满"); req.getRequestDispatcher("selectServlet?method=class").forward(req, resp); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
package Servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Dao.ChooseDao; import Dao.ClassesDao; /** * Servlet implementation class DeleteServlet */ @WebServlet("/deleteServlet") public class DeleteServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method=req.getParameter("method"); if(method.equals("sdclass")) { String cnumber=req.getParameter("cnumber"); String snumber=req.getParameter("snumber"); ChooseDao chD=new ChooseDao(); ClassesDao cD=new ClassesDao(); if(chD.id(snumber, cnumber)) { chD.delete(snumber, cnumber); cD.unchose(cnumber); req.setAttribute("message", "取消选课成功"); req.getRequestDispatcher("selectServlet?method=class").forward(req, resp); } else { req.setAttribute("message", "未选课,取消选课失败"); req.getRequestDispatcher("selectServlet?method=class").forward(req, resp); } } if(method.equals("tdclass")) { String cnumber=req.getParameter("cnumber"); String cname=req.getParameter("cname"); String tname=req.getParameter("tname"); ChooseDao chD=new ChooseDao(); ClassesDao cD=new ClassesDao(); chD.delete( cnumber); cD.delete(cnumber, cname); req.setAttribute("message", "删除课程成功"); req.getRequestDispatcher("updateServlet?method=classlist").forward(req, resp); } if(method.equals("tsclass")) { String cnumber=req.getParameter("cnumber"); String cname=req.getParameter("cname"); String tname=req.getParameter("tname"); ChooseDao chD=new ChooseDao(); ClassesDao cD=new ClassesDao(); chD.delete( cnumber); cD.delete(cnumber, cname); req.setAttribute("message", "删除课程成功"); req.getRequestDispatcher("updateServlet?method=sclasslist").forward(req, resp); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
package Servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Bean.Student; import Bean.Teacher; import Dao.LoginDao; import Dao.StudentDao; import Dao.TeacherDao; /** * Servlet implementation class LoginServlet */ @WebServlet("/loginServlet") public class LoginServlet extends HttpServlet { public LoginServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LoginDao login=new LoginDao(); TeacherDao tD=new TeacherDao(); StudentDao sD=new StudentDao(); String number=request.getParameter("account"); String password=request.getParameter("password"); String account=request.getParameter("account"); if(number.length()==6) { if(login.log(account, password)) { Teacher teacher=null; teacher=tD.log(account, password); request.getSession().setAttribute("teacher", teacher); request.setAttribute("message", "恭喜"+teacher.getTname()+"登陆成功"); request.getRequestDispatcher("teacher.jsp").forward(request, response); } else { request.setAttribute("message", "账号或密码错误"); request.getRequestDispatcher("index.jsp").forward(request, response); } }else if(number.length()==8) { if(login.log(account, password)) { Student student=null; student=sD.log(account, password); request.getSession().setAttribute("student", student); request.setAttribute("message", "恭喜"+student.getSname()+"登陆成功"); request.getRequestDispatcher("student.jsp").forward(request, response); } else { request.setAttribute("message", "账号或密码错误"); request.getRequestDispatcher("index.jsp").forward(request, response); } } else if(number.equals("admin")) { if(password.equals("123456")) { request.setAttribute("message", "登陆成功"); request.getRequestDispatcher("admin.jsp").forward(request, response); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package Servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Bean.ChooseClass; import Bean.Classes; import Bean.Student; import Dao.ChooseDao; import Dao.ClassesDao; import Dao.StudentDao; /** * Servlet implementation class SelectServlet */ @WebServlet("/selectServlet") public class SelectServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ClassesDao cD =new ClassesDao(); ChooseDao chD=new ChooseDao(); StudentDao sD=new StudentDao(); String method=req.getParameter("method"); if(method.equals("class")) { List<Classes> class_list =cD.list(); req.setAttribute("class_list", class_list); req.getRequestDispatcher("studentChoose.jsp").forward(req, resp); } else if(method.equals("teacherSC")) { String tname=req.getParameter("tname"); List<Classes> class_list =cD.list(tname); req.setAttribute("class_list", class_list); req.getRequestDispatcher("teacherSelectClass.jsp").forward(req, resp); } else if(method.equals("SSC")) { String cnumber=req.getParameter("cnumber"); List<ChooseClass> class_list =chD.list(cnumber); req.setAttribute("class_list", class_list); req.getRequestDispatcher("teacherChooseClass.jsp").forward(req, resp); } else if(method.equals("SST")) { String snumber=req.getParameter("snumber"); Student student= sD.select(snumber); req.setAttribute("student", student); req.getRequestDispatcher("showStudent.jsp").forward(req, resp); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package Servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import Bean.Classes; import Bean.Student; import Bean.Teacher; import Dao.ChooseDao; import Dao.ClassesDao; import Dao.LoginDao; import Dao.StudentDao; import Dao.TeacherDao; /** * Servlet implementation class UpdateServlet */ @WebServlet("/updateServlet") public class UpdateServlet extends HttpServlet { private static final long serialVersionUID = 1L; public UpdateServlet() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); String method=req.getParameter("method"); if(method.equals("teacher")) { String tname=req.getParameter("tname"); String tsex=req.getParameter("tsex"); String password=req.getParameter("password"); String tnumber=req.getParameter("tnumber"); String tacademy=req.getParameter("tacademy"); String twork=req.getParameter("twork"); String oldname=req.getParameter("oldname"); Teacher teacher=new Teacher(tname, tnumber,password, tsex, tacademy, twork); TeacherDao TD=new TeacherDao(); ClassesDao cD=new ClassesDao(); LoginDao lD =new LoginDao(); TD.update(teacher); cD.update(tname, oldname); lD.update(tnumber, password); //对数据库进行修改; req.getSession().setAttribute("teacher", teacher); req.setAttribute("message", "修改成功"); req.getRequestDispatcher("teacher.jsp").forward(req,resp); } else if(method.equals("student")) { String sname=req.getParameter("sname"); String snumber=req.getParameter("snumber"); String password=req.getParameter("password"); String ssex=req.getParameter("ssex"); String sgrade=req.getParameter("sgrade"); String specialities=req.getParameter("specialities"); Student student=new Student(sname, snumber, password,ssex,sgrade, specialities); StudentDao sD = new StudentDao(); sD.update(student); //对数据库进行修改; req.setAttribute("message", "修改成功"); req.getSession().setAttribute("student", student); req.getRequestDispatcher("student.jsp").forward(req,resp); } else if(method.equals("classlist")) { ClassesDao cD = new ClassesDao(); //List<Classes> class_list = cD.list((String) req.getSession().getAttribute("teacher.tname")); String tn=req.getParameter("tname"); List<Classes> class_list = cD.list(tn); req.getSession().setAttribute("class_list", class_list); req.getRequestDispatcher("classUpdate.jsp").forward(req,resp); } else if(method.equals("sclasslist")) { ClassesDao cD = new ClassesDao(); //List<Classes> class_list = cD.list((String) req.getSession().getAttribute("teacher.tname")); String tn=req.getParameter("tname"); List<Classes> class_list = cD.list(tn); req.getSession().setAttribute("class_list", class_list); req.getRequestDispatcher("teacherSelectClass.jsp").forward(req,resp); } else if(method.equals("class")) { String cname=req.getParameter("cname"); String cnumber=req.getParameter("cnumber"); String cteacher=req.getParameter("cteacher"); String most=req.getParameter("most"); int a=Integer.parseInt(most); Classes cl =new Classes(cnumber, cname,cteacher,a); ClassesDao cD = new ClassesDao(); cD.update(cl); //对数据库进行修改; req.setAttribute("message", "修改成功"); req.getSession().setAttribute("cl", cl); req.getRequestDispatcher("teacher.jsp").forward(req,resp); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
Bean
package Bean; public class ChooseClass { String snumber; String cnumber; String sname; String cname; String cteacher; String most; String have; public ChooseClass() { } public ChooseClass(String snumber,String sname,String cnumber,String cname,String cteacher,String most,String have) { this.cname=cname; this.sname=sname; this.snumber=snumber; this.cnumber=cnumber; this.cteacher=cteacher; this.most=most; this.have=have; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSnumber() { return snumber; } public void setSnumber(String snumber) { this.snumber = snumber; } public String getCnumber() { return cnumber; } public void setCnumber(String cnumber) { this.cnumber = cnumber; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public String getCteacher() { return cteacher; } public void setCteacher(String cteacher) { this.cteacher = cteacher; } public String getMost() { return most; } public void setMost(String most) { this.most = most; } public String getHave() { return have; } public void setHave(String have) { this.have = have; } }
package Bean; public class Classes { String cnumber; String cname; String cteacher; int most; int have; public Classes(String cnumber,String cname,String cteacher,int most) { this.cnumber=cnumber; this.cname=cname; this.cteacher=cteacher; this.most=most; this.have=0; } public Classes(String cnumber,String cname,String cteacher,int most,int have) { this.cnumber=cnumber; this.cname=cname; this.cteacher=cteacher; this.most=most; this.have=have; } public String getCnumber() { return cnumber; } public void setCnumber(String cnumber) { this.cnumber = cnumber; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public String getCteacher() { return cteacher; } public void setCteacher(String cteacher) { this.cteacher = cteacher; } public int getMost() { return most; } public void setMost(int most) { this.most = most; } public int getHave() { return have; } public void setHave(int have) { this.have = have; } }
package Bean; public class Login { String account; String password; public Login(String account,String password) { this.account=account; this.password=password; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
package Bean; public class Student { String sname; String snumber; String ssex; String sgrade; //班级 String specialities; //专业 String password; public Student(String sname,String snumber,String ssex,String sgrade,String specialities) { this.sname=sname; this.snumber=snumber; this.password=snumber; this.ssex=ssex; this.sgrade=sgrade; this.specialities=specialities; } public Student(String sname,String snumber,String password,String ssex,String sgrade,String specialities) { this.sname=sname; this.snumber=snumber; this.password=password; this.ssex=ssex; this.sgrade=sgrade; this.specialities=specialities; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSnumber() { return snumber; } public void setSnumber(String snumber) { this.snumber = snumber; } public String getSsex() { return ssex; } public void setSsex(String ssex) { this.ssex = ssex; } public String getSgrade() { return sgrade; } public void setSgrade(String sgrade) { this.sgrade = sgrade; } public String getSpecialities() { return specialities; } public void setSpecialities(String specialities) { this.specialities = specialities; } }
package Bean; public class Teacher { String tname; String tnumber; String tsex; String tacademy; String twork; //职称 String password; public Teacher(String tname,String tnumber,String tsex,String tacademy,String twork) { this.tname=tname; this.tacademy=tacademy; this.tnumber=tnumber; this.tsex=tsex; this.twork=twork; this.password=tnumber; } public Teacher(String tname,String tnumber,String password,String tsex,String tacademy,String twork) { this.tname=tname; this.tacademy=tacademy; this.tnumber=tnumber; this.tsex=tsex; this.twork=twork; this.password=password; } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } public String getTnumber() { return tnumber; } public void setTnumber(String tnumber) { this.tnumber = tnumber; } public String getTsex() { return tsex; } public void setTsex(String tsex) { this.tsex = tsex; } public String getTacademy() { return tacademy; } public void setTacademy(String tacademy) { this.tacademy = tacademy; } public String getTwork() { return twork; } public void setTwork(String twork) { this.twork = twork; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
------>
------>
------->
--->
----->
---->
---->
----->
原文:https://www.cnblogs.com/suanai/p/12130145.html