软件工程课程设计-校园卡_第1页
软件工程课程设计-校园卡_第2页
软件工程课程设计-校园卡_第3页
软件工程课程设计-校园卡_第4页
软件工程课程设计-校园卡_第5页
已阅读5页,还剩33页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE2/39湖南人文科技学院计算机系课程设计说明书课程名称:软件工程导论课程代码:408029题目:校园卡管理系统年级/专业/班:09级计科二班学生姓名:蒋瑞杨金刘嘉柏邹振兵学号:09408228121048指导老师:颜富强开题时间: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年月日目录第一章项目开发计划书 51.1引言 51.1.1编写目的 51.1.2背景 51.2项目概述 51.2.1工作内容 51.2.2主要参加人员 51.2.3产品 61.2.4服务 61.2.5验收标准 61.2.6本计划的批准者和批准日期 61.3实施计划 61.3.1工作任务的分配与人员分工 61.3.2进度 71.4支持条件 7第二章可行性分析 82.1可行性研究的前提 82.2对现有系统的分析 82.3所建议的系统 82.3.1对所建议系统的说明 82.3.2处理流程和数据流程 82.4经济上可行性 92.5技术可行性 92.6开发工具的选择 92.7新系统的影响 102.8投资及效益分析 102.9结论 10第三章需求分析 113.1市场需求分析 113.2系统功能性需求分析 113.2.1对功能的规定 113.2.2对性能的规定 133.3系统非功能性需求 143.3.1故障处理要求 143.3.2其他专门要求 143.3数据字典 143.4运行环境规定 153.5实体-联系图 16第四章系统设计 174.1总体设计 174.1.1需求概述 174.1.2校园卡管理信息系统概要设计 174.2详细设计 194.2.1编写定义 194.2.2功能模块的设计与实现 194.2.3运行设计 204.2.4系统数据结构设计 204.2.5系统出错处理设计 214.2.6数据流划分 214.3功能模块设计 224.3.1入口程序entry()设计说明 224.3.2查询模块search()设计说明 254.3.3存储、消费模块pay()设计说明 264.3.4挂失模块deposit()设计说明 31第五章系统测试 335.1测试的作用和意义 335.2测试方法 335.3测试内容 335.4测试结果 345.4.1注册和登录模块测试 345.4.3卡密码修改模块测试 365.4.4账户充值、消费模块测试 365.5结论 37第六章总结 38参考文献和资料 39

第一章项目开发计划书1.1引言1.1.1编写目的此项目开发计划书的编写主要是为了给开发《校园卡管理系统》做主要的规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。1.1.2背景校园卡管理系统是一套针对大学校园食堂饮食交费,一般消费等方面的信息管理系统,它包括了同学在校内消费各方面内容:刷卡消费、查询、存款,学生信息管理等。方便的对同学饭卡信息进行各项操作,定时进行数据的备份更新,保持数据的一致性和准确性,各方面的内容应该相互联系,最终产生各种查询统计报表,以供同学进行检查。用户通过系统首页面,创建饭卡,存入钱。消费时根据饭卡ID判断该用户是否是合法用户,同时进行消费操作。管理员可以对系统进行新建饭卡、注销饭卡、修改饭卡信息等操作,而学生进行消费的操作。1.2项目概述1.2.1工作内容校园卡卡管理系统的主要任务就是把人们从繁琐的交费,找零工作中解放出来,用计算机实现对销售合同资料进行存款,消费,查询、修改、删除以及存储等功能。同时,用计算机能够快速准确地完成共档案资料的统计和汇总工作,迅速地打印出各种报表资料以供使用。1.2.2主要参加人员组长:蒋瑞设计:刘嘉柏、蒋瑞开发:杨金、邹振兵1.2.3产品系统开发计划书系统需求说明书系统设计说明书测试计划一个能正确运行的可执行程序,源程序清单(有注释)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.301.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());}break;case2:intb=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;case1:intc=1;c=Integer.parseInt(Jisuan.getText())-Integer.parseInt(Now.getText());if(c>999||c<=0){JOptionPane.showMessageDialog(null,"计算量超过消费有效值!");}else{Jisuan.setText(String.valueOf(Integer.parseInt(Jisuan.getText())-Integer.parseInt(Now.getText())));Now.setText(Jisuan.getText());}break;}}ops=0;Op.setText("=");4.3.4挂失模块deposit()设计说明1.程序描述 完成挂失部分。对卡进行挂失和解挂操作,进行合法性验证。2.输入项卡ID,卡密码额。3.输出项成功提示,错误提示。4.流程逻辑判断表表1流程逻辑判断表学生代号12345678读卡成功NYNNYYNY卡没有锁NNYNYNYY存款成功NNNYNYYY显示余额显示不可能不可能显示不可能不可能显示题是错误提示不可能不可能不可能不可能显示存款成功信息不显示不显示不可能不可能不显示不可能不可能显示显示存款失败信息不显示显示不可能不可能显示不可能不可能不显示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()){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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论