课程设计报告.docx
- 文档编号:27875276
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:21
- 大小:96.63KB
课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
课程设计报告
课程设计报告
一、课程设计任务
完成学生选课管理系统的开发
二、需求描述
本系统是一个WEB版的小型的学生成绩管理系统,在本系统中,开发了一个面向管理员平台,对管理员提供的服务有增加学生、删除学生和修改学生、查询学生的服务,还有对成绩、增加、删除、查询的管理。
三、系统总体设计
1.系统架构设计
(1)架构:
单机
(2)运行软件环境:
windows10、、Apache、eclipseee
(3)开发环境:
硬件平台:
CPU:
内存:
4gb以上
软件平台:
windows10、
操作系统:
Windows10
数据库:
开发工具:
Eclipseee
2.功能模块设计
各模块功能:
学生信息管理模块:
管理员用于添加和删除、修改、查询学生信息的模块。
成绩信息管理模块、用于对成绩的增加、删除、查询
3.数据库设计(概要设计...)
(1)E-R图
(2)关系模式
学生(学生学号,学生姓名,学生性别,所在班级,所在院系)
班级(班级号,教师姓名,班级名)
课程(课程号,课程名,学分)
选课(课程号,学生学号,课程名、成绩)
院系(院系号,院系名)
(3)数据库管理系统:
MYSQL
(4)数据库命名
test
(5)数据库表
students
主要用来保存学生信息
字段名
数据类型
长度
是否为空
是否主键
SID
Varchar
11
不为空
主键
SNAME
Varchar
255
是
否
GENTER
Varchar
255
是
否
SCLASS
Varchar
255
是
否
SCOLLEGEOF
Varchar
255
是
否
newclass(班级信息表)
主要用来保存学生信息。
字段名
数据类型
长度
主键否
是否为空
描述
NEWCLASSID
Varchar
255
主键
不为空
班级编号
NEWCLASSNAME
Varchar
255
否
是
班级名称
courses(课程信息表)
用来储存教师的基本信息
字段名
数据类型
长度
主键否
是否为空
描述
COURSEID
Varchar
255
主键
不为空
课程编号
COURDENAME
Varchar
255
否
是
课程名字
collegeof(院系信息表)
字段名
数据类型
长度
主键否
是否为空
描述
COLLEGEOFID
Varchar
255
主键
不为空
院系编号
COLLEGEOFNAME
Varchar
255
否
是
院系名称
selectcollege(学生成绩表)
用于存储学生成绩
字段名
数据类型
长度
是否为空
是否主键
SELECTID
Varchar
255
是
否
SELECTCOURSENAME
Varchar
255
不为空
否
SELECTSID
Varchar
255
是
主键
SELECTCOURSEID
Varchar
255
不为空
主键
SELECTSCORE
Varchar
255
是
否
(8)数据库账户及权限(截图)
学生信息表
班级表
院系表:
(9)数据库存储过程:
本次实验采用的为Struts2+hibernate+mysql的方式开发
储存采用的是hibernate框架
主要代码:
见附加文档
四、系统实现技术小结
为了方便管理,将数据库的封装分成两部分,数据库资源配置文件和封装数据库操作的类:
Hibernate框架配置文件version=''encoding='UTF-8'>
DOCTYPEhibernate-configurationPUBLIC
"--->
Struts2框架配置文件:
DOCTYPEstrutsPUBLIC
"-1}Action"method="{2}">
Hibernate工具类:
HibernateUtil。
Java
packagedb;
importclassHibernateUtil{
privatestaticSessionFactorysessionFactory;
privateHibernateUtil(){
}
publicstaticSessionFactorygetSessionFactory(){
if(sessionFactory==null){
Configurationconfig=newConfiguration().configure();
ServiceRegistryserviceRegistry=newServiceRegistryBuilder().applySettings()).buildServiceRegistry();
sessionFactory=(serviceRegistry);
returnsessionFactory;
}else{
returnsessionFactory;
}
}
}
具体的实现类详见附加文件
五、课程设计体会
该系统主要实现了学生信息以及成绩信息的修改的功能,这个系统是我独立完成,从需求分析,web界面,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的Java的框架了更深刻的了解。
比如Hibernate,对于它的用法我在网上找了很多资料,Hibernate的配置有很多规则,每一个属性都要对应一个字段、并且是具体确定到具体的类,对于struts2,关于action的配置以及动态action的配置,还有如何接受前台的内容,如何从后台获取内容,如何将前台的jsp页面与后台的action联系起来,还有再编写前端代码时,因为时间问题所以没有对前端进行美化,只是将应用的功能添加进去,在这其中,因为没有学过,所以每一次的前后台的交互都需要一番功夫,不过从其中学习到了很多。
对于数据库,我尽量将对数据库的操作放在存储过程中,这样的抽象和封装使得源程序代码更加容易理解,而且在web应用系统中也可以避免发生不安全的状况,我想这是一个好的程序员应当要养成的习惯,我对于五个表分别创建了五个接口collegeofDAO、courseDAO、sclassDAO、SelectCourseDAO、StudentsDAO。
之后再分别用五个实现类来实现五个接口,将它们的条理逻辑清晰化。
在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高,以前虽然也知道这些道理,但自己真正实施起来却感到无从下手,比如前面的数据库操作和数据库资源配置文件,就是我从书中看来的,这样做的好处是,在程序中操作数据库的时候避免了使用很多try和catch语句,是代码更加简洁,更容易理解,此外需要连接不同的数据库时只要修改数据库的资源配置文件就可以了。
=后我会尝试用jsp来做这个系统。
六、系统主要源程序清单
五个实体类
packageentity;
/*
*创建院系实体类
*设置的属性有院系号、院系名、其中院系号作为主键
*/
publicclassCollegeOf{
privateStringcollegeofid;
privateStringcollegeofname;
publicStringgetCollegeofid(){
returncollegeofid;
}
publicvoidsetCollegeofid(Stringcollegeofid){
=collegeofid;
}
publicStringgetCollegeofname(){
returncollegeofname;
}
publicvoidsetCollegeofname(Stringcollegeofname){
=collegeofname;
}
publicCollegeOf(){
}
publicCollegeOf(Stringcollegeofid,Stringcollegeofname){
//super();
=collegeofid;
=collegeofname;
}
}
packageentity;
/*
*创建课程实体类
*设置属性课程号、课程名、学分
*其中课程号作为一个主键
*/
publicclassCourses{
privateStringcourseid;
privateStringcoursename;
privateStringcoursescore;
publicStringgetCourseid(){
returncourseid;
}
publicvoidsetCourseid(Stringcourseid){
=courseid;
}
publicStringgetCoursename(){
returncoursename;
}
publicvoidsetCoursename(Stringcoursename){
=coursename;
}
publicStringgetCoursescore(){
returncoursescore;
}
publicvoidsetCoursescore(Stringcoursescore){
=coursescore;
}
publicCourses(){
}
publicCourses(Stringcourseid,Stringcoursename,Stringcoursescore){
//super();
=courseid;
=coursename;
=coursescore;
}
}
packageentity;
/*
*创建班级实体类
*设置属性班级号、班级名称
*其中将班级号设置为主键
*/
publicclassNewClass{
privateStringnewclassid;
privateStringnewclassname;
publicStringgetNewclassid(){
returnnewclassid;
}
publicvoidsetNewclassid(Stringnewclassid){
=newclassid;
}
publicStringgetNewclassname(){
returnnewclassname;
}
publicvoidsetNewclassname(Stringnewclassname){
=newclassname;
}
publicNewClass(){
}
publicNewClass(Stringnewclassid,Stringnewclassname){
//super();
=newclassid;
=newclassname;
}
}
packageentity;
/*
*创建选课的实体类
*设置的属性有选课号、课程号、学号、成绩、
*其中选课号作为主键,课程号作为外键与课程号相关联,学号作为外键与学号相关联
*/
publicclassSelectCourse{
privateStringselectid;
privateStringselectcourseid;
privateStringselectcoursename;
privateStringselectsid;
privateStringselectscore;
publicStringgetSelectid(){
returnselectid;
}
publicvoidsetSelectid(Stringselectid){
=selectid;
}
publicStringgetSelectcourseid(){
returnselectcourseid;
}
publicvoidsetSelectcourseid(Stringselectcourseid){
=selectcourseid;
}
publicStringgetSelectsid(){
returnselectsid;
}
publicvoidsetSelectsid(Stringselectsid){
=selectsid;
}
publicStringgetSelectscore(){
returnselectscore;
}
publicvoidsetSelectscore(Stringselectscore){
=selectscore;
}
publicSelectCourse(){
}
publicStringgetSelectcoursename(){
returnselectcoursename;
}
publicvoidsetSelectcoursename(Stringselectcoursename){
=selectcoursename;
}
publicSelectCourse(Stringselectid,Stringselectcourseid,Stringselectcoursename,Stringselectsid,
Stringselectscore){
super();
=selectid;
=selectcourseid;
=selectcoursename;
=selectsid;
=selectscore;
}
}
packageentity;
/*
*创建学生实体类的javabean
*分别有学号、姓名、性别、班级、院系
*/
publicclassStudents{
privateStringsid;
privateStringsname;
privateStringgenter;
privateStringsclass;
privateStringscollegeof;
publicStringgetSid(){
returnsid;
}
publicvoidsetSid(Stringsid){
=sid;
}
publicStringgetSname(){
returnsname;
}
publicvoidsetSname(Stringsname){
=sname;
}
publicStringgetGenter(){
returngenter;
}
publicvoidsetGenter(Stringgenter){
=genter;
}
publicStringgetSclass(){
returnsclass;
}
publicvoidsetSclass(Stringsclass){
=sclass;
}
publicStringgetScollegeof(){
returnscollegeof;
}
publicvoidsetScollegeof(Stringscollegeof){
=scollegeof;
}
publicStudents(){
}
publicStudents(Stringsid,Stringsname,Stringgenter,Stringsclass,Stringscollegeof){
//super();
=sid;
=sname;
=genter;
=sclass;
=scollegeof;
}
}
五个接口类
packageservice;
import;
publicinterfacecollegeofDAO{
publicList
}
packageservice;
/*
*course接口
*/
import;
publicinterfacecourseDAO{
publicList
publicStringqueryCourseid(Stringcoursename);
}
packageservice;
import;
publicinterfacesclassDAO{
publicList
}
packageservice;
import;
/*
*实现选课的逻辑业务接口
*实现查询、增加、删除的功能
*/
publicinterfaceSelectCourseDAO{
//实现查询
publicSelectCoursequerySelectById(Stringselectsid,Stringselectcourseid);
//实现删除
publicbooleandeleteSelect(Stringselectsid,Stringselectcoursename);
//实现增加
publicbooleanaddSelect(SelectCoursesc);
publicStringgetNewSid();
publicList
}
packageservice;
import;
/*
*实现选课的逻辑业务接口
*实现查询、增加、删除的功能
*/
publicinterfaceSelectCourseDAO{
//实现查询
publicSelectCoursequerySelectById(Stringselectsid,Stringselectcourseid);
//实现删除
publicbooleandeleteSelect(Stringselectsid,Stringselectcoursename);
//实现增加
publicbooleanaddSelect(SelectCoursesc);
publicStringgetNewSid();
publicList
}
还有后续代码,为了考虑篇幅就不贴上去了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告