收藏 分销(赏)

软件工程课程设计校园停车场管理系统软件设计说明书.docx

上传人:人****来 文档编号:9801754 上传时间:2025-04-08 格式:DOCX 页数:34 大小:41.67KB 下载积分:12 金币
下载 相关 举报
软件工程课程设计校园停车场管理系统软件设计说明书.docx_第1页
第1页 / 共34页
软件工程课程设计校园停车场管理系统软件设计说明书.docx_第2页
第2页 / 共34页


点击查看更多>>
资源描述
校园停车场管理系统 设计说明书 课程名称: 软件工程课程设计 小组成员:------------------------------------------------- 指导教师: --------- 课程时间: 2013.08.27——09.06 第 31 页 目录 第一章 问题定义 1 1.1 引言 1 1.2 系统名称及概况 1 第二章 可行性研究 1 2.1 系统分析 1 2.2 系统组成 3 第三章 需求分析 3 3.1 功能需求分析 3 3.2 数据库需求分析 6 3.2.1 数据库概念模型 6 3.2.2 数据库逻辑模型 7 第四章 总体设计 11 4.1 总体设计 11 4.2 数据流图 11 4.3 业务流程分析 12 4.4 系统功能模块 13 4.5 系统模块设计 14 4.6 数据库实现脚本 15 4.6.1 定义SQL模式 15 4.6.2 创建基本表 15 4.6.3 创建SQL索引 19 4.6.4 SQL数据控制——授予权限 19 第五章 详细设计 20 5.1 软件结构功能模块 20 5.2 程序流程图 22 第六章 编码与测试 26 6.1 身份验证C++源程序代码 26 6.2 身份验证MFC窗口实现 27 6.3 身份验证模块软件测试 28 结语 28 附件1:伸缩门改造目标样式 29 附件2:校园停车场分布示意图 30 第一章 问题定义 1.1 引言 近年来,随着我国经济快速发展,人们生活水平不断提高,物质需求与生活方式也发生着深刻变化,以前属于奢侈品汽车己经逐步走入了人们日常生活。伴随汽车消费大众化,校园内车辆数迅速增加,迫切需要规范化校园停车场管理系统对校园停车进行高效管理。 停车是"速度为零交通”,停车场及附属相关设施是静态交通重要组成部分。目前多数停车场存在着以下几个问题,管理漏洞、系统可靠性、独立性强、收费过程比较繁琐、劳动强度高、停车场利用率低下、票款易流失等。针对这些问题,该停车场管理系统从以下几方面进行设计:针对管理进行了优化,采用划卡消费与现金支付相结合,系统计时收费;采用关系数据库标准语言SQL,借助VC++ 6.0软件进行窗口设计。优化后系统使用方便、服务高效、收费透明、可防止票款流失,提高可靠性同时也提高了操作者工作效率。 1.2 系统名称及概况 系统名称:校园停车场管理系统 建设性质:新建系统及校园出入口伸缩门改造(目标样式见附件1) 建设地点:吉林大学南岭校区 系统概况: 在校园东门与西门安装停车管理及实时监控系统,主要功能包括泊位引导、停车收费、实时监控跟踪等。将校园内停车泊位划分为几个停车场区(见附件2),车辆在入口可以清楚地知道各停车区泊位利用情况,经过信息登记,在道路标志引导下进入相应停车区空闲泊位。车辆在入口进行信息登记后,系统可以对车辆进行实时监控,直到车辆在出口进行信息核对并缴费后离开校园。 第二章 可行性研究 2.1 系统分析 系统采用感应卡实施管理,在停车场出入口各设置一套出入口管理设备,使停车场形成一个相对封闭场所,进出车辆只需将感应卡在读卡箱前轻晃一下,系统即能瞬时完成检验、记录、核算、收费等工作,挡车道闸自动启闭,实现方便快捷停车场管理。 停车卡可根据车主身份不同,分别发行月租卡、免费卡与临时卡三种类型卡。系统支持三种卡类不同收费方式,以满足按车主身份分别收费要求。电脑自动计时、计费,免费卡与月租卡自动识别,临时卡人工收取现金,服务快捷高效,电脑显示屏及收费显示屏同时显示停车时间及应收费用,卡上余额或有效期限,收费透明度高,票箱显示屏还提示指导住户使用停车场,并以文明语言问候致意。 软件管理实行分级权限制。对出口值班员来讲,其登录后可进入收费管理,期间该出口所有收费均自动记入该值班员名下并存入电脑数据库。由于值班员受权限限制,不能进入系统中更高软件菜单项,所以对电脑所记录数据无法干涉;上级管理者可以随时查询,核对或打印一个值班段或任何一段时间乃至整个停车场工作记录。这样就从根本上杜绝了停车费用流失与财务统计失误,同时系统自动运行,杜绝了人情车、霸王车造成经济损失。 系统还可在停车场出入口各安装1台高解像度彩色固定摄像机、固定支架、自动光圈手动对焦镜头,可24小时监视车辆出入情况,看清车牌号码。当有车辆驶入车场时,摄像机将信号通过视频电缆传输到停车场管理系统中,存入数据库中;当有车辆驶离车场时,车辆除应交纳必要管理费用外,驶离车辆所有资料(车牌、型号、颜色等)都必须及驶入车场时资料对比相同(为人工识别),闸杆才升起,让车辆通过。 综上分析,停车场管理系统车辆进出工作流程为: 进场时,驾驶员驱车到入口控制机处,如果是月租卡或免费卡(称为固定卡)用户,直接刷卡就能进入。读卡后,系统会判断卡是否在有效限期内,是否有余额,并且判断是否有在停车场内部未出记录。如果满足预设条件,则开闸放行,否则语音提示不放行。如果是临时卡,则驾驶员自己取卡,道闸开启,车辆通行。 出场时,固定卡,直接刷卡进出;临时卡,操作员收费后,开闸放行。 车辆不论是进或者出,在开启道闸瞬间,摄像系统拍照记录并保存。车辆通过道闸后,道闸自动落杆。 停车场管理系统分为入场停车与出场取车两部分。系统流程图如图2-1所示。 图 2-1 系统流程图 A.入场停车流程 (1)入场 根据车位实时统计显示系统给出停车场实时利用信息来控制车辆入场,停车场在有车位情况下方能停车。 (2)卡审核 刷卡或者发放临时卡,系统自动记卡编号、卡号、卡类型、余额、发卡时间、有效时间、卡状态(已发或挂失)等基本信息,刷卡时并判断卡有效性,若有效,图像系统自动摄录一幅车辆进场图像于电脑,播放欢迎词,并放行车辆。 (3)停车 系统为用户分配停车位,用户在道路泊位引导标志指引下,到指定停车位置停车。 B.出场取车流程 若用户需要查找停放位置,拨打卡面上提供帮助 ,操作员在系统中帮忙查找车辆停放位置信息。 (1)出场审核 车辆在出口处刷卡或交还临时卡,系统自动记录卡信息。同时系统自动显示该车进场图像,收费员确认无误后收费。 (2)收费 系统根据车辆信息、卡类型以及停车时间等,依据收费标准计算收费额度实施收费环节。(划卡或人工收取现金) (3)出场 交费之后,操作员按确认键,图像系统自动摄录一幅车辆出场图像于电脑,语音系统提示“谢谢,祝您一路平安!”等声音,电动栏杆升起。车辆通过埋在车道下车辆检测线圈后,电动栏杆自动落下。 2.2 系统组成 系统分为软件部分与相应硬件设施。 软件部分:停车计费系统、车位实时统计显示系统。 硬件设施:感应卡(具备GPS定位功能)、泊位引导标志、校园泊车实时监控摄像系统、自动挡车道闸、车辆检测器(环型感应线圈检测器、超声波检测器、红外检测器、雷达检测器、视频检测器等)、刷卡机箱、控制主板、票据打印机、停车场嵌入式计算机、自动发卡机、自动收卡机。 第三章 需求分析 3.1 功能需求分析 根据停车场管理系统需求,确定了该系统用例图如下图所示。 图3-1 停车场管理系统用例图 图3-2 客户用例图 图3-3 系统管理员用例图 图3-4 操作员用例图 如图3-1所示,该系统主要有超级管理员、管理员与操作员三种角色,不同角色基本任务如下所述。 超级管理员具有最高权限,即对本系统所有权限操作权与授予权。超级管理员授权给管理员,并赋予管理员应有权限。 管理员可根据需要来维护角色信息,并授权给相应操作员,进行系统基本参数设置、权限设置、数据管理与操作员档案管理。 操作员行使管理员赋予权限,进行档案管理(车辆档案、卡档案管理、用户档案管理)、入场管理、收费管理与出场管理。 根据用例图得到部分类图,如图 3-5 图 3-5 类图 3.2 数据库需求分析 3.2.1 数据库概念模型 如图 3-6所示系统数据库ER图,制定一个收费标准,要根据卡类型以及收费标准(时收费或次收费)来确定。停车场每一个用户都有唯一一条卡信息及自己车信息绑定。停车场总车位数决定了车位表总车位,一个车位只能存放一辆车。根据入场时信息与出场时信息以及收费标准,综合得出收费金额。交班记录要记下该员工上、下班时间以及在这段时间内所有操作。 图 3-6 系统数据库ER图 根据系统需求,本系统需要设计13张表。 卡信息表:存放卡相关信息。 停车场参数表:存放停车场基本参数。 用户表:存放用户基本信息。 车信息表:存放车基本信息。 权限表:存放对应权限信息与对应行使该权限人员相关信息。 时收费表:存放按时收费时间段。 次收费表:存放按次收费时间段。 入场表:存放入场时候一些信息。 出场表:存放出场时相关信息。 交班表:存放操作员交接班相关信息。 收费表:存放停车一段时间收费信息。 车位表:用于存放每一个车位上停车状态。 收费标准表:存放收费统一标准。 3.2.2 数据库逻辑模型 针对ER模型中对表要求,下面给出各个表详细结构。 表3-1 卡信息表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 cardid 卡编号 var char 20 否 是 cardno 卡号 var char 20 是 否 cardtype 卡类型 var char 20 是 否 cardmoney 余额 money 8 是 否 sendtime 发卡时间 timestamp 8 是 否 activetime 有效时间 timestamp 8 是 否 sendflag 已发 boolean 1 是 否 loseflag 挂失 boolean 1 是 否 表3-2 停车场参数表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 parkname 停车场名字 var char 20 是 否 parktotal 总车位 int 4 是 否 entertotal 入口车道数 int 4 是 否 exittotal 出口车道数 int 4 是 否 parktel 停车场 var char 20 是 否 parkadd 停车场地址 var char 20 是 否 表3-3 用户表 字段名 描述 类型 长度 是否为空 是否主键 id 编号 var char 20 否 是 username 用户名 var char 20 是 否 usersex 性别 char 2 是 否 usertel var char 20 是 否 cardno 卡号 var char 20 是 否 carno 车牌 var char 20 是 否 address 地址 var char 20 是 否 表3-4 车信息表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 carid 编号 var char 20 否 是 carno 车牌号 var char 20 是 否 cartype 车类型 var char 20 是 否 表3-5 权限表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 poperatorid 编号 var char 20 否 是 poperatorname 姓名 var char 20 是 否 poperatorsex 性别 char 10 是 否 poperatorpsw 密码 var char 20 是 否 poperatorright 权限 var char 20 是 否 表3-6时收费表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 timeno 时间号 int 4 否 是 starttime 开始时间 char 10 是 否 endtime 结束时间 char 10 是 否 表3-7 次收费表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 timesno 次号 int 4 否 是 starttime 开始时间 char 10 是 否 endtime 结束时间 char 10 是 否 表3-8 入场表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 encardid 入场编号 var char 20 否 否 encardno 卡号 var char 20 是 否 encarno 车牌 var char 20 是 否 enway 入场车道 var char 20 是 否 entime 入场时间 timestamp 8 是 否 enposition 占用车位 var char 20 是 否 表3-9 出场表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 exited 出场编号 var char 20 否 否 excardno 卡号 var char 20 是 否 excarno 车牌 var char 20 是 否 exway 出场车道 var char 20 是 否 extime 出场时间 timestamp 8 是 否 exposition 腾出车位 var char 20 是 否 表3-10 交班表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 tnoperator 操作员 var char 20 否 否 tnlogintime 登录时间 timestamp 8 是 否 tnturntime 交班时间 timestamp 8 是 否 entimes 进场次数 int 4 是 否 extimes 出场次数 int 4 是 否 totalmoney 金额总计 money 8 是 否 表3-11 收费表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 chargeid 收费编号 var char 20 否 否 chcardno 卡号 var char 20 是 否 chcarno 车牌 var char 20 是 否 chmoney 收费金额 money 8 是 否 表3-12 车位表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 cpcarno 车牌 var char 20 是 否 positionstate 车位状态 var char 20 是 否 表3-13 收费标准表 字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 chargestid 标准编号 int 4 是 否 cardtype 卡类型 var char 20 是 否 cartype 车类型 var char 20 是 否 chargetype 收费类型 var char 20 是 否 timeno 时间编号 int 4 是 否 unittime 单位时间 int 4 是 否 unitsum 单位金额 int 4 是 否 maxsum 最大金额 int 4 是 否 第四章 总体设计 4.1 总体设计 首先判断登录身份,进入相应操作页面进行需要操作,最终完成目操作功能。本系统UML活动图如图4-1所示。 它们内在关系由数据库与程序来控制。 图4-1 UML活动图 4.2 数据流图 本软件顶层数据流图如图4-2所示: 图4-2 顶层数据流图 4.3 业务流程分析 本系统使用者是停车场工作人员,为了便于管理并借鉴现有停车场管理模式,划分成三个角色用户。工作人员首先登陆系统,经过一系列身份验证,登陆成功之后进入相应操作界面,实现各自管理功能。总体功能分析业务流程图。如图 4-3业务流程图 图4-3 业务流程图 其中各模块有对应添加、修改及删除功能。 4.4 系统功能模块 如图 3-3 系统功能模块划分 图 4-4 系统功能模块划分 4.5 系统模块设计 (1)授权管理模块 具有最高管理权限超级管理员对该模块进行操作,对管理员进行授权,添加、删除、修改管理员。 (2)系统设置 由超级管理员授权管理员行使该功能,主要是对停车场参数进行设置。 (3)操作员档案管理 由管理员行使修改功能,对停车场业务操作员进行管理,添加、删除、修改操作员信息。 (4)数据管理模块 该模块显示了停车场日常运行所产生数据,场内车辆,进出数据,收费金额以及交班记录相关信息。 (5)档案管理 该部分功能为操作员所使用,主要是对停车场发放卡进行管理、车档案管理以及停车场顾客信息档案管理。他们都有自己添加、删改、修改功能。 (6)入场管理 该模块是本系统一个重要功能模块,主要采集汽车入场时候一些必要参数,对参数进行处理与判断,这些获得参数提交到后台进行相关处理。 (7)出场管理 汽车离场之前对其进行离场验证与停车时间数据收集,为下一收费模块提供数据。 (8)收费管理 该模块是本系统最重要一个模块,根据出入场提供参数结合该模块收费标准设置计算出收费金额,完成收费并打印出收费清单。 4.6 数据库实现脚本 4.6.1 定义SQL模式 为停车场管理系统定义一个SQL模式,其拥有者为超级管理员。 CREATE SCHEMA PARK AUTHORIZATION administrator; 4.6.2 创建基本表 1 卡信息表 CREATE TABLE PARK.pcard id int IDENTITY (1, 1) NOT NULL , cardid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , cardno var char (20) , cardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , cardmoney money NULL , sendtime timestamp NULL , activetime timestamp NULL , sendflag var char (10) COLLATE Chinese_PRC_CI_AS NULL , loseflag var char (10) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id,cardid)); 2 停车场参数表 CREATE TABLE PARK. parkparameter id int IDENTITY (1, 1) NOT NULL , parkname var char (50) COLLATE Chinese_PRC_CI_AS NOT NULL , parktotal int NULL , entertotal int NULL , exittotal int NULL , parkadd var char (50) COLLATE Chinese_PRC_CI_AS NULL , parktel var char (20) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id),); 3 用户表 CREATE TABLE PARK.users Id int IDENTITY (1, 1) NOT NULL , userid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , username var char (20) COLLATE Chinese_PRC_CI_AS NULL , usersex var char (20) COLLATE Chinese_PRC_CI_AS NULL , usertel var char (20) COLLATE Chinese_PRC_CI_AS NULL , usercarid var char (20) COLLATE Chinese_PRC_CI_AS NULL , usercardid var char (20) COLLATE Chinese_PRC_CI_AS NULL , useradd var char (50) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id) FOREIGN KEY (usercarid) REFERENCES car(carid), FOREIGN KEY (usercardid) REFERENCES pcard(cardid)); 4 车信息表 CREATE TABLE PARK.car id int IDENTITY (1, 1) NOT NULL , carid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , carno var char (20) COLLATE Chinese_PRC_CI_AS NULL , cartype var char (20) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id,carid)); 5 权限表 CREATE TABLE PARK.rateright Id int IDENTITY (1, 1) NOT NULL , poperatorid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , poperatorname var char (20) COLLATE Chinese_PRC_CI_AS NULL , poperatorsex char (10) COLLATE Chinese_PRC_CI_AS NULL , poperatorpsw var char (20) COLLATE Chinese_PRC_CI_AS NULL, poperatorright var char (20) COLLATE Chinese_PRC_CI_AS NULL , PRIMARY KEY (id,poperatorid)); 6 时收费表 CREATE TABLE PARK.ptime Id int IDENTITY (1, 1) NOT NULL , timeno int NOT NULL , starttime var char (50) COLLATE Chinese_PRC_CI_AS NULL , endtime var char (50) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id,timeno)); 7 次收费表 CREATE TABLE PARK.ptimes id int IDENTITY (1, 1) NOT NULL , timesno int NOT NULL , starttimes char (8) COLLATE Chinese_PRC_CI_AS NULL , endtimes char (8) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id, timesno)); 8 入场表 CREATE TABLE PARK.entrance id int IDENTITY (1, 1) NOT NULL , encardno var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , encardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , encarno var char (20) COLLATE Chinese_PRC_CI_AS NULL , encartype var char (20) COLLATE Chinese_PRC_CI_AS NULL , enway var char (20) COLLATE Chinese_PRC_CI_AS NULL , entime timestamp NULL , enposition var char (20) COLLATE Chinese_PRC_CI_AS NULL , enchargetype var char (50) COLLATE Chinese_PRC_CI_AS NULL , enoperator var char (50) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id)); 9 出场表 CREATE TABLE PARK.pexit id int IDENTITY (1, 1) NOT NULL , excardno var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , excarno var char (20) COLLATE Chinese_PRC_CI_AS NULL , exway var char (20) COLLATE Chinese_PRC_CI_AS NULL , extime timestamp NULL, exposition var char (20) COLLATE Chinese_PRC_CI_AS NULL , PRIMARY KEY (id)); 10 交班表 CREATE TABLE PARK.turn id int IDENTITY (1, 1) NOT NULL , tnoperator var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , tnlogintime timestamp NULL , tnturntime timestamp NULL , entimes int NULL , extimes int NULL , totalmoney money NULL, PRIMARY KEY (id)); 11 收费表 CREATE TABLE PARK.charge id int IDENTITY (1, 1) NOT NULL , cardid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , cardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , cartype var char (20) COLLATE Chinese_PRC_CI_AS NULL , carno var char (50) COLLATE Chinese_PRC_CI_AS NULL , money money NULL, PRIMARY KEY (id)); 12 车位表 CREATE TABLE PARK.carposition Id int IDENTITY (1, 1) NOT NULL , cpcarno var char (20) COLLATE Chinese_PRC_CI_AS NULL , positionstate var char (20) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id)); 13 收费标准表 CREATE TABLE PARK.standardcharge id int IDENTITY (1, 1) NOT NULL , chargestid int NOT NULL , cardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , cartype var char (20) COLLATE Chinese_PRC_CI_AS NULL , chargetype var char (20) COLLATE Chinese_PRC_CI_AS NULL , timeno int NULL , unittime int NULL , unitsum int NULL , maxsum int NULL, PRIMARY KEY (id)); 4.6.3 创建SQL索引 为了方便用户 查询车辆停放位置信息,建立入场车辆车牌号索引。 CREATE CLUSTER INDEX encarno_index ON entrance(encarno); 4.6.4 SQL数据控制——授予权限 超级管理员将对数据库一部分控制权限授予给管理员角色,并把管理员角色授予给所有管理员。 GRANT ALL PRIVILEGES ON TABLE pcard, parkparameter, users,car, rateright, ptime, ptimes, entrance, pexit, turn, carposition TO manager; GRANT SELECT,INDEX ON TABLE charge , standardcharge TO manager; GRANT manager TO PUBLIC; 第五章 详细设计 5.1 软件结构功能模块 图3-2所示,软件结构功能中操作员功能模块图如图5-1所示: 身份验证 初始化 重新验证 非正常退出出 消息循环 值班管理 车位管理 用户管理 退出 正常退出 软件介绍 信息 查询 入场停车 值班历史查询 值班管理 记事 删除用户 添加用户 取车并算取费用 关于,帮助 查询某个日期的情况 查询以前的入车情况 查询账本 图5-1 操作员功能模块图 管理员功能模块图如图5-2所示: 身份验证 初始化 重新验证 非正常退出出 消息循环 权限设置 停车场管理 数据管理 退出 正常退出 操作员档案管理 信息 查询 停车场使用权限管理 操作员权限授予 操作员权限更改 数据分类统计 打印数据报表 停车场基本参数设置 增加、删除、修改操作员档案 查询某个日期的情况 查询以前的入车情况 查询账本 图5-2 管理员功能模块图 5.2 程序流程图 5.2.1 用户登录模块程序流程图 图5-3 用户登录模块程序流程图 5.2.2 授权管理模块程序流程图 超级管理员对管理员授权与管理员对操作员授权,调用同一授权管理模块。 图5-4 授权管理模块程序流程图 5.2.3档案管理模块程序流程图 管理员对操作员档案进行管理与操作员对卡、车、顾客等档案进行管理,调用同一档案管理模块。 图5-5 档案管理模块程序流程图 5.2.4 收费管理模块程序流程图 图5-6 收费管理模块程序流程图 第六章 编码及测试 本章主要对用户登录模块实现及测试展开研究,其他模块方法相同。 6.1 身份验证C++源程序代码 #include "PasswordDlg.h" BOOL CMyDialog2App::InitInstance() int nCount=0,m=0; while(nCount<3) CPasswordDlg PassDlg; if(PassDlg.DoModal()==IDOK) if((strcmp(PassDlg.m_strUserName,"441004"))&&(strcmp(PassDlg.m_strPassword,"jluedu"))!=0) if((strcmp(PassDlg.m_strUserName,"171004"))&&(strcmp(PassDlg.m_strPassword,"rjgcks"))!=0) if((strcmp(PassDlg.m_strUserName,"353533"))&&(strcmp(PassDlg.m_strPassword,"class4"))!=0) MessageBox(NULL,"用户名或密码错误,请重新输入!", "错误信息",MB_OK|MB_ICONERROR); nCount++; else {m=3;break;} else {m=2;break;} else{ m=1;break; } else return FALSE; if(nCount>=3) MessageBox(NULL,"输入已经超过3次,请退出!", "错误信息",MB_OK|MB_ICONERROR); return FALSE; 6.2 身份验证MFC窗口实现 借助Visual C++ 6.0 编程软件,实现用户登录身份验证,如图6-1。 图6-1 用户登录界面 当用户名或密码输入有误时,会弹出相应提示信息,并重新输入,如图6-2。 图6-2 登录信息错误提示 为了确保安全,当用户名与密码输入三次都错误时,系统将自动退出登录,如图6-3所示。 图6-3 登录次数限制 6.3 身份验证模块软件测试 本模块在设计过程中建立三个用户,分别为超级管理员(441004,jluedu,m=1)、管理员(171004,rjgcks,m=2)与操作员(353533,class4,m=3)。只有用户名与密码同时正确且匹配时,才能打开相应界面。当用户名与密码输入错误时,给出提示信息并重新登录。错误登陆次数超过三次,系统将自动退出。为此设计软件测试方案设计,测试报告如表6-1所示。 测试编号 用户名 密码 m=? 结果 1 441004 jluedu 1 正常登录 2 171004 rjgcks 2 正常登录 3 353533 class4 3 正常登录 4 441004 rjgcks
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服