软件工程专业学生选课系统设计.docx
《软件工程专业学生选课系统设计.docx》由会员分享,可在线阅读,更多相关《软件工程专业学生选课系统设计.docx(23页珍藏版)》请在冰豆网上搜索。
软件工程专业学生选课系统设计
学生选课系统实验报告
工程名称:
学生选课系统
姓名:
学号:
班级:
指导老师:
一.课程设计的目的与要求
通过软件开发的实战训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计和综合分析,解决问题的能力。
具体如下:
学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
1.学习使用MyEclipse开发工具的使用。
2.进一步加强和提高软件工程文档的编写能力;
3.培养协作能力和团队精神。
一.设计正文
1.概述
课程题目:
学生选课系统
系统的主要目标:
本系统的目标是实现选课系统需所需的各种根本功能,包括学生选课,教师查看选修的课程,提交课程成绩功能以及管理添加学生,维护学生的信息,成绩管理,添加教师,维护教师的信息。
维护选修课程,查看学生的信息,查看教师的信息,查看课程的信息。
更新学生,老师,和课程的信息。
包括增加修改删除查找。
系统的开发环境及运行环境
操作系统:
windows
建模工具
数据库系统:
sqlserver2005
开发工具:
WEB效劳器:
Tomcat
2.系统的需求分析
学生选课系统的主要满足来自三个方面的需求,这三个方面分别是学生用户,教师用户和管理员用户,也即是三类用户角色。
(1〕学生用户是主要的需求者,主要的需求功能是查询可选课程,查看自己的选课情况及进行选课。
(2〕教师用户主要需求功能是查看自己所教授的课程,课程有哪些学生选修,以及利用本系统提交学生的成绩
(3〕管理员用户的功能需求较为复杂,包括对学生的信息,教师的信息,课程的信息进行管理。
在学生信息管理子模块中实现对学生的信息的添加,修改,删除操作。
还可以输入查询条件进行查询操作。
在教室管理模块中实
现对教师信息的添加,修改删除,查询操作。
在课程管理的子模块中实现对课程的添加,修改,删除操作,查询操作。
本系统将管理员用户,教师用户,学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看,维护系统中的所有信息,如添加学生,添加课程,修改课程的信息等;让教师拥有查看自己开设的课程的信息,以及提交所开设课程的成绩的权限;让学生拥有选课的权限。
系统用例图
3.系统的总体设计
二.管理员模块:
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.输入相应科目成绩
4.查询自身信息
四.系统的数据字典:
教师号T-teacher
字段名
字段类型
字段长度
是否为空
是否为主键
描述
tno
varcher
10
是
教师号
teacher
varcher
10
是
密码
pessword
tname
varcher
10
是
姓名
tsex
varcher
5
是
性别
dno
varcher
10
否
系别
cnumber
varcher
10
否
所带课程号
课程表t-course
字段名
字段类型
字段长度
是否为空
是否为主键
描述
cname
varcher
10
否
课程名
cno
varcher
10
是
课程号
csore
double
否
课程的学分
dno
varcher
10
否
课程的系别
成绩表t-score
字段名
字段类型
字段长度
是否为空
是否为主键
描述
cno
varcher
10
否
课程号
son
varcher
10
否
学号
score
varcher
10
是
成绩
学生表t-student
字段名
字段类型
字段长度
是否为空
是否为主键
描述
sno
varcher
10
是
学号
sname
varcher
10
否
姓名
ssex
varcher
5
否
性别
dno
varcher
10
否
系别
sage
int
否
年龄
spassword
varcher
10
否
密码
管理员t-manager
字段名
字段类型
字段长度
是否为空
是否为主键
描述
manager
varcher
10
是
账号
managerpassworvarcher
10
否
密码
d
系表
字段名
字段类型
字段长度
是否为空
是否为主键
描述
dno
varcher
10
是
系号
dname
varcher
10
否
系名
五.程序的局部代码:
1.管理员底层代码:
package;
importinterfaceManagerDao{
生模块底层代码:
package;
importinterfaceStudentDao{
师模块底层代码:
package;
importinterfaceTeacherDao{
界面的servlet代码如下:
package;
importclassmainextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
("utf-8");
("text/html;charset=utf-8");
PrintWriterout=();
Stringusername=("username");
Stringpassword=("password");
Stringyonghu=("yonghu");
if("student")){
("/studentcaozuo").forward(req,resp);
}elseif("teacher")){
("/teachercaozuo").forward(req,resp);
}elseif("manager")){
("/managercaozuo").forward(req,resp);
}
}
@Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
(req,resp);
}
}
6.管理员界面的代码:
package;
importclassmanagercaozuoextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
publicvoiddoGet(HttpServletRequestrequest,
response)
HttpServletResponse
throwsServletException,IOException{
(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponse
response)
throwsServletException,IOException{
PrintWriterout=();
Stringusername=("username");
Stringpassword=("password");
managerm=newmanager(username,password);
ManagerDaoimplmipml=newManagerDaoimpl();
if(m)){
("").forward(request,response);
}else{
("/managerdengluerror").forward(request,response);
}
(username);
(password);
}
}
7.学生模块界面的代码:
package;
importclassstudentcaozuoextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
public
void
doGet(HttpServletRequest
request,
HttpServletResponse
response)
throwsServletException,IOException{
(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponse
response)
throwsServletException,IOException{
PrintWriterout=();
Stringsno=("username");
Stringspassword=("password");
StudentDaoimplsimpl=newStudentDaoimpl();
Stringsname=(sno);
HttpSessionsessionsno=();
HttpSessionsessionsname=();
("sno",sno);
("sname",sname);
if(sno,spassword)){
("student/").forward(request,response);
}else{
("/managerdengluerror").forward(request,response);
}
(sno);
(spassword);
}
}
8.老师界面的servlet代码:
package;
importclassteachercaozuoextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
public
void
doGet(HttpServletRequest
request,
HttpServletResponse
response)
throwsServletException,IOException{
(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponse
response)
throwsServletException,IOException{
PrintWriterout=();
Stringtno=("username");
Stringtpassword=("password");
TeacherDaoimpltimpl=newTeacherDaoimpl();
Stringtname=(tno);
if(tno,tpassword)){
("teacher/tname="+tname+"").forward(request,response);
}else{
("/managerdengluerror").forward(request,response);
}
(tno);
(tpassword);
();
();
}
}
六.数据库设计的代码:
师操作界面的局部截图:
3.管理员操作界面的局部截图:
七.总结:
熟练掌握了学生选课的相关业务逻辑,并且能够熟练掌握关于SSH的相关增删改查的操作。