通信-自行车租售系统的设计与实现(编辑修改稿)内容摘要:
sual C++编程实现其中的优化处理模块。 在使用界面上,用户通过点击按钮选择相应的要进行的操作,系统经过对用户输入的有效判断,如果输入有效,根据输入的消息进行相应的处理,最后把处理结果显示到用户界面。 详细设计 开发环境 本系统的开发开发环境是 Windows Server 2020,Visual C++ ,MS SQL Server 2020. 系统功能图 在系统功能需求分析的基础上,结合 Visual C++程序编制的特点,得到下图所示的系统功能模块图。 图 41 系统功能图 自行车租售管理系统 系统模块 车辆管理模块 车损管理模块 连接数据库 添加车辆 修改车辆 删除车辆 工作人员登陆理 退出 添加事故信息 查询事故信息 删除事故信息 租车管理模块 添加租车信息 修改租车信息 删除租车信息 售车管理模块 添加售车信息 查询售车信息 删除售车信息 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 14 数据库表结构设计 表 序号 名称 数据类型 约束 可空 默认值 说明 1 ID int 2 CarSN nvarchar(64) 3 CarStyle nvarchar(128) √ 39。 39。 4 CarID nvarchar(40) 5 CarName nvarchar(40) 6 DriverID nvarchar(64) 7 DriverName nvarchar(40) 8 DriverKouMark nvarchar(40) √ 39。 39。 9 Content nvarchar(256) √ 39。 39。 10 AccTime nvarchar(128) √ 39。 39。 表 序号 名称 数据类型 约束 可空 默认值 说明 1 ID int 2 CarSN nvarchar(64) 3 CarStyle nvarchar(128) √ 39。 39。 4 CarID nvarchar(40) 5 CarName nvarchar(40) 6 CarTel nvarchar(40) √ 39。 39。 7 LastJCTime nvarchar(128) √ 39。 20201139。 表 序号 名称 数据类型 约束 可空 默认值 说明 1 ID int 2 CarSN nvarchar(64) 3 CarStyle nvarchar(128) √ 39。 39。 4 CarID nvarchar(40) 5 CarName nvarchar(40) 6 Content nvarchar(128) √ 39。 39。 7 JCTime nvarchar(128) √ 39。 20201139。 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 15 表 序号 名称 数据类型 约束 可空 默认值 说明 1 ID int 2 DriverSN nvarchar(40) 3 DriverID nvarchar(64) 4 DriverName nvarchar(40) 5 DriverAddress nvarchar(128) √ 39。 39。 6 DriverTel nvarchar(64) √ 39。 039。 7 DriverMark nvarchar(64) √ 39。 1239。 8 DriverJCTime nvarchar(128) √ 39。 20201139。 表 序号 名称 数据类型 约束 可空 默认值 说明 1 ID int 2 UserSN nvarchar(40) 3 UserName nvarchar(40) 4 Pass nvarchar(128) 5 Man nvarchar(20) 6 Tel nvarchar(64) 7 Role nvarchar(64) 数据库的详细设计 启动 SQL2020 后,屏幕出现 “Microsoft SQL Server 2020” 对话框,在对话框中选择不同的选项按钮,可新建或打开数据库。 在此选择 “ 建立数据库 ” ,新建一个空的数据库,名字保存为 CarMgr。 在已有的数据库中创建空表主要有三种方法:将数据直接输入到空白的数据表中,当保存新的数据时, SQL Server 2020 将分析数据并且自动为每一字段指定适当的数据类型及格式。 使用 “ 设计 ” 视图从无到有指定表的全部细节。 使用表向导来选择表的字段,这些字段可以从各样预先定义好的表中选择。 此系统的数据库使用 “ 设计 ” 视图从无到有创建。 再次数据库中需要创建两个表,分别存放用户信息表、 工作人员信息表、缴费信息表、费率信息表等。 以创建用户信息表为例,步骤如下: 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 16 ( 1)右击 “ 表 ” 图标,选择新建表,将显示一个空数据表的设计视图。 ( 2)按照下图所示定义表中的每一个字段。 在 “ 字段名称 ” 列中分别输入;在 “ 数据类型 ” 列中选择各字段的数据类型,当光标移动到 “ 数据类型 ” 列时,光标所在的格中将出现下拉按钮,单击按钮将弹出下拉列表,其中列出了所有的数据类型(如图所示),单击选定所需要的数据类型; “ 说明 ” 列用于输入对字段的说明,可有可无。 ( 3)保存表。 保存时输入表的名称“ UserInfo”。 ( 4)当我们需要将该表设置为主键时,该字段左边的灰色字段选择器上出现一个钥匙图案,表明主关键字已经被选取。 此时用户信息表就创建好了,同样可以创建其他类型表。 数据流图 下面用我们用数 据流图( DFD, Data Flow Diagram) ,也就是从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。 如 下图所示: 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 17 在本系统中使用 ADO 的过程及详解添加 ADO 数据源 本系统采用 ADO 来访问 SQL数据库,这里充分应用了 C++类封装的功能 ,根据 本系统应用的范围,将访问数据库的功能函数封装在一个类 CMyDatabase。 正如前所述 ,ADO 是访问数据库的一个方法,它提供了不同的接口。 ADO 库包含三个基本接口 :_ConnectionPtr 接口、 _CommandPtr 接口和 _RecordsetPtr 接口。 _ConnectionPtr 接口返回一个记录集或一个空指针。 通常使用它来创建一个数据连接或执行一条不返回任何结果的 SQL语句,如一个存储过程。 使用 _ConnectionPtr 接口返回一个记录集不是一个好的使用方法。 对于要返回记录的操作通常用 _RecordserPtr来实现。 而用 _ConnectionPtr 操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr 时不需要。 _CommandPtr 接口返回一个记录集。 它提供了一种简单的方法来执行返回记录集的宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 18 存储过程和 SQL 语句。 在使用 _CommandPtr 接口时,你可以利用全局 _ConnectionPtr 接口,也可以在 _CommandPtr 接口里直接使用连接串。 如果你只执行一次或几次数据访问操作,后者是比较好的选择。 但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用 全局 _ConnectionPtr 接口创建一个数据连接,然后使用 _CommandPtr 接口执行存储过程和 SQL语句。 _RecordsetPtr 是一个记录集对象。 与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。 同 _CommandPtr 接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给 _RecordsetPtr 的connection 成员变量,让它自己创建数据连接。 如果你要使用多个记录集,最好的方法是同 Command 对象一样使用已经创建了数据连接 的全局 _ConnectionPtr 接口,然后使用_RecordsetPtr 执行存储过程和 SQL 语句。 根据这些,我们将数据库的各种操作封装到 CMyDatabase 类里。 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 19 5 程序的详细设计 程序设计 该系 统采用对话框和属性页的形式作为主界面,支持异地远程数据库的读取。 系统运行时,用户首先要连接到远程数据库,连接成功后,状态栏会有相应的提示,之后在整个系统的运行过程中,系统与数据库始终保持这一个连接,并通过这一个连接来进行各种 SQL 语句操作。 整个系统中,主界面 CManageSysDlg 类有 一个对象 m_db,这个就是与数据库保存连接的数据库 对象。 程序流程 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 20 图 51 流程图 系统登录界面 输入操作员及密码 检查 密码正确 功能界面 数据库 系统主界面 功能处理 系统管理 错误信息 密码错误 开 始 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 21 连接数据库 图 52 数据库配置图 首先要对数据库进行连接配置,输入 SQL 数据库地址,数据库名称,用户名和密码,连接成功于否都会在系统的左下角有提示。 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 22 登陆系统 图 53 用户登陆 如果与数据库连接成功后,会在系统左下角提示,然后进行用 户的登陆系统,输入用户名字和密码登陆系统。 主要代码: void CLoginDlg::OnLogin() { // TODO: Add your control notification handler code here ASSERT(m_pManagementSysDlg!=NULL)。 UpdateData(TRUE)。 CCommon::Trim(m_sIP)。 //清除变量空白符 CCommon::Trim(m_sDbName)。 CCommon::Trim(m_sUser)。 宜宾职业技术学院电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现 23 CCommon::Trim(m_sPass)。 if(() == 0 ||() == 0 ||() == 0 ||() == 0) {//必须输入完整的信息,否则返回 AfxMessageBox(_T(请输入完整的信息 ))。 return。 } CString szLog。 //开始尝试连接 CMyDatabase * pDB = m_pManagementSysDlgGetDBPointer()。 if(pDBOpen(m。通信-自行车租售系统的设计与实现(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。