实训系列指导书之
Spring框架程序设计课程实训指导书
适用专业:计算机应用技术专业
计算机网络技术专业
应用技术学院
应用技术教研室 编写
目 录
1
第一部分 实训安排
1
一、实训目的
1
二、时间安排
1
三、考核标准
2
四、实训要求
3
第二部分 实训内容
3
项目一:银行账户管理系统
3
1.项目来源及背景
3
2.系统需求分析
3
2.1 需求描述
3
2.2 系统用况图
4
2.3 系统概念模型
5
3.系统总体设计
5
3.1 系统总体功能结构
6
4.系统详细设计
6
4.1 系统数据设计
6
4.2 目录和包结构设计
8
4.3 系统流程设计
8
5.系统实现预览
8
5.1用户登录
9
5.2用户注册
10
5.3注册成功
10
5.4系统主页面
11
5.5存款页面
12
5.6取款页面
12
5.7交易信息查看页面
12
5.8个人信息查看页面
13
5.9个人信息查看页面
13
5.10退出系统页面
13
5.11注销用户页面
15
项目二:在线选课系统
15
1.项目需求
15
1.1系统概述
15
1.2系统角色定义
15
1.3系统主用例图
16
2.功能描述
16
2.1登录
16
2.2学生选课模块
17
2.3 学生选课结果浏览模块
17
2.4 教师查看所有课程选择结果模块
17
2.5 教师添加课程模块
18
3.数据描述
18
3.1 数据库表间关系
19
3.2 数据库基本结构
19
3.3 数据说明
20
4.系统原型
20
4.1登录
20
4.2学生选择课程
21
4.3选课结果一览
22
4.4 教师浏览课程选择结果
22
4.5 教师浏览课程选择结果
23
项目三:新闻中心管理系统
23
1.项目来源及背景
23
2.系统需求分析
23
2.1 需求描述
23
2.2 系统用况图
24
2.3 系统概念模型
25
3.系统总体设计
25
3.1 系统总体功能结构
25
3.2 功能描述
26
4.系统详细设计
26
4.1 系统数据设计
27
4.2 目录和包结构设计
27
4.3 系统流程设计
28
5.系统实现预览
28
5.1 前台
29
5.2 后台
31
项目四:网上书店
31
1.项目来源及背景
31
2.系统需求分析
31
2.1 需求描述
31
2.2 系统用况图
32
2.3 系统概念模型
32
3.系统总体设计
32
3.1 系统总体功能结构
33
3.2 功能描述
33
4.系统详细设计
33
4.1 系统数据设计
35
4.2 目录和包结构设计
36
4.3 系统流程设计
37
5.系统实现预览
42
第三部分 实训报告构成
第一部分 实训安排
一、实训目的
Spring框架程序设计课程实训是计算机应用技术专业和网络技术专业培养计划中的重要的实践教学环节。旨在通过完成一个项目的开发,进一步巩固前续课程如软件文档编写、软件工程、数据库技术基础等课程所学的知识,加深学生对Spring框架的理解,尤其是对Spring和Hibernate框架整合的理解,使学生进一步掌握环境构建、代码编写、文档阅读与理解、文档编写、软件测试、发行与部署等技能,进一步提高学生的学习能力、理解能力、表达能力、沟通能力及分工协作能力。
二、时间安排
按学期教学计划本次实训时间为3周,具体时间安排如表1所示。
表1 JSP程序设计课程实训时间安排
周 次
星 期
内 容
备 注
第18周
周一
动员大会
题目简介
小组选题、分工
周二
模块编码
周三
模块编码
周四
模块编码
周五
模块编码
教师考核
第19周
周一
模块编码
周二
模块编码
周三
模块编码
周四
模块编码
周五
模块编码
教师考核
第20周
周一
整合各编码模块
周二
整合各编码模块
周三
进行系统测试
程序的打包和发布
整理文档
周四
撰写实训报告
周五
答辩、提交实训报告
提交实训报告
三、考核标准
本次实训成绩以考核学生实训作品的完成情况为主要依据,并结合学生在实训的态度和考勤情况进行评定,具体考核指标如表2所示。
表2 JSP程序设计课程实训考核指标
考核要点
所占分数
出勤、纪律
10
实训作业
20
功能实现
30
实训报告
20
最终答辩
20
满 分
100
同时:
累积缺勤超过5学时不能参加“优秀”评定;
累积缺勤超过10学时不能参加“良好”评定;
累积缺勤超过15学时不能参加“中等”评定;
累积缺勤超过18学时且没有假条则没有实训成绩。
四、实训要求
1.根据实训的目的、要求认真准备,在上机操作前详细阅读《Spring框架程序设计课程实训指导书》。不迟到、不早退;严守课堂纪律;听从指导教师的指挥,在规定时间内完成相应的设计任务。每天向指导教师通报当日所做设计的进度及成果。
2.教师以小组为单位为学生分配机器,在整个实训期间要求固定座位,并保证自己机器的安全及卫生。
3.积极思维、认真操作、独立完成、遇到困难向指导教师提问,坚决杜绝抄袭他人成果的行为;设计结束后,按照指导教师给出的实训报告规范认真编写实训报告。
4.在整个实训过程中,不许玩游戏、聊天以及做其它与设计无关的事情。
5.自觉保持实验室环境,实验结束后将自己座位周围的废弃物带走。
6.未经指导教师允许不得擅自拆、挪计算机,实训结束后经指导教师检查完设备后方可离开实验室。
第二部分 实训内容
项目一:银行账户管理系统
1.项目来源及背景
随着办公自动化的迅速发展,对企事业单位信息的自动化管理提出了很高的要求。对于银行来说,由于有大量的客户信息需要处理,因此银行帐户管理系统的开发与研究有一定的实用价值。
2.系统需求分析
银行账户管理系统为用户提供账户申请、账户注销、存款、取款、查询帐户余额等主要业务,系统可以使用Web技术实现全部业务。
2.1 需求描述
使用银行账户管理系统中的账户申请,用户可以通过图形化的界面,输入登录信息(姓名、年龄、性别、住址、联系电话、身份证号等),申请自己的账户,系统要按照银行规则产生不能重复的用户帐号和用户密码,用户可以修改自己的密码。一个用户可以申请多个账户。
使用银行管理系统登录,用户可以登录进入本系统,只有进入系统才可以执行相关操作。
使用银行账户管理系统中的账户注销,用户可以注销自己的账户。但注销之前,必须先把注销帐户中的钱全部取出,注销后用户仍然能查询自己帐户的交易数据信息。
使用银行账户管理系统中的存款,用户可以通过图形化界面看到帐户中的余额,用户输入存款金额后,系统增加帐户中的金额,并显示当前的账户余额。
使用银行帐户管理系统中的取款,用户可以通过图形化界面看到帐户中的余额,输入取款金额后,系统减少账户中的余额,并显示当前金额。
使用银行账户管理系统中查询帐户余额,用户可以查询当前账户中的余额和每一次的交易明细。
银行账户管理系统之前,必须先使用帐号和密码。经过系统验证后,才能使用系统中的业务服务,否则系统将拒绝服务;用户业务使用完毕以后,系统要提供登录注销功能,使用户离开系统。
2.2 系统用况图
根据业务分析归纳出系统共有两个角色——已注销用户和未注销用户。用例如图1-1、图1-2所示:
图1-1 注销用户用例图
图1-2未注销用户用例图
2.3 系统概念模型
根据业务分析,可以得出系统类图,如图1-3所示,用以对系统中的数据进行归类,并描述其之间关系。
图1-3 系统类图
对系统功能进行设计,分别得出系统用户信息和交易信息的DAO类图,以及用户业务层和交易业务层类图。分别如图1-4、图1-5所示。
图1-4 用户信息和交易信息的DAO类图
图1-5 用户业务层和交易业务层类图
3.系统总体设计
3.1 系统总体功能结构
根据对用例的分析,可将银行账户管理系统分为:账户管理、业务管理和登录共三个模块,其系统功能结构如下图所示:
图1-6 银行管理系统层次方框图
4.系统详细设计
4.1 系统数据设计
根据对银行账户管理系统的分析,总结数据库Bank由t_user表和两张表构成,表的结构如表1-1和表1-2所示:
表1-1 t_user表
字段名
数据类型
是否为空
是否唯一
字段描述
id
int
fasle
true
主键
userName
varchar
fasle
true
用户名
password
varchar
fasle
fasle
密码
userFlag
bit
fasle
fasle
注销标志
userAge
int
fasle
fasle
用户年龄
idCard
varchar
fasle
true
身份证号
tel
varchar
fasle
fasle
联系电话
city
varchar
fasle
fasle
居住城市
userAddress
varchar
fasle
fasle
详细地址
sex
bit
fasle
fasle
性别
表1-2 t_trade表
字段名
数据类型
是否为空
是否唯一
字段描述
id
int
fasle
True
主键
trade
varchar
fasle
fasle
交易类型
balance
int
fasle
fasle
用户余额
dataTime
varchar
fasle
fasle
交易时间
userNo
bigint
fasle
true
用户账户
money
int
fasle
fasle
交易金额
注:t_user表和t_trade表具有单向一对多关联
4.2 目录和包结构设计
系统的分层设计及实现可使系统达到“分散关注、松散耦合、逻辑复用、标准定义”的目的。因此,银行账户管理系统采用四层结构进行分层,其各层组成如下所示:
1.视图层
视图层由JSP页面组成,其中主界面为trade.jsp,通过框架引入top.jsp(置顶)、left.jsp(下左)和main.jsp(下右),结构如图1-7:
图1-7 视图层
2.控制层
控制层由Action类、Action的验证类(通过Action链传值给Action)和一个拦截器类(控制登录后才可访问其他内容)共三部分构成,结构如下图:
图1-8 控制层
3.业务层
业务层由用户访问(UserFacede接口及实现类UserFacadeImpl)和交易(TradeFacade接口及实现类TradeFacadeImpl)两部分组成构成,结构如下图:
图1-9 业务层
4.持久层
持久层由持久化类和DAO类(包括接口)两部分组成构成,结构如下图:
图1-10 持久层
4.3 系统流程设计
SHAPE \* MERGEFORMAT
5.系统实现预览
5.1用户登录
用户需通过登录页面输入账户和密码完成登录。系统登录页效果如图1-11所示。
图1-11 系统登录页面
登录过程中需要对填入信息进行验证,如验证不能为空,如图1-12所示。
图1-12 登录验证
5.2用户注册
用户可通过登录页的“注册新账户”超链接转入注册页面,进行新账户注册。注册页面图1-13所示。
图1-13 系统登录页面
注册过程中需要对填入信息进行验证,如验证不能为空,图示同11。
5.3注册成功
注册成功如图1-14所示。
图1-14 注册成功
注意:账户用系统生成。
5.4系统主页面
重新在登录页面输入账户和密码,进入系统主页面。效果如图1-15所示。
图1-15 系统主页面
5.5存款页面
通过主页面左侧的功能菜单选择“我要存款”操作,则进入存款页面,如图1-16所示。
图1-16 存款页面
在页面中填入存款数额,完成存款。如图1-17所示。(以下页面省略左侧菜单和顶部Logo,仅展示功能部分)。
图1-17 存款成功
5.6取款页面
通过主页面左侧的功能菜单选择“我要取款”操作,则进入取款页面,如图1-18所示。
图1-18 取款页面
取款成功,将显示用户账户余额。
图1-19 取款成功
5.7交易信息查看页面
通过主页面左侧的功能菜单选择“交易信息”操作,则进入交易信息查看页面,查阅用户以往交易信息,如图1-20所示。
图1-20 查看交易信息
5.8个人信息查看页面
通过主页面左侧的功能菜单选择“个人信息”操作,则进入个人信息查看页面,如图1-21所示。
图1-21 查看个人信息
5.9个人信息查看页面
通过主页面左侧的功能菜单选择“更改信息”操作,则进入个人信息更改页面,如图1-22所示。
图1-22 更改个人信息
5.10退出系统页面
通过主页面左侧的功能菜单选择“我要退出”操作,退出系统,如图1-23所示。
图1-23 退出系统
可通过退出页面的“返回”超链接返回至登录页面。
5.11注销用户页面
通过主页面左侧的功能菜单选择“我要注销”操作,进行账户注销,此时在注销页面首先显示注销提示信息,要求用户必须保证余额为零,方可注销。同时告知注销后可做的操作。如图1-24、1-25所示。
图1-24 注销信息提示
图1-25 提示余额不为零
通过“进入取款页面”取出余款后,可再次进入注销页面,注销账户。通过“注销账户”超链接注销账户。如图1-26所示。
图1-26 注销账户
此时,如果进行存款、取款操作,则提示“您的帐户已经被注销,不能执行此项操作!”个人信息查询、修改、退出及交易信息查询还可进行。
项目二:在线选课系统
1.项目需求
1.1系统概述
在线选课系统通过Web应用程序的方式实现在线选课的流程。学生登录系统后可以查看所有课程的选课情况,并且可以对选课人数没有满员的课程进行选课操作,同时也可以查询自己已经选择了那些课程;教师登录系统后可以查看所有课程的选课情况,也可以添加可选的课程。在这里教师充当了系统管理员的角色。
由于本系统设计为学生和教师同时使用,所以在登录页面允许学生和教师同时使用,并且根据使用者角色的不同自动跳转到不同的页面。
综上所述,本系统从功能上可分成登录、学生选课、学生选课结果浏览、教师浏览选课结果、教师添加课程共五个功能模块。
1.2系统角色定义
系统使用者主要分为两种角色:
(1)
学生:学生只能选择自己感兴趣的课程和查看自己的已选择的课程,只能操控登录、学生选课和学生选课结果浏览三个模块。
(2)
教师:教师面向的是整个系统,并且承担管理员的角色,同时可以查看每个课程的选课情况,因此可以操控登录、教师浏览选课结果和教师添加课程三个模块。
1.3系统主用例图
根据以上分析,系统主用例图如图2-1所示。
图2-1 系统用例图
2.功能描述
在线选课系统从功能上可分成登录、学生选课、学生选课结果浏览、教师浏览选课结果、教师添加课程共五个功能模块。下面分别对各功能模块进行说明。
2.1登录
选课是带有个人性质的行为,不能够允许任何人为其他人选课,所以必须在用户使用系统的大部分功能之前提供一个验证机制,不管是学生还是教师,必须通过输入用户名和密码来进入系统。同时学生在查看自己的课程情况时,系统也必须知道当前用户是谁,才能够从数据库中选取出来对应的记录。
登录流程如图2-2所示。
图2-2 登录活动图
2.2学生选课模块
学生登录系统之后可以查看所有可以选择的课程,并选取自己感兴趣的,同时选课人数还未达到人数上限的课程。本模块就用于列出所有的课程信息,并允许学生完成选课操作。如果选课失败,则显示提示信息。
学生选课活动图如图2-3所示。
图2-3 学生选课活动图
2.3 学生选课结果浏览模块
学生登录系统之后可以针对自己已经选择的课程进行查看,以决定是否还要选择其他课程。
学生选课结果浏览活动图如图2-4所示。
图2-4 学生选课结果浏览活动图
2.4 教师查看所有课程选择结果模块
教师登录系统后,可以随时查看最新的选课信息,如所有课程的信息和对应的选课人数。
注:活动图参考图2-2。
2.5 教师添加课程模块
在学生选课之前,必须有对应的课程信息,在这个模块中教师可以添加对应的课程信息,以供学生选取。
教师添加课程活动图如图2-5所示。
图2-5 教师添加课程活动图
3.数据描述
3.1 数据库表间关系
数据库表间关系如图2-6所示。
图2-6 数据库表间关系
3.2 数据库基本结构
由数据库表间关系,对user表、course表和elective表作如下设计。
(1)
用户表,表名为user,表结构如表2.1所示:
表2.1 用户表结构
字段名
类型
长度
是否为主键
可否为空
说明
username
varchar
20
是
否
用户登录用户名
password
varchar
20
否
否
用户登录密码
realname
varchar
20
否
否
用户真实姓名
role
char
1
否
否
用户角色
(2)
选课表,表名为elective,表结构如表2.2所示:
表2.2 选课表结构
字段名
类型
长度
是否为主键
可否为空
说明
username
varchar
20
是
否
选课学生用户名
course_id
char
6
是
否
对应课程编号
(3)
课程信息表,表名为course,表结构如表2.3所示:
表2.3 课程表结构
字段名
类型
长度
是否为主键
可否为空
说明
course_id
char
6
是
否
课程编号
course_name
varchar
40
否
否
课程名称
teacher
varchar
40
否
否
授课教师姓名
point
int
4
否
否
学分
time_1
char
2
否
否
第一次上课时间
time_2
char
2
否
否
第二次上课时间
location
vachar
40
否
否
上课地点
limited
int
4
否
否
限选人数
3.3 数据说明
在user表中,role字段代表用户的系统使用角色。role字段的长度为char(1),因此,定义其字段值仅取0或1,其中0代表学生,字段值1代表教师。
在course,time_1字段和time_2字段分别代表课程的两个上课时间,其中time_1代表第一次,time_2代表第二次。time_1字段和time_2字段的长度均为char(2),因此,定义其字段值仅取一个两位数,十位和个位的取值范围均为1~5。其中,十位上的1~5代表星期一~星期五,个位上的1~5代表五个上课时段(8:05~9:50、10:15~12:00、13:35~15:20、15:45~17:30、18:30~20:45)。
4.系统原型
系统页面关系如图2-7所示。
图2-7 系统页面关系图
4.1登录
登录页面如图2-8所示。
图2-8 登录页面
用户访问系统,须通过login.jsp页面完成登录。在登录的同时,填写用户名和密码,选择访问者角色,并对用户名和密码进行是否为空的验证。如果验证成功,则进行对数据库的访问,并显示选课页面chooseCourse.jsp或课程浏览页面courseList.jsp(根据所选角色的不同);如果失败,显示提示信息。此外,如果输入的用户名或密码错误,同样需显示提示信息。
4.2学生选择课程
选课页面如图2-9所示。
图2-9 选课页面
学生登录系统后,系统显示选择课程页面chooseCourse.jsp。在该页面中以表格形式列出学生不曾选择过的课程及其相关信息。学生可点击“选课”按钮完成选课操作,若选课失败,则显示提示信息。此外,如果某门课程的选课人数已经达到人数上限,则“选课”按钮显示未激活状态。
4.3选课结果一览
选课结果一览页面如图2-10所示。
图2-10选课结果一览页面
学生点击“选课”按钮选择某门课程后,系统显示选课结果一览页面viewCourse.jsp。在该页面中以表格形式列出当前学生已选的课程及总学分。
4.4 教师浏览课程选择结果
教师浏览课程选择结果页面如图2-11所示。
图2-11 教师浏览课程选择结果页面
教师登录系统后,系统显示浏览课程页面courseList.jsp,在该页面中以表格形式列出课程的基本情况。
4.5 教师浏览课程选择结果
教师添加课程页面如图2-12所示。
图2-12 教师添加课程页面
教师点击浏览课程页面上的“添加新课程”超链接,系统显示添加课程页面addCourse.jsp。在该页面中,依次填入课程编号、课程名称、教师姓名、学分、上课时间(一周两次)、上课地点和限制人数,同时对各输入或选择内容进行是否为空的验证,如果验证成功,则进行向数据库的提交,并显示课程浏览页面courseList.jsp;如果失败,显示提示信息。此外,如果向数据库的提交失败,同样需显示提示信息。
项目三:新闻中心管理系统
1.项目来源及背景
为了能够更加迅速地向客户传递有关企业的新闻以及相关行业中最新的发展现状,以便于引导客户选择企业的相关产品和服务,一般在商务系统的开发中,都会设置相应的新闻中心模块。该新闻中心应该能够及时提供最新的资讯,并且应该在显示某条新闻的同时,列出所有的相关新闻,以便于客户在最短的时间内获得最新最全的信息。
此外,考虑到新闻的时效性,新闻中心管理系统中一般都需要提供良好的维护页面,即中心管理人员可以借助后台维护管理的页面实现对新闻内容实时的更新维护。
2.系统需求分析
2.1 需求描述
新闻中心管理系统主要是为了实现商务网站动态新闻实时显示的系统。一个典型的新闻中心管理系统一般都会提供新闻标题分类显示、新闻详细内容显示等功能。同时也要为新闻中心后台管理的管理员提供对应的新闻信息维护及管理的功能,包括添加新的新闻、编辑修改新闻、删除新闻等功能。
根据企业商务新闻的基本要求,本系统需要完成如下的主要任务:
(1)新闻标题信息分类显示:在进入新闻中心主页时,应该能够根据数据库中存放的信息分类显示最新的新闻标题。例如可以显示所有最新的标题信息。每个新闻标题都应该提供对应的超链接,单击后,就可以跳转到有关该新闻详细内容的页面上,以便用户对这条新闻有更详细的了解。
(2)新闻详细内容及相关新闻列表显示:当单击某个新闻标题后,可以查看该新闻的详细内容。同时提供与该新闻相关的新闻标题信息的显示,以便于查询与该新闻相关的其他信息(扩展)。
(3)新闻中心后台管理功能:新闻中心的管理员可以根据企业的服务需要随时向数据库中添加最新的新闻标题及相关内容。还可以删除不再需要的新闻标题及内容,以及对原有新闻做必要修改。
2.2 系统用况图
图3-1 管理员用例图
图3-2 浏览者用例图
2.3 系统概念模型
图3-3 系统类图
3.系统总体设计
3.1 系统总体功能结构
图3-4 系统层次结构图
3.2 功能描述
浏览者可以看到所有新闻的标题,点击新闻标题超链接,可以在页面中显示新闻标题、新闻类型、新闻作者、新闻内容、新闻发布时间、及相关新闻的标题,通过点击相关新闻标题超链接,就可以查看该相关新闻的详细信息。
图3-5 新闻中心管理系统前台活动图
只有合法身份的管理员才可以进行后台管理,系统的3个子模块(添加新闻、修改新闻、删除新闻)在操作上是平行的,其内在关系通过后续数据库的设计和程序流程来控制。
图3-6 新闻中心管理系统后台活动图
4.系统详细设计
4.1 系统数据设计
新闻基本信息表(newsdetail)用来保存和新闻相关的基本信息,是显示和维护新闻数据的依据。表3-1所示列出了该表中所包含的字段的描述信息。
表3-1 新闻基本信息表
字段名
类型
长度
是否允许为空
是否为主键
说明
id
int
false
true
新闻记录编号
title
varchar
50
false
false
新闻标题
content
varchar
4000
false
false
新闻内容
author
varchar
50
false
false
作者信息
time
datatime
8
false
false
新闻时间
type
int
4
true
false
新闻类别
后台管理员信息表(admin)记录了新闻中心管理员的相关信息,主要是登录系统后台时验证的依据。
表3-2 后台管理员信息表
字段名
类型
长度
是否允许为空
是否为主键
说明
adminid
int
false
true
自动编码
adminname
varchar
50
false
false
用户名
adminpass
varchar
50
false
false
用户密码
4.2 目录和包结构设计
以登录功能为例设置整个程序的包结构图。
图3-7 包结构图
4.3 系统流程设计
SHAPE \* MERGEFORMAT
图3-8 系统流程图
5.系统实现预览
5.1 前台
在地址栏中输入地址进入新闻中心首页,在该页面中显示了所有的新闻,并给出了各个新闻的标题,且针对标题文字提供了相应的超链接,以便用户查看新闻的具体内容。
图3-9 新闻中心首页
在图中单击导航中“所有新闻”链接后,会显示系统中的新闻,如图所示。(以下页面仅展示功能部分)
图3-10 新闻中心文件列表
单击文件标题可以查看新闻的具体内容,如图所示。
图3-11 查看新闻详细信息
单击“搜索新闻”可以进行新闻的搜索,如图所示。
图3-12 新闻搜索
输入要查询的关键字,然后单击“搜索新闻”即可列出新闻列表,单击新闻标题可以查看新闻内容。
5.2 后台
点击“后台管理”超链接进入后台管理界面。在进入新闻管理主页后,首先要管理员输入账号密码后,就可以查看新闻、添加新闻、编辑新闻以及删除新闻。
图3-13 管理员登录界面
登录成功后,单击“所有新闻”链接可以查看所有新闻,如图所示。
图3-14 查看所有新闻
单击每篇新闻的标题即可查看新闻的详细内容。
点击“编辑”链接,可以对该新闻进行修改,如图所示。
图3-15 编辑新闻界面
新闻编辑完毕后,单击“编辑提交”即可完成新闻编辑。
点击“删除”链接,可以删除该新闻。
点击“添加新闻”链接,可以添加新闻,如图所示。
图3-16 添加新闻界面
项目四:网上书店
1.项目来源及背景
求知书店在取得连年盈利后,希望开辟一个信息的销售阵营。在市场部为期一个月的市场调研之后,发现目前网络购物已经被大众所认可,且成为众多宅男宅女们的不二之选的信息时代,因此求知书店准备投入大笔资金开发一个B2B的网上购书平台。该平台应具备界面美观、大方;功能操作简便、快捷;采用技术先进、稳定等特点。
2.系统需求分析
2.1 需求描述
BookStore是一个在因特网上销售图书的电子商务系统,图书发行公司可以通过这个电子商务系统销售自己的图书,消费者可以通过该系统订购自己要买的图书。
消费者通过BookStore的用户界面,可以浏览图书,查询每本图书的详细信息,在浏览图书的过程中,如果消费者对某本图书感兴趣,则可以将其添加到购物车。消费者随时可以查看购物车中的状况,并及时更新。购物活动完成后,消费者需要结帐。
系统需要提供用户注册和登录的接口,此外,还需要向图书管理员提供维护图书信息的接口。
2.2 系统用况图
根据需求分析,得出系统的主要用况图如下。主要角色包括图书管理员和顾客。
2.3 系统概念模型
图4-2 网上书店概念模型
3.系统总体设计
3.1 系统总体功能结构
3.2 功能描述
1.用户登录/注销和注册功能
用户登录是电子商务网站必需的功能之一。BookStore的登录页面要求用户输入用户名和密码。在输入用户名和密码之后,系统将验证用户名和密码是否正确,如果验证成功,就使用户处于登录状态;否则,显示用户名或密码错误的信息。用户在登录页面中能够进行新用户注册,这时系统要求用户输入用户注册信息,包括用户名、密码、电子信息、居住地址、邮政编码等。用户登录后可以随时修改个人注册信息。
2.浏览/搜索图书
用户可以通过网站浏览各种图书。系统主页面提供了所有图书的列表,通过单击某本图书的链接,用户可以查看该图书的详细信息如图书名称、图书简介、单价、已售图书数量等信息。
3.维护购物车
当用户单击【添加到购物车】按钮时,图书会被自动添加到购物车中。在购物车页面,将列出用户的购物车中的所有图书,包含选购图书的名字、作者、出版社、单价、选购册数、总计金额等信息。并可随时删除已选购图书或者修改选购图书数量。
4.系统详细设计
4.1 系统数据设计
1.系统设计模型
根据系统需求分析的概念模型,系统的设计模型如图4-4所示。
图4-4 网上书店设计模型
2.系统数据设计
根据网上书店系统的设计模型,Bookinfo、Userinfo、Rebate、Order和Remark对象都需要持久化,因此在数据库的设计中都有对应的数据表结构。由此该系统数据库有5个表,分别是:图书信息表(Bookinfo) 、用户信息表(Userinfo)、折扣表(Rebate)、订单表(Order)、评论表(Remark)。数据库的名字为bookstore,具体表结构细节如下所示。
表4-1 图书信息表
表4-2 用户信息表
表4-3 折扣表
表4-4 订单表
表4-5 评论表
4.2 目录和包结构设计
系统的构成结构如下图所示。
图4-5 模型层
视图层组件的参考结构图。
图4-6 视图层
4.3 系统流程设计
SHAPE \* MERGEFORMAT
图4-7 流程设计
5.系统实现预览
1.系统首页面。
图4-8 系统首页
2.单击页面左上角的“免费注册”可以进行用户注册,注册后用户可以查看图书信息,并购买图书,同时能够修改个人信息。注册页面如图所示。
图4-9 用户注册
3.用户登录时,如果用户名和密码为空,或者验证错误时,将会提出错误提示。如图所示。
图4-10 登录失败
4.用户登录成功后,页面左上角登录表格消失,取而代之的是“欢迎光临:**用户”的提示信息。与此同时,页面上部增加了“个人资料”、“购物车”、“注销”的功能连接。如图所示。
图4-11 系统主页面
5.用户在首页上单击某条图书信息的连接,或者单击新书推荐板块中的图片连接,会出现图书的详细信息窗口,如图所示。在图书信息窗口中单击“放入购物车”连接,则将该图书放入用户的购物车中。
图4-12 购物车
6.用户单击页面上部的“购物车”连接,可以查看自己购物车中的图书信息,如图所示。用户可以维护自己的购物车,如需购买则可以结帐。用户结帐后将产生一条订单信息。
图4-13 订单页面
7.用户在结帐后,会产生一条订单信息,该信息会在首页的左侧栏显示。点击该信息,会显示它的详细记录。如图所示。
图4-14 结帐页面
8. 在图书列表页面集成了图书的管理功能(可根据需要拆解)。当用户是管理员时,可以在每本书后面看到“修改”、“删除”连接,“新增图书”连接位于页面的右下方。如图所示。
图4-15 管理员页面
9. 单击图书列表后的“新增图书”连接,即可增加图书。如图所示。
图4-16 新增图书
10. 单击图书列表页面某条图书信息的“编辑”连接,即可编辑该条图书信息。如图所示。
图4-17 编辑图书
第三部分 实训报告构成
一、团队构成及分工
团队:
职能
成员
任务分工
成绩
组长
组员
二、进度计划
序号
任务名称
开始时间
完成时间
持续时间
1
2
3
4
5
三、需求描述
四、功能设计
五、数据设计
六、项目实现
七、关键代码
八、实训总结
银行账户管理系统
账户管理
业务管理
注册账户
个人信息查询
注销账户
个人信息修改
登录
存款业务
取款业务
交易信息查询
login.jsp
LoginUserAction
控制层
模型层
UserDAOImpl
isLogin()
HibSessionFactory
User
Hibernate.cfg.xml
User.hbm.xml
AbstractUser
IUserDAO
BaseHibernateDAO
IBaseHibernateDAO
struts.xml
视图层
main.jsp
erro.jsp
user
username
password
realname
role
elective
username
course_id
cor
course
course_id
course_name
teacher
point
time�_1
time_2
location
limited
首页
登录
选课页面
添加课程
选课结果一览
课程一览
链接
选课
退出
退出
链接
链接
链接
添加
链接
退出
学生
教师
图示说明:
页面 动作 页面跳转
新闻中心管理系统
后台
前台
删除新闻
修改新闻
添加新闻
浏览新闻
搜索新闻
login.jsp
LoginUserAction
控制层
模型层
UserDAOImpl
isLogin()
HibSessionFactory
User
Hibernate.cfg.xml
User.hbm.xml
AbstractUser
IUserDAO
BaseHibernateDAO
IBaseHibernateDAO
struts.xml
视图层
main.jsp
erro.jsp
图4-1 网上书店系统用况图
网上书店平台系统
系统前台
系统后台
用户注册
图书浏览/搜索
填写/确认订单
购物车维护
修改个人信息
用户登录
图书信息维护
系统用户维护
图4-3 网上书店系统总体结构
login.jsp
LoginUserAction
控制层
模型层
UserDAOImpl
isLogin()
HibSessionFactory
User
Hibernate.cfg.xml
User.hbm.xml
AbstractUser
IUserDAO
BaseHibernateDAO
IBaseHibernateDAO
struts.xml
视图层
main.jsp
erro.jsp
PAGE
III
添加新闻
修改新闻
新闻中心管理
员
删除新闻
新闻标题显示
新闻类型显示
新闻作者显示
新闻内容显示
发布时间显示
其他相关新闻标题显示(扩
展)
搜索新闻
浏览者
浏览新闻
<
<
<
<
<
<
新闻标题显示
新闻类型显示
新闻作者显示
新闻内容显示
发布时间显示
其他相关新闻标题显示(扩
展)
搜索新闻
浏览者
浏览新闻
<
<
<
<
<
<
新闻标题显示
新闻类型显示
新闻作者显示
新闻内容显示
发布时间显示
其他相关新闻标题显示(扩
展)
搜索新闻
浏览者
浏览新闻
<
<
<
<
<
<
注册
浏览/搜索图书
填写/确认订单
查看/修改个人信息
维护购物车
顾客
登录/注销
管理员
维护图书信息
Rebate
id
level
rebateRate
Userinfo
id
username
userpass
email
address
postcode
level
power
1
1
1
Remark
id
bookid
userid
grade
remark
date
n
1
n
1
1
Bookinfo
id
bookname
isbn
writer
publisher
intro
price
remaining
picture
date
1
n
1
n
Order
id
bookid
userid
number
address
postcode
orderdate
status
n
1
n
1
n
n
n
n
折扣
积分
折扣率
用户
用户名
密码
电子邮箱
地址
邮政编码
用户积分
用户权限
+1
+1
评论
图书号
用户号
图书评级
评论内容
评论日期
1..n
+n
+1
图书
图书名
ISBN号
作者
出版社
图书简介
价格
库存
图书封面图片
图书入库时间
+1
+n
订单
订单号
图书号
顾客号
购书数量
地址
邮政编码
订购日期
订单状态
+n+1
+n
+n