如何制作一个完整的数据库管理系统(最好是宾馆客房管理系统)

如何制作一个完整的数据库管理系统(最好是宾馆客房管理系统),第1张

首先你得知道,酒店旅馆业务有出入,

正规的酒店都是有饭馆,娱乐场所,和旅馆的业务合体。

而旅馆应该只是住宿离宿等业务。

你改的话把酒店吃饭,娱乐方面的模块去掉就可以了。

你把自己当客户,比如,进入酒店后,吃饭并不一定住宿,也不一定要娱乐。其他也是。

旅馆的业务我不清楚,应该只有住宿的业务吧,

所以酒店系统中的吃饭和娱乐子模块可以去掉了。

如果你的旅馆也有其他业务,那本身酒店的业务就保留。

而对于后台数据库,数据库里的对象,关于吃饭业务的表(包厢表,菜单表,订单表,账单表),娱乐业务的表(包间表,消费记录表,娱乐活动表等),以及这些表关联的视图,存储过程,索引,还有与其他还要留着的表的完整性约束(规则)也要修改或者删除。

这种系统改着还算简单,因为旅馆的业务刚好与酒店的部分业务还算好改,但是酒店如果只有吃饭业务那就另当别论了…

其实你改系统,弄清两个系统的业务关系与需求对此,然后仿照原有的程序与数据库改动就好了。

#include "stdafx.h"

#include "FinanceBook.h"

#include "AccountDaily.h"

// CAccountDaily 对话框

IMPLEMENT_DYNAMIC(CAccountDaily, CDialog)

CAccountDaily::CAccountDaily(CWnd* pParent /*=NULL*/)

: CDialog(CAccountDaily::IDD, pParent)

{

EnableAutomation()

}

CAccountDaily::~CAccountDaily()

{

}

void CAccountDaily::OnFinalRelease()

{

// 释放了对自动化对象的最后一个引用后,将调用

// OnFinalRelease。基类将自动

// 删除该对象。在调用该基类之前,请添加您的

// 对象所需的附加清理代码。

CDialog::OnFinalRelease()

}

void CAccountDaily::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX)

}

BEGIN_MESSAGE_MAP(CAccountDaily, CDialog)

ON_BN_CLICKED(IDOK, &CAccountDaily::OnBnClickedOk)

END_MESSAGE_MAP()

BEGIN_DISPATCH_MAP(CAccountDaily, CDialog)

END_DISPATCH_MAP()

// 注意: 我们添加 IID_IAccountDaily 支持

// 以支持来自 VBA 的类型安全绑定。此 IID 必须同附加到 .IDL 文件中的

// 调度接口的 GUID 匹配。

// {535CE23C-51E3-4FD9-96FB-DB8A8C13BE92}

static const IID IID_IAccountDaily =

{ 0x535CE23C, 0x51E3, 0x4FD9, { 0x96, 0xFB, 0xDB, 0x8A, 0x8C, 0x13, 0xBE, 0x92 } }

BEGIN_INTERFACE_MAP(CAccountDaily, CDialog)

INTERFACE_PART(CAccountDaily, IID_IAccountDaily, Dispatch)

END_INTERFACE_MAP()

// CAccountDaily 消息处理程序

BOOL CAccountDaily::OnInitDialog()

{

CDialog::OnInitDialog()

// TODO: 在此添加额外的初始化

CButton *pRadioButton = (CButton*)GetDlgItem(IDC_PAYOUT)

pRadioButton->SetCheck(true)

CButton *pCheckBox = (CButton*)GetDlgItem(IDC_FORMAT_DAILY)

pCheckBox->SetCheck(true)

return TRUE // return TRUE unless you set the focus to a control

// 异常: OCX 属性页应返回 FALSE

}

void CAccountDaily::CheckEnter()

{

//该函数的作用是检查输入格式,判断RadioButton和CheckBox的状态

CButton *pRadioButton = (CButton*)GetDlgItem(IDC_PAYOUT)

CButton *pCheckBox = (CButton*)GetDlgItem(IDC_FORMAT_DAILY)

int IsRadioButtonChecked = pRadioButton->GetCheck(),

IsCheckBox = pCheckBox->GetCheck()

GetDlgItemText(IDC_DATE_DAILY,dateTime)

GetDlgItemText(IDC_RESUME,resume)

GetDlgItemText(IDC_AMOUNT_DAILY,amount)

GetDlgItemText(IDC_REMARK_DAILY,remark)

if(!resume.GetLength())

{

MessageBox(L"费用摘要 不能为空! ",L"重要提示",MB_ICONWARNING)

GetDlgItem(IDC_RESUME)->SetFocus()

}

else if(!amount.GetLength())

{

MessageBox(L"发生金额 不能为空! ",L"重要提示",MB_ICONWARNING)

GetDlgItem(IDC_AMOUNT_DAILY)->SetFocus()

}

else

{

if(IsRadioButtonChecked)

type = L"支出"

else

type = L"收入"

int dot = 0, space = 0, ch = 0

CString str

for(int index = 0index != amount.GetLength()++index)

{

if(amount.GetAt(index) == '.')

dot++

if(amount.GetAt(index) == ' ')

space++

if(amount.GetAt(index) <'0' || amount.GetAt(index) >'9')

{

str = amount.GetAt(index)

ch++

}

}

if(ch >0)

{

/***BUG:当字串中有其他字符,形如“a.6”时,会认为格式正确。***/

if(str != '.' &&str != ' ' || (space >0 || dot >1) )

{

MessageBox(L"金额格式有误,请您检查输入! ",L"重要提示",MB_ICONWARNING)

amountIsRigth = false

GetDlgItem(IDC_AMOUNT_DAILY)->SetFocus()

}

else

amountIsRigth = true

}

if(IsCheckBox)

amount = L"¥" + amount

}

}

void CAccountDaily::OnBnClickedOk()

{

// TODO: 在此添加控件通知处理程序代码

//OnOK()

CheckEnter()

if(resume.GetLength() &&amount.GetLength() &&amountIsRigth)

MessageBox(dateTime + L"\n\n" + resume + L"\n\n" + type + L"\n\n" + amount + L"\n\n" + remark)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9790285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存