软件工程课程设计-校园卡

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书
课程名称: 软件工程导论课程代码:
题目: 校园卡管理系统年级/专业/班:
学生姓名:
学号:
指导老师:
开题时间: 2011年6月6日完成时间: 2011年6月30日
2011年6月30日
课程设计任务书及成绩评定
课程名称: 软件工程导论
完成者:
1、设计的目的与要求
1)加强学生的实践能力;
2)理解小型系统开发的基本步骤;
3)本系统的功能包括:学生信息管理模块、刷卡消费、查询、存款模块(包括基本的添加、修改、删除功能)。

2、设计进度及完成情况
3、成绩评定
设计成绩:(教师填写)
指导老师:(签字)
2011 年月日
目录
第一章项目开发计划书 (5)
1.1引言 (5)
1.1.1编写目的 (5)
1.1.2背景 (5)
1.2项目概述 (5)
1.2.1工作内容 (5)
1.2.2主要参加人员 (5)
1.2.3产品 (6)
1.2.4服务 (6)
1.2.5验收标准 (6)
1.2.6本计划的批准者和批准日期 (6)
1.3实施计划 (6)
1.3.1工作任务的分配与人员分工 (6)
1.3.2进度 (7)
1.4支持条件 (7)
第二章可行性分析 (8)
2.1可行性研究的前提 (8)
2.2 对现有系统的分析 (8)
2.3 所建议的系统 (8)
2.3.1对所建议系统的说明 (8)
2.3.2处理流程和数据流程 (8)
2.4经济上可行性 (9)
2.5技术可行性 (9)
2.6开发工具的选择 (9)
2.7 新系统的影响 (10)
2.8投资及效益分析 (10)
2.9 结论 (10)
第三章需求分析 (11)
3.1市场需求分析 (11)
3.2系统功能性需求分析 (11)
3.2.1对功能的规定 (11)
3.2.2对性能的规定 (13)
3.3系统非功能性需求 (14)
3.3.1故障处理要求 (14)
3.3.2其他专门要求 (14)
3.3 数据字典 (14)
3.4运行环境规定 (15)
3.5实体-联系图 (16)
第四章系统设计 (17)
4.1 总体设计 (17)
4.1.1需求概述 (17)
4.1.2校园卡管理信息系统概要设计 (17)
4.2详细设计 (19)
4.2.1编写定义 (19)
4.2.2功能模块的设计与实现 (19)
4.2.3运行设计 (20)
4.2.4系统数据结构设计 (20)
4.2.5系统出错处理设计 (21)
4.2.6数据流划分 ....................................................................................................... 错误!未定义书签。

4.3 功能模块设计 (21)
4.3.1 入口程序entry() 设计说明 (21)
4.3.2 查询模块search() 设计说明 (24)
4.3.3 存储、消费模块pay() 设计说明 (25)
4.3.4 挂失模块deposit() 设计说明 (29)
第五章系统测试 (31)
5.1 测试的作用和意义 (31)
5.2 测试方法 (31)
5.3 测试内容 (31)
5.4 测试结果 (32)
5.4.1 注册和登录模块测试 (32)
5.4.3 卡密码修改模块测试 (34)
5.4.4 账户充值、消费模块测试 (34)
5.5 结论 (35)
第六章总结 (36)
参考文献和资料 (37)
第一章项目开发计划书
1.1引言
1.1.1编写目的
此项目开发计划书的编写主要是为了给开发《校园卡管理系统》做主要的规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。

1.1.2背景
校园卡管理系统是一套针对大学校园食堂饮食交费,一般消费等方面的信息管理系统,它包括了同学在校内消费各方面内容:刷卡消费、查询、存款,学生信息管理等。

方便的对同学饭卡信息进行各项操作,定时进行数据的备份更新,保持数据的一致性和准确性,各方面的内容应该相互联系,最终产生各种查询统计报表,以供同学进行检查。

用户通过系统首页面,创建饭卡,存入钱。

消费时根据饭卡ID判断该用户是否是合法用户,同时进行消费操作。

管理员可以对系统进行新建饭卡、注销饭卡、修改饭卡信息等操作,而学生进行消费的操作。

1.2项目概述
1.2.1工作内容
校园卡卡管理系统的主要任务就是把人们从繁琐的交费,找零工作中解放出来,用计算机实现对销售合同资料进行存款,消费,查询、修改、删除以及存储等功能。

同时,用计算机能够快速准确地完成共档案资料的统计和汇总工作,迅速地打印出各种报表资料以供使用。

1.2.2主要参加人员
组长:蒋瑞
设计:刘嘉柏、蒋瑞
开发:杨金、邹振兵
1.2.3产品
1系统开发计划书
2系统需求说明书
3系统设计说明书
4测试计划
5一个能正确运行的可执行程序,源程序清单(有注释)
1.2.4服务
安装、维护和运行支持从使用该系统开始,维护期限为一年。

1.2.5验收标准
各个功能均能正常使用,满足用户的需求。

1.2.6本计划的批准者和批准日期
批准者:颜富强
批准日期:2011年6月6日
1.3实施计划
1.3.1工作任务的分配与人员分工
组长: 蒋瑞任务: (1)系统总的开发计划书
(2)每周至少组织小组讨论一次,列出本周开发
计划
(3)项目开发进度的管理
(4)团队的组织和协调
设计:刘嘉柏、蒋瑞任务: (1)参与小组讨论
(2)进行系统的需求分析和系统设计
(3)完成系统需求说明书和系统设计说明书
(4)编写测试计划,参与系统测试
(5)协助文档人员完成用户相关文档开发:邹振兵、杨金任务: (1)参与小组讨论
(2)根据设计完成编码,并注释
(3)进行单元测试
1.3.2进度
系统规划阶段: 项目标志性事件开始到完成
开发阶段:项目开发计划书的完成 6.6-6.7
需求分析阶段: 系统需求说明书完成 6.8-6.10
设计阶段: 系统设计说明书 6.11-6.15
编码实现: 项目的形成 6.16-6.23
测试阶段: 测试计划 6.24-6.27
移交阶段: 项目的递交 6.28-6.30
1.4支持条件
操作系统需要 windows 2000以上;
操作系统环境:java虚拟机,.netFrameWork3.0;
数据库需要SQL Server 2000;
第二章可行性分析
2.1可行性研究的前提
要求:满足客户使用校园卡的各项功能及要求,并对客户资料具有保密性
目标:提高处理速度,改进安全系统,方便用户使用。

条件、假定和限制:所建议系统的运行寿命最少1年;进行系统方案选择比较的时间为1天。

2.2 对现有系统的分析
人工操作频繁加减存款。

工作繁琐,枯燥,容易出错,完成工作所需要的时间较长,工作效率比较低。

现有系统技术性含量比较低,操作不便,工作量大,需要较多的人才能完成工作。

系统依赖于大量的人力和物质投入,工作效率较低和成本较高。

2.3 所建议的系统
2.3.1对所建议系统的说明
使用饭卡可以快速便捷的进行消费。

中央电脑--数据库对饭卡的操作相应至关重要。

在高峰时刻,也能保证,存款,消费无错误,并且可记录,撤销操作。

2.3.2处理流程和数据流程
系统的处理流程
图1 系统的处理流程图
2.4经济上可行性
开发成本:200元人民币。

效益:暂时无法具体衡量。

效益/投资比:暂时无法估算。

投资回收期:大约2个月。

2.5技术可行性
a.在当前的限制条件下,该系统的功能目标能够达到;
b.利用现有的技术,该系统的功能能实现;
c.对开发人员的数量和质量的要求能满足;
d.在规定的期限内,本系统的开发能够完成。

2.6开发工具的选择
Java概述
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。

Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。

Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。

特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

2.7 新系统的影响
1对设备的影响
设备不变
2对软件的影响
新系统使用具有较高技术的软件
3对对象的影响:
新系统要求对客户、合同、操作人员有较为详细地记录。

4对系统运行过程的影响:
系统的运行更加高速、有效。

5对开发的影响:
新系统的开发环境要求不高,只需要现有设备就可以完成,且不会在开发过程中影响到现有系统的使用。

6对地点和设施的影响:
开发新系统不用考虑地点等方面的问题。

7技术条件方面的可能性
开发新系统的技术虽较现有系统比较先进,但总的来看,这些技术均已比较成熟,因此新系统的开发在技术方面应该不会有带大的困难。

2.8投资及效益分析
新系统开发完成后,只需要2~3面管理员,大大减少的人员方面的开支,同时由于数据冗余度也大大降低,在物质方面也降低了开销,因此会有较好的市场效益。

2.9 结论
通过技术、经济、具体操作等方面的研究可知,新系统可开发风险较低,可以开始进行具体的开发工作。

第三章需求分析
3.1市场需求分析
过去的系统技术性含量比较低,操作不便,工作量大,需要较多的人才能完成工作,而且还依赖大量人力物力的投入,工作效率低,成本高。

相比于过去低级的系统,现在经过改良之后的系统不但操作简便,而且只需要极少数的管理人员,大大的提高的工作效率。

3.2系统功能性需求分析
3.2.1对功能的规定
本系统面向全体学生,所以需要录入学生的一些信息,然后再创建饭卡。

最后才是学生向饭卡中存款,进行刷卡消费。

由于存储了学生的信息,所以挂失起来也更为的方便。

以下给予数据流图来更为直观的描述出此系统的功能:
图2 顶层数据流图
图3 创建校园卡ID数据流图
图4 校园卡消费数据流图
图5 校园卡信息查询数据流图
图6 校园卡存款流图
3.2.2对性能的规定
(1)精度
输入数据:查询最大查询范围1年内;卡ID合法性;客户信息合法性;
输出数据:余额以 213.12的形式最多小数点后两位,即到分为止显示。

(小于的部分不可能出现)
(2)时间特性要求
刷卡响应时间不超过1秒;
查询响应时间不超过5秒;
3.3系统非功能性需求
3.3.1故障处理要求
刷卡响应时间超过1秒后,自动提出警告。

要求重新刷卡。

查询超过5秒,要显示查询时间长的提示信息。

以免误认为死机。

当计算机突然死机、重启、断电时自动存储备份数据。

即便没有存上。

也有备份数据库,供恢复。

3.3.2其他专门要求
普通学生只能刷卡消费,系统管理员还可以进入管理员界面;刷卡服务员可以操作刷卡器。

界面清晰、美观,操作简单、方便。

所有数据存储在学校服务器端,数据存储安全可靠。

3.3 数据字典
1学生信息:
学生学号 = [数字|字母]
身份证号 = [数字|字母]
卡ID = [数字|字母]
学生姓名 = [汉字]
性别 = [男|女|null]
2 卡信息
卡ID = [数字|字母]
余额= [数字]
锁=[true|false]
3 卡历史
卡ID = [数字|字母]
时间=[时间格式]
款额=[数字]
操作=[存款|消费|其他]
数据元素的数据字典卡片:
学生信息
名字:学生信息别名:
描述:记录学生相关信息
定义:学生信息=学生学号+身份证号+卡ID+学生姓名+性别
位置:数据库
卡信息
名字:卡信息别名:
描述:记录卡的信息
定义:卡信息 =卡ID+余额+锁
位置:数据库
卡历史信息
名字:卡历史信息别名:
描述:记录卡历史的信息
定义:客户信息=卡ID+时间+款额+操作
位置:数据库
3.4运行环境规定
1中央电脑,要求容量大,CPU能够满足查询的。

2刷卡器,要求读取ID敏捷,准确。

3要求刷卡器与中央电脑连接。

通信量要满足查询精度和速度。

4.刷卡器上的功能建,要求显示明确,意思表达精确。

3.5实体-联系图
本系统的实体有:学生信息、卡信息它们之间的关系是一对一的。

卡信息和卡历史是一对多的。

根据分析可以得出如下的E-R图:
图7 系统E-R图
第四章系统设计
4.1 总体设计
4.1.1需求概述
总体设计的主要任务是设计程序的体系结构,也就是确定程序有哪些模块组成以及模块间的关系。

总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。

然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且制定实现这个方案的进度计划。

分析员应该综合分析比较这些合理的方案,从中选出一个最佳方案向用户和使用部门负责人推荐。

如果用户和使用部门的负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软结构,通常,进行必要的数据库设计,确定测试要求并且是定测试计划。

4.1.2校园卡管理信息系统概要设计
根据需求分析和系统将要实现的功能来看,系统有如下基本功能:
●新建饭卡
●存款——消费
●查询历史
●挂失
●注销
图8 系统层次图
4.2详细设计
4.2.1编写定义
1.编写目的
详细设计阶段的任务就是把解法具体化,解决具体应怎样实现这个系统。

也称为模块设计,详细地设计每个模块,确定实现模块所需的功能需要的算法和数据结构。

2.定义
在软件具体设计阶段的专用术语有:程序流程图、盒图(N—S图)、判定表、判定树、PAD 图
4.2.2功能模块的设计与实现
1新建校园饭卡模块
(1)用户类别:
1有提供学生查阅的学生界面。

2 提供管理员操作的管理员界面。

3 提供刷卡的刷卡服务员界面。

(2)管理员界面菜单
1 状态
1.1登陆;
1.2注销;
2 新建--新建学生信息界面;
3 查询更新
3.1 学生消费历史
3.2 学生信息
4 挂失
4.1 加锁
4.2 解锁
5 注销卡
(3)学生查询菜单
1 状态
1.1登陆;
1.2注销;
2 查询历史
3 查询学生信息
(4)刷卡界面
1 状态
1.1登陆;
1.2注销;
2 消费方式
2.1 正常
2.2 定价
3 显示上次输出
2外部接口
说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。

3内部接口
查询和更新都要调用数据库的操作。

4.2.3运行设计
1.运行模块组合
具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据。

2.运行控制
软件运行时有比较友好的用户界面,基本能够实现用户的数据处理要求。

3.运行时间
系统的运行时间基本可以达到用户所提出的要求。

4.2.4系统数据结构设计
1.物理结构设计
系统的物理结构具体由数据库来设计与生成,此处略。

2.数据结构与程序的关系
系统的数据结构由标准数据库语言SQL生成。

4.2.5系统出错处理设计
1.出错信息
1 在学生刷卡后,卡ID被锁,将会出现错误信息:“Kard Locked”
2 学生卡信息丢失,查询时或者消费-存款时,不认卡情况
3 存款额大于999.99元,刷卡器只显示小于等于999,99元部分
4 消费时消费额大于存款额。

系统将会提示错误,不作其他任何操作。

2.措施(号码对应)
1 只能解卡锁
2 有备份数据库,随时可以恢复
3 只能更换刷卡器
4 计时充钱
4.3 功能模块设计
4.3.1 入口程序entry() 设计说明
1.程序描述
提供管理员和学生用户,刷卡服务三种环境,限制用户对系统的使用权限。

特点:非常驻内存;单独的一个程序;顺序处理。

2.输入项
权限:三个单选项。

Level。

管理员用户名:字符串类型,user,长度不超过20,可以是数字(不能开头)和字母、汉字;
管理员密码:字符串类型,pass, 长度不超过20, 可以是数字和字母,区分大小写
3.输出项
欢迎或者提示错误信息。

4.流程逻辑
1)程序流程图
图9 程序流程图
具体方法代码实现如下:
1数据库联接公共部分
public static Connection conn = null;
public static Statement state = null;
public static void odbc(){
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String connectionStr = "jdbc:odbc:myodbc";
try{
Class.forName(DBDriver);
}
catch(ng.ClassNotFoundExceptione)
{System.err.println("DBconnecton:"+e.getMessage());}
try{
conn = DriverManager.getConnection(connectionStr,"","");
state = conn.createStatement();
}catch(SQLExceptionex)
{ System.err.println("aq.executeQuery:"+ex.getMessage());}
}
2 刷卡选择部分
//=================== 刷卡界面===================
if(this.jRadioButton2.isSelected()){
this.setVisible(false);
JOptionPane.showMessageDialog(null,"欢迎进入刷卡界面!");
Spend.main(null);
}
//=================== 学生查询界面===================
if(this.jRadioButton3.isSelected()){
this.setVisible(false);
JOptionPane.showMessageDialog(null,"欢迎进入学生查询界面!");
StuInfo.main(null);
4.3.2 查询模块search() 设计说明
1.程序描述
完成对系统(数据库)的查找。

2.输入项
学生卡信息,时间信息,消费信息等。

3.输出项
查找结果。

4.流程逻辑PAD图
图10 流程逻辑PAD图
具体方法代码实现如下:
if(num.getText().equals("") )
{
JOptionPane.showMessageDialog(null,"卡号不能为空!");
num.setFocusable(true);
}
else{
try{
Stringsql = "select * from student_info where stu_num = "+num.getText();
ResultSetrs= Main.state.executeQuery(sql);
if(rs.next())
{
id.setText(rs.getString(2));
name.setText(rs.getString(3));
if(rs.getBoolean(4))
sex.setText("男");
else sex.setText("女");
tel.setText(rs.getString(5));
address.setText(rs.getString(6));
}
else{
JOptionPane.showMessageDialog(null,"卡号错误!");
}
}
catch(SQLExceptionex)
{ System.err.println("aq.executeQuery:"+ex.getMessage());} }
4.3.3 存储、消费模块pay() 设计说明
1.程序描述
完成消费部分。

对输入和消费额,进行合法性验证。

2.输入项
卡ID,定价与否,消费额。

3.输出项
卡余额,错误提示。

具体方法代码实现如下:
1 搜索部分
if(Ids.getText().equals("") )
{JOptionPane.showMessageDialog(null,"卡号不能为空!");
Ids.setFocusable(true);
}else{
try{
Stringsql= "select * from card_info where id = "+Ids.getText();
ResultSetrs= Main.state.executeQuery(sql);
if(rs.next()){
if(rs.getBoolean(3))
{JOptionPane.showMessageDialog(null,"卡已
经被锁,如要解锁,请与管理员联系否则10日后自动注销!");} else{
if(DjCheck.isSelected())
{Sum.setText(rs.getString(2));
this.result=String.valueOf(Integer.parseInt(Sum.getT
ext())-Integer.parseInt(Dingjia.getText()));
JOptionPane.showMessageDialog(null,"消费完毕,卡剩余
"+ result +"。

如果要继续消费请在10秒内操作,只后自动
关闭帐户");
Sum.setText(result); }
else{
Ids.setEditable(false);
this.jButton26.setEnabled(false);
this.jPanel1.setVisible(true);
Sum.setText(rs.getString(2));
jButton12.setEnabled(true);
jButton14.setEnabled(true);
jButton15.setEnabled(true);
}
}
}
else{
JOptionPane.showMessageDialog(null,"卡号错误!");
}
}
catch(SQLExceptionex)
{ System.err.println("aq.executeQuery:"+ex.getMessage());}

2 消费部分
try{
this.result=String.valueOf((Integer.parseInt(Sum.getText()) - Integer.parseInt(Now.getText())));
Stringsql="updatecard_infoset
sum="+result+"whereid="+Ids.getText();
if(Main.state.executeUpdate(sql)==0)
{
JOptionPane.showMessageDialog(null,"消费失败");
}
else{
this.nows =Now.getText();
this.sums =Sum.getText();
JOptionPane.showMessageDialog(null,"消费完毕,卡剩余"+
result +"。

如果要继续消费请在10秒内操作,只后自动关闭帐户
");
Sum.setText(result);
}
}catch(SQLExceptionex)
{ System.err.println("aq.executeQuery:"+ex.getMessage());}
3 加减乘部分
if(Jisuan.getText().compareTo("") == 0)
{
Jisuan.setText(Now.getText());
Now.setText("0");
}
else {
switch(ops){
case 3:
int a= 0;
a=Integer.parseInt(Jisuan.getText()) * Integer.parseInt(Now.getText());
if(a>999)
{
JOptionPane.showMessageDialog(null,"计算量超过消费最大值!");
}
else{
Jisuan.setText(String.valueOf(Integer.parseInt(Jisuan.getText())
* Integer.parseInt(Now.getText())));
Now.setText(Jisuan.getText());
}
break;
case 2:
int b=0;
b=Integer.parseInt(Jisuan.getText())+
Integer.parseInt(Now.getText());
if(b>999)
{
JOptionPane.showMessageDialog(null,"计算量超过消费最大值!");
}
else{ Jisuan.setText(String.valueOf(Integer.parseInt(Jisuan.
getText())+Integer.parseInt(Now.getText())));
Now.setText(Jisuan.getText());
}
break;
case 1:
int c=1;
c=Integer.parseInt(Jisuan.getText())-Integer.parseInt(Now.getText());
if(c>999||c<=0)
{
JOptionPane.showMessageDialog(null,"计算量超过消费有效值!");
}
else{
Jisuan.setText(String.valueOf(Integer.pars
eInt(Jisuan.getText()) - Integer.parseInt(Now.getText())));
Now.setText(Jisuan.getText());
}
break;
}
}
ops = 0 ;
Op.setText("=");
4.3.4挂失模块deposit() 设计说明
1.程序描述
完成挂失部分。

对卡进行挂失和解挂操作,进行合法性验证。

2.输入项
卡ID,卡密码额。

3.输出项
成功提示,错误提示。

4.流程逻辑判断表
if(num.getText().equals("") )
{JOptionPane.showMessageDialog(null,"学生学号不能为空");
num.setFocusable(true);
}
else{
try{
String sql = "select * from student_info where stu_num = "+num.getText();
ResultSetrs=Main.state.executeQuery(sql);
if(rs.next())
{
if(rs.getString(7).compareTo(pass.getText())==0)
{
JOptionPane.showMessageDialog(null,"请按确认锁键,确认锁卡!");
num.setEnabled(false);
pass.setEnabled(false);
this.jButton1.setEnabled(false);
this.jButton2.setEnabled(true);
ids=rs.getInt(1);
}
else {
JOptionPane.showMessageDialog(null,"学生密码错误!");
}
}
else{
JOptionPane.showMessageDialog(null,"学生学号错误!");
}
}
catch(SQLException ex)
{ System.err.println("aq.executeQuery:"+ex.getMessage());}
}
第五章系统测试
5.1 测试的作用和意义
系统测试是管理信息系统的开发周期中的一个十分重要环节。

尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免会留下错误,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将会付出更大的代价。

系统测试占用的时间、花费的人力和成本占软件开发的很大比例。

统计表明,开发较大规模的系统,系统测试的工作量大约占整个软件开发工作量的40%-50%。

而对于一些特别重要的大系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段的总和的若干倍。

因此做好系统交付前的系统测试的目的就是在系统在投入生产性运行之前,尽可能多的发现系统的潜在错误,这是保证系统质量的关键,也是减少系统后期维护投入的最佳方法。

5.2 测试方法
本次测试主要是对系统进行黑盒、白盒测试。

由未参与系统编程的组员参与。

通过设计不同的等价输入类对系统的各项功能进行反复运行,观察系统的返回结果来判断系统的各项功能的实现情况。

5.3 测试内容
1 软件的正常运行、关闭及退出时保存记录情况。

2 用户界面是否友好,可操作性及安全性能是否良好。

3 数据库的可维护性好,数据的录入、删除及更改是否能顺利完成。

5 各模块的共能是否能达到预期要求。

6 系统的稳定性是够良好。

5.4 测试结果
5.4.1注册和登录模块测试
经过测试,用户能在本系统进行正常的注册和登录,并在用户输入不存在的用户名或错误的密码后能给出提示。

说明本系统的注册和登录模块的各项功能都圆满实现了。

1.进入界面
图11 进入界面
2. 创建用户界面
图12 创建新卡界面3.登陆界面
图13 登陆界面
5.4.2查询模块测试
1查询主要是余额查询,经测试系统该方面运行正常。

查询结果显示
图14 查询界面
5.4.3 卡密码修改模块测试
1.密码修改
图15 密码修改界面
5.4.4 账户充值、消费模块测试
1刷卡消费界面
图16 消费界面
2.账户充值界面
图17 账户充值界面
5.5 结论
经过反复测试,系统完成后运行用户注册、登录、充值、修改密码、消费与查询等功能均正常。

虽然界面友好度还有望改善,并且卡的挂失和解挂功能没有完好的实现,但总的来说还是比较成功的。

鉴于此,发布1.0版。

第六章总结
通过这次设计,我们对软件的各个方面从策划,设计,测试,到运行,所有角色都扮演了一遍。

发现完成一项开发软件的工程,真是不容易的事情。

尤其,在需求分析阶段,除编码外,时间花的最长的阶段。

即便如此,在编程的时候,还是觉得前面需求分析做的不是很彻底。

但因时间原因,也没法做得再细致了。

虽然此系统仍存在许多缺陷,但是通过该系统设计达到了系统设计目的意义,基本掌握了软件开发的主要步骤,了解了各环节在开发时要注意的问题,从方便用户的角度出发,去考虑开发出好的软件。

另外,在设计过程中也逐渐提高了软件开发技能和编程技能。

因此本设计虽然较粗糙,但是从学习的角度上看,非常有意义。

在此,感谢颜富强老师耐心的辅导。

另外,在系统开发过程中通过组员之间的密切合作,大家互相帮助,勇于向实际困难挑战,基本完成此次设计,极大增强了团队合作意识。

参考文献和资料
1.张海藩著,软件工程导论(第五版),清华大学出版社,2008年
2.郑人杰著,软件工程,人民邮电出版社,2009年
3.闪四清著,邵明珠译,SQL Server 2008数据库应用实用教程,清华大学出
版社,2010年
4.郑阿奇著,SQL Server实用教程(第3版),电子工业出版社,2009年
5.郝玉龙著,JavaEE编程技术,清华大学出版社,2008年
6.吴映波著,Java EE 5开发基础与实践,清华大学出版社,2008年
7.李芝兴、杨瑞龙著,Java EE Web编程,机械工业出版社,2008年。

相关文档
最新文档