ImageVerifierCode 换一换
格式:DOCX , 页数:64 ,大小:1.27MB ,
资源ID:8790486      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8790486.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(台球厅收费管理系统计算机课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

台球厅收费管理系统计算机课程设计.docx

1、台球厅收费管理系统计算机课程设计课程设计报告课程名称: 计算机实践(1) 项目名称: 台球厅收费管理系统 学 院: 专 业: 姓名/学号: 班 级: 实验时间: 成 绩: 指导教师: (一)课题介绍1.1题目: 台球厅管理系统 1.2设计目标: 实现台球厅的数字化管理,规范化管理借入借出,准确定位,实现增删改查。1.3实验环境: 前台使用C+编写,实现工具visual studio 2013 update4。 1.4需求分析:台球厅管理系统:主要涉及台球厅的卡号管理,又可以分为两种情况,会员卡号和普通卡号。用户管理方面分成操作员和管理员两种。系统功能模块包括:(1)系统登录模块:根据不同权限将

2、用户角色分为操作人员和管理员,操作人员可以进行系统操作;管理员可以对用户进行管理。(2)会员卡号模块:记录卡号和用户姓名、身份证号、账户余额、是否续费等信息。(3)系统管理模块:管理员可以进行系统的管理,包括用户信息的增、删、改、查。(4)普通卡号模块:记录普通卡号、身份证号、进入和离开时间以及费用等信息。项目的研究思路是:首先划分为会员卡和普通卡两种。会员卡的特点是输入用户名、密码便可登陆,可充值会员使用。普通卡的特点是记录上网时间,按时间先收费。1.5概念结构设计:一张用户管理表,表名用户表一张会员打台球,简称会员卡一张普通,简称普通卡所有用户共同使用一个主界面,在用户登录的时候确定用户及

3、其权限,当登录的用户没有该项权限时,在界面中这项权限所对应的功能模块不能被点击,这样的设计方便了系统管理和维护。用户在使用本系统时的工作过程为:进入系统后,会看到登录窗体,对用户的身份进行验证,身份正确则进入本系统,登录到主界面,选择需要的功能进行操作,结束后退出本系统。如图1.1所示。图1.1 系统流程分析图管理员 操作员 管理员 操作员 图1.2 系统功能模块1.6逻辑结构设计:用户表将涉及以下属性: 姓名、密码、新密码、确认密码。会员卡将涉及以下属性: 卡号、用户姓名、身份证号、账户余额、是否续费。普通卡将涉及以下属性: 普通卡号、身份证号、普通卡状态、进入和离开时间以及费用。 (二)数

4、据库的建立、设计及实施2.1数据库的建立点击“开始”按钮,在所有程序中找到 Microsoft SQL Server,再从弹出的菜单中找到“企业管理器”单击进入。点击“企业管理器”栏如图 1.2 所示的 SQL Server 数据库界面,接下来单击“数据库”栏,在数据库中建个库,起名为“taiqiuting”。2.2数据实体及其关系本数据库中有3个实体,分别如下介绍:实体1: 用户:(姓名,密码,用户类别编号,类别名称)本系统的数据库并没有将每类用户分别作为一个实体进行设计,而是将用户作为整个数据库的一个实体,通过用户的属性中的类别编号来判断用户的类别。用户实体使用用户表表示,其中包含四个属性

5、:UID表示姓名、PWD表示密码、Type表示用户类别编号、Exp表示用户类别名称。 图2.3是实体1用户的E-R图。实体2: 会员客户:(会员卡号,姓名,身份证号,账户余额,缴费状态) 本系统主要存储的是持有会员卡客户的信息,因此本系统单设了一个基本信息实体。基本信息实体使用 ChangQiTable 表示,它包含 5 个属性:ChangQiCardID 表示会员卡号、ChangQiName 表示持有会员卡客户的姓名、ChangQiAddr 表示持有会员卡客户的账户余额、ChangQiCarNum 表示持有会员卡客户的身份证号、ChangQiFee 表示持有会员卡客户的缴费状态。 图2.4是

6、实体2会员客户的E-R图。实体3: 普通客户:(普通卡号,身份证号,进入时间,离开时间,计时费用,普通卡状态)本系统主要存储的是持有会员卡客户的信息,基本信息还是本系统的实体。基本信息实体使用 LinShiTable 表示,它包含 6 个属性:LinShiCardID 表示普通卡号、LinShiCarNum 表示持有普通卡客户的身份证号、InTime 表示持有普通卡车辆的进入时间、OutTime 表示持有普通卡车辆的离开时间、Fee 表示持有普通卡客户的计时交费。Status 表示普通卡的发放状态。 图2.5是实体3普通借阅的E-R图。2.3数据库表的设计本数据库共设计了3张表,表2.1是本数

7、据库的用户表。这张表介绍了本数据库的用户,包括管理员和操作员。用户是通过类别编号来区分用户类别的,用户表共有4个字段,分别表示用户姓名、密码、用户类别编号及用户类别名称。 表2.2数据库用户表字段名字段描述是否为主键数据类型长度UID用户姓名是char10PWD密码否char20Type类别编号是char4Exp类别名称否char20表2.2是会员客户基本信息表。包括会员卡号、持有会员卡客户的姓名、家庭住址、身份证号、缴费状态。表2.3数据库的会员客户表字段名字段描述是否为主键数据类型长度ChangQiCardID会员卡号是char10ChangQiName会员客户姓名否char10Chang

8、QiAddr账户余额否char10ChangQiCarNum身份证号否char10ChangQiFee缴费状态否char10表2.3是是普通客户基本信息表。包括普通卡号、普通卡姓名、进入时间、离开时间、计时交费、普通卡发放状态。表2.3数据库的普通客户表字段名字段描述是否为主键数据类型长度LinShiCardID普通卡号是char10LinShiCarNum普通客户姓名否char10InTime进入时间否char20OutTime离开时间否char20Fee计时缴费否char10Status普通卡状态否char1Status3状态否char10建立完成如下图所示:数据库的链接: 打开管理工具打

9、开ODBC数据源(32位)添加Stopping数据库 (三)系统详细设计3.1 用户登录模块设计用户登录模块是本系统的基本功能模块,要与后台数据库紧密相连。设计步骤为:添加新对话框设置ID号为IDD_DIALOG_Login,并以CDialog为基类创建CLogin类,添加控件、成员变量,完成之后得到如图3.1所示的登录窗口对话框图。图3.1登录窗口对话框图如果系统登录不成功,就会弹出一个小的对话框,里面会告诉你“密码错误,请重新输入”的字样,如图6.13所示登录失败窗口图如果系统登录成功,就会弹出一个小的对话框,里面会告诉用户,该用户是什么登录身份,如图6.14所示登录成功窗口图,本图以管理

10、员登录成功为例。从图3.1中可以看到,本模块中添加了四个Edit Box类型的控件,两个用来存放变量,另外两个用来存放变量内容。本模块添加了两个Button类型的控件,用来设置确定和取消按钮。表3.1是本模块添加的控件列表。表3.1用户登录模块控件列表ID控件类型控件名称变量类型变量名称函数名称IDC_STATICEdit Box用户名:IDC_STATICEdit Box密码:IDC_EDIT_UNameEdit BoxCEditm_usenameIDC_EDIT_PwdEdit BoxCEditm_pwdID_OKButton登录OnOK()ID_CANCELButton取消OnCance

11、l()从表3.1中可以看到本模块有两个变量和两个成员函数,两个变量分别是m_usename 和m_pwd;两个成员函数OnOK()和OnCancel()。先介绍一下创建变量,下面以m_usename为例,找到登录模块,点击鼠标右键出现一个对话框,如图3.2所示图3.1建立变量(1)在弹出的菜单栏中,点击“类向导”,点击“成员变量”栏,然后点击“添加变量”按钮,接下来弹出的窗口为给变量起名字,点击“OK”按钮完成变量的生成,出现如下图3.3所示的窗口图3.3建立变量(2)菜单项的设计:接下来讲解这两个成员函数,它们是用来设计确定和取消按钮。OnOK()函数设计的是确定按钮,OnCancel()函

12、数设计的是取消按钮,如图5.5是用户登录类CLogin的成员函数和成员变量视图。图3.4本模块类CLogin成员函数和成员变量视图从图3.4中可以看到本模块在设计控件Button时的两个成员函数OnOK()和OnCancel()。该模块的设计过程中有两个值得注意的点:其一是该模块中主要有两个变量用户名和密码。要确保登录成功,用户名和密码一定要正确并且对应,因此判断用户名密码正确与否是该模块设计的关键。首先在头文件.h中添加需要用到的数据源变量然后利用GetWindowText() 函数获取对话框中输入的用户名和密码信息,传递给username和password两个变量。利用SQL查询语句str

13、SQL.Format(select * from 用户表where UID=%s and PWD=%s,username,password);中数据库的Admin表中进行查询,如果找到相应的记录,则登录成功,取出这个用户相对应的权限Type赋值给m_userLevel变量。之后就利用该变量的值为0还是1,来区分是操作员还是管理员。如果SQL查询的结果为0,即m_recordSet.GetRecordCount()=0,则说明该用户名或密码在用户表中找不到,则登录失败。登录代码的设计如下:void CLogin:OnOk() / TODO: Add your control notificati

14、on handler code here CString username,password; m_username.GetWindowText(username); m_pwd.GetWindowText(password); if(!m_database.IsOpen() if(m_database.Open(_T(taiqiuting) m_recordSet.m_pDatabase=&m_database; CString strSQL; strSQL.Format(select * from Admin where UID=%s and PWD=%s,username,passwor

15、d); m_recordSet.Open(CRecordset:forwardOnly,strSQL); if(m_recordSet.GetRecordCount()=0) MessageBox(密码错误,请重新输入,密码错误,MB_OK|MB_ICONWARNING); m_pwd.SetWindowText(); m_pwd.SetFocus(); else m_recordSet.GetFieldValue(Type,m_userLevel); CDialog:OnOK(); m_recordSet.Close(); m_database.Close(); else MessageBo

16、x(不能打开数据库); void CLogin:OnCancel() / TODO: Add your control notification handler code here if(MessageBox(真的要退出系统吗?,退出询问,MB_OKCANCEL|MB_ICONQUESTION)=IDOK) CDialog:OnCancel();其次,利用登录模块中获取的m_userLevel的值,判断该登录用户的类别和权限。判断用户权限的代码在StoppingManageSys.cpp中,在初始化函数中修改代码如下:CLogin login; if(login.DoModal()=IDOK)

17、 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CStoppingManageSysDoc), RUNTIME_CLASS(CMainFrame), / main SDI frame window RUNTIME_CLASS(CStoppingManageSysView); AddDocTemplate(pDocTemplate); / Parse command line for standard shell commands, DDE

18、, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); / Dispatch commands specified on the command line if (!ProcessShellCommand(cmdInfo) return FALSE; CMenu* pMenu=m_pMainWnd-GetActiveWindow()-GetMenu(); if(login.m_userLevel=0)/操作员 AfxMessageBox(操作员登录); pMenu-EnableMenuItem (0,MF_GRAYED|

19、MF_BYPOSITION); /使菜单“用户管理”无效。 else if(login.m_userLevel=1)/管理员 AfxMessageBox(管理员登录); pMenu-EnableMenuItem (ID_ChangQi,MF_DISABLED|MF_GRAYED); pMenu-EnableMenuItem (ID_LinShi,MF_DISABLED|MF_GRAYED); pMenu-GetSubMenu(0)-EnableMenuItem (0,MF_ENABLED|MF_BYPOSITION); m_pMainWnd-UpdateWindow(); / The one

20、and only window has been initialized, so show and update it. m_pMainWnd-ShowWindow(SW_SHOW); m_pMainWnd-SetWindowText(台球厅管理系统); m_pMainWnd-UpdateWindow(); return TRUE; else return FALSE; 3.2系统主界面模块设计本系统的主界面设计 步骤为:编辑“Menu”下的“IDR_MAINFRAME”,调整菜单资源,得到如图3.5所示的主界面窗口对话框图。图3.5主界面窗口对话框图。接下来,该图为系统用户的数据库信息图,如

21、图6.18所示。从图3.20中可以看到,所有的功能都是在主界面中实现的,因此主界面设计了多个控件及成员函数。表3.2是本模块添加的控件列表表3.2 Menu资源列表ID标题函数名称ID_ChangePwd修改密码OnPassword()ID_ManageUserInfo用户信息管理OnCreate ()ID_Exit退出系统I ID_ChangQi会员用户管理OnChangQi()ID_LinShi普通卡管理OnLinShi()ID_HELP帮助3.3 用户管理模块设计用户管理模块的设计步骤是:添加新对话框设置ID号为IDD_DIALOG_UserInfoManage,并以CDialog为基类

22、创建UserInfoManage类,以CRecordset为基类创建DataRowset类。添加控件、成员变量及函数。完成之后得到如图3.6所示的用户管理窗口对话框图。图3.6用户管理窗口对话框图从图3.6中可以看到,本模块中添加了三个Static text类型的控件,用来存放成员变量的内容。表3.3是Static text类型的控件列表。表3.3Static text控件表ID控件类型控件名称IDC_STATICStatic text用户名IDC_STATICStatic text密码IDC_STATICStatic text用户身份本模块中还添加了5个Button控件和几个其它类型的控件,

23、表3.4是这些控件的控件列表。表3.4其它类型控件表ID控件类型变量类型变量名称函数名称IDC_EDIT_userIDEdit BoxCEditm_userIDOnChangeEDITuserID()IDC_EDIT_userPwdEdit BoxCEditm_userPwdIDC_COMBO_userTypeComboBoxCComboBoxm_userTypeIDC_LIST_UserInfoListCtrlCListCtrlm_listOnClickLISTListener()IDC_BTN_UserAddButtonCButtonm_bAddOnBTNUserAdd()I IDC_BT

24、N_UserDeleteButtonCButtonm_bDelOnBTNUserDelete()IDC_BTN_UserUpdateButtonCButtonm_bUpdataOnBTNUserUpdata()ID_USER_OKButtonCButtonm_bOKOnBtnOk()IDCANCLEButtonCButtonm_bCancalOnBtnCancel()其中,List控件的“样式”属性中,将“查看”修改为“报告”模式,如下图:本模块中也添加了一些成员函数和成员变量,如图3.7是用户管理模块的CUserInfoManageDlg类的类视图,图这个类主要是实现用户管理模块中的各个功能

25、。如图3.7表示的是CUserInfoManageSet类的类视图。这个类的主要功能是设置用户信息。图3.7 UserInfoManageDlg类视图图3.8 DataRowset类视图接下来,介绍下以CRecordset为基类创建CUserInfoManageSet类的过程,首先找到用户管理模块,点击鼠标右键出现一个对话框,点击“建立类向导”如图3.9所示图3.9建立 DataRowset类过程(1)图在弹出的窗口中找到“Add Class”按钮,再从弹出的菜单栏中选择“New”,如图3.91所示图3.91建立 CUserInfoManageSet类过程(2)图完成上述操作后,注意在User

26、InfoManageDlg.h中添加相应的函数,以及变量,如下所示#if !defined(AFX_USERINFOMANAGEDLG_H_CA082AD8_E557_41FF_AC2D_FF8338248450_INCLUDED_)#define AFX_USERINFOMANAGEDLG_H_CA082AD8_E557_41FF_AC2D_FF8338248450_INCLUDED_#include UserInfoManageSet.h#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ UserInfoManageDlg.h : he

27、ader file/ CUserInfoManageDlg dialogclass CUserInfoManageDlg : public CDialog/ Constructionpublic: CDatabase m_database; BOOL OnInitDialog(); void ResetButton(); void RefreshList(); CUserInfoManageSet m_recordSet; CUserInfoManageDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data /AFX_DAT

28、A(CUserInfoManageDlg) enum IDD = IDD_DIALOG_UserInfoManage ; CButton m_bCancel; CButton m_bOK; CButton m_bUpdate; CButton m_bDelete; CButton m_bAdd; CListCtrl m_list; CComboBox m_userType; CEdit m_userPwd; CEdit m_userID; /AFX_DATA/ Overrides / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CUserInfoManageDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementationprotected: / Generated message map functions /AFX_MSG(CUserInfoManageDlg) afx_msg void

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1