资源描述
基于JSP的学生成绩管理系统的开发(完整资料)
(可以直接使用,可编辑 优秀版资料,欢迎下载)
学生成绩管理系统
1. 背景ﻫ( 1)项目名称。ﻫ学生成绩管理系统
2. 目提出者
广州康大职业技术学院ﻫ( 3)项目承接者.
15 软件 2 班
( 4)用户。
15 软件 2 班
内容摘要:
学生成绩管理系统采用java,jsp,servlet和Mysql数据库等工具,在工作MyEclipse上开发而成.
学生成绩管理系统主要用于各类高校对教师的管理,同时初始化教师的登录信息;以及教师对学生,课程,学生成绩信息的管理,同时初始化了学生的登录信息。学生可以查询课程信息和自己的成绩信息。
本系统能提高了教务的管理效率,大大地减轻了教师的负担,使学生能随时随地查询课程信息和自己的成绩.
关键字:Java Web ,学生成绩管理系统,信息管理系统
1。选题的目的和意义
1.1 项目开发的背景
几年前,各个学校对于学生成绩的管理还是停留在运用手工操作,随着各个学校的规模不断壮大,学生人数逐年增加.关于学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。但人工管理又有着许多缺陷,比如:效率底、易出错、检索信息慢、对学校的管理提供决策信息较为困难等。所以我想借本次毕业设计之际,开发一个适用于高校的学生成绩管理系统,方便学校对各类信息的管理,减轻学校的负担。
1.2 项目概述
本管理系统主要内容是学生信息管理,课程信息管理,学生成绩管理和教师信息管理,管理员添加教师记录,初始化教师的登录信息,教师添加学生记录,初始化学生登录信息等等。全文共分为概述、系统分析、系统总体设计、详细设计、开发总结、参考文献、附录等。
1。3 设计目的与意义
本系统是将现代化的计算机技术和传统的教学、教务工作相结合设计完成的系统,实现了工作过程的计算机化,提高工作效率和工作质量,该系统的完成将具有以下几点重要的意义:
(1)系统具有较强的实用性、可靠性和适用性
(2)对各个数据的输入进行了检测,大大减少了异常的发生。
(3)能够按照用户输入的关键字进行查询
(4) 注意到了数据的安全性。
(5)简化了用户的操作过程,尽量减少用户的工作量
2 系统的开发技术及主要架构
2.1 开发技术的选择
由于JAVA面向对象,安全性高,跨平台,易移植,易掌握等特点,尤其是在安全性和跨平台性两个方面非常显著。因此,最后我选择采用Java技术开发这个系统。
2。2 项目开发的工具
这个web系统的服务器采用开源的Tomcat6.0,数据库采用开源的MySQL。在MyEclipse 工作平台上使用Java、JavaScript与JSP技术,采用MVC模式开发。
2.2.1 MyEclipe简介
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ),简称MyEclipse是对Eclipse IDE的扩展,利用它我们可以很方便地使用数据库和JavaEE开发和发布系统,提高了工作效率.
2。2.2 MySql简介
MySQL名字的来历是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.2.3 Tomcat简介
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
2.3 数据库的连接
JDBC(Java Data数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供一个标准的API.据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,本系统采用JDBC连接数据库.
3 可行性研究
3.1经济可行性分析
本系统开发要耗去一定的时间,而所用的开发工具和软件基本是免费的.由于系统能够在未来一段时期内稳定地发挥作用,因此该系统对于管理学生成绩都有很大的帮助。由此可见,开发此系统在经济上是完全可行的。
3。2 操作可行性分析
如今的计算机已经进入各个家庭,硬件成本不断的下降,计算机价格不断降低.该系统具有友好的用户界面、良好的安全性设置等,使用户可以很快地掌握系统的操作方法,因此在操作上是可行的.
3.3 技术可行性分析
从目前IT业内使用比较广泛的数据库和管理软件来看,使用比较简单的中小型数据库Mysql和Java开发该系统非常简单实用.该系统能为用户提供非常友好、操作简单的用户界面.因此,从技术可行性分析来看是可行的。
3。4 可行性综合分析
利用计算机实现学生管理系统势在必行。通过对当前的开发背景和上述几个可行性分析可以发现开发这个系统是可行的.本学生成绩管理向着规范化、简单化、有效化的方向发展。
4 需求分析
4。1 功能分析
经过前期的深入调查和研究,总结出该系统需要完成的具体功能,分析如下:
管理员管理:能够实现管理员对教师信息添加,删除,修改和查询.初始化教师登录信息:用户ID为教师编号,初始密码也为教师编号,用户类型为教师。
教师管理: 能够实现教师对学生信息,课程信息和成绩信息的添加,删除,修改和查询等功能;初始化学生登录信息:用户ID为学号,初始密码也为学号,用户类型为学生。
学生查询: 学生能够查询课程信息和自己的成绩信息。
以上所有用户在登录后都可以修改自己的密码。
4.2 系统数据流程图
由以上的功能分析,得出如图4—1的系统数据流程图,该数据流程图直观地反映了该系统的整体框架和设计要求.
图4-1 数据流程图
5 网站总体设计
用户登录时,系统先判断用户名是否存在,密码和用户类型是否正确。如果正确,则进入用户首页,进行相关的管理操作。如果错误,则用户要重新输入用户名,密码和选择用户类型.用户登录后根据用户类型,从而拥有不同权限。登录流程图和系统功能结构图如下所示。
图5-1 登录流程图
5.2系统功能结构图
图5-2 系统功能结构图
6 数据库设计
6.1 系统实体E-R图
图6—1 学生实体E-R图
图6-2 课程实体E-R图
图6-3 成绩实体E-R图
图6-4 教师实体E—R图
图6—5 系统用户实体E-R图
6。2 实体联系图
从上面的需求分析和总体设计得出管理员,教师,学生,课程和成绩实体之间的联系图如下图所示:
图6—6 系统总体联系图
6.3 逻辑结构设计
根据系统的功能描述,设计要用的数据表。因为这些表之间相互关联,存储着系统的相关数据,所以在设计数据表的过程中,要求设计一个表只存储一个实体或对象的相关信息,不同实体存储在不同的表中。本系统需要设计的数据库表如以下各图。
表6-7学生表 studb
字段
字段名
类型
可否为空
主键
ino
学号
varchar(10)
否
是
name
姓名
varchar(10)
否
sex
性别
varchar(5)
age
年龄
int
sys
所在系
varchar(20)
grade
班级
varchar(20)
表6-8 课程表 couinfo
字段
字段名
类型
可否为空
主键
cno
课程编号
varchar(10)
否
是
cname
课程名称
varchar(10)
否
tname
任课老师
varchar(10)
credit
学分
float
表6—9 成绩表 scoinfo
字段
字段名
类型
可否为空
主键
ino
学号
varchar(10)
否
是
cno
课程编号
varchar(10)
否
是
type
成绩类型
varchar(10)
否
是
score
分数
int
否
表6—10 教师表 teainfo
字段
字段名
类型
可否为空
主键
tno
教师编号
varchar(10)
否
是
tname
教师姓名
varchar(10)
否
tsex
教师性别
varchar(5)
tsys
所在系
varchar(10)
表6—11 用户信息表 user
字段
字段名
类型
可否为空
主键
id
用户ID
varchar(10)
否
是
name
用户姓名
varchar(10)
否
password
密码
varchar(10)
否
job
用户身份
varchar(10)
否
7 系统主要功能模块详细设计
7.1 用户登录
用户登录需要验证用户的用户名,密码和身份.如果登录成功,页面就会跳转到相关页面,如果登录失败登录界面就会显示提示信息,登录界面如下
图7-1 登录界面
7.2 网站管理
教师,管理员和学生登录系统后拥有不同权限,详细介绍如下所示:
7。2。1 教师身份登录后的管理界面
图7-2 教师管理首页
教师管理三个模块:学生信息管理,课程信息管理和成绩信息管理,教师登录后可以点击“修改口令”修改自己的口令,点击“退出系统”返回登录界面,修改口令的界面如下图
图7-3 密码修改界面
如果新密码为空,则提示“修改失败,新口令不能为空!",如果新密码和确认密码不同,则提示“口令修改失败”,相同则提示“口令修改成功",口令修改失败的界面如下图
图7-4 密码修改失败界面
学生信息管理模块:在图7—2中点击“学生信息管理"后进入学生信息管理,界面,点击后的界面如下图
图7-5 学生信息管理界面
在“跳到”后输入2,点击“Go”后,列表跳转到第2页,
当输入小于0的数,点击“Go”后,提示输入格式不对,请重新数字,当输入大于或等于分页总数的数字时,跳转到最后一页
点击“首页"回到第一页,点击“尾页”回到最后一页
点击“上一页”回到上一页,点击“下一页"回到下一页
这个页面实现了教师对学生基本信息的管理(添加,删除,修改,查询),同时添加了一条学生登录记录,初始密码为学生的学号,添加学生信息的关键代码(学生信息管理的添加实现类)如下:
public boolean doCreate(Stu stu,User user) throws Exception {
ﻩboolean flag=false;
String sql1="insert into studb(ino,name,sex,age,sys,grade)values(?,?,?,?,?,?)";
ﻩﻩthis.pst1=this。conn.prepareStatement(sql1);
ﻩ this.pst1。setString(1,stu.getIno());
ﻩﻩthis。pst1。setString(2, stu.getName());
ﻩ this.pst1.setString(3, stu.getSex());
ﻩﻩthis.pst1.setInt(4, stu.getAge());
this.pst1.setString(5, stu.getSys());
ﻩ this.pst1。setString(6, stu。getGrade());
ﻩ String sql2="insert into user(id,name,password,job)values(?,?,?,?)”;
ﻩthis.pst2=this。conn。prepareStatement(sql2);
ﻩﻩthis.pst2.setString(1,user。getId());
ﻩﻩthis.pst2.setString(2, user。getName());
ﻩthis。pst2.setString(3, user。getPassword());
this。pst2.setString(4, user。getJob());
ﻩ ﻩ ﻩﻩﻩif(this.pst1.executeUpdate()〉0&&this。pst2.executeUpdate()>0){
ﻩﻩﻩflag=true;
ﻩ }
ﻩ this。pst1.close();
ﻩﻩthis。pst2.close();
ﻩreturn flag;
}
点击“添加”添加学生信息后的界面如下图:
图7-6 学生信息添加界面
学号为数字或字母,如果是其他的特殊符号,系统提示出错并清空学号后的文本框,年龄是2位数的整数,否则提示出错清空年龄后的文本框。每一个文本框都要填,如果有其中一个文本框没有填就提交,提示没有填的文本框不能为空。
教师添加一条学生信息记录,就同时添加了一条学生登录记录,该学生的登录ID为学号,登录密码也为学号,用户姓名为学生姓名,用户类型为学生,学生登录后可以修改自己的登录密码。
修改学生信息的关键代码(学生信息管理的修改实现类)如下:
public boolean doUpdate(Stu stu,User user) throws Exception {
boolean flag=false;
ﻩString sql1="update studb set name=?,sex=?,age=?,sys=?,grade=? where ino=?";
ﻩ this.pst1=this.conn.prepareStatement(sql1);
ﻩ this.pst1.setString(1, stu。getName());
ﻩ this。pst1.setString(2, stu。getSex());
ﻩﻩthis.pst1。setInt(3, stu.getAge());
ﻩﻩthis。pst1。setString(4, stu.getSys());
ﻩﻩthis。pst1.setString(5, stu.getGrade());
ﻩthis。pst1.setString(6, stu.getIno());
ﻩﻩString sql2="update user set name=? where id=?”;
ﻩﻩthis。pst2=this。conn。prepareStatement(sql2);
this.pst2.setString(1, user.getName());
this.pst2。setString(2, user.getId());
ﻩif(this.pst1.executeUpdate()>0&&this.pst2.executeUpdate()〉0){
ﻩ flag=true;
ﻩ }
ﻩ this.pst1.close();
ﻩ this.pst2.close();
ﻩﻩreturn flag;
ﻩ}
点击图7—5的列表中的要修改的数据后的“修改”修改学生信息,例如点击第一条记录后的“修改”,界面如下图
图7-7 学生信息更新界面
只要不修改主键“学号",年龄为整数,每一项都不为空,就能成功修改记录。
点击图7-5的列表中的要删除的数据后的“删除”删除一条记录。删除学生信息的关键代码(学生信息管理的删除实现类)如下:
public boolean doDelete(Stu stu,User user) throws Exception {
ﻩﻩboolean flag=false;
ﻩ String sql1=”delete from studb where ino=?";
ﻩﻩthis。pst1=this.conn。prepareStatement(sql1);
ﻩthis。pst1.setString(1, stu。getIno());
ﻩﻩString sql2=”delete from user where id=?”;
this.pst2=this.conn.prepareStatement(sql2);
ﻩthis.pst2.setString(1, user。getId());
ﻩif(this。pst1。executeUpdate()〉0&&this.pst2.executeUpdate()〉0){
ﻩﻩflag=true;
ﻩ }
this.pst1。close();
ﻩ this。pst2.close();
return flag;
}
例如点击任意一条记录后的“删除”,弹出如下图的提示框
图7-8 记录删除提示框
点击“确定”后记录删除成功,点击“取消"后返回原界面,删除失败
在图7-5的文本框中输入学生姓名(可输入模糊信息),查询学生信息的关键代码(学生信息管理的查询实现类)如下:
public List<Stu〉 findAll(String keyWord) throws Exception {
ﻩﻩList〈Stu〉 all=new ArrayList〈Stu>();
ﻩ String sql="select * from studb where name like ?”;
ﻩﻩthis。pst=this。conn。prepareStatement(sql);
ﻩﻩthis。pst。setString(1, "%"+keyWord+"%");
ﻩResultSet rs=this.pst。executeQuery();
Stu stu=null;
ﻩ while(rs。next()){
ﻩ stu=new Stu();
ﻩ stu.setIno(rs.getString(1));
ﻩﻩﻩstu.setName(rs.getString(2));
ﻩ stu.setSex(rs.getString(3));
stu。setAge(rs。getInt(4));
ﻩ stu。setSys(rs.getString(5));
ﻩﻩ stu。setGrade(rs.getString(6));
ﻩﻩall.add(stu);
ﻩﻩ}
ﻩ this.pst.close();
ﻩ return all;
ﻩ}
在图7—5的文本框中输入学生姓名(可模糊查询),例如输入“01",点击“查询”后的界面如下:
图7-9 信息查询结果图
点击图7-2中的“课程信息管理”进入课程管理模块,界面如下:
图7-10 课程信息管理界面
点击图7-2中的“成绩信息管理”进入成绩管理模块,界面如下:
图7-11 成绩信息管理界面图
这两个模块和学生信息管理系统模块类似,编辑过程一样
7.2.2 管理员身份登录后的管理界面
图7-12 管理员首页图
点击“教师管理”进入教师管理模块,如下图所示
图7-13 教师信息管理界面
这个模块和学生信息管理系统模块类似,编辑过程一样
管理员添加一条教师信息记录,就同时添加了一条教师登录记录,该教师的登录ID为教师编号,登录密码也为教师编号,用户姓名为教师姓名,用户类型为教师,教师登录后可以修改自己的登录密码。
7.2.2 学生身份登录后的查询界面
图7-14 学生查询首页
点击“修改口令”修改自己的登录密码,点击“退出系统”返回到登录界面,学生登录后可以查询课程信息和自己的成绩信息
点击“课程信息"查询课程信息,界面如下图所示:
图7-15 课程信息查询
点击“成绩信息”查询自己的成绩信息,界面如下图所示:
图7—16 成绩信息查询
8 系统测试
8.1 测试原则
软件测试的基本原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现问题,并负责跟踪和分析产品中的问题,具体测试原则有如下几点:
第一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
第二,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。
第三,制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
第四,妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
8。2 测试用例
根据系统的设计流程,一个一个模块地测试,要测试的模块如下:登录模块,密码修改模块,教师管理模块,管理员管理模块和学生查询模块等。具体的测试用例,预期结果如下详细介绍:
用户登录和密码修改的测试用例
测试用例
场景
测试用例
预期结果
实际结果
TC1
用户登录
打开系统,输入用户ID,密码和选择身份后点击登录,登录系统
判断用户的用户ID是否存在,密码和用户类型是否正确若正确。如果正确,成功登录。否则,提示出错信息,要重新输入。
同预期
TC2
修改密码
进入系统管理页面后,点击“修改密码”后输入新密码和确认密码
判断新密码是否为空,如果为空,提示修改失败,新口令不能为空;再判断新密码和旧密码是否相同,若相同则修改成功,若不同则修改失败
同预期
TC3
退出系统
点击“退出系统”后在弹出的提示框中选择“确定”或“取消”
如果选择“确定”则退出系统,如果选择“取消”则退出系统失败,返回原界面
同预期
教师管理页面的测试用例
测试用例
场景
测试用例
预期结果
实际结果
TC1
学生信息管理
进入教师管理,点击学生信息管理,测试添加,删除,修改,查询功能,测试添加的学生记录信息登录系统的效果
对学生信息的添加,删除,修改操作达到了预期效果;添加的学生能以学号登录系统,当删除该学生记录后,该学生则不能登录系统
同预 期
TC2
课程信息管理
进入教师管理,测试添加,删除,修改,查询
功能
对课程信息的添加,删除,修改操作达到了预期效果
同预期
TC3
成绩信息管理
进入教师管理,分别测试添加,删除,修改,查询功能
对成绩信息的添加,删除,修改操作达到了预
期效果
同预期
管理员管理页面的测试用例
测试用例
场景
测试用例
预期结果
实际结果
TC1
教师信息管理
进入管理员管理首页,点击教师信息管理,分别测试添加,删除,修改,查询功能,并且测试以编辑的学生记录信息登录系统的效果
对教师信息的添加,删除,修改操作达到了预期效果,并且能查询到效果
添加的教师能以教师编号登录系统,当删除该教师记录后,该教师不能登录系统
同预期
学生管理页面的测试用例
测试用例
场景
测试用例
预期结果
实际结果
TC1
课程信息查询
以任意学生身份登录系统,点击课程信息,核对课程信息
查询的结果是学校所有的课程,无误
同预期
TC2
成绩信息查询
以任意学生身份登录系统,点击成绩信息,查询个人的成绩
查询到的成绩是自己个人的考试成绩,无误
同预期
8.3 测试小结
本章主要测试了学生成绩管理系统的可行性,并且介绍了专门针对本系统的测试方式,描述了一些简单的测试用例。此外,还介绍了对系统进行测试的预期结果和最后的实际结果。从总体上来说,整个系统的设计都比较符合要求,圆满地完成了开题报告中所提出的设计要求,基本上达到了这次系统开发的预期效果。
9 总结
毕业设计是大学本科教育最后一个重要的实践环节,重培养学生综合运用本学科的基本理论、专业知识和基本技能,提高分析与解决实际问题的能力。在使用java开发这个系统的过程中,我深刻地认识到需求分析在整个软件开发流程中的重要性,没有做好需求分析就开发系统,问题发现地越晚,所付出的的代价就越大。同时,我也感受到了在整个软件开发的流程中,可能会碰到一些难以预料的问题,这时就需要多在网上或书上找资料,多向老师和同学寻求帮助,不断思考,寻找各种解决方案。
系统总体上实现了预期中的效果,方便了管理员管理教师信息,教师管理学生信息,课程信息和成绩信息.用户在添加记录时又进行了数据检测,避免数据库中出现无效数据。管理员在添加教师和教师在添加学生时都同时添加了登录信息,初始化了登录密码,方便了用户管理。学生只能查询自己的成绩信息,提高了学生用户的隐私。由于个人能力和时间有限,系统还有一些不足,有待改进,希望老师们提出宝贵意见,我会尽力去改善。在次,多亏了指导老师和同学们的帮助,使我成功完成了这个系统。在这里,我表示衷心的感谢
课程设计报告
课程名称 基于J2EE的项目开发
设计题目 超市管理系统
专业班级 软件1231
姓 名刘香弟
学 号1204311106
成 绩 评 定
考核
内容
设计
表现
设计
报告
答辩
综合评
定成绩
成 绩
计算机技术与工程学院
和谐 勤奋 求是 创新
目录
1题目选择与系统分析3
1.1项目的功能分析3
1.1。1顾客功能性需求3
1.1。2管理员功能性需求4
2 模块设计5
2。1系统总体设计5
2.2模块设计5
2.2。1登录模块7
2.2。2商品信息查看模块8
2.3.3购物车模块8
3数据库的数据表设计与映射9
3。1数据库表设计9
4 系统详细设计与实现11
4.1综合描述11
4.2系统运行界面描述12
4.3主要的Java类和其功能25
4。4系统测试27
4.4。1测试的目标与方法27
4.4.2测试用例27
1题目选择与系统分析
1。1项目的功能分析
功能性需求是整个需求分析章节最为重要的部分.它直接决定了系统的模块划分,业务逻辑,明确了使用者对小型超市信息管理系统功能的要求。一个完善的,明确的,详细的功能性需求分析是开发一个系统的关键。成功的功能性需求分析可以避免后期对系统的大范围改动甚至是推倒重建,因此,本部分极为重要。
1.1.1顾客功能性需求
1〉不用输入用户名,密码 ,直接登录超市管理系统的商品页面;
2>查看商品的基本信息,包括 商品编号,单价,余量,厂家,生产日期,保质期;
3>在购物车中查看自己选中的商品名称,价格,数量,并可以从购物车中移除某些商品,查看总价,并可以选择结账或选择继续购物;
4〉点击结账后显示结账成功并退出系统。
相关用例图见图1-1。
图1-1 顾客用例图
顾客用例 “查看商品基本信息"的用例描述见表1-1。其他用例类似于此,不再一一赘述。
表1—1用例描述-查看商品基本信息
使用者
顾客
用例
查看商品基本信息
参与者
顾客,小型超市信息管理系统
数据
顾客向超市信息管理系统发送商品相关信息,如商品名,商品类型,商品编号等
激励
超市信息管理系统根据用户发送的字段,查询后台数据库
响应
超市信息管理系统返回查询商品结果
备注
无
1.1.2管理员功能性需求
1〉打开网站后,进入登录页面。输入用户名,密码登录系统.
2〉登陆后,选择进入系统人员管理页面或者商品信息管理页面。在系统人员管理页面中,查看其它管理员的信息,并可以添加新的管理员。在商品信息管理页面,可以查看全部商品的信息,包括商品编号,进价,单价,余量,厂家,生产日期,保质期。
3>进入商品信息管理页面的进货管理页面,可以填写进货单,实现相关产品数量的增加。
4>进入商品信息管理页面的销售查看页面,可以查看近期各项商品的销售情况。
5〉点击页面右上角的退出按钮,直接退出系统并跳转到登录页面。
相关用例图见图1-2 管理员功能性需求用例图。
图1-2 管理员功能性需求用例
2模块设计
2。1系统总体设计
系统总体设计图如图4-1所示。当使用人员登录系统后,按身份的不同进入各自的页面,并使用系统提供的功能.管理员的人员信息管理属于操作者所有,在此本系统默认管理员可以操作其他管理员的信息。
图2—1 系统总体设计图
2.2模块设计
本处将对小型超市信息管理系统进行分模块设计,明确各个模块的操作流程,功能如何使用等问题。
1〉登录模块
超市信息管理系统的使用者主要有两种:普通的顾客和管理员。
按照日常生活中超市的运作流程,普通顾客不需要为其设立专门的数据表,所以只需要实现管理员的登录模块.
使用者进入系统后,首先进入欢迎界面.普通顾客点击“开始购物旅程”超链接,直接进入购物界面。管理员点击“进入后台系统”超链接,进入管理员登陆界面。
由于管理员对系统有操作,查看等权限,因此不允许在登陆页面注册新的管理员。
登陆成功后跳转至管理员管理页面,否则显示“Login fail”登陆失败.
当输入正确的姓名,密码后,界面自动跳转到管理员管理欢迎界面。
2〉商品信息管理模块
管理员进入后台管理界面后,点击“商品信息管理页面"超链接,进入商品信息管理页面.
页面查询后台数据库数据,将所有商品信息展示在右侧页面上。若管理员需要对相关商品信息作出修改,或者删除某项商品信息。则点击相应的超链接进行操作。删除成功后系统会提示“删除成功”。
点击“更新",系统会进入商品信息更新页面。在页面中,已经预先填好了所选商品信息。这允许管理员仅对需要修改的字段内容修改,避免了全盘输入的麻烦.
若管理员需要添加新商品,则点击“添加新商品”链接。系统跳转到 商品信息添加页面。
在此页面填入相应的商品信息,点击“添加”按钮。若各个字段的值都符合要求,则系统提示“添加成功"。再点击左侧“商品信息管理页面”,则可以看到刚才插入的商品信息。
3〉进货单管理模块
进货是超市正常运营,及时跟进市场最新动态,调整售货方向的最重要的手段.进货单管理模块用来实现进货功能,管理员可以填写进货单实现对商品表及进货单表的更新。在 管理员管理欢迎界面 点击“进货单管理页面”,系统跳转到进货单管理页面。
由于进货操作是管理员对超市经营情况收集信息的重要途径,因此不允许对进货单进行修改操作,以便进行对账,合计等操作。点击“增加进货单”链接,系统跳转至进货信息添加页面。
在进货信息添加页面中,当管理员填写好相应的字段后,点击“添加”按钮。系统在后台会自动查找填入的商品名.如果以前存在同名的商品,则在原来的商品的基础上,对数量作出修改.如果查不到填入的商品名,则在商品表中新建一条记录。最后,在进货单表中生成相应的进货记录.
4〉管理员信息管理模块
在管理员管理欢迎界面,点击“管理员信息管理页面”。系统跳转至管理员信息管理界面。在此界面上,可以实现对管理员信息的增删改,在此不再一一赘述。
5>交易信息查看模块
顾客每次在超市的消费都会有相应的记录。由于小型超市规模的限制,不可能大量保存每笔交易的详细信息,因此系统以交易流水号的形式表示每笔交易.此模块就是供管理员查看交易信息的记录。
由于交易信息是对超市中已存在的交易行为的记录,因此不允许管理员对交易信息进行修改,只能在记录较多时删除某条记录.
6〉退出模块
管理员在左侧菜单点击“退出”链接,进入“确认退出页面”.
7〉购物模块
在开始页面点击“开始购物旅程”链接,跳转到购物页面。
点击一项商品后的添加至购物车链接,会提示添加成功,并选择查看购物车或继续购物。
点击“查看购物车”进入购物车管理页面.可以实现对购物车中商品数量的修改,查看目前已购买商品的价格总计,或者选择删除购物车中的某项商品,甚至清空购物车。
点击“结账”链接,系统在新页面中会生成一个交易流水号,继续点击“结账",如果后台保存成功,则提示交易完成,点击链接离开。
2.2。1登录模块
登录流程如图2-3。管理员在登录表单填写用户名,密码,将表单与Flag标志提交至Servlet。系统根据XML文件的配置,调用相关的Servlet类(MemberController.java)。Servlet根据Flag的值,调用相应的函数,查询数据库表(member)并进行判断,如果用户名与密码匹配,则跳转到管理页面(manage。jsp),否则,输出登录失败页面。
图2-2登录模块流程图
2。2。2商品信息查看模块
在Left。jsp 中点击“商品信息管理页面”,链接为”Goods。do?flag=1” .系统根据XML配置文件,调用GoodsController。java 。接受到Flag=1 ,调用FindAll()方法,查询MysqL数据库中goods表,查询所有商品信息,返回一个List<Goods〉 集合,名为list。利用req。setAttribute("goods”, list) 将集合存入request范围内,然后跳转至商品信息展示页面(Goodsmanage.jsp).
在商品信息展示页面,创建一个Table。列名分别为商品各项属性名。新建一个List<Goods> list.。将request 范围内的“goods”接收并进行强制类型转换。循环list,将商品输出。
在每一行商品的后面,加上“删除”“更新”两个链接,分别为:“Goods.do?flag=2&id=<%=list.get(i).getID()%〉”,“Goods.do?flag=5&id=<%=list。get(i).getID()%>”.点击链接,可以调用GoodsController.java 中的相应函数,传递参数为ID,进行删除或更新的操作。
相关流程见图2—3。
图2-3商品信息查看模块流程图
2.3.3购物车模块
添加商品至购物车时,会对购物车中的商品进行校验,若商品已在购物车中,则不在购物车中添加新项目,而是只修改商品数量。
顾客可以在购物车中编辑商品信息,包括修改商品数量,删除某些不想要的商品,或者清空购物车.每点击相关链接就调用servlet的对应函数对session中的ShoppingCart进行操作。如果点击“结账”,则进入生成流水号页面。结账成功后,则对数据库中的商品余量进行修改,自动减去顾客购买的商品数量。
购物车流程图如图5-11所示。
图5—11 购物车模块流程图
3数据库的数据表设计与映射
3。1数据库表设计
商品基本信息表见表3-1。
表3—1 商品基本信息表
名称
含义
类型
约束
备注
GoodsID
商品ID
Int 20
主键
自动增长
GoodsName
商品名称
Varchar 10
唯一值
GoodsType
商品类型
Int 20
不为空
GoodsPrice
单价
Int 10
不为空
GoodsPurchasePrice
进价
Int 10
不为空
GoodsAmount
商品数量
Int 10
展开阅读全文