正规的酒店都是有饭馆,娱乐场所,和旅馆的业务合体。
而旅馆应该只是住宿离宿等业务。
你改的话把酒店吃饭,娱乐方面的模块去掉就可以了。
你把自己当客户,比如,进入酒店后,吃饭并不一定住宿,也不一定要娱乐。其他也是。
旅馆的业务我不清楚,应该只有住宿的业务吧,
所以酒店系统中的吃饭和娱乐子模块可以去掉了。
如果你的旅馆也有其他业务,那本身酒店的业务就保留。
而对于后台数据库,数据库里的对象,关于吃饭业务的表(包厢表,菜单表,订单表,账单表),娱乐业务的表(包间表,消费记录表,娱乐活动表等),以及这些表关联的视图,存储过程,索引,还有与其他还要留着的表的完整性约束(规则)也要修改或者删除。
这种系统改着还算简单,因为旅馆的业务刚好与酒店的部分业务还算好改,但是酒店如果只有吃饭业务那就另当别论了…
其实你改系统,弄清两个系统的业务关系与需求对此,然后仿照原有的程序与数据库改动就好了。
#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)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)