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

上传人:b****7 文档编号:21926664 上传时间:2023-02-01 格式:DOCX 页数:64 大小:1.27MB
下载 相关 举报
台球厅收费管理系统计算机课程设计Word下载.docx_第1页
第1页 / 共64页
台球厅收费管理系统计算机课程设计Word下载.docx_第2页
第2页 / 共64页
台球厅收费管理系统计算机课程设计Word下载.docx_第3页
第3页 / 共64页
台球厅收费管理系统计算机课程设计Word下载.docx_第4页
第4页 / 共64页
台球厅收费管理系统计算机课程设计Word下载.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

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

《台球厅收费管理系统计算机课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《台球厅收费管理系统计算机课程设计Word下载.docx(64页珍藏版)》请在冰豆网上搜索。

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

一张用户管理表,表名[用户表]

一张会员打台球,简称[会员卡]

一张普通,简称[普通卡]

所有用户共同使用一个主界面,在用户登录的时候确定用户及其权限,当登录的用户没有该项权限时,在界面中这项权限所对应的功能模块不能被点击,这样的设计方便了系统管理和维护。

用户在使用本系统时的工作过程为:

进入系统后,会看到登录窗体,对用户的身份进行验证,身份正确则进入本系统,登录到主界面,选择需要的功能进行操作,结束后退出本系统。

如图1.1所示。

图1.1系统流程分析图

管理员

操作员管理员操作员

图1.2系统功能模块

1.6逻辑结构设计:

用户表将涉及以下属性:

姓名、密码、新密码、确认密码。

会员卡将涉及以下属性:

卡号、用户姓名、身份证号、账户余额、是否续费。

普通卡将涉及以下属性:

普通卡号、身份证号、普通卡状态、进入和离开时间以及费用。

(二)数据库的建立、设计及实施

2.1数据库的建立

点击“开始”按钮,在所有程序中找到MicrosoftSQLServer,再从弹出的菜单中找到“企

业管理器”单击进入。

点击“企业管理器”栏如图1.2所示的SQLServer数据库界面,接下来单击“数据库”栏,在数据库中建个库,起名为“taiqiuting”。

2.2数据实体及其关系

本数据库中有3个实体,分别如下介绍:

实体1:

用户:

(姓名,密码,用户类别编号,类别名称)

本系统的数据库并没有将每类用户分别作为一个实体进行设计,而是将用户作为整个数据库的一个实体,通过用户的属性中的类别编号来判断用户的类别。

用户实体使用[用户表]表示,其中包含四个属性:

UID表示姓名、PWD表示密码、Type表示用户类别编号、Exp表示用户类别名称。

图2.3是实体1用户的E-R图。

实体2:

会员客户:

(会员卡号,姓名,身份证号,账户余额,缴费状态)

本系统主要存储的是持有会员卡客户的信息,因此本系统单设了一个基本信息实体。

基本信息实体使用ChangQiTable表示,它包含5个属性:

ChangQiCardID表示会员卡号、ChangQiName表示持有会员卡客户的姓名、ChangQiAddr表示持有会员卡客户的账户余额、ChangQiCarNum表示持有会员卡客户的身份证号、ChangQiFee表示持有会员卡客户的缴费状态。

图2.4是实体2会员客户的E-R图。

实体3:

普通客户:

(普通卡号,身份证号,进入时间,离开时间,计时费用,普通卡状态)

本系统主要存储的是持有会员卡客户的信息,基本信息还是本系统的实体。

基本信息实体使用LinShiTable表示,它包含6个属性:

LinShiCardID表示普通卡号、LinShiCarNum表示持有普通卡客户的身份证号、InTime表示持有普通卡车辆的进入时间、OutTime表示持有普通卡车辆的离开时间、Fee表示持有普通卡客户的计时交费。

Status表示普通卡的发放状态。

图2.5是实体3普通借阅的E-R图。

2.3数据库表的设计

本数据库共设计了3张表,表2.1是本数据库的用户表。

这张表介绍了本数据库的用户,包括管理员和操作员。

用户是通过类别编号来区分用户类别的,用户表共有4个字段,分别表示用户姓名、密码、用户类别编号及用户类别名称。

表2.2数据库用户表

字段名

字段描述

是否为主键

数据类型

长度

UID

用户姓名

char

10

PWD

密码

20

Type

类别编号

4

Exp

类别名称

表2.2是会员客户基本信息表。

包括会员卡号、持有会员卡客户的姓名、家庭住址、身份证号、缴费状态。

表2.3数据库的会员客户表

ChangQiCardID

会员卡号

ChangQiName

会员客户姓名

ChangQiAddr

账户余额

ChangQiCarNum

身份证号

ChangQiFee

缴费状态

表2.3是是普通客户基本信息表。

包括普通卡号、普通卡姓名、进入时间、离开时间、计时交费、普通卡发放状态。

表2.3数据库的普通客户表

LinShiCardID

普通卡号

LinShiCarNum

普通客户姓名

InTime

进入时间

OutTime

离开时间

Fee

计时缴费

Status

普通卡状态

1

Status3

状态

建立完成如下图所示:

数据库的链接:

打开管理工具

打开ODBC数据源(32位)

添加Stopping数据库

(三)系统详细设计

3.1用户登录模块设计

用户登录模块是本系统的基本功能模块,要与后台数据库紧密相连。

设计步骤为:

添加新对话框设置ID号为IDD_DIALOG_Login,并以CDialog为基类创建CLogin类,添加控件、成员变量,完成之后得到如图3.1所示的登录窗口对话框图。

图3.1登录窗口对话框图

如果系统登录不成功,就会弹出一个小的对话框,里面会告诉你“密码错误,请重新输入”的字样,如图6.13所示登录失败窗口图

如果系统登录成功,就会弹出一个小的对话框,里面会告诉用户,该用户是什么登录身份,如图6.14所示登录成功窗口图,本图以管理员登录成功为例。

从图3.1中可以看到,本模块中添加了四个EditBox类型的控件,两个用来存放变量,另外两个用来存放变量内容。

本模块添加了两个Button类型的控件,用来设置确定和取消按钮。

表3.1是本模块添加的控件列表。

表3.1用户登录模块控件列表

ID

控件类型

控件名称

变量类型

变量名称

函数名称

IDC_STATIC

EditBox

用户名:

密码:

IDC_EDIT_UName

CEdit

m_usename

IDC_EDIT_Pwd

m_pwd

ID_OK

Button

登录

OnOK()

ID_CANCEL

取消

OnCancel()

从表3.1中可以看到本模块有两个变量和两个成员函数,两个变量分别是m_usename和m_pwd;

两个成员函数OnOK()和OnCancel()。

先介绍一下创建变量,下面以m_usename为例,找到登录模块,点击鼠标右键出现一个对话框,如图3.2所示

图3.1建立变量

(1)

在弹出的菜单栏中,点击“类向导”,点击“成员变量”栏,然后点击“添加变量”按钮,接下来弹出的窗口为给变量起名字,点击“OK”按钮完成变量的生成,出现如下图3.3所示的窗口

图3.3建立变量

(2)

菜单项的设计:

接下来讲解这两个成员函数,它们是用来设计确定和取消按钮。

OnOK()函数设计的是确定按钮,OnCancel()函数设计的是取消按钮,如图5.5是用户登录类CLogin的成员函数和成员变量视图。

图3.4本模块类CLogin成员函数和成员变量视图

从图3.4中可以看到本模块在设计控件Button时的两个成员函数OnOK()和OnCancel()。

该模块的设计过程中有两个值得注意的点:

其一是该模块中主要有两个变量用户名和密码。

要确保登录成功,用户名和密码一定要正确并且对应,因此判断用户名密码正确与否是该模块设计的关键。

首先在头文件.h中添加需要用到的数据源变量

然后利用GetWindowText()函数获取对话框中输入的用户名和密码信息,传递给username和password两个变量。

利用SQL查询语句

strSQL.Format("

select*from用户表whereUID='

%s'

andPWD='

"

username,password);

中数据库的Admin表中进行查询,如果找到相应的记录,则登录成功,取出这个用户相对应的权限Type赋值给m_userLevel变量。

之后就利用该变量的值为0还是1,来区分是操作员还是管理员。

如果SQL查询的结果为0,即m_recordSet.GetRecordCount()==0,则说明该用户名或密码在用户表中找不到,则登录失败。

登录代码的设计如下:

voidCLogin:

:

OnOk()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CStringusername,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;

CStringstrSQL;

strSQL.Format("

select*fromAdminwhereUID='

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();

不能打开数据库"

}

OnCancel()

if(MessageBox("

真的要退出系统吗?

退出询问"

MB_OKCANCEL|MB_ICONQUESTION)==IDOK)

OnCancel();

其次,利用登录模块中获取的m_userLevel的值,判断该登录用户的类别和权限。

判断用户权限的代码在StoppingManageSys.cpp中,在初始化函数中

修改代码如下:

CLoginlogin;

if(login.DoModal()==IDOK)

{

CSingleDocTemplate*pDocTemplate;

pDocTemplate=newCSingleDocTemplate(

IDR_MAINFRAME,

RUNTIME_CLASS(CStoppingManageSysDoc),

RUNTIME_CLASS(CMainFrame),//mainSDIframewindow

RUNTIME_CLASS(CStoppingManageSysView));

AddDocTemplate(pDocTemplate);

//Parsecommandlineforstandardshellcommands,DDE,fileopen

CCommandLineInfocmdInfo;

ParseCommandLine(cmdInfo);

//Dispatchcommandsspecifiedonthecommandline

if(!

ProcessShellCommand(cmdInfo))

returnFALSE;

CMenu*pMenu=m_pMainWnd->

GetActiveWindow()->

GetMenu();

if(login.m_userLevel=="

0"

)//操作员

AfxMessageBox("

操作员登录"

pMenu->

EnableMenuItem(0,MF_GRAYED|MF_BYPOSITION);

//使菜单“用户管理”无效。

}elseif(login.m_userLevel=="

1"

)//管理员

管理员登录"

EnableMenuItem(ID_ChangQi,MF_DISABLED|MF_GRAYED);

EnableMenuItem(ID_LinShi,MF_DISABLED|MF_GRAYED);

GetSubMenu(0)->

EnableMenuItem(0,MF_ENABLED|MF_BYPOSITION);

m_pMainWnd->

UpdateWindow();

}

//Theoneandonlywindowhasbeeninitialized,soshowandupdateit.

m_pMainWnd->

ShowWindow(SW_SHOW);

SetWindowText("

台球厅管理系统"

returnTRUE;

}

else{

3.2系统主界面模块设计

本系统的主界面设计步骤为:

编辑“Menu”下的“IDR_MAINFRAME”,调整菜单资源,得到如图3.5所示的主界面窗口对话框图。

图3.5主界面窗口对话框图。

接下来,该图为系统用户的数据库信息图,如图6.18所示。

从图3.20中可以看到,所有的功能都是在主界面中实现的,因此主界面设计了多个控件及成员函数。

表3.2是本模块添加的控件列表

表3.2Menu资源列表

标题

ID_ChangePwd

修改密码

OnPassword()

ID_ManageUserInfo

用户信息管理

OnCreate()

ID_Exit

退出系统

IID_ChangQi

会员用户管理

OnChangQi()

ID_LinShi

普通卡管理

OnLinShi()

ID_HELP

帮助

3.3用户管理模块设计

用户管理模块的设计步骤是:

添加新对话框设置ID号为IDD_DIALOG_UserInfoManage,并以CDialog为基类创建UserInfoManage类,以CRecordset为基类创建DataRowset类。

添加控件、成员变量及函数。

完成之后得到如图3.6所示的用户管理窗口对话框图。

图3.6用户管理窗口对话框图从图3.6中可以看到,本模块中添加了三个Statictext类型的控件,用来存放成员变量的内容。

表3.3是Statictext类型的控件列表。

表3.3Statictext控件表

Statictext

用户名

用户身份

本模块中还添加了5个Button控件和几个其它类型的控件,表3.4是这些控件的控件列表。

表3.4其它类型控件表

IDC_EDIT_userID

m_userID

OnChangeEDITuserID()

IDC_EDIT_userPwd

m_userPwd

IDC_COMBO_userType

ComboBox

CComboBox

m_userType

IDC_LIST_UserInfo

ListCtrl

CListCtrl

m_list

OnClickLISTListener()

IDC_BTN_UserAdd

CButton

m_bAdd

OnBTNUserAdd()

IIDC_BTN_UserDelete

m_bDel

OnBTNUserDelete()

IDC_BTN_UserUpdate

m_bUpdata

OnBTNUserUpdata()

ID_USER_OK

m_bOK

OnBtnOk()

IDCANCLE

m_bCancal

OnBtnCancel()

其中,List控件的“样式”属性中,将“查看”修改为“报告”模式,如下图:

本模块中也添加了一些成员函数和成员变量,如图3.7是用户管理模块的CUserInfoManageDlg类的类视图,图这个类主要是实现用户管理模块中的各个功能。

如图3.7表示的是CUserInfoManageSet类的类视图。

这个类的主要功能是设置用户信息。

图3.7UserInfoManageDlg类视图

图3.8DataRowset类视图

接下来,介绍下以CRecordset为基类创建CUserInfoManageSet类的过程,首先找到用户管理模块,点击鼠标右键出现一个对话框,点击“建立类向导”如图3.9所示

图3.9建立DataRowset类过程

(1)图

在弹出的窗口中找到“AddClass”按钮,再从弹出的菜单栏中选择“New”,如图3.91所示

图3.91建立CUserInfoManageSet类过程

(2)图

完成上述操作后,注意在UserInfoManageDlg.h中添加相应的函数,以及变量,如下所示

#if!

defined(AFX_USERINFOMANAGEDLG_H__CA082AD8_E557_41FF_AC2D_FF8338248450__INCLUDED_)

#defineAFX_USERINFOMANAGEDLG_H__CA082AD8_E557_41FF_AC2D_FF8338248450__INCLUDED_

#include"

UserInfoManageSet.h"

#if_MSC_VER>

1000

#pragmaonce

#endif//_MSC_VER>

//UserInfoManageDlg.h:

headerfile

//

/////////////////////////////////////////////////////////////////////////////

//CUserInfoManageDlgdialog

classCUserInfoManageDlg:

publicCDialog

//Construction

public:

CDatabasem_database;

BOOLOnInitDialog();

voidResetButton();

voidRefreshList();

CUserInfoManageSetm_recordSet;

CUserInfoManageDlg(CWnd*pParent=NULL);

//standardconstructor

//DialogData

//{{AFX_DATA(CUserInfoManageDlg)

enum{IDD=IDD_DIALOG_UserInfoManage};

CButtonm_bCancel;

CButtonm_bOK;

CButtonm_bUpdate;

CButtonm_bDelete;

CButtonm_bAdd;

CListCtrlm_list;

CComboBoxm_userType;

CEditm_userPwd;

CEditm_userID;

//}}AFX_DATA

//Overrides

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CUserInfoManageDlg)

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);

//DDX/DDVsupport

//}}AFX_VIRTUAL

//Implementation

protected:

//Generatedmessagemapfunctions

//{{AFX_MSG(CUserInfoManageDlg)

afx_msgvoid

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

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

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