软件工程课程设计校园卡.docx
- 文档编号:30048111
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:34
- 大小:571.97KB
软件工程课程设计校园卡.docx
《软件工程课程设计校园卡.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计校园卡.docx(34页珍藏版)》请在冰豆网上搜索。
软件工程课程设计校园卡
课程设计说明书
课程名称
:
软件工程导论
课程代码
:
题目
:
校园卡管理系统
年级/专业/班
:
学生姓名
:
学号
:
指导老师
:
开题时间
:
2011年6月6日
完成时间
:
2011年6月30日
2011年6月30日
课程设计任务书及成绩评定
课程名称
:
软件工程导论
完成者
:
1、设计的目的与要求
1)加强学生的实践能力;
2)理解小型系统开发的基本步骤;
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
项目的递交
3、成绩评定
设计成绩:
(教师填写)
指导老师:
(签字)
2011年月日
第一章项目开发计划书
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支持条件
操作系统需要windows2000以上;
操作系统环境:
java虚拟机,.netFrameWork3.0;
数据库需要SQLServer2000;
第二章可行性分析
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企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
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被锁,将会出现错误信息:
“KardLocked”
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数据库联接公共部分
publicstaticConnectionconn=null;
publicstaticStatementstate=null;
publicstaticvoidodbc(){
StringDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
StringconnectionStr="jdbc:
odbc:
myodbc";
try{
Class.forName(DBDriver);
}
catch(java.lang.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*fromstudent_infowherestu_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("男");
elsesex.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*fromcard_infowhereid="+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.getText())-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_infosetsum="+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){
case3:
inta=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());
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 校园卡