课程设计报告文档格式.docx
《课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
生
信
、
各模块功能:
学生信息管理模块:
管理员用于添加和删除、修改、查询学生信息的模块。
成绩信息管理模块、用于对成绩的增加、删除、查询
3.数据库设计(概要设计...)
:
(1)E-R图
学生
学生学号
学生姓名
课程
选课
所在班级
·
学生院系
学生性别
学分
课程编号
课程名
成绩
(2)关系模式
学生(学生学号,学生姓名,学生性别,所在班级,所在院系)
'
班级(班级号,教师姓名,班级名)
课程(课程号,课程名,学分)
选课(课程号,学生学号,课程名、成绩)
院系(院系号,院系名)
(3)数据库管理系统:
MYSQL
(4)数据库命名
test
(5)数据库表
students
主要用来保存学生信息
字段名
数据类型
长度
是否为空
是否主键
SID
】
Varchar
11
不为空
主键
SNAME
255
是
否
GENTER
SCLASS
%
SCOLLEGEOF
newclass(班级信息表)
主要用来保存学生信息。
主键否
?
描述
NEWCLASSID
班级编号
NEWCLASSNAME
班级名称
courses(课程信息表)
用来储存教师的基本信息
:
COURSEID
*
COURDENAME
课程名字
collegeof(院系信息表)
,
COLLEGEOFID
院系编号
"
COLLEGEOFNAME
院系名称
selectcollege(学生成绩表)
\
用于存储学生成绩
SELECTID
SELECTCOURSENAME
SELECTSID
SELECTCOURSEID
}
SELECTSCORE
(8)数据库账户及权限(截图)
学生信息表
班级表
院系表:
$
(9)数据库存储过程:
本次实验采用的为Struts2+hibernate+mysql的方式开发
储存采用的是hibernate框架
主要代码:
见附加文档
四、系统实现技术小结
为了方便管理,将数据库的封装分成两部分,数据库资源配置文件和封装数据库操作的类:
Hibernate框架配置文件version='
encoding='
UTF-8'
>
<
!
DOCTYPEhibernate-configurationPUBLIC
"
--->
hibernate-configuration>
<
session-factory>
propertyname="
dialect"
123456<
/property>
root<
jdbc:
<
thread<
[
show_sql"
true<
format_sql"
update<
mappingresource="
entity/"
/>
/session-factory>
/hibernate-configuration>
Struts2框架配置文件:
xmlversion="
encoding="
UTF-8"
DOCTYPEstrutsPUBLIC
-1}Action"
method="
{2}"
》
resultname="
select_add_success"
/selects/<
/result>
select_query_success"
select_delete_success"
/action>
/package>
packagename="
students"
namespace="
/students"
extends="
default"
actionname="
*_*"
class="
action.{1}Action"
query_allstudents_success"
/students/<
students_add_success"
students_queryone_success"
delete_students_success"
/struts>
Hibernate工具类:
HibernateUtil。
Java
-
packagedb;
importclassHibernateUtil{
privatestaticSessionFactorysessionFactory;
privateHibernateUtil(){
}
publicstaticSessionFactorygetSessionFactory(){
]
if(sessionFactory==null){
Configurationconfig=newConfiguration().configure();
ServiceRegistryserviceRegistry=newServiceRegistryBuilder().applySettings()).buildServiceRegistry();
sessionFactory=(serviceRegistry);
returnsessionFactory;
}else{
。
}
具体的实现类详见附加文件
五、课程设计体会
该系统主要实现了学生信息以及成绩信息的修改的功能,这个系统是我独立完成,从需求分析,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();
(
*创建课程实体类
*设置属性课程号、课程名、学分
*其中课程号作为一个主键
…
publicclassCourses{
privateStringcourseid;
privateStringcoursename;
privateStringcoursescore;
publicStringgetCourseid(){
returncourseid;
publicvoidsetCourseid(Stringcourseid){
=courseid;
publicStringgetCoursename(){
returncoursename;
publicvoidsetCoursename(Stringcoursename){
=coursename;
publicStringgetCoursescore(){
returncoursescore;
publicvoidsetCoursescore(Stringcoursescore){
=coursescore;
publicCourses(){
publicCourses(Stringcourseid,Stringcoursename,Stringcoursescore){
*创建班级实体类
*设置属性班级号、班级名称
*其中将班级号设置为主键
publicclassNewClass{
privateStringnewclassid;
privateStringnewclassname;
publicStringgetNewclassid(){
returnnewclassid;
^
publicvoidsetNewclassid(Stringnewclassid){
=newclassid;
publicStringgetNewclassname(){
returnnewclassname;
publicvoidsetNewclassname(Stringnewclassname){
=newclassname;
publicNewClass(){
publicNewClass(Stringnewclassid,Stringnewclassname){
*创建选课的实体类
*设置的属性有选课号、课程号、学号、成绩、
*其中选课号作为主键,课程号作为外键与课程号相关联,学号作为外键与学号相关联
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();
|
*创建学生实体类的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){
!
五个接口类
packageservice;
import;
publicinterfacecollegeofDAO{
publicList<
CollegeOf>
queryCollegeOf();
*course接口
publicinterfacecourseDAO{
Courses>
queryCourse();
publicStringqueryCourseid(Stringcoursename);
publicinterfacesclassDAO{
NewClass>
queryNewClass();
*实现选课的逻辑业务接口
*实现查询、增加、删除的功能
publicinterfaceSelectCourseDAO{
//实现查询
publicSelectCoursequerySelectById(Stringselectsid,Stringselectcourseid);
//实现删除
publicbooleandeleteSelect(Stringselectsid,Stringselectcoursename);
//实现增加
publicbooleanaddSelect(SelectCoursesc);
publicStringgetNewSid();
SelectCourse>
queryall();
publicbooleandeleteSelect(Stringselectsid,