1、 学生选课系统实验报告 项目名称:学生选课系统 姓名:学号:班级:指引教师:一 课程设计目与规定通过软件开发实战训练,进一步掌握软件工程办法和技术,提高软件开发实际能力,培养工程设计和综合分析,解决问题能力。详细如下:学习和实践在分析和设计计算机应用系统所需要知识,涉及面向对象系统分析与设计,编码和测试方面知识;1. 学习使用MyEclipse开发工具使用。2. 进一步加强和提高软件工程文档编写能力;3. 培养协作能力和团队精神。一 设计正文1. 概述1.1 课程题目:学生选课系统1.2系统重要目的: 本系统目的是实现选课系统需所需各种基本功能,涉及学生选课,教师查看选修课程,提交课程成绩功能
2、以及管理添加学生,维护学生信息,成绩管理,添加教师,维护教师信息。维护选修课程,查看学生信息,查看教师信息,查看课程信息。更新学生,教师,和课程信息。涉及增长修改删除查找。 1.3 系统开发环境及运营环境 操作系统:windows 建模工具 数据库系统:sqlserver 开发工具:MyEclipse8.6 WEB服务器:Tomcat2. 系统需求分析学生选课系统重要满足来自三个方面需求,这三个方面分别是学生顾客,教师顾客和管理员顾客,也即是三类顾客角色。(1) 学生顾客是重要需求者,重要需求功能是查询可选课程,查看自己选课状况及进行选课。(2) 教师顾客重要需求功能是查看自己所专家课程,课程
3、有哪些学生选修,以及运用本系统提交学生成绩(3) 管理员顾客功能需求较为复杂,涉及对学生信息,教师信息,课程信息进行管理。在学生信息管理子模块中实现对学生信息添加,修改,删除操作。还可以输入查询条件进行查询操作。在教室管理模块中实现对教师信息添加,修改删除,查询操作。在课程管理子模块中实现对课程添加,修改,删除操作,查询操作。 本系统将管理员顾客,教师顾客,学生顾客身份及权限进行严格划分,让管理员拥有最高权限,可以查看,维护系统中所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设课程信息,以及提交所开设课程成绩权限;让学生拥有选课权限。 2.1 系统用例图 3. 系统总体设
4、计 二 管理员模块:1.对教师操作:1)增长教师2)依照教师号码修改教师信息3)依照教师号码删除教师信息4)依照教师号码查询教师信息5)查询所有教师信息2.对学生操作1)增长学生2)依照学号修改学生信息3)依照学号删除学生信息4)依照学号查询学生信息5)查询所有学生信息3.对课程操作1)增长课程2)依照课程号修改课程信息3)依照课程号删除课程信息4依照课程号查询课程信息5)查询所有课程二学生模块1.登录系统2.选课(只能选修学分不大于等于8分课程)3.查询所有已选课4.退可操作5.查询自身信息6.查询所有所选课程成绩7.退出系统三教师模块1.登录系统2.查询所有已选自带课程学生信息3.输入相应
5、科目成绩4.查询自身信息四系统数据字典:教师号T-teacher字段名字段类型字段长度与否为空与否为主键描述tnovarcher10是教师号teacher pesswordvarcher10是密码tnamevarcher10是姓名tsexvarcher5是性别dnovarcher10否系别cnumbervarcher10否所带课程号课程表t-course字段名字段类型字段长度与否为空与否为主键描述cnamevarcher10否课程名cnovarcher10是课程号csoredouble否课程学分dnovarcher10否课程系别成绩表t-score字段名字段类型字段长度与否为空与否为主键描述c
6、novarcher10否课程号sonvarcher10否学号scorevarcher10是成绩学生表t-student字段名字段类型字段长度与否为空与否为主键描述snovarcher10是学号snamevarcher10否姓名ssexvarcher5否性别dnovarcher10否系别sageint否年龄spasswordvarcher10否密码管理员t-manager字段名字段类型字段长度与否为空与否为主键描述managervarcher10是账号managerpasswordvarcher10否密码系表字段名字段类型字段长度与否为空与否为主键描述dnovarcher10是系号dnameva
7、rcher10否系名五.程序某些代码:1管理员底层代码: package xiangmu.dao;import java.util.List;import xiangmu.po.course;import xiangmu.po.manager;import xiangmu.po.student;import xiangmu.po.teacher;public interface ManagerDao /管理员登录public boolean inToSystem(manager m); /增长学生public boolean addStudentforManager(student s);/依
8、照学生学号修改学生信息public boolean updateStudentforManager(String sno,student s);/依照学号删除学生所有信息public boolean deleteStudentforManager(String sno);/依照学号查询学生信息public student selectStudentforManager(String sno);/查询所有学生信息public List selectAllStudent();/增长教师public boolean addTeacherforManager(teacher t);/依照教师号修改教师
9、信息public boolean updateTeacherforManager(String tno,teacher t);/依照教师号删除教师信息public boolean deleteTeacherforManager(String tno);/依照教师号查询教师信息public teacher selectTeacherforManager(String tno);/查询所有教师信息public List selectAllTeacher();/增长课程public boolean addCourseforManager(course c);/依照课程号修改课程信息public bo
10、olean updateCourseforManager(String cno,course c);/依照课程号删除课程信息public boolean deleteCourseforManager(String cno);/依照课程号查询课程信息public course selectCourseforManager(String cno);/查询所有课程信息public List selectAllCourse();/退出系统public void backSystem();2.学生模块底层代码:package xiangmu.dao;import java.util.List;impor
11、t xiangmu.po.StuChengJi;import xiangmu.po.course;import xiangmu.po.score;import xiangmu.po.student;public interface StudentDao /登录系统public boolean inToSystembyStudent(String sno,String spassword);/选课public boolean xunKebyStudent(String sno,String cno);/查询所有已选课程public List xunAllKeChengbyStudent(Stri
12、ng sno);/查询自身信息public student xunStudent(String sno);/查询所选课程成绩public List xunChengJibyStudent(String sno,score s);/退课public boolean deleteCoursebyStudent(String sno,course c);/退出系统public void backSystembyStudent();3.教师模块底层代码:package xiangmu.dao;import java.util.List;import xiangmu.po.student;import
13、xiangmu.po.teacher;public interface TeacherDao /登录系统public boolean inToSystembyTeacher(String tno,String tpassword);/查询所有自身所带课程所有学生信息public List xunAllStudentbyStudent(String tno);/输入成绩(在上一步成果上,输入成绩)public boolean chengjibyTeacher(String sno,String sscore,String cno);/查询自身信息public teacher xunTeacher
14、byTeacher(String tno);/退出系统5.主界面servlet代码如下:package xiangmu.gongneng;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public cla
15、ss main extends HttpServletprivate static final long serialVersionUID = 1L;Overrideprotected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException req.setCharacterEncoding(utf-8);resp.setContentType(text/html;charset=utf-8);PrintWriter out = resp.getWriter();
16、String username = req.getParameter(username);String password = req.getParameter(password);String yonghu = req.getParameter(yonghu);if(yonghu.equals(student)req.getRequestDispatcher(/studentcaozuo).forward(req,resp);else if(yonghu.equals(teacher)req.getRequestDispatcher(/teachercaozuo).forward(req,re
17、sp);else if(yonghu.equals(manager)req.getRequestDispatcher(/managercaozuo).forward(req,resp);Overrideprotected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException this.doGet(req,resp);6 管理员界面代码: package xiangmu.gongneng;import java.io.IOException;import ja
18、va.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import xiangmu.daoimpl.ManagerDaoimpl;import xiangmu.po.manager;public class managercaozuo extends HttpServlet priv
19、ate static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException this.doPost(request,response);public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException Print
20、Writer out = response.getWriter(); String username = request.getParameter(username); String password = request.getParameter(password); manager m = new manager(username,password); ManagerDaoimpl mipml = new ManagerDaoimpl(); if(mipml.inToSystem(m) request.getRequestDispatcher(managergongneng.jsp).for
21、ward(request,response); else request.getRequestDispatcher(/managerdengluerror).forward(request,response); out.println(username); out.println(password);7.学生模块界面代码: package xiangmu.gongneng;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet
22、.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import xiangmu.daoimpl.StudentDaoimpl;public class studentcaozuo extends HttpServlet private static final long serialVersionUID = 1L;public void doGet(Ht
23、tpServletRequest request,HttpServletResponse response)throws ServletException,IOException this.doPost(request,response);public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException PrintWriter out = response.getWriter(); String sno = request.getParam
24、eter(username); String spassword = request.getParameter(password); StudentDaoimpl simpl = new StudentDaoimpl(); String sname = simpl.chaSnameforSno(sno); HttpSession sessionsno = request.getSession(); HttpSession sessionsname = request.getSession(); sessionsno.setAttribute(sno,sno); sessionsname.set
25、Attribute(sname,sname); if(simpl.inToSystembyStudent(sno,spassword) request.getRequestDispatcher(student/studentgongneng.jsp).forward(request,response); else request.getRequestDispatcher(/managerdengluerror).forward(request,response); out.println(sno); out.println(spassword);8.教师界面servlet代码:package
26、xiangmu.gongneng;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import xiangmu.daoimpl.TeacherDaoimpl;public class teachercaoz
27、uo extends HttpServlet private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException this.doPost(request,response);public void doPost(HttpServletRequest request,HttpServletResponse response)throws Servlet
28、Exception,IOException PrintWriter out = response.getWriter(); String tno = request.getParameter(username); String tpassword = request.getParameter(password); TeacherDaoimpl timpl = new TeacherDaoimpl(); String tname = timpl.chaTnameforTno(tno); if(timpl.inToSystembyTeacher(tno,tpassword) request.get
29、RequestDispatcher(teacher/teachergongneng.jsp?tname=+tname+).forward(request,response); else request.getRequestDispatcher(/managerdengluerror).forward(request,response); out.println(tno); out.println(tpassword); out.flush(); out.close(); 六 数据库设计代码: /创立课程表create table t_course(cno varchar(10) primary
30、 key ,cname varchar(10) ,cscore varchar(5) ,dno varchar(10) foreign KEY (dno) REFERENCES t_dept(dno)/创立系表create table t_dept(dno varchar(10) primary key,dname varchar(10)/创立学生表create table t_student(sno varchar(10) primary key,spassword varchar(10),sname varchar(10),ssex varchar(5),sage int ,dno var
31、char(10) foreign KEY (dno) REFERENCES t_dept(dno),)/创立教师表create table t_teacher(tno varchar(10) primary key,tpassword varchar(10) ,tname varchar(10),tsex varchar(5) ,dno varchar(10) foreign KEY(dno) REFERENCES t_dept(dno),cno varchar(10) foreign KEY(cno) REFERENCES t_course(cno)/创立成绩表create table t_
32、score(cno varchar(10) foreign KEY(cno) REFERENCES t_course(cno),sno varchar(10) foreign KEY(sno) REFERENCES t_student(sno),sscore varchar(5),primary KEY(sno,cno)/创立管理员表create table t_manager(managerid varchar(10) primary KEY,managerpassword varchar(10) )七 程序某些界面:1学生界面:2.教师操作界面某些截图: 3.管理员操作界面某些截图: 八 总结:纯熟掌握了学生选课有关业务逻辑,并且可以纯熟掌握关于SSH有关增删改查操作。