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

下载本文档

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

文档简介

软件工程课程设计-校园卡摘要:本软件工程课程设计围绕校园卡系统展开。详细阐述了校园卡系统的需求分析、总体设计、详细设计、编码实现以及测试等阶段。通过该课程设计,旨在开发一个功能完善、稳定可靠的校园卡系统,实现校园内各类消费、身份识别等功能,提高校园管理效率和服务质量。一、引言(一)项目背景随着信息化技术在校园管理中的广泛应用,校园卡系统成为了校园数字化建设的重要组成部分。校园卡集身份识别、消费支付等多种功能于一体,方便了师生的校园生活,提高了学校管理的便捷性和准确性。(二)项目目标1.实现校园卡的基本功能,包括充值、消费、查询余额等。2.支持多种消费场景,如图书馆借阅、食堂就餐、超市购物等。3.具备良好的安全性,保障用户信息和资金安全。4.提供简洁易用的用户界面,方便师生操作。二、需求分析(一)用户需求1.学生用户能够方便快捷地进行校园卡充值。在不同消费场所进行消费,如食堂刷卡就餐、超市购物、图书馆借阅等。随时查询校园卡余额、消费记录等信息。2.教职工用户除具备学生用户的基本功能外,还可能涉及到一些特殊权限,如门禁管理等。3.管理员用户负责校园卡系统的后台管理,包括用户信息管理、卡片管理、充值管理、消费记录查询与统计等。(二)功能需求1.充值功能支持多种充值方式,如现金充值、银行卡充值、线上充值等。记录每次充值的金额、时间、充值方式等信息。2.消费功能能够在不同消费终端上进行消费,消费终端应具备快速识别校园卡并完成交易的功能。记录消费金额、消费时间、消费场所等信息。3.查询功能用户可以查询校园卡余额、消费明细等信息。管理员可以查询所有用户的相关信息及统计数据。4.挂失与解挂功能用户丢失校园卡后可及时挂失,防止卡片被盗用。在找回卡片后可进行解挂操作。5.补卡功能当校园卡损坏或丢失且挂失后,用户可申请补卡。补卡时应确保新卡与原卡信息一致,并转移原卡余额。(三)性能需求1.响应时间充值、消费等操作的响应时间应控制在较短时间内,一般不超过3秒。2.并发处理能力系统应能够支持一定数量的用户同时进行操作,如在高峰时段保证不出现卡顿现象。3.数据准确性确保用户信息、交易记录等数据的准确性,数据误差率应控制在极小范围内。(四)安全性需求1.用户身份认证采用合适的身份认证方式,如密码、指纹识别等,确保只有合法用户能够操作校园卡系统。2.数据加密对用户信息、交易数据等进行加密处理,防止数据泄露和篡改。3.访问控制严格控制不同用户角色对系统功能的访问权限,管理员具有最高权限,学生和教职工具有相应的操作权限。三、总体设计(一)系统架构1.表现层提供用户与系统交互的界面,包括充值页面、消费页面、查询页面等。采用图形化界面设计,方便用户操作。2.业务逻辑层负责处理系统的业务逻辑,如充值业务、消费业务、查询业务等。对业务规则进行封装,提高代码的可维护性和复用性。3.数据访问层与数据库进行交互,实现数据的存储和读取。包括用户信息、卡片信息、充值记录、消费记录等数据的管理。(二)模块划分1.用户管理模块负责管理用户的基本信息,包括注册、登录、信息修改等功能。2.卡片管理模块处理校园卡的发行、挂失、解挂、补卡等操作。3.充值管理模块实现多种充值方式的管理,记录充值信息。4.消费管理模块管理校园卡的消费业务,与消费终端进行交互。5.查询统计模块提供用户和管理员的查询功能,以及消费数据的统计分析。(三)数据库设计1.用户表(User)字段:用户ID、姓名、性别、学号/工号、密码、联系方式等。2.卡片表(Card)字段:卡片ID、用户ID、卡片状态(正常/挂失/损坏)、余额等。3.充值记录表(RechargeRecord)字段:充值记录ID、卡片ID、充值金额、充值时间、充值方式等。4.消费记录表(ConsumptionRecord)字段:消费记录ID、卡片ID、消费金额、消费时间、消费场所等。四、详细设计(一)用户管理模块详细设计1.注册功能用户输入注册信息,包括姓名、学号/工号、密码等。系统对输入信息进行合法性验证,如学号/工号是否符合格式要求,密码强度是否满足条件等。验证通过后将用户信息插入到用户表中。2.登录功能用户输入学号/工号和密码。系统查询用户表,验证输入的信息是否与数据库中的记录匹配。若匹配成功,则生成用户会话,允许用户登录系统;否则提示登录失败。(二)卡片管理模块详细设计1.发行卡片功能管理员在系统中输入用户ID,系统自动生成唯一的卡片ID。将卡片信息(包括卡片ID、用户ID、初始余额等)插入到卡片表中,卡片状态设置为正常。2.挂失卡片功能用户或管理员提交挂失请求,输入卡片ID。系统查询卡片表,将指定卡片的状态设置为挂失。3.解挂卡片功能用户或管理员提交解挂请求,输入卡片ID。系统查询卡片表,将指定卡片的状态设置为正常。4.补卡功能用户提交补卡申请,输入卡片ID。系统查询卡片表,获取原卡信息,如用户ID、余额等。生成新的卡片ID,将新卡片信息插入卡片表,同时将原卡余额转移到新卡,并将原卡状态设置为已补卡。(三)充值管理模块详细设计1.现金充值功能用户选择现金充值方式,输入充值金额。系统验证充值金额是否在规定范围内。获取用户卡片ID,查询卡片表,更新卡片余额,并插入充值记录到充值记录表中。2.银行卡充值功能用户输入银行卡信息和充值金额。系统调用支付接口进行银行卡验证和充值操作。充值成功后,更新卡片余额并记录充值信息。3.线上充值功能用户选择线上充值平台(如微信、支付宝等),扫描二维码进行充值。线上平台返回充值结果,系统更新卡片余额并记录充值信息。(四)消费管理模块详细设计1.消费终端交互功能消费终端读取校园卡信息,发送消费请求到系统。系统查询卡片表,验证卡片状态是否正常以及余额是否足够。若验证通过,扣除相应消费金额,更新卡片余额,并插入消费记录到消费记录表中。向消费终端返回消费结果。(五)查询统计模块详细设计1.用户查询功能用户登录系统后,可在界面上选择查询余额或消费记录。系统根据用户提供的卡片ID,查询卡片表获取余额信息,或查询消费记录表获取消费明细信息,并展示给用户。2.管理员查询统计功能管理员登录系统后,可查询所有用户的信息、卡片信息、充值记录、消费记录等。系统提供统计功能,如按时间段统计消费总额、按消费场所统计消费次数等,并生成相应报表供管理员查看。五、编码实现(一)开发环境1.编程语言:选择Java语言进行开发。2.开发工具:使用IntelliJIDEA作为集成开发环境。3.数据库:采用MySQL数据库存储系统数据。(二)关键代码示例1.用户注册代码片段```javapublicclassUserRegistration{publicvoidregisterUser(Useruser){Stringsql="INSERTINTOUser(name,studentId,password,contact)VALUES(?,?,?,?)";try(Connectionconn=DriverManager.getConnection(url,username,password);PreparedStatementpstmt=conn.prepareStatement(sql)){pstmt.setString(1,user.getName());pstmt.setString(2,user.getStudentId());pstmt.setString(3,user.getPassword());pstmt.setString(4,user.getContact());pstmt.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}}}```2.卡片挂失代码片段```javapublicclassCard挂失{publicvoid挂失Card(StringcardId){Stringsql="UPDATECardSETstatus='挂失'WHEREcardId=?";try(Connectionconn=DriverManager.getConnection(url,username,password);PreparedStatementpstmt=conn.prepareStatement(sql)){pstmt.setString(1,cardId);pstmt.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}}}```3.消费功能代码片段```javapublicclassConsumption{publicvoidconsume(StringcardId,doubleamount,Stringlocation){Stringsql1="SELECTbalanceFROMCardWHEREcardId=?";Stringsql2="UPDATECardSETbalance=balance?WHEREcardId=?";Stringsql3="INSERTINTOConsumptionRecord(cardId,amount,consumptionTime,location)VALUES(?,?,NOW(),?)";try(Connectionconn=DriverManager.getConnection(url,username,password);PreparedStatementpstmt1=conn.prepareStatement(sql1);PreparedStatementpstmt2=conn.prepareStatement(sql2);PreparedStatementpstmt3=conn.prepareStatement(sql3)){pstmt1.setString(1,cardId);ResultSetrs=pstmt1.executeQuery();if(rs.next()){doublebalance=rs.getDouble("balance");if(balance>=amount){pstmt2.setDouble(1,amount);pstmt2.setString(2,cardId);pstmt2.executeUpdate();pstmt3.setString(1,cardId);pstmt3.setDouble(2,amount);pstmt3.setString(3,location);pstmt3.executeUpdate();}else{System.out.println("余额不足");}}}catch(SQLExceptione){e.printStackTrace();}}}```六、测试(一)测试计划1.测试目标验证校园卡系统是否满足需求规格说明书中的各项功能、性能和安全性要求。2.测试范围涵盖用户管理、卡片管理、充值管理、消费管理、查询统计等所有功能模块。3.测试方法采用黑盒测试方法,包括等价类划分、边界值分析、因果图等。同时进行部分白盒测试,对关键代码逻辑进行覆盖测试。4.测试人员安排由项目团队成员共同参与测试,包括开发人员、测试人员等。(二)测试用例1.用户注册测试用例用例1:合法信息注册输入:姓名(合法)、学号(合法)、密码(符合强度要求)、联系方式(合法)。预期输出:注册成功,用户信息插入数据库。用例2:非法学号注册输入:姓名(合法)、学号(不合法格式)、密码(符合强度要求)、联系方式(合法)。预期输出:提示学号格式错误,注册失败。2.卡片挂失与解挂测试用例用例1:挂失卡片输入:卡片ID。预期输出:卡片状态变为挂失。用例2:解挂卡片输入:已挂失的卡片ID。预期输出:卡片状态变为正常。3.充值功能测试用例用例1:现金充值输入:卡片ID、充值金额(合法)。预期输出:卡片余额增加,生成充值记录。用例2:超出限额充值输入:卡片ID、超出限额的充值金额。预期输出:提示充值金额超出限额,充值失败。4.消费功能测试用例用例1:正常消费输入:卡片ID、消费金额(小

温馨提示

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

评论

0/150

提交评论