- PDF文档。使用NASA电池数据集时,按照英文说明文档和自己理解给出的数据集内容说明,仅供参考,欢迎批评指正。【希望并欢迎评论交流谢谢。】5 8198浏览会员免费
- 餐饮管理系统 一、需求分析 随着社会服务行业的发展,餐饮业对自身服务的质量和能力也有了更高的要求。餐饮管理系统正是在这样的情况之下越来越受到重视。餐厅的内部服务项目众多,既需要完成前台的服务工作,还需要完成后台的管理工作,如果没有一套可靠的餐饮管理系统,单凭手工操作,不仅效率低,而且会极大地影响到酒店的服务质量。 设计的目标:实现餐饮管理的科学化、自动化,提高各个模版的办公效率,为高质量的餐饮服务提供保证。 系统功能概述 民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是计算机管理。 传统的手工操作管理存在着许多无法避免的问题,例如: 人工计算机账单金额出现差错; 收银工作中跑单、漏单、偷钱现象普遍; 个别服务员作弊、改单、宰客情形时有发生; 客人消费单据难以保存和查询。 如果借助计算机来管理,就可以轻松的解决处理这些问题。一个餐饮管理信息系统应该包括基本的餐厅的服务管理、管理人员信息的维护等,以及与之相应的操作。所以整个餐饮管理信息系统分为两个大部分,即后台的数据管理维护和前台的操作。后台数据库的管理能保证系统各项功能正常运行,前台操作能提供给客户尽可能方便快捷的服务。 功能模块划分 1. 前台操作系统 订餐管理模块:点菜(输入桌台代码和食物代码)、加菜、下单。 结账管理模块:结账(输入桌台代码)、结账方式选择(包括现金结账、信用卡结账、支票结账、签单等)。 交班管理模块:统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作作准备。 2. 后台管理维护系统 用户权限设置:可以查询员工的基本资料(姓名、性别、年龄、出生年月、籍贯、家庭住址等),员工登录名称、密码、员工操作权限等,可以根据需要进行设置。 菜谱设置:新菜单录入(包括菜式名称、代码、类型、价格、成本等)、菜式修改、删除等菜式维护。 付款方式设置:分为人民币付款、信用卡、支票签单等,可以根据需要进行添加和删除。 系统流程分析 系统流程图1所示。当用户进入系统主界面以后,新用户经过注册后才能凭借其用户名和密码登录,老用户可以直接登录。用户登录以后,系统自动判断出其操作权限。操作权限包括普通员工和管理人员。新用户的操作权限默认为是普通员工。普通员工只能进行订餐、结账操作,而管理人员除此之外还可以进行系统设置与营业分析。 • 图1 当有顾客订餐的时候,员工输入桌台号和食物代码即可进行点菜,在结账以前,加菜是允许的。当顾客结账的时候,员工输入桌台号,选择顾客的付款方式,即可完成结账。 在下班时间,员工可以统计当班期间的消费情况。这样,员工注销此次登录,退出系统,一天的工作就到此结束。 管理人员可以随时进行系统设置,包括菜谱设置、用户权限设置、付款方式设置等。 功能模块调用 餐饮管理系统调用了以下功能模块: 用户注册模块、用户登录模块、数据显示模块。 二、概念设计 图2 给出了餐饮管理系统的E-R实体关系图。收银员、餐桌、菜单三者之间的关系是订餐,其中订餐关系包括的属性有:餐桌编号、菜肴编号、菜肴名称、菜肴单价、菜肴数量、菜肴价格、菜肴折扣、是否结账、结账时间。 三、逻辑设计 将E-R关系模型转化为二维表。本系统主要需要6个表,分别为用户信息表(UserInfo)、菜谱信息表(MenuInfo)、订餐信息表(OrderInfo)、桌台信息表(DeskInfo)、付款方式表(PayModeInfo)、当班统计表(CaldayInfo),各个表中字段的类型以及说明如表1-表6所示。 表1 用户信息表 表2 菜谱信息表 表3 订餐信息表 表4 桌台信息表 表5 付款方式表 表6 当班统计表 其中,用户信息表主要存储用户的基本信息,权限项决定了用户的操作权限。菜谱信息表存储食物的基本信息。价格项为结账与结算提供依据。桌台信息表存储各个桌台的消费情况,如消费金额、是否结账等。订餐信息表存储各个桌台的点菜情况。付款方式表存储了基本的付款方式,供结账时选择。当班统计表存储员工当班期间的营业情况。 四、数据库设计 数据库管理系统采用Microsoft SQL Server 2000作为后台数据库。首先,在企业管理器中建立一个名为MenuManageSys的数据库,然后建立以上6个数据库表,并设定主键、长度。这样,数据库的设计已经完成。 五、详细设计 本餐饮管理系统采用Visual C++ + SQL Server来开发。利用ADO技术调用后台数据库,使用了两个ADO智能指针_ConnectionPtr和_RecordsetPtr,其中_ConnectionPtr用来连接后台SQL Server数据库,_RecordsetPtr指针用来对数据库的表中的记录集进行操作。工程使用的是基于对话框的程序,每个对话框为一个类,父类为CDialog,实现的一些功能都封装在类的函数中,体现了面向对象编程语言C++的特性。 导入ADO接口:在工程的stdafx.h文件里直接引入符号#import引入ADO库文件,加入下面一行代码,以使编译器能正确编译: #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF","adoEOF") 用_ConnectionPtr指针连接数据库:在CmenuManageSysApp类的BOOL InitInstance()函数中加入以下代码: m_pConnection.CreateInstance("ADODB.Connection"); try { m_pConnection->ConnectionTimeout = 8; m_pConnection->PutCursorLocation(adUseClient); m_pConnection->Open("driver={SQL Server};Server=172.29.130.47; DATABASE=MenuManageSys;UID=;PWD=","","",adModeUnknown); } catch(_com_error e) { AfxMessageBox("数据库连接失败!"); return FALSE; } 1.设计工程框架 餐饮管理系统的框架是一个对话框类型的操作界面,用户注册、登录后,可对餐饮管理的各个功能模块进行操作。 1.1设置主界面 系统主界面如图3: 图3 每个事件的对应代码如下: (1) 单击“注册”菜单,弹出“注册”对话框,代码如下: void CMenuManageSysDlg::OnRegister() { CRegisterDlg dlg(this); dlg.DoModal(); } (2) 单击“登录”菜单,弹出“登录”对话框,代码如下: void CMenuManageSysDlg::OnLogin() { CLoginDlg dlg(this); dlg.DoModal(); } (3) 单击“订餐”菜单,判断用户是否登录,代码如下: void CMenuManageSysDlg::OnUpdateOrderSystem(CCmdUI* pCmdUI) { if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (4) 如果用户已经登录,弹出“餐桌信息”对话框,否则提示用户登录,代码如下: void CMenuManageSysDlg::OnOrderSystem() { CDeskDlg dlg; dlg.DoModal(); } (5) 单击“结账”菜单,判断用户是否登录,代码如下: void CMenuManageSysDlg::OnUpdatePayCheck(CCmdUI* pCmdUI) { if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (6) 如果用户已经登录,弹出“结账”对话框,否则提示用户先登录,代码如下: void CMenuManageSysDlg::OnPayCheck() { CPayDlg dlg; dlg.DoModal(); } (7) 单击“下班”菜单,判断用户是否登录,代码如下: void CMenuManageSysDlg::OnUpdateChangeDuty(CCmdUI* pCmdUI) { if(theApp.m_Level==0||theApp.m_Level==1) { pCmdUI->Enable(true); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (8) 如果用户已经登录,弹出“交接班”对话框,否则提示用户先登录,代码如下: void CMenuManageSysDlg::OnChangeDuty() { COffdutyDlg dlg; dlg.DoModal(); } (9) 单击“用户权限设置”菜单,判断用户是否登录及其权限,代码如下: void CMenuManageSysDlg::OnUpdateSetLevel(CCmdUI* pCmdUI) { if(theApp.m_Level==1) { pCmdUI->Enable(true); } else if(theApp.m_Level==0) { pCmdUI->Enable(false); AfxMessageBox("您无权进行用户级别设置"); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (10) 如果权限是管理人员,弹出“权限设置”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下: void CMenuManageSysDlg::OnSetLevel() { CLevelDlg dlg; dlg.DoModal(); } (11) 单击“菜谱设置”菜单,判断用户是否登录及其权限,代码如下: void CMenuManageSysDlg::OnUpdateSetMenu(CCmdUI* pCmdUI) { if(theApp.m_Level==1) { pCmdUI->Enable(true); } else if(theApp.m_Level==0) { pCmdUI->Enable(false); AfxMessageBox("您无权进行菜谱设置"); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (12)如果权限是管理人员,弹出“菜谱设置”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下: void CMenuManageSysDlg::OnSetMenu() { CMenuSetDlg dlg; dlg.DoModal(); } (13)单击“付款方式设置”菜单,判断用户是否登录及其权限,代码如下: void CMenuManageSysDlg::OnUpdatePaymodeSet(CCmdUI* pCmdUI) { if(theApp.m_Level==1) { pCmdUI->Enable(true); } else if(theApp.m_Level==0) { pCmdUI->Enable(false); AfxMessageBox("您无权进行付款方式设置"); } else { pCmdUI->Enable(false); AfxMessageBox("请您先登录"); } } (14)如果权限是管理人员,弹出“设置付款方式”对话框,如果是普通员工会提示无权进行用户级别设置,代码如下: void CMenuManageSysDlg::OnPaymodeSet() { CSetPaymodeDlg dlg; dlg.DoModal(); } (15)单击“注销”菜单,提示用户本次登录已注销,代码如下: void CMenuManageSysDlg::OnLogout() { if(MessageBox("您确定要注销吗","注销询问",MB_OKCANCEL|MB_ICONQUESTION)==IDOK) { theApp.m_Level=-1; AfxMessageBox("本次登录已注销"); } } (16)单击“退出系统”,在确定退出后,关闭系统,代码如下: void CMenuManageSysDlg::OnExitSystem() { if(MessageBox("真的要退出系统吗","退出询问",MB_OKCANCEL|MB_ICONQUESTION)==IDOK) { CDialog::OnOK(); } } 1.2设计注册模块 注册模块如图4: 图4 注册模块 在输入了完整的信息,按下“确定”按钮后,如果没有重复用户,则注册成功,代码如下: void CRegisterDlg::OnRegisterBtn() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(!m_strUserName.IsEmpty()&&!m_strUserNative.IsEmpty() &&!m_strUserAdddress.IsEmpty() &&!m_strUserPwd.IsEmpty()&& !m_strUserPwdAgain.IsEmpty() && !m_strUserNum.IsEmpty() &&m_nUserAge != 0) { if(m_strUserPwd.CompareNoCase(m_strUserPwdAgain) != 0 ) { MessageBox("密码有误,请重新输入密码。","系统注册"); } else { try { m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT*FROMUserInfo",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); } catch(_com_error e) { CString temp; temp.Format("连接数据库错误信息:%s",e.ErrorMessage()); AfxMessageBox(temp); return; } m_pRecordset->AddNew(); m_pRecordset->PutCollect("UserName",_variant_t(m_strUserName)); m_pRecordset->PutCollect("UserPwd",_variant_t(m_strUserPwd)); m_pRecordset->PutCollect("UserNative",_variant_t(m_strUserNative)); m_pRecordset->PutCollect("UserAddress",_variant_t(m_strUserAdddress)); m_pRecordset->PutCollect("UserNum",_variant_t(m_strUserNum)); CString str; if(m_nUserSex==0) { m_pRecordset->PutCollect("UserSex",_variant_t("男")); } else m_pRecordset->PutCollect("UserSex",_variant_t("女")); str.Format("%d",m_nUserAge); m_pRecordset->PutCollect("UserAge",_variant_t(str)); str.Format("%d",0); m_pRecordset->PutCollect("UserLevel",_variant_t(str)); m_pRecordset->Update(); m_pRecordset->Close(); m_pRecordset = NULL; MessageBox("恭喜您注册成功","系统注册"); CDialog::OnOK(); return; } } else { MessageBox("请输入完整注册信息","系统注册"); } } 登录模块如图5: 图5 登录模块 输入完整信息,并单击“确定”按钮后,如果用户名不存在,则重新输入;如果密码错误,则重新输入,在重新输入三次密码后还不正确,则退出登录界面,登录失败。代码如下: void CLoginDlg::OnOK() { UpdateData(TRUE); if(!m_strUserName.IsEmpty() && !m_strPassword.IsEmpty()) { try { CString sql,str; // str.Format("%d",m_nUserNum); sql = "SELECT * FROM UserInfo WHERE UserName='"+m_strUserName+"' and UserNum='"+m_strUserNum+"' and UserPwd = '"+m_strPassword+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); if(m_pRecordset->adoEOF) { m_pRecordset->Close(); sql= "SELECT * FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; try { m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); if(m_pRecordset->adoEOF) { MessageBox("此用户不存在!","登录系统"); } else { if(count>=2) { MessageBox("登录次数过多,系统关闭","系统登录错误",MB_OK|MB_ICONWARNING); CDialog::OnOK(); } else { MessageBox("密码错误!","登录系统"); count++; } return; } } catch(_com_error e)///捕捉异常 { CString temp; temp.Format("连接数据库错误信息:%s",e.ErrorMessage()); AfxMessageBox(temp); return; } } else { theApp.m_Level = m_pRecordset->GetCollect("UserLevel").lVal; theApp.m_name = m_strUserName; MessageBox("登录成功!","登录系统",MB_OKCANCEL|MB_ICONQUESTION); CDialog::OnOK(); return; } } catch(_com_error e)///捕捉异常 { CString temp; temp.Format("连接数据库错误信息:%s",e.ErrorMessage()); AfxMessageBox(temp); return; } m_pRecordset->Close(); m_pRecordset = NULL; } else { MessageBox("请输入用户名和密码","登录系统"); } } 到此,注册模块与登录模块就设计完成。新用户注册以后,凭借其用户名和密码可以登陆,从而对系统进行操作。 3.功能模块设计 根据功能模块划分,可以将餐饮管理系统的功能模块划分为值班员管理模块、菜谱管理模块、用户管理模块、订餐模块、结账模块,下面对工程各个功能进行介绍。 3.1订餐模块设计 订餐模块的功能是员工输入桌台号码和食物代码进行点菜、根据需要加菜、下单。订餐模块如图6所示: 图6 订餐模块 为对话框类添加3个数据集对象: _RecordsetPtr m_pRecordset_Desk; _RecordsetPtr m_pRecordset_Order; _RecordsetPtr m_pRecordset_Menu; 对话框类的各成员函数的代码如下: CDeskDlg::CDeskDlg(CWnd* pParent /*=NULL*/) : CDialog(CDeskDlg::IDD, pParent) { //{{AFX_DATA_INIT(CDeskDlg) m_nOrderDeskNumber = 0; m_nOrderFoodNumber = 0; m_nOrderFoodRebate = 100; m_nOrderFoodAcount = 1; //}}AFX_DATA_INIT } BOOL CDeskDlg::OnInitDialog() //对话框初始化函数 { CDialog::OnInitDialog(); GetDlgItem(IDOK)->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDeskDlg::OnOrderBtn() //点菜消息按钮 { UpdateData(TRUE); CString str; CString sql; if(m_nOrderDeskNumber == 0) { AfxMessageBox("请输入餐桌编号"); return; } if(m_nOrderFoodNumber != 0 ) { str.Format("%d",m_nOrderFoodNumber); sql = "SELECT * FROM MenuInfo WHERE FoodNum = "+str+" "; m_pRecordset_Menu.CreateInstance("ADODB.Recordset"); m_pRecordset_Menu->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Menu->GetRecordCount()==0) { AfxMessageBox("该菜肴编号不存在,请重新输入编号"); return; } else { int m_nTempPrice; CString m_strTempName; m_nTempPrice = m_pRecordset_Menu->GetCollect("FoodPrice").lVal;//食物价格 m_strTempName = m_pRecordset_Menu->GetCollect("FoodName").bstrVal;//食物名称 m_pRecordset_Menu->Close(); str.Format("%d",m_nOrderDeskNumber);//桌子编号 sql = "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_pRecordset_Order->AddNew(); str.Format("%d",m_nOrderDeskNumber); m_pRecordset_Order->PutCollect("DeskNum" ,_variant_t(str));//餐桌编号 str.Format("%d" , m_nOrderFoodNumber); m_pRecordset_Order->PutCollect("FoodNum" ,_variant_t(str));//食物编号 str.Format("%d",m_nTempPrice); m_pRecordset_Order->PutCollect("FoodSignalPrice" ,_variant_t(str));//食物单价 str.Format("%d",m_nOrderFoodAcount); m_pRecordset_Order->PutCollect("FoodAcount" ,_variant_t(str));//食物数量 m_nTempPrice *=m_nOrderFoodAcount; str.Format("%d",m_nTempPrice); m_pRecordset_Order->PutCollect("FoodPrice" ,_variant_t(str));//食物价格 str.Format("%d",m_nOrderFoodRebate); m_pRecordset_Order->PutCollect("FoodRebate" ,_variant_t(str));//食物折扣 int m_nTempRePrice; m_nTempRePrice = (int)m_nTempPrice*m_nOrderFoodRebate/100; str.Format("%d",m_nTempRePrice); m_pRecordset_Order->PutCollect("FoodRePrice" ,_variant_t(str)); //折后价格(小计) m_pRecordset_Order->PutCollect("FoodName" ,_variant_t(m_strTempName));//食物名称 int m_nTempCheck; m_nTempCheck = 0; str.Format("%d",m_nTempCheck); m_pRecordset_Order->PutCollect("FoodCheck" ,_variant_t(str));//是否结帐 CString paytime; CTime now=CTime::GetCurrentTime(); paytime=now.Format(_T("%Y-%m-%d %H:%M:%S")); m_pRecordset_Order->PutCollect("FoodTime",_variant_t(paytime));//点菜时间 m_pRecordset_Order->Update(); m_pRecordset_Order ->Close(); str.Format("%d",m_nOrderDeskNumber); CString str1; str1.Format("%d" , 0); sql = "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" and FoodCheck = "+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbFood.SetRefDataSource(NULL); m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbFood.SetColumnHeaders(2) ; m_dbFood.Refresh(); GetDlgItem(IDOK)->EnableWindow(TRUE); } } else { AfxMessageBox("请输入菜肴编号"); return; } } void CDeskDlg::OnOK() //下单消息按钮 { CString str,sql,str1; int m_nTempRePrice; m_nTotalPrice = 0; while(!m_pRecordset_Order->adoEOF) { m_nTempRePrice=m_pRecordset_Order->GetCollect("FoodRePrice").lVal; m_nTotalPrice += m_nTempRePrice; m_pRecordset_Order->MoveNext(); } if(m_nTotalPrice>0) { int temp=0; str1.Format("%d",temp); str.Format("%d",m_nOrderDeskNumber); sql = "SELECT * FROM DeskInfo WHERE DeskNum = "+str+" and DeskCheck = "+str1+""; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount()==0) { m_pRecordset_Desk->AddNew(); str.Format("%d",m_nOrderDeskNumber); m_pRecordset_Desk->PutCollect("DeskNum",(_variant_t)str); str.Format("%d",m_nTotalPrice); m_pRecordset_Desk->PutCollect("DeskPrice",(_variant_t)str); temp = 0; str.Format("%d" , temp); m_pRecordset_Desk->PutCollect("DeskCheck",(_variant_t)str); } else { str.Format("%d",m_nTotalPrice); m_pRecordset_Desk->PutCollect("DeskPrice",(_variant_t)str); } m_pRecordset_Desk->Update(); m_pRecordset_Desk->Close(); } CDialog::OnOK(); } void CDeskDlg::OnUpdateOrderDeskNumber() //根据餐桌号自动将原来已点的食物信息绑定到数据列表 { UpdateData(TRUE); CString str,sql; str.Format("%d",m_nOrderDeskNumber); CString str1; int temp=0; str1.Format("%d" , temp); sql = "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" and FoodCheck = "+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbFood.SetRefDataSource(NULL); m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbFood.SetColumnHeaders(2) ; m_dbFood.Refresh(); } 3.2结账模块设计 结账模块的功能是员工输入桌台代码进行结账、选择结账方式(包括现金结账、信用卡结账、支票结账、签单等)、自动找零。结账模块如图7所示: 图7 结账模块 为对话框类添加3个数据集对象,代码如下: _RecordsetPtr m_pRecordset_Paymode; _RecordsetPtr m_pRecordset_Order; _RecordsetPtr m_pRecordset_Desk; 对话框类的各成员函数的代码如下: CPayDlg::CPayDlg(CWnd* pParent /*=NULL*/) : CDialog(CPayDlg::IDD, pParent) { //{{AFX_DATA_INIT(CPayDlg) m_strPaymode = _T(""); m_strPayUserName = _T(""); m_nPayDeskNumber = 0; m_nPayTotalPrice = 0; m_nPayRealPrice = 0; m_nPayRePrice = 0; m_timePay = COleDateTime::GetCurrentTime(); //}}AFX_DATA_INIT } BOOL CPayDlg::OnInitDialog() //对话框初始化函数 { CDialog::OnInitDialog(); m_strPayUserName=theApp.m_name; CString sql; sql="SELECT * FROM PayModeInfo"; m_pRecordset_Paymode.CreateInstance("ADODB.Recordset"); m_pRecordset_Paymode->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Paymode->GetRecordCount()!=0) { while(!m_pRecordset_Paymode->adoEOF) { m_coPaymode.AddString((LPCTSTR)(_bstr_t)m_pRecordset_Paymode->GetCollect("NAME")); m_pRecordset_Paymode->MoveNext(); } m_pRecordset_Paymode->Close(); m_coPaymode.SetCurSel(0); } UpdateData(FALSE); return TRUE; } void CPayDlg::OnUpdatePayDeskNumber() //自动将对应桌号的点菜信息以及消费情况显示在桌面上 { UpdateData(TRUE); CString sql,str,str1; int temp=0; str.Format("%d",m_nPayDeskNumber); str1.Format("%d",temp); sql="SELECT * FROM DeskInfo WHERE DeskNum="+str+" AND DeskCheck="+str1+" "; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount()!=0) { m_nPayTotalPrice=m_pRecordset_Desk->GetCollect("DeskPrice").lVal; } m_pRecordset_Desk->Close(); sql="SELECT * FROM OrderInfo WHERE DeskNum="+str+" AND FoodCheck="+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPay.SetRefDataSource(NULL); m_dbPay.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order); m_dbPay.SetColumnHeaders(1); m_dbPay.Refresh(); UpdateData(FALSE); } void CPayDlg::OnUpdatePayRealprice() //根据实收金额自动计算找零金额 { UpdateData(TRUE); m_nPayRePrice=m_nPayRealPrice-m_nPayTotalPrice; UpdateData(FALSE); } void CPayDlg::OnOK() //确定按钮消息函数,将数据写回DESK表和ORDER表,结账完成 { UpdateData(TRUE); if(!m_strPaymode.IsEmpty()&&m_nPayRealPrice!=0) { CString sql,str,str1; int temp=0; str.Format("%d",m_nPayDeskNumber); str1.Format("%d",temp); sql="SELECT * FROM DeskInfo WHERE DeskNum="+str+" AND DeskCheck="+str1+" "; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Desk->GetRecordCount!=0) { temp=1; str.Format("%d",temp); m_pRecordset_Desk->PutCollect("DeskCheck",(_variant_t)str); int selmode; selmode=m_coPaymode.GetCurSel(); m_coPaymode.GetLBText(selmode,m_strPaymode); m_pRecordset_Desk->PutCollect("DeskPaymode",_variant_t(m_strPaymode)); CString paytime; CTime now=CTime::GetCurrentTime(); paytime=now.Format(_T("%Y-%m-%d %H:%M:%S")); m_pRecordset_Desk->PutCollect("DeskDateTime",(_variant_t)paytime); m_pRecordset_Desk->PutCollect("DeskName",(_variant_t)m_strPayUserName); } m_pRecordset_Desk->Update(); m_pRecordset_Desk->Close(); str.Format("%d",m_nPayDeskNumber); sql="SELECT * FROM OrderInfo WHERE DeskNum="+str+" AND FoodCheck="+str1+" "; m_pRecordset_Order.CreateInstance("ADODB.Recordset"); m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Order->GetRecordCount()!=0) { temp=1; str.Format("%d",temp); while(!m_pRecordset_Order->adoEOF) { m_pRecordset_Order->PutCollect("FoodCheck",(_variant_t)str); m_pRecordset_Order->Update(); m_pRecordset_Order->MoveNext(); } } m_pRecordset_Order->Close(); str.Format("%d",m_nPayDeskNumber); str+="号桌已结账"; AfxMessageBox(str); CDialog::OnOK(); } else { AfxMessageBox("请输入完整信息"); } } 到此,结账模块已经设计完成。 3.3交接班模块设计 交接班模块的功能是管理员统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作做准备。交接班模块如图8所示: 图8 交接班模块 为对话框类添加两个数据集对象,代码如下: _RecordsetPtr m_pRecordset_Off; _RecordsetPtr m_pRecordset_Desk; 对话框类的各成员函数的代码如下: COffdutyDlg::COffdutyDlg(CWnd* pParent /*=NULL*/) : CDialog(COffdutyDlg::IDD, pParent) { //{{AFX_DATA_INIT(COffdutyDlg) m_strDayName = _T(""); m_nTotalAcount = 0; m_timeDay = 0; //}}AFX_DATA_INIT } BOOL COffdutyDlg::OnInitDialog() //对话框初始化 { CDialog::OnInitDialog(); m_timeDay=CTime::GetCurrentTime(); m_strDayName=theApp.m_name; UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void COffdutyDlg::OnCalDayBtn() //统计按钮,负责当班统计 { CString sql,str; int temp=1; str.Format("%d",temp); sql="SELECT * FROM DeskInfo WHERE DeskCheck="+str+" AND DeskName='"+m_strDayName+"' "; m_pRecordset_Desk.CreateInstance("ADODB.Recordset"); m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); int renminbi_jine=0,qita_jine=0,total_jine=0,acount=0; if(m_pRecordset_Desk->GetRecordCount!=0) { while(!m_pRecordset_Desk->adoEOF) { str=m_pRecordset_Desk->GetCollect("DeskPaymode").bstrVal; if(str.CompareNoCase("人民币")==0) { renminbi_jine+=m_pRecordset_Desk->GetCollect("DeskPrice").lVal; } else { qita_jine+=m_pRecordset_Desk->GetCollect("DeskPrice").lVal; } acount++; m_pRecordset_Desk->MoveNext(); } } m_pRecordset_Desk->Close(); total_jine=renminbi_jine+qita_jine; m_pRecordset_Off.CreateInstance("ADODB.Recordset"); m_pRecordset_Off->Open("SELECT * FROM CalDayInfo",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset_Off->GetRecordCount!=0) { while(!m_pRecordset_Off->adoEOF) { m_pRecordset_Off->Delete(adAffectCurrent); m_pRecordset_Off->Update(); m_pRecordset_Off->MoveNext(); } } m_pRecordset_Off->AddNew(); m_pRecordset_Off->PutCollect("mode",_variant_t("人民币")); str.Format("%d",renminbi_jine); m_pRecordset_Off->PutCollect("money",_variant_t(str)); m_pRecordset_Off->AddNew(); m_pRecordset_Off->PutCollect("mode",_variant_t("其他")); str.Format("%d",qita_jine); m_pRecordset_Off->PutCollect("money",_variant_t(str)); m_pRecordset_Off->AddNew(); m_pRecordset_Off->PutCollect("mode",_variant_t("合计")); str.Format("%d",total_jine); m_pRecordset_Off->PutCollect("money",_variant_t(str)); m_dbTotalDay.SetRefDataSource(NULL); m_dbTotalDay.SetRefDataSource((LPUNKNOWN)m_pRecordset_Off); m_dbTotalDay.SetColumnHeaders(2); m_dbTotalDay.Refresh(); m_pRecordset_Off->Update(); m_nTotalAcount=acount; UpdateData(FALSE); } 3.4用户权限管理模块设计 用户权限模块的功能是方便管理人员查询员工的基本资料,设置员工的操作权限。用户权限设置模块的设计如图9: 图9 权限设置模块 对话框类的各成员函数的代码如下: CLevelDlg::CLevelDlg(CWnd* pParent /*=NULL*/) : CDialog(CLevelDlg::IDD, pParent) { //{{AFX_DATA_INIT(CLevelDlg) m_strUserName = _T(""); m_strUserNum = _T(""); m_strLevelSelect = _T(""); //}}AFX_DATA_INIT } BOOL CLevelDlg::OnInitDialog() { CDialog::OnInitDialog(); m_coLevelSelect.AddString("管理员"); m_coLevelSelect.AddString("用户"); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); UpdateData(FALSE); CString sql; sql="SELECT * FROM UserInfo "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CLevelDlg::OnChange() { GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(TRUE); GetDlgItem(IDC_CONFIRM)->EnableWindow(TRUE); UpdateData(TRUE); CString sql; sql="SELECT UserName,UserNum,UserLevel,UserPwd FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); } void CLevelDlg::OnConfirm() { UpdateData(TRUE); if(!m_strLevelSelect.IsEmpty()) { if(m_strLevelSelect.CompareNoCase("管理员")==0) { CString str,sql; int temp=1; str.Format("%d",temp); sql="SELECT UserName,UserNum,UserLevel,UserPwd FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_pRecordset->PutCollect("UserLevel",_variant_t(str)); m_pRecordset->Update(); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); AfxMessageBox("权限修改成功"); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); } else { CString str,sql; int temp=0; str.Format("%d",temp); sql="SELECT UserName,UserNum,UserLevel,UserPwd FROM UserInfo WHERE UserName='"+m_strUserName+"' AND UserNum='"+m_strUserNum+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_pRecordset->PutCollect("UserLevel",_variant_t(str)); m_pRecordset->Update(); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); AfxMessageBox("权限修改成功"); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); } } else { AfxMessageBox("请选择权限"); } } void CLevelDlg::OnShowAll() { CString sql; sql="SELECT * FROM UserInfo "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbUserInfo.SetRefDataSource(NULL); m_dbUserInfo.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbUserInfo.SetColumnHeaders(2); m_dbUserInfo.Refresh(); GetDlgItem(IDC_LEVEL_SELECT)->EnableWindow(FALSE); GetDlgItem(IDC_CONFIRM)->EnableWindow(FALSE); } 至此,权限设置模块设计完成。 3.5菜谱管理模块设计 菜谱管理模块的功能是管理人员进行新菜式的录入、菜式修改、删除等菜式维护。菜谱管理模块如图10: 图10 菜单管理模块 对话框类的各成员函数的代码如下: CMenuSetDlg::CMenuSetDlg(CWnd* pParent /*=NULL*/) : CDialog(CMenuSetDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMenuSetDlg) m_nInputNum = 0; m_nCost = 0; m_strName = _T(""); m_nNum = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); //}}AFX_DATA_INIT } BOOL CMenuSetDlg::OnInitDialog() //对话框初始化 { CDialog::OnInitDialog(); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CMenuSetDlg::OnUpdateEditInputNum() { UpdateData(TRUE); if(m_nInputNum!=0) { GetDlgItem(IDC_INQUIRY)->EnableWindow(TRUE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); } } void CMenuSetDlg::OnInquiry() //查询 { UpdateData(TRUE); CString sql,str; str.Format("%d",m_nInputNum); sql="SELECT * FROM MenuInfo WHERE FoodNum="+str+" "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()!=0) { m_nInputNum=0; m_nNum=m_pRecordset->GetCollect("FoodNum").lVal; m_strName=m_pRecordset->GetCollect("FoodName").bstrVal; m_strType=m_pRecordset->GetCollect("FoodType").bstrVal; m_nPrice=m_pRecordset->GetCollect("FoodPrice").lVal; m_nCost=m_pRecordset->GetCollect("FoodCost").lVal; m_strRemark=m_pRecordset->GetCollect("FoodRemark").bstrVal; GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(TRUE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); } else { // m_nInputNum=0; AfxMessageBox("您所查找的菜肴不存在"); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); } UpdateData(FALSE); } void CMenuSetDlg::OnAddNew() //新增 { m_nCost = 0; m_strName = _T(""); m_nNum = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); GetDlgItem(IDC_ADDSAVE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_NUM)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(TRUE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); GetDlgItem(IDC_INQUIRY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_INPUT_NUM)->EnableWindow(TRUE); UpdateData(FALSE); } void CMenuSetDlg::OnAddSave() //保存所增加项 { UpdateData(TRUE); if(m_nCost!=0 && m_nNum!=0 && m_nPrice!=0 && !m_strName.IsEmpty() && !m_strRemark.IsEmpty() && !m_strType.IsEmpty()) { GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_ADDSAVE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_INPUT_NUM)->EnableWindow(TRUE); CString str,sql; str.Format("%d",m_nNum); sql="SELECT * FROM MenuInfo WHERE FoodNum="+str+""; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()!=0) { AfxMessageBox("菜肴号码已存在"); } else { m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM MenuInfo",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_nNum==0) { AfxMessageBox("菜肴号码不能为0"); return; } else { m_pRecordset->AddNew(); str.Format("%d",m_nNum); m_pRecordset->PutCollect("FoodNum",_variant_t(str)); m_pRecordset->PutCollect("FoodName",_variant_t(m_strName)); m_pRecordset->PutCollect("FoodType",_variant_t(m_strType)); str.Format("%d",m_nPrice); m_pRecordset->PutCollect("FoodPrice",_variant_t(str)); str.Format("%d",m_nCost); m_pRecordset->PutCollect("FoodCost",_variant_t(str)); m_pRecordset->PutCollect("FoodRemark",_variant_t(m_strRemark)); m_pRecordset->Update(); m_pRecordset->Close(); AfxMessageBox("已保存"); m_nCost = 0; m_strName = _T(""); m_nNum = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); UpdateData(FALSE); } } } else AfxMessageBox("请输入完整信息"); } void CMenuSetDlg::OnModify() //修改 { GetDlgItem(IDC_EDIT_NUM)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_NAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_TYPE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_PRICE)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_COST)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_REMARK)->EnableWindow(TRUE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(TRUE); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); m_nCost = 0; m_nPrice = 0; m_strRemark = _T(""); m_strType = _T(""); UpdateData(FALSE); } void CMenuSetDlg::OnModifysave() //保存修改 { UpdateData(TRUE); if(!m_strType.IsEmpty()&&m_nPrice!=0&&m_nCost!=0&&!m_strRemark.IsEmpty()) { CString str,sql; str.Format("%d",m_nNum); // m_pRecordset->PutCollect("FoodNum",_variant_t(str)); // m_pRecordset->PutCollect("FoodName",_variant_t(m_strName)); m_pRecordset->PutCollect("FoodType",_variant_t(m_strType)); str.Format("%d",m_nPrice); m_pRecordset->PutCollect("FoodPrice",_variant_t(str)); str.Format("%d",m_nCost); m_pRecordset->PutCollect("FoodCost",_variant_t(str)); m_pRecordset->PutCollect("FoodRemark",_variant_t(m_strRemark)); m_pRecordset->Update(); AfxMessageBox("修改成功"); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFYSAVE)->EnableWindow(FALSE); } else { AfxMessageBox("请输入完整信息"); } } void CMenuSetDlg::OnDel() { m_pRecordset->Delete(adAffectCurrent); m_pRecordset->Close(); AfxMessageBox("删除成功"); GetDlgItem(IDC_DEL)->EnableWindow(FALSE); GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE); } 至此,菜谱管理模块设计完成。 3.6付款方式设置模块设计 付款方式设置模块如图11: 图11 付款方式模块 对话框类的各成员函数的代码如下: CSetPaymodeDlg::CSetPaymodeDlg(CWnd* pParent /*=NULL*/) : CDialog(CSetPaymodeDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSetPaymodeDlg) m_strPaymode = _T(""); //}}AFX_DATA_INIT } BOOL CSetPaymodeDlg::OnInitDialog() //对话框初始化 { CDialog::OnInitDialog(); m_bAdd=FALSE; m_bDel=FALSE; m_sInputPaymode.ShowWindow(SW_HIDE); m_editPaymode.ShowWindow(SW_HIDE); m_btnSure.ShowWindow(SW_HIDE); CString sql; sql="SELECT * FROM PayModeInfo"; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPaymode.SetRefDataSource(NULL); m_dbPaymode.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbPaymode.SetColumnHeaders(1); m_dbPaymode.Refresh(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSetPaymodeDlg::OnPaymodeAddBtn() //单击按钮后,开始新增 { m_sInputPaymode.ShowWindow(SW_SHOW); m_editPaymode.ShowWindow(SW_SHOW); m_btnSure.ShowWindow(SW_SHOW); m_bAdd=TRUE; m_bDel=FALSE; } void CSetPaymodeDlg::OnPaymodeDelBtn() //单击按钮后,开始删除 { m_sInputPaymode.ShowWindow(SW_SHOW); m_editPaymode.ShowWindow(SW_SHOW); m_btnSure.ShowWindow(SW_SHOW); m_bAdd=FALSE; m_bDel=TRUE; } void CSetPaymodeDlg::OnOK() //确定添加或者删除 { UpdateData(TRUE); if(!m_strPaymode.IsEmpty()) { if(m_bAdd==TRUE) { CString str; BOOL flag=0; m_pRecordset->MoveFirst(); while(!m_pRecordset->adoEOF) { str=m_pRecordset->GetCollect("NAME").bstrVal; if(str.CompareNoCase(m_strPaymode)==0) { MessageBox("您输入的付款方式已存在","输入错误",MB_OK|MB_ICONWARNING); flag=1; break; } else m_pRecordset->MoveNext(); } /* CString sql; sql="SELECT * FROM PayModeInfo WHERE NAME='"+m_strPaymode+"' "; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()==0) { MessageBox("您输入的付款方式已存在","输入错误",MB_OK|MB_ICONWARNING); flag=1; } */ if(flag==0) { m_pRecordset->MoveLast(); m_pRecordset->AddNew(); m_pRecordset->PutCollect("NAME",_variant_t(m_strPaymode)); m_pRecordset->Update(); m_dbPaymode.SetRefDataSource(NULL); m_dbPaymode.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbPaymode.SetColumnHeaders(1); m_dbPaymode.Refresh(); m_bAdd=FALSE; } } if(m_bDel==TRUE) { BOOL flag=0; UpdateData(TRUE); CString str; int newid; /* m_pRecordset->MoveFirst(); while(!m_pRecordset->adoEOF) { str=m_pRecordset->GetCollect("NAME").bstrVal; if(str.CompareNoCase(m_strPaymode)==0) { flag=1; m_pRecordset->Delete(adAffectCurrent); m_pRecordset->Update(); break; } else m_pRecordset->MoveNext(); } */ CString sql; sql="SELECT * FROM PayModeInfo WHERE NAME='"+m_strPaymode+"'"; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); if(m_pRecordset->GetRecordCount()!=0) { flag=1; m_pRecordset->Delete(adAffectCurrent); m_pRecordset->Update(); m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM PayModeInfo",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText); m_dbPaymode.SetRefDataSource(NULL); m_dbPaymode.SetRefDataSource((LPUNKNOWN)m_pRecordset); m_dbPaymode.SetColumnHeaders(1); m_dbPaymode.Refresh(); m_bDel=FALSE; } if(flag==0) { MessageBox("您输入的付款方式不存在,请查询后确认","输入错误",MB_OK|MB_ICONWARNING); } m_dbPaymode.Refresh(); m_bDel=FALSE; } m_editPaymode.SetWindowText(""); m_sInputPaymode.ShowWindow(SW_HIDE); m_editPaymode.ShowWindow(SW_HIDE); m_btnSure.ShowWindow(SW_HIDE); } else { AfxMessageBox("请输入付款方式"); } } 至此,付款方式设置模块设计完成。 六、系统演示 系统设计并编写完成后,编译运行程序,初始界面如图12所示: 图12 1. 系统登录 单击“登录”菜单,弹出登录界面,在登陆界面输入框中分别输入用户编号、用户名和密码,如图13所示。 如果用户名和密码都正确,那么就可以登陆系统,系统提示如图14所示。 图13 图14 如果用户名不存在或密码输入不正确,系统提示如图15和图16所示,将无法进入系统。 图15 图16 如果未登录就进行其他操作,系统提示如图17所示。只有登录后才能操作其他功能。单击“注册”菜单,弹出注册对话框如图18所示。 按要求填写完注册信息,如果注册名未被注册,并且前后两次输入的密码一致,那么系统给出如图19所示提示。 如果前后两次输入密码不一致,系统给出如图20所示提示,此时注册不成功。 图19 图20 2.订餐操作 系统登录后,单击“订餐”菜单,弹出“餐桌信息”对话框,如图21所示。 餐桌第一次订餐时,输入餐桌编号、食物编号、数量以及折扣,单击“点菜”按钮,在右侧点菜信息栏中列举了该餐桌所点的菜肴,如图22所示。 图21 图22 如果餐桌已经订过餐,但是还没有结账,则在餐桌编号输入框输入餐桌号,在点菜信息栏中显示该桌已点的菜。 单击“下单”按钮,即可把点菜信息记录下来。 3.结账操作 单击“结账”菜单,弹出“结账单”对话框。输入桌台号,自动显示对应的点菜信息以及消费金额。选取付款方式和实收金额后,界面会自动显示找零金额,结果如图23所示。 图23 4.用户权限设置 单击“管理”|“用户权限设置”,弹出“权限设置”对话框,如图24所示,所有用户的信息都显示在数据列表中。 输入要查询的用户编号和名称,单击“更改”,该用户的信息就显示在列表中,结果如图25所示。 图24 图25 选择权限,单击确定后,如图26所示,用户权限已被修改。 图26 单击“显示全部”,结果如图27所示。 图27 5.菜谱管理 单击“管理”|“菜谱设置”菜单,弹出“菜谱设置”对话框,如图28所示。 图28 在“菜谱设置”对话框中可以对菜谱进行查找、添加、删除、修改等操作。 6.付款方式设置 单击“管理”|“付款方式设置”菜单,弹出“付款方式”对话框,如图29所示。 单击“新增”或“删除”按钮,显示新增付款方式文本框和“确定”按钮,如图30所示。 图29 图30 在文本框中输入要增加/删除的付款方式,并单击“确定”按钮,将新增或删除所选择的付款方式。 7.注销用户 单击“注销”菜单,弹出“注销询问”对话框如图31所示。选择“确定”,注销成功,如图32所示。 图31 图32 8.系统退出 单击“退出系统”菜单,弹出“退出询问”对话框如图33所示。选择“确定”,则系统退出。 图33 至此,系统的全部功能已经演示完毕。 七、结束语 经过两个多星期的时间,终于完成了本系统的设计。虽然本系统有一些漏洞和不完善的地方,但是本系统结合餐饮管理的实际情况,基于数据库设计通用的模块,对餐饮管理的前台和后台操作进行功能模块的设计,实现了餐饮管理的基本功能。 在设计的过程中,遇到了很多的技术上的问题。例如,第一次接触ADO数据库访问技术,对用ADO来连接数据库不是很了解,出现了很多的问题,设计受到了很大的阻碍。经过向专业指导老师请教和参阅了有关书籍后,终于把一些问题解决了。在本次设计中,我懂得了“书到用时方恨少”的道理,发现了自己在专业方面还有很多要提高的地方,在今后的学习中,我一定努力进步! 参考文献: [1] 萨师煊,王珊.数据库系统概论[M]第3版.北京:高等教育出版社,2000 [2] 侯其锋,李晓华,李莎.Visual C++数据库通用模块开发与系统移植.北京:清华大学出版社,2007 致 谢 在这次课程设计中,戴小鹏老师给了我很大的帮助。他对我的精心指导和关心,使我在设计的过程中受到了很大的启发。特别是他的那份耐心和责任心,使我在今后的学习和工作中受益匪浅。在此,特向戴小鹏老师表示衷心的感谢!5 2122浏览会员免费
- 点云数据集大小:26MB这里面包含了很多数据集,有buliding\horse\pig\rabbit\table\wolf等点云pcd文件,感兴趣的可以下载。这里面包含了很多数据集,有buliding\horse\pig\rabbit\table\wolf等点云pcd文件,感兴趣的可以下载。5 3461浏览会员免费
- weka大小:18MB打包在一起了,共202个arff文件 。。。打包在一起了,共202个arff文件 。。。5 294浏览会员免费
- 数据集大小:84KB乳腺肿瘤诊断数据集乳腺肿瘤诊断数据集3 2771浏览会员免费
- 中国省份划分大小:994KB中国省区图 shapefile, 可用于测试,是一个非常不错的数据集中国省区图 shapefile, 可用于测试,是一个非常不错的数据集4 214浏览会员免费
- NASA数据集大小:11MBNASA PCoE实验室锂电池数据集:BatteryAgingARC_25_26_27_28_P1。 数据集主要用来做剩余寿命预测。NASA PCoE实验室锂电池数据集:BatteryAgingARC_25_26_27_28_P1。 数据集主要用来做剩余寿命预测。4 4904浏览会员免费
- GEE学习教程:GEE本身存储了近40年来主要公开遥感影像数据集,⽐如Landsat系列产品、 Modis系列产 品、 Sentinel系列产品等,还有就是各种⽓象数据等。通过GEE提供的各种API以及其他 的⼯具可以⽅便的查看、计算、分析⼤范围的各种影像数据。1 6431浏览会员免费
- 本资料详细介绍了PCI9052的驱动开发步骤,是难得的好资料。并且是全中文。希望给大家带来帮助。 第一章 PCI总线概述 第二章 PCI9052简介 第三章 局部总线操作 第四章 PCI9052功能描叙 第五章 ISA接口方式 第六章 PCI总线开发步骤4 1152浏览会员免费
- 出版信息编辑 译者:韩冀中 出版社:人民邮电出版社 出版时间:2011年10月 版次:1.1 开本:16开 装帧:平装 字数:417千字 页数:253页 内容简介编辑 作为云计算所青睐的分布式架构,Hadoop是一个用Java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,是谷歌实现云计算的重要基石。《Hadoop实战》分为3个部分,深入浅出地介绍了Hadoop框架、编写和运行Hadoop数据处理程序所需的实践技能及Hadoop之外更大的生态系统。 《Hadoop实战》适合需要处理大量离线数据的云计算程序员、架构师和项目经理阅读参考。 目录编辑 第一部分 Hadoop——一种分布式编程框架 第1章 Hadoop简介 2 1.1 为什么写《Hadoop 实战》 3 1.2 什么是Hadoop 3 1.3 了解分布式系统和Hadoop 4 1.4 比较SQL数据库和Hadoop 5 1.5 理解MapReduce 6 1.5.1 动手扩展一个简单程序 7 1.5.2 相同程序在MapReduce中的扩展 9 1.6 用Hadoop统计单词——运行第一个程序 11 1.7 Hadoop历史 15 1.8 小结 16 1.9 资源 16 第2章 初识Hadoop 17 2.1 Hadoop的构造模块 17 2.1.1 NameNode 17 2.1.2 DataNode 18 2.1.3 Secondary NameNode 19 2.1.4 JobTracker 19 2.1.5 TaskTracker 19 2.2 为Hadoop集群安装SSH 21 2.2.1 定义一个公共账号 21 2.2.2 验证SSH安装 21 2.2.3 生成SSH密钥对 21 2.2.4 将公钥分布并登录验证 22 2.3 运行Hadoop 22 2.3.1 本地(单机)模式 23 2.3.2 伪分布模式 24 2.3.3 全分布模式 25 2.4 基于Web的集群用户界面 28 2.5 小结 30 第3章 Hadoop组件 31 3.1 HDFS文件操作 31 3.1.1 基本文件命令 32 3.1.2 编程读写HDFS 35 3.2 剖析MapReduce程序 37 3.2.1 Hadoop数据类型 39 3.2.2 Mapper 40 3.2.3 Reducer 41 3.2.4 Partitioner:重定向Mapper输出 41 3.2.5 Combiner:本地reduce 43 3.2.6 预定义mapper和Reducer类的单词计数 43 3.3 读和写 43 3.3.1 InputFormat 44 3.3.2 OutputFormat 49 3.4 小结 50 第二部分 实战 第4章 编写MapReduce基础程序 52 4.1 获得专利数据集 52 4.1.1 专利引用数据 53 4.1.2 专利描述数据 54 4.2 构建MapReduce程序的基础模板 55 4.3 计数 60 4.4 适应Hadoop API的改变 64 4.5 Hadoop的Streaming 67 4.5.1 通过Unix命令使用Streaming 68 4.5.2 通过脚本使用Streaming 69 4.5.3 用Streaming处理键/值对 72 4.5.4 通过Aggregate包使用Streaming 75 4.6 使用combiner提升性能 80 4.7 温故知新 83 4.8 小结 84 4.9 更多资源 84 第5章 高阶MapReduce 85 5.1 链接MapReduce作业 85 5.1.1 顺序链接MapReduce作业 85 5.1.2 具有复杂依赖的MapReduce链接 86 5.1.3 预处理和后处理阶段的链接 86 5.2 联结不同来源的数据 89 5.2.1 Reduce侧的联结 90 5.2.2 基于DistributedCache的复制联结 98 5.2.3 半联结:map侧过滤后在reduce侧联结 101 5.3 创建一个Bloom filter 102 5.3.1 Bloom filter做了什么 102 5.3.2 实现一个Bloom filter 104 5.3.3 Hadoop 0.20以上版本的Bloom filter 110 5.4 温故知新 110 5.5 小结 111 5.6 更多资源 112 第6章 编程实践 113 6.1 开发MapReduce程序 113 6.1.1 本地模式 114 6.1.2 伪分布模式 118 6.2 生产集群上的监视和调试 123 6.2.1 计数器 123 6.2.2 跳过坏记录 125 6.2.3 用IsolationRunner重新运行出错的任务 128 6.3 性能调优 129 6.3.1 通过combiner来减少网络流量 129 6.3.2 减少输入数据量 129 6.3.3 使用压缩 129 6.3.4 重用JVM 132 6.3.5 根据猜测执行来运行 132 6.3.6 代码重构与算法重写 133 6.4 小结 134 第7章 细则手册 135 7.1 向任务传递作业定制的参数 135 7.2 探查任务特定信息 137 7.3 划分为多个输出文件 138 7.4 以数据库作为输入输出 143 7.5 保持输出的顺序 145 7.6 小结 146 第8章 管理Hadoop 147 8.1 为实际应用设置特定参数值 147 8.2 系统体检 149 8.3 权限设置 151 8.4 配额管理 151 8.5 启用回收站 152 8.6 删减DataNode 152 8.7 增加DataNode 153 8.8 管理NameNode和SNN 153 8.9 恢复失效的NameNode 155 8.10 感知网络布局和机架的设计 156 8.11 多用户作业的调度 157 8.11.1 多个JobTracker 158 8.11.2 公平调度器 158 8.12 小结 160 第三部分 Hadoop也疯狂 第9章 在云上运行Hadoop 162 9.1 Amazon Web Services简介 162 9.2 安装AWS 163 9.2.1 获得AWS身份认证凭据 164 9.2.2 获得命令行工具 166 9.2.3 准备SSH密钥对 168 9.3 在EC2上安装Hadoop 169 9.3.1 配置安全参数 169 9.3.2 配置集群类型 169 9.4 在EC2上运行MapReduce程序 171 9.4.1 将代码转移到Hadoop集群上 171 9.4.2 访问Hadoop集群上的数据 172 9.5 清空和关闭EC2实例 175 9.6 Amazon Elastic MapReduce和其他AWS服务 176 9.6.1 Amazon Elastic MapReduce 176 9.6.2 AWS导入/导出 177 9.7 小结 177 第10章 用Pig编程 178 10.1 像Pig一样思考 178 10.1.1 数据流语言 179 10.1.2 数据类型 179 10.1.3 用户定义函数 179 10.2 安装Pig 179 10.3 运行Pig 180 10.4 通过Grunt学习Pig Latin 182 10.5 谈谈Pig Latin 186 10.5.1 数据类型和schema 186 10.5.2 表达式和函数 187 10.5.3 关系型运算符 189 10.5.4 执行优化 196 10.6 用户定义函数 196 10.6.1 使用UDF 196 10.6.2 编写UDF 197 10.7 脚本 199 10.7.1 注释 199 10.7.2 参数替换 200 10.7.3 多查询执行 201 10.8 Pig实战——计算相似专利的例子 201 10.9 小结 206 第11章 Hive及Hadoop群 207 11.1 Hive 207 11.1.1 安装与配置Hive 208 11.1.2 查询的示例 210 11.1.3 深入HiveQL 213 11.1.4 Hive小结 221 11.2 其他Hadoop相关的部分 221 11.2.1 HBase 221 11.2.2 ZooKeeper 221 11.2.3 Cascading 221 11.2.4 Cloudera 222 11.2.5 Katta 222 11.2.6 CloudBase 222 11.2.7 Aster Data和Greenplum 222 11.2.8 Hama和Mahout 223 11.3 小结 223 第12章 案例研究 224 12.1 转换《纽约时报》1100万个库存图片文档 224 12.2 挖掘中国移动的数据 225 12.3 在StumbleUpon推荐最佳网站 229 12.3.1 分布式StumbleUpon的开端 230 12.3.2 HBase和StumbleUpon 230 12.3.3 StumbleUpon上的更多Hadoop应用 236 12.4 搭建面向企业查询的分析系统——IBM的ES2项目 238 12.4.1 ES2系统结构 240 12.4.2 ES2爬虫 241 12.4.3 ES2分析 242 12.4.4 小结 249 12.4.5 参考文献 250 附录A HDFS文件命令 251 构建hadoop运算坚实的平台编辑 百度构建了超大规模的服务器集群来运行Hadoop,其中日志处理与分析占到了全部hadoop集群的80%,处理数据量从几个G到上P,运行时间从几分钟到几十个小时。[1] 谈到Hadoop集群的硬件基础,马如悦告诉IT168编辑:“百度使用的服务器品牌较多,市面上主流的服务器品牌均有涉及,但绝大多数都基于英特尔X86平台,配置则大体上是8核CPU(主要是英特尔至强7400/7500系列),32GB内存,12TB硬盘。此外我们也在尝试定制自己的服务器。” “选用什么样的服务器需要根据具体的应用而定。比如使用hadoop做日志存储和挖掘,可以参考百度上面的配置。如果是作为HBase的底层存储,并且有大量的随机查询,那么使用SAS硬盘,甚至SSD都是可以的。不同的业务需要不同类型的配置。即使同一个业务,也可能需要分层考虑。这样才能做到成本最低。” 大体来说,hadoop应用对系统的要求侧重计算、存储与网络性能的均衡,这一点则正好与英特尔X86平台不谋而合。英特尔至强7400/7500系列处理器已然为百度Hadoop集群奠定了坚实的硬件平台,今年英特尔发布的至强E5平台则无论在性能、吞吐能力和带宽方面都有均衡的提升。 英特尔最新一代E5处理器相比前代至强5600处理性能提高了80%,同时,英特尔E5芯片中的DDIO技术也大大提高整体IO性能,这一技术能把IO数据包指向处理缓存,跳过内存,从而能够大大减少延迟,增强系统总带宽,还消除了内存的功耗。英特尔集成IO把IO子系统移到了处理器芯片处下,同时得益于PCI-E 3.0的支持,可以把服务器平台的延迟减少多达30%,带宽增加2倍。5 0浏览会员免费
- 行人检测大小:154MB行人检测数据集,包括已经标注好的xml文件和txt文件,数据集包含训练集测试集和验证集,下载解压后即可使用。行人检测数据集,包括已经标注好的xml文件和txt文件,数据集包含训练集测试集和验证集,下载解压后即可使用。5 4302浏览会员免费
- etl大小:3MB简介:作者结合实际工作的需求,在设计和实现某公司商务部分析报表系统的过程中对ETL与数据集市的架构进行了研究。该系统是某大型外资企业进行商务决策过程所需的分析报表系统,该系统能向相关部门提供每日更新、准确可靠的报表数据,且报表用户可以通过钻取、切片和切块等操作来分析所关心的数据信息。简介:作者结合实际工作的需求,在设计和实现某公司商务部分析报表系统的过程中对ETL与数据集市的架构进行了研究。该系统是某大型外资企业进行商务决策过程所需的分析报表系统,该系统能向相关部门提供每日更新、准确可靠的报表数据,且报表用户可以通过钻取、切片和切块等操作来分析所关心的数据信息。4 900浏览会员免费
- list大小:573KB在不列颠哥伦比亚大学图书馆网站导出所有期刊名和缩写,大概1W+的期刊名字,期刊名字和缩写截至2021.12.03在不列颠哥伦比亚大学图书馆网站导出所有期刊名和缩写,大概1W+的期刊名字,期刊名字和缩写截至2021.12.030 1w+浏览会员免费
- 数据集大小:616MBNOAA提供的全球海洋水深及地形数据,适合相关专业进行数据处理和相关建模比赛使用。NOAA提供的全球海洋水深及地形数据,适合相关专业进行数据处理和相关建模比赛使用。0 7729浏览会员免费
- odi教程大小:102MBELT工具_ODI应用指南.pdf ODI11G安装及使用.docx odigs-11g-168072.pdf oracle 数据集成方案(内部培训文档).pdf Oracle_ODI_11g_官方教程.docx Oracle+Data+Integrator开发手册.pdf Oracle+ODI+11g+官方教程ELT工具_ODI应用指南.pdf ODI11G安装及使用.docx odigs-11g-168072.pdf oracle 数据集成方案(内部培训文档).pdf Oracle_ODI_11g_官方教程.docx Oracle+Data+Integrator开发手册.pdf Oracle+ODI+11g+官方教程5 314浏览会员免费
- 手写体数字大小:5MB资源中包含0到9的手写体数字图片,每种数字图片有1000张左右,都归一化为相同的大小,可以用作与手写体数字识别的训练集资源中包含0到9的手写体数字图片,每种数字图片有1000张左右,都归一化为相同的大小,可以用作与手写体数字识别的训练集5 1193浏览会员免费
- Map/Reduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的,Google已经将它完整的MapReduce论文公开发布了。其中对它的定义是,Map/Reduce是一个编程模型(programming model),是一个用于处理和生成大规模数据集(processing and generating large data sets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。很多现实世界中的任务都可用这个模型来表达。5 232浏览会员免费
- SCD大小:4MB能够对数字化变电站的SCD配置文件进行解析,解析出所有的MU的数据集,及大的方便了SCD文件的查看。能够对数字化变电站的SCD配置文件进行解析,解析出所有的MU的数据集,及大的方便了SCD文件的查看。4 1680浏览会员免费
- BP网络鸢尾花大小:2KBBP神经网络算法(鸢尾花)附带相关训练集及测试集,Iris(鸢尾花)数据集分为训练集(Iris-train.txt)和测试集(Iris-test.txt),分别含75个样本,每个集合中每种花各有25个样本。BP神经网络算法(鸢尾花)附带相关训练集及测试集,Iris(鸢尾花)数据集分为训练集(Iris-train.txt)和测试集(Iris-test.txt),分别含75个样本,每个集合中每种花各有25个样本。3 4536浏览会员免费
- K-means大小:9KB从网上找了很多资料,发现都没有太合适的,而本程序则通过修改整理,包括完整数据集文件,代码文件,导入即可运行,有什么不合理的欢迎相互探讨。从网上找了很多资料,发现都没有太合适的,而本程序则通过修改整理,包括完整数据集文件,代码文件,导入即可运行,有什么不合理的欢迎相互探讨。5 736浏览会员免费
- wincc大小:916KBWINCC 7.4 SP1 硬件狗破解-最新版。 WinCC v7.4是西门子推出的专业数据集与监控软件,新版本的WinCC 7.4增强了对win10 64位操作系统的支持,增加了控件的缩放功能和棒图控件,但目前还没有硬件破解文件。 本工具经测试可用于wincc7.4硬件狗破解。 本工具仅用于个人学习wincc用,请支持正版,购买正版wincc软件。 wincc 7.4 硬件狗 破解WINCC 7.4 SP1 硬件狗破解-最新版。 WinCC v7.4是西门子推出的专业数据集与监控软件,新版本的WinCC 7.4增强了对win10 64位操作系统的支持,增加了控件的缩放功能和棒图控件,但目前还没有硬件破解文件。 本工具经测试可用于wincc7.4硬件狗破解。 本工具仅用于个人学习wincc用,请支持正版,购买正版wincc软件。 wincc 7.4 硬件狗 破解3 5821浏览会员免费
- VTK 编程简介 VTK数据类型 VTK教程之一 可视化管线 VTK教程之二 可视化管线的执行 VTK教程之三 数据集 VTK教程之四 单元和点集 VTK教程之五 数据集的类型和数据集的属性数据 VTK教程之六 构建数据集的例子程序 VTK教程之七 可视化基础算法-概述 VTK教程之八 可视化基础算法-颜色映射 VTK教程之九 可视化基础算法-二维轮廓线(等值线)提取 VTK教程之十 可视化基础算法-三维轮廓面(等值面)提取 VTK教程之十一 可视化基础算法-方向线 VTK教程之十二 可视化基础算法-几何体变形 VTK教程之十三 可视化基础算法-位移图 VTK教程之十四 可视化基础算法-用隐函数构建几何体 VTK培训教程之十五 可视化基础算法-用隐函数提取数据集中的数据 VTK培训教程之十六 可视化基础算法-用隐函数可视化随机或离散运动的物体4 2107浏览会员免费
- Spark是一个开源的通用并行分布式计算框架,由加州大学伯克利分校的AMP实验室开发,支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。Spark内存计算框架适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性,现已逐渐获得很多企业的支持,如阿里巴巴、百度、网易、英特尔等各大公司等。 本书系统讲解Spark的使用方法,包括如何在多种机器上安装Spark,如何配置一个Spark集群,如何在交互模式下运行第一个Spark作业,如何在Spark集群上构建一个生产级的脱机\独立作业,如何与Spark集群建立连接和使用SparkContext,如何创建和保存RDD(弹性分布式数据集),如何用Spark分布式处理数据,如何设置Shark,将Hive查询集成到你的Spark作业中来,如何测试Spark作业,以及如何提升Spark任务的性能。4 136浏览会员免费
- 最大熵大小:20MB最大熵模型用于文本分类的例子,里面有数据集和Python代码最大熵模型用于文本分类的例子,里面有数据集和Python代码5 653浏览会员免费
- 一段简单代码描述了用geoserver wfs服务获取图层数据并返回geojson数据5 1844浏览会员免费
- 从网上整理的资料 1.WCF分布式框架基础概念 2.自定义托管宿主WCF解决方案开发配置过程详解 3.WCF服务元数据交换、配置及编程开发 4.WCF服务可靠性传输配置与编程开发 5.服务契约与操作重载 6.WCF服务契约继承与分解设计 7.WCF数据契约与序列化 8.使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据 9.WCF服务实例激活类型编程与开发 10.请求应答(Request-Reply) 、单向操作(One-Way)、回调操作(Call Back) 11.WCF流处理(Streaming)机制 12.WCF事务机制(Transaction)和分布式事务编程 13.WCF服务离线操作与消息队列MSMQ 14.WCF安全编程--基本概念 15.错误契约(FaultContract)与异常处理(ExceptionHandle)5 197浏览会员免费
- 房价预测大小:166KB本资源是基于python实现的Boston Housing 数据集房价预测回归问题,调用了sklearn中5种回归算法对房价进行预测。本资源是基于python实现的Boston Housing 数据集房价预测回归问题,调用了sklearn中5种回归算法对房价进行预测。0 6476浏览会员免费
- 深度学习大小:174MB里面包括肝脏分割数据集和整个工程所有文件,下载完之后直接运行就好,工程文件包括model.py,train.py和predict.py三个文件,数据集中训练集一共有400张肝脏图片及对应分割模板,验证集一共有20张肝脏图片及对应分割模板里面包括肝脏分割数据集和整个工程所有文件,下载完之后直接运行就好,工程文件包括model.py,train.py和predict.py三个文件,数据集中训练集一共有400张肝脏图片及对应分割模板,验证集一共有20张肝脏图片及对应分割模板0 5091浏览会员免费
- PLS大小:3KB所谓偏最小二乘法,就是指在做基于最小二乘法的线性回归分析之前,对数据集进行主成分分析降维,下面的源码是没有删减的,GreenSim团队免费提供您使用,转载请注明GreenSim团队(http://blog.sina.com.cn/greensim)。所谓偏最小二乘法,就是指在做基于最小二乘法的线性回归分析之前,对数据集进行主成分分析降维,下面的源码是没有删减的,GreenSim团队免费提供您使用,转载请注明GreenSim团队(http://blog.sina.com.cn/greensim)。5 481浏览会员免费
- DataSet大小:8KB1、创建DataSet对象:DataSet ds = new DataSet("DataSetName"); 2、查看调用SqlDataAdapter.Fill创建的结构 da.Fill(ds,"Orders"); DataTable tbl = ds.Table[0]; foreach(DataColumn col in tbl.Columns) Console.WriteLine(col.ColumnName); 3、查看SqlDataAdapter返回的数据 ①、DataRow对象 DataTable tbl = ds.Table[0]; DataRow row = tbl.Row[0]; Console.WriteLine(ros["OrderID"]); ②、检查存储在DataRow中的数据 DataTable tbl = row.Table; foreach(DataColumn col in tbl.Columns) Console.WriteLine(row[col]); ③、检查DatTable中的DataRow对象 foreach(DataRow row in tbl.Rows) DisplayRow(row); 4、校验DataSet中的数据 ①、校验DataColumn的属性:ReadOnly,AllowDBNull,MaxLength,Unique ②、DataTable对象的Constrains集合:UiqueConstraints,Primarykey,ForeignkeyConstraints 通常不必刻意去创建ForeignkeyConstraints,因为当在DataSet的两个DataTable对象之间创建关系时会创建一个。 ③、用SqlDataAdapter.Fill模式来检索模式信息 5、编写代码创建DataTable对象1、创建DataSet对象:DataSet ds = new DataSet("DataSetName"); 2、查看调用SqlDataAdapter.Fill创建的结构 da.Fill(ds,"Orders"); DataTable tbl = ds.Table[0]; foreach(DataColumn col in tbl.Columns) Console.WriteLine(col.ColumnName); 3、查看SqlDataAdapter返回的数据 ①、DataRow对象 DataTable tbl = ds.Table[0]; DataRow row = tbl.Row[0]; Console.WriteLine(ros["OrderID"]); ②、检查存储在DataRow中的数据 DataTable tbl = row.Table; foreach(DataColumn col in tbl.Columns) Console.WriteLine(row[col]); ③、检查DatTable中的DataRow对象 foreach(DataRow row in tbl.Rows) DisplayRow(row); 4、校验DataSet中的数据 ①、校验DataColumn的属性:ReadOnly,AllowDBNull,MaxLength,Unique ②、DataTable对象的Constrains集合:UiqueConstraints,Primarykey,ForeignkeyConstraints 通常不必刻意去创建ForeignkeyConstraints,因为当在DataSet的两个DataTable对象之间创建关系时会创建一个。 ③、用SqlDataAdapter.Fill模式来检索模式信息 5、编写代码创建DataTable对象5 3830浏览会员免费
- 今天小编就为大家分享一篇python 划分数据集为训练集和测试集的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2 2w+浏览会员免费
- 超分辨大小:5MB传统的超分辨重建算法往往采用梯度下降法进行求解,迭代时步长往往通过经验确定。而且不同的图像的最优步长往往不相同。步长过大会导致发散,步长过小会导致收敛缓慢。本算法基于对正则化超分辨重建算法实现的基础上,对步长的选取进行了优化,推导出了每次迭代时的最优步长大小,并将其自适应化,改进了超分辨算法的收敛性,从而能够在更短的时间内取得更加精确的重建结果。相关具体内容请参考对应的论文:Yingqian Wang, Jungang Yang, Chao Xiao, and Wei An, "Fast convergence strategy for multi-image superresolution via adaptive line search," IEEE Access, vol. 6, no. 1, pp. 9129-9139.传统的超分辨重建算法往往采用梯度下降法进行求解,迭代时步长往往通过经验确定。而且不同的图像的最优步长往往不相同。步长过大会导致发散,步长过小会导致收敛缓慢。本算法基于对正则化超分辨重建算法实现的基础上,对步长的选取进行了优化,推导出了每次迭代时的最优步长大小,并将其自适应化,改进了超分辨算法的收敛性,从而能够在更短的时间内取得更加精确的重建结果。相关具体内容请参考对应的论文:Yingqian Wang, Jungang Yang, Chao Xiao, and Wei An, "Fast convergence strategy for multi-image superresolution via adaptive line search," IEEE Access, vol. 6, no. 1, pp. 9129-9139.5 1102浏览会员免费
- ZIP大小:33MB软考中级-软件设计师真题含答案(2016-2020)软考中级-软件设计师真题含答案(2016-2020)4 4145浏览会员免费
- RAR大小:26MB全球terrain地形资料,陆地高度与海洋深度,具体如下: terrain 地形数据数据集 资料集编号: DS024 资料集名称: 全球地形高度资料数据集 索取号: T8005-9 索引名: terrain 记录年代: 区域: 全球 要素: 高度 M 编排: 网格点 详介: 网格:1 1.875 X 1.875度经纬度网格 2 10' X 10'经纬度网格 3 10' X 10'经纬度网格地形和地貌 4 5' X 5'经纬度网格陆地高度和海洋深度 5 1 X 1度经纬度网格陆地高度和海洋深度 6 30"X30"经纬度网格陆地高度和海洋深度 数量: 18.9MB(10') 96KB(2.5) 读取程序: rdbfile terrain1.875 (95Kbyte) rdbfile terrain10 (19Mbyte) rdbfile terrain0.1 (57Mbyte) rdbfile terrain0.5 (57Mbyte) rdbfile terrain1 (438Kbyte) rdbfile terrain0.03 (65Mbyte)全球terrain地形资料,陆地高度与海洋深度,具体如下: terrain 地形数据数据集 资料集编号: DS024 资料集名称: 全球地形高度资料数据集 索取号: T8005-9 索引名: terrain 记录年代: 区域: 全球 要素: 高度 M 编排: 网格点 详介: 网格:1 1.875 X 1.875度经纬度网格 2 10' X 10'经纬度网格 3 10' X 10'经纬度网格地形和地貌 4 5' X 5'经纬度网格陆地高度和海洋深度 5 1 X 1度经纬度网格陆地高度和海洋深度 6 30"X30"经纬度网格陆地高度和海洋深度 数量: 18.9MB(10') 96KB(2.5) 读取程序: rdbfile terrain1.875 (95Kbyte) rdbfile terrain10 (19Mbyte) rdbfile terrain0.1 (57Mbyte) rdbfile terrain0.5 (57Mbyte) rdbfile terrain1 (438Kbyte) rdbfile terrain0.03 (65Mbyte)2 3871浏览会员免费
- globalmapper操作手册(上帝之眼Global Mapper系列教程开课啦,本系列教程由风侠老师主讲,坐沙发蹲地板的同Global Mapper 是一款地图绘制软件,不仅能够将数据(例如:SRTM数据)显示为光栅地图、高程地图、矢量地图,还可以对地图作编辑、转换、打印、记录GPS及利用数据的GIS(地理信息系统)功能.6.xx版增加了直接访问USGS(美国地质勘探局)卫星照片TerraServer数据库和Global Mapper内部的地形图及以真实的3D方式查看高程地图的功能。 浏览、合成、输入、输出大部分流行的扫描点阵图、等高线、矢量数据集的软件,它可以编辑、转换、打印各类地图图形文件,可以利用全球情报系统(GIS)信息资源。它可以转换数据集的投影方式以符合你的项目的座标系统,并可以同时对数据集的范围进行裁剪。它还提供距离和面积计算,光栅混合、对比度调节、海拔高度查询、视线计算,以及一些高级功能,如图像校正、通过地表数据进行轮廓生成、通过地表数据观察分水岭、对3Dpoint数据转换为三角多边形和网格化等。通过内建的脚本语言或众多的批处理转换选项能够高效地完成重复性任务)3 5185浏览会员免费
- asp.net大小:108KBSqlHelper源码及使用实例<br>SqlHelper是非常方便的数据库操作函数,功能强大,使用起来非常简单,免去很多复杂的数据库操作的代码,在多层应用及面向对象开发中都有很多应用<br>SqlHelper源码带有详细的说明<br>主要包括以下操作: <br>简单SQL语句(ExcuteSql)<br>带参数的简单SQL语句(ExcuteSQLParm)<br>简单存储过程 (ExcuteProc)<br>带参数的存储过程(ExcuteProcParm) <br>只返回一个字段 (ExcuteScalar)<br>返回数据集(ExcuteReader)SqlHelper源码及使用实例<br>SqlHelper是非常方便的数据库操作函数,功能强大,使用起来非常简单,免去很多复杂的数据库操作的代码,在多层应用及面向对象开发中都有很多应用<br>SqlHelper源码带有详细的说明<br>主要包括以下操作: <br>简单SQL语句(ExcuteSql)<br>带参数的简单SQL语句(ExcuteSQLParm)<br>简单存储过程 (ExcuteProc)<br>带参数的存储过程(ExcuteProcParm) <br>只返回一个字段 (ExcuteScalar)<br>返回数据集(ExcuteReader)3 63浏览会员免费
- IBatisNet大小:845KBIBatisNet.DataMapper 1.6.1.0之简单三层 首先介绍Solution的架构,一共分四个项目: Web :前台应用; BLL :业务处理层,如果嫌麻烦,可以再进一步抽象出来,然后将代码放置Web层的aspx.cs里面; Model :这个就不多说了,地球人都知道(数据实体类) SqlMaps:资源类,把配置文件和sql mapper文件全部打包起来。 二个文件夹: Include :iBatis.Net架构的dll文件 Log :放置log文件的文件夹,在web.config里配置 1.在一些特定的环境下,一站式的解决方案未必有效 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现。(银行大多有这样的限制) 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 2.iBATIS之于小型、简单系统:非常适用 iBATIS自己就很小并且简单 iBATIS不会对现存应用的设计或者数据库结构强加任何影响 iBATIS非常适合于有成长趋势的系统 3.iBATIS之于大型、企业级系统:为之而设计 iBATIS的某些特性使得它能够高效地处理大型数据集 iBATIS允许你用多种方式建立从对象到数据库的映射关系 MySpace已应用 4.使用于任何类型的关系数据库: 应用数据库 企业数据库 私有数据库 遗留数据库 简单性 性能 明确分工 可移植性:Java、.Net或者其他 开源 5.何时不该使用iBATIS 当你能永远拥有完全控制权 当你的应用需要完全动态的SQL 当你并没有使用关系数据库时 当iBATIS不起作用时 DB_51aspx下为Sql数据库,附加后修改SqlMaps/database.config的Sql配置文件并编译才能生效IBatisNet.DataMapper 1.6.1.0之简单三层 首先介绍Solution的架构,一共分四个项目: Web :前台应用; BLL :业务处理层,如果嫌麻烦,可以再进一步抽象出来,然后将代码放置Web层的aspx.cs里面; Model :这个就不多说了,地球人都知道(数据实体类) SqlMaps:资源类,把配置文件和sql mapper文件全部打包起来。 二个文件夹: Include :iBatis.Net架构的dll文件 Log :放置log文件的文件夹,在web.config里配置 1.在一些特定的环境下,一站式的解决方案未必有效 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现。(银行大多有这样的限制) 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 2.iBATIS之于小型、简单系统:非常适用 iBATIS自己就很小并且简单 iBATIS不会对现存应用的设计或者数据库结构强加任何影响 iBATIS非常适合于有成长趋势的系统 3.iBATIS之于大型、企业级系统:为之而设计 iBATIS的某些特性使得它能够高效地处理大型数据集 iBATIS允许你用多种方式建立从对象到数据库的映射关系 MySpace已应用 4.使用于任何类型的关系数据库: 应用数据库 企业数据库 私有数据库 遗留数据库 简单性 性能 明确分工 可移植性:Java、.Net或者其他 开源 5.何时不该使用iBATIS 当你能永远拥有完全控制权 当你的应用需要完全动态的SQL 当你并没有使用关系数据库时 当iBATIS不起作用时 DB_51aspx下为Sql数据库,附加后修改SqlMaps/database.config的Sql配置文件并编译才能生效5 254浏览会员免费
- 网络开发大小:26MB第21章 打印与报表技术 579 21.1 报表设计技术 580 0994 如何快速创建水晶报表 580 0995 如何编写带图片的报表 582 0996 如何使图片成为整个报表的背景 583 0997 如何设置水晶报表中节的背景图片 583 0998 如何设置水晶报表中节的背景色 584 0999 如何设置水晶报表的页面 584 1000 如何在报表中添加节 584 1001 如何在报表中移动节的顺序 585 1002 如何在报表中合并节 585 1003 如何在报表中册除节 585 1004 如何在报表中显示与隐藏节 586 1005 如何设置多列样式报表 586 1006 如何设置报表中节的高度 587 1007 如何设置报表的摘要信息 587 1008 如何设置报表的打印日期与时间 587 21.2 报表格式化类对象技巧 588 1009 如何在报表中使用文本对象 588 1010 如何移动对象操作 588 1011 如何对齐多个对象 589 1012 如何使用公式字段 589 1013 如何在报表中使用线 590 1014 如何在报表中使用方框 590 21.3 报表数据排序与分组技巧 591 1015 如何排序报表数据 591 1016 如何报表数据分组 591 1017 如何报表中筛选数据 592 1018 如何对分组报表中的页码进行设置 592 21.4 报表的应用技巧 593 1019 如何在水晶报表中使用交叉表 593 1020 如何在水晶报表中使用子报表 594 1021 如何动态显示子报表 596 1022 如何删除子报表 597 1023 如何在报表中计算百分比 597 21.5 Windows打印控件应用技巧 599 1024 如何使用PrintDocument控件打印窗体数据 599 1025 如何使用PrintPreviewContronl控件预览 599 1026 使用PrintPreviewDialog对话框 600 1027 如何使用PrintDialog对话框打印 601 1028 如何使用PageSetupDialog对话框设置页面 601 1029 如何使用PrintDocument控件打印文本文件 602 第22章 C#高级应用开发 605 22.1 线程的使用 606 1030 如何开始一个线程 606 1031 如何结束一个线程 606 1032 如何使线程休眠 606 1033 如何挂起一个线程 606 1034 如何判断线程的状态 606 1035 如何实现线程的同步 607 1036 如何避免死锁 607 22.2 .NET 2.0的新特性 607 1037 如何使用泛型 607 1038 如何使用匿名方法 608 1039 如何使用迭代器 609 1040 如何使用分部类 610 22.3 C#WebService 610 1041 建立SQL Server返回数据集WebService 610 1042 利用WebService传送图片 611 22.4 文件监视 611 1043 如何监视文件的创建 611 1044 如何监视文件的改变 612 1045 如何监视文件的重命名 612 1046 如何监视文件的删除 613 22.5 C#高级应用 613 1047 如何将聊天程序做成Windows服务 613 1048 COM+服务解决同时访问大量数据并发性 615 1049 COM+服务实现银行转账系统 617 1050 如何用Remoting技术传送文件 619 1051 大规模数据访问时缓解服务器压力 620 第23章 硬件及相关开发技术 623 23.1 语音卡、IC卡、神龙卡的使用 624 1052 利用语音卡拨打电话 624 1053 客户来电查询系统 625 1054 向IC卡中写入数据 626 1055 从IC卡中读取数据 627 1056 利用IC卡制作考勤程序 628 1057 利用神龙卡制作练歌房点歌程序 629 23.2 串口技术与加密狗技术 631 1058 使用串口传输数据 631 1059 通过串口控制对方计算机 631 1060 密码写入与读出加密狗 633 1061 利用加密狗制作登录程序 634 1062 利用条形码销售商品 635 23.3 其他 636 1063 简易摄像头程序 636 1064 超市摄像头定时监控系统 638 1065 利用短信猫收发短信息 639 1066 利用短信远程关闭计算机 641 1067 短信息采集烟草销售数据 643 第24章 网络开发相关技术 645 24.1 Windows服务控制 646 1068 如何暂停IIS的默认网站 646 1069 如何继续IIS的默认网站 646 1070 如何启动IIS的默认FTP站点 647 1071 如何暂停IIS的默认FTP站点 647 1072 如何继续IIS的默认FTP站点 648 1073 如何停止IIS的默认FTP站点 648 1074 C#如何检测SQL是否启动 649 1075 如何启动IIS的默认SMTP服务器 650 1076 如何暂停IIS的默认SMTP服务器 650 1077 如何继续IIS的默认SMTP服务器 651 1078 如何停止IIS的默认SMTP服务器 651 24.2 网络数据交换及相关 652 1079 如何ping对方计算机 652 1080 获取对方计算机IP地址 652 1081 利用C#操作XML数据 653 1082 显示数据库记录 653 1083 如何扫描计算机端口号 653 1084 如何获得指定网页的源代码 654 1085 如何将指定URL数据下载到本地文件 654 1086 如何设置Internet浏览器外观 655 1087 如何将网址加入Internet收藏夹 655 1088 如何以网络流的方式下载Internet文件 656 1089 如何从指定FTP服务器下载文件 656 1090 如何上传本地文件到指定URL资源 657 1091 如何查找网页中所有的超级链接 658 1092 如何开发UDP协议聊天程序 659 1093 如何开发TCP/IP聊天室 660 1094 如何发送电子邮件 662 1095 如何接收电子邮件 663 1096 如何使用Jmail发送电子邮件 666第21章 打印与报表技术 579 21.1 报表设计技术 580 0994 如何快速创建水晶报表 580 0995 如何编写带图片的报表 582 0996 如何使图片成为整个报表的背景 583 0997 如何设置水晶报表中节的背景图片 583 0998 如何设置水晶报表中节的背景色 584 0999 如何设置水晶报表的页面 584 1000 如何在报表中添加节 584 1001 如何在报表中移动节的顺序 585 1002 如何在报表中合并节 585 1003 如何在报表中册除节 585 1004 如何在报表中显示与隐藏节 586 1005 如何设置多列样式报表 586 1006 如何设置报表中节的高度 587 1007 如何设置报表的摘要信息 587 1008 如何设置报表的打印日期与时间 587 21.2 报表格式化类对象技巧 588 1009 如何在报表中使用文本对象 588 1010 如何移动对象操作 588 1011 如何对齐多个对象 589 1012 如何使用公式字段 589 1013 如何在报表中使用线 590 1014 如何在报表中使用方框 590 21.3 报表数据排序与分组技巧 591 1015 如何排序报表数据 591 1016 如何报表数据分组 591 1017 如何报表中筛选数据 592 1018 如何对分组报表中的页码进行设置 592 21.4 报表的应用技巧 593 1019 如何在水晶报表中使用交叉表 593 1020 如何在水晶报表中使用子报表 594 1021 如何动态显示子报表 596 1022 如何删除子报表 597 1023 如何在报表中计算百分比 597 21.5 Windows打印控件应用技巧 599 1024 如何使用PrintDocument控件打印窗体数据 599 1025 如何使用PrintPreviewContronl控件预览 599 1026 使用PrintPreviewDialog对话框 600 1027 如何使用PrintDialog对话框打印 601 1028 如何使用PageSetupDialog对话框设置页面 601 1029 如何使用PrintDocument控件打印文本文件 602 第22章 C#高级应用开发 605 22.1 线程的使用 606 1030 如何开始一个线程 606 1031 如何结束一个线程 606 1032 如何使线程休眠 606 1033 如何挂起一个线程 606 1034 如何判断线程的状态 606 1035 如何实现线程的同步 607 1036 如何避免死锁 607 22.2 .NET 2.0的新特性 607 1037 如何使用泛型 607 1038 如何使用匿名方法 608 1039 如何使用迭代器 609 1040 如何使用分部类 610 22.3 C#WebService 610 1041 建立SQL Server返回数据集WebService 610 1042 利用WebService传送图片 611 22.4 文件监视 611 1043 如何监视文件的创建 611 1044 如何监视文件的改变 612 1045 如何监视文件的重命名 612 1046 如何监视文件的删除 613 22.5 C#高级应用 613 1047 如何将聊天程序做成Windows服务 613 1048 COM+服务解决同时访问大量数据并发性 615 1049 COM+服务实现银行转账系统 617 1050 如何用Remoting技术传送文件 619 1051 大规模数据访问时缓解服务器压力 620 第23章 硬件及相关开发技术 623 23.1 语音卡、IC卡、神龙卡的使用 624 1052 利用语音卡拨打电话 624 1053 客户来电查询系统 625 1054 向IC卡中写入数据 626 1055 从IC卡中读取数据 627 1056 利用IC卡制作考勤程序 628 1057 利用神龙卡制作练歌房点歌程序 629 23.2 串口技术与加密狗技术 631 1058 使用串口传输数据 631 1059 通过串口控制对方计算机 631 1060 密码写入与读出加密狗 633 1061 利用加密狗制作登录程序 634 1062 利用条形码销售商品 635 23.3 其他 636 1063 简易摄像头程序 636 1064 超市摄像头定时监控系统 638 1065 利用短信猫收发短信息 639 1066 利用短信远程关闭计算机 641 1067 短信息采集烟草销售数据 643 第24章 网络开发相关技术 645 24.1 Windows服务控制 646 1068 如何暂停IIS的默认网站 646 1069 如何继续IIS的默认网站 646 1070 如何启动IIS的默认FTP站点 647 1071 如何暂停IIS的默认FTP站点 647 1072 如何继续IIS的默认FTP站点 648 1073 如何停止IIS的默认FTP站点 648 1074 C#如何检测SQL是否启动 649 1075 如何启动IIS的默认SMTP服务器 650 1076 如何暂停IIS的默认SMTP服务器 650 1077 如何继续IIS的默认SMTP服务器 651 1078 如何停止IIS的默认SMTP服务器 651 24.2 网络数据交换及相关 652 1079 如何ping对方计算机 652 1080 获取对方计算机IP地址 652 1081 利用C#操作XML数据 653 1082 显示数据库记录 653 1083 如何扫描计算机端口号 653 1084 如何获得指定网页的源代码 654 1085 如何将指定URL数据下载到本地文件 654 1086 如何设置Internet浏览器外观 655 1087 如何将网址加入Internet收藏夹 655 1088 如何以网络流的方式下载Internet文件 656 1089 如何从指定FTP服务器下载文件 656 1090 如何上传本地文件到指定URL资源 657 1091 如何查找网页中所有的超级链接 658 1092 如何开发UDP协议聊天程序 659 1093 如何开发TCP/IP聊天室 660 1094 如何发送电子邮件 662 1095 如何接收电子邮件 663 1096 如何使用Jmail发送电子邮件 6665 255浏览会员免费
- CSV大小:17MB(七)Python申请评分卡模型建立(图文+代码实现)的数据集(七)Python申请评分卡模型建立(图文+代码实现)的数据集2 2246浏览会员免费
- CADENCE大小:11MB全书144M,超清晰,分5卷 《Cadence高速电路板设计与仿真:原理图与PCB设计(第4版)》以Cadence Allegro SPB16.3为基础,从设计实践的角度出发,以具体电路为范例,由浅入深地详尽讲解元器件建库、原理图设计、布局、布线、规则设置、报告检查、底片文件输出、后处理等PCB设计的全过程,内容包括原理图输入及元器件数据集成管理环境的使用,中心库的开发,PCB设计工具的使用,以及后期电路设计需要掌握的各项技能等。无论是对前端设计开发(原理图设计),还是对PCB板级设计,PCB布线实体的架构,本书都有全面的讲解,极具参考和学习价值。《Cadence高速电路板设计与仿真》适合对PCB设计有一定基础的中、高级读者阅读,也可作为电子及相关专业PCB设计的培训用书。全书144M,超清晰,分5卷 《Cadence高速电路板设计与仿真:原理图与PCB设计(第4版)》以Cadence Allegro SPB16.3为基础,从设计实践的角度出发,以具体电路为范例,由浅入深地详尽讲解元器件建库、原理图设计、布局、布线、规则设置、报告检查、底片文件输出、后处理等PCB设计的全过程,内容包括原理图输入及元器件数据集成管理环境的使用,中心库的开发,PCB设计工具的使用,以及后期电路设计需要掌握的各项技能等。无论是对前端设计开发(原理图设计),还是对PCB板级设计,PCB布线实体的架构,本书都有全面的讲解,极具参考和学习价值。《Cadence高速电路板设计与仿真》适合对PCB设计有一定基础的中、高级读者阅读,也可作为电子及相关专业PCB设计的培训用书。5 0浏览会员免费
- 房价数据集大小:40KB波斯顿房价数据集,标准csv格式已经修正,506条。 带表头波斯顿房价数据集,标准csv格式已经修正,506条。 带表头5 2629浏览会员免费
- 电子采购平台技术要求 建立面向企业内部的采购业务管理平台、面向供应商的采购交易平台、支撑系统运行的IT基础设施平台 实现与集团财务、CRM等其他系统的业务、数据集成0 69浏览会员免费
- EXE大小:57MB使用vc2005时使用,c#项目使用费类型化数据集时,需要安装。使用vc2005时使用,c#项目使用费类型化数据集时,需要安装。5 88浏览会员免费
- 非线性时间序列大小:2MB在MATLAB下的非线性时间序列分析的程序包。可用于计算:时间延迟重构,分形维数,互信息,Lyapunov指数,替代数据集,最近临点统计,回归时间,庞加莱截面等在MATLAB下的非线性时间序列分析的程序包。可用于计算:时间延迟重构,分形维数,互信息,Lyapunov指数,替代数据集,最近临点统计,回归时间,庞加莱截面等5 352浏览会员免费
- RBM分类大小:1MBRBM-on-Classification,用RBM所做的分类,里面包含源码和数据集,独立于任何工具箱,整个就是一个工程,里面有仿真和图像,还有各种有用的数据函数RBM-on-Classification,用RBM所做的分类,里面包含源码和数据集,独立于任何工具箱,整个就是一个工程,里面有仿真和图像,还有各种有用的数据函数5 582浏览会员免费
- 语音情感识别大小:45MB中科大语音情感识别数据集免费版 四人版 1200条语音 六种情感 汉语,4 个人(2 名男性,2 名女性)的大约 1200 个音频,表达了 6 种不同的情绪:neutral,happy,sad,angry,fearful,surprised。中科大语音情感识别数据集免费版 四人版 1200条语音 六种情感 汉语,4 个人(2 名男性,2 名女性)的大约 1200 个音频,表达了 6 种不同的情绪:neutral,happy,sad,angry,fearful,surprised。0 6285浏览会员免费
- 数据集大小:16MBpaddle为大家准备的数据集是0-9的手势,每个手势有200+张彩色图片,分辨率为100x100,一共2000+张图片paddle为大家准备的数据集是0-9的手势,每个手势有200+张彩色图片,分辨率为100x100,一共2000+张图片0 3883浏览会员免费
- timeseries大小:41MB时间序列转换器 Transformer 模型的实现(最初来自 )应用于时间序列(由提供支持)。 变压器型号 Transformer 是基于注意力的神经网络,旨在解决 NLP 任务。 它们的主要特点是: 特征向量维度的线性复杂度; 序列计算的并行化,而不是顺序计算; 长期记忆,因为我们可以直接查看任何输入时间序列步骤。 这个 repo 将专注于它们在时间序列中的应用。 数据集和应用作为元模型 我们的用例是为建筑能耗预测建模一个数字模拟器。 为此,我们通过对随机输入(建筑特征和使用情况、天气等)进行采样创建了一个数据集,并获得了模拟输出。 然后我们以时间序列格式转换这些变量,并将其提供给转换器。 时间序列的改编 为了在时间序列上表现良好,必须进行一些调整: 嵌入层被通用线性层取代; 原始位置编码被删除。 可以改用“常规”版本,更好地匹配输入序列日/夜模式; 在注意力图上应用一个时间序列转换器 Transformer 模型的实现(最初来自 )应用于时间序列(由提供支持)。 变压器型号 Transformer 是基于注意力的神经网络,旨在解决 NLP 任务。 它们的主要特点是: 特征向量维度的线性复杂度; 序列计算的并行化,而不是顺序计算; 长期记忆,因为我们可以直接查看任何输入时间序列步骤。 这个 repo 将专注于它们在时间序列中的应用。 数据集和应用作为元模型 我们的用例是为建筑能耗预测建模一个数字模拟器。 为此,我们通过对随机输入(建筑特征和使用情况、天气等)进行采样创建了一个数据集,并获得了模拟输出。 然后我们以时间序列格式转换这些变量,并将其提供给转换器。 时间序列的改编 为了在时间序列上表现良好,必须进行一些调整: 嵌入层被通用线性层取代; 原始位置编码被删除。 可以改用“常规”版本,更好地匹配输入序列日/夜模式; 在注意力图上应用一个5 1w+浏览会员免费
- 61850大小:13MBIEC61850标准是基于通用网络通信平台的变电站自动化系统唯一国际标准,它是由国际电工委员会第57技术委员会(IECTC57)的 3个工作组10,11,12(WG10/11/12)负责制定的。此标准参考和吸收了已有的许多相关标准,其中主要有:IEC870-5-101远动通信协议标准;IEC870-5-103继电保护信息接口标准;UCA2.0(Utility Communication Architecture2.0)(由美国电科院制定的变电站和馈线设备通信协议体系); ISO/IEC9506制造商信息规范MMS(Manufacturing Message Specification)。变电站通信体系IEC61850将变电站通信体系分为3层:变电站层、间隔层、过程层。在变电站层和间隔层之间的网络采用抽象通信服务接口映射到制造报文规范(MMS)、传输控制协议/网际协议(TCP/IP)以太网或光纤网。在间隔层和过程层之间的网络采用单点向多点的单向传输以太网。变电站内的智能电子设备(IED,测控单元和继电保护)均采用统一的协议,通过网络进行信息交换。IEC61850的特点是1)面向对象建模; 2)抽象通信服务接口; 3)面向实时的服务; 4)配置语言; 5)整个电力系统统一建模。IEC61850建模了大多数公共实际设备和设备组件。这些模型定义了公共数据格式、标识符、行为和控制,例如变电站和馈线设备(诸如断路器、电压调节器和继电保护等)。自我描述能显著降低数据管理费用、简化数据维护、减少由于配置错误而引起的系统停机时间。IEC61850作为制定电力系统远动无缝通信系统基础能大幅度改善信息技术和自动化技术的设备数据集成,减少工程量、现场验收、运行、监视、诊断和维护等费用,节约大量时间,增加了自动化系统使用期间的灵活性。它解决了变电站自动化系统产品的互操作性和协议转换问题。采用该标准还可使变电站自动化设备具有自描述、自诊断和即插即用(Plug and Play)的特性,极大的方便了系统的集成,降低了变电站自动化系统的工程费用。在我国采用该标准系列将大大提高变电站自动化系统的技术水平、提高变电站自动化系统安全稳定运行水平、节约开发验收维护的人力物力、实现完全的互操作性。IEC61850标准是基于通用网络通信平台的变电站自动化系统唯一国际标准,它是由国际电工委员会第57技术委员会(IECTC57)的 3个工作组10,11,12(WG10/11/12)负责制定的。此标准参考和吸收了已有的许多相关标准,其中主要有:IEC870-5-101远动通信协议标准;IEC870-5-103继电保护信息接口标准;UCA2.0(Utility Communication Architecture2.0)(由美国电科院制定的变电站和馈线设备通信协议体系); ISO/IEC9506制造商信息规范MMS(Manufacturing Message Specification)。变电站通信体系IEC61850将变电站通信体系分为3层:变电站层、间隔层、过程层。在变电站层和间隔层之间的网络采用抽象通信服务接口映射到制造报文规范(MMS)、传输控制协议/网际协议(TCP/IP)以太网或光纤网。在间隔层和过程层之间的网络采用单点向多点的单向传输以太网。变电站内的智能电子设备(IED,测控单元和继电保护)均采用统一的协议,通过网络进行信息交换。IEC61850的特点是1)面向对象建模; 2)抽象通信服务接口; 3)面向实时的服务; 4)配置语言; 5)整个电力系统统一建模。IEC61850建模了大多数公共实际设备和设备组件。这些模型定义了公共数据格式、标识符、行为和控制,例如变电站和馈线设备(诸如断路器、电压调节器和继电保护等)。自我描述能显著降低数据管理费用、简化数据维护、减少由于配置错误而引起的系统停机时间。IEC61850作为制定电力系统远动无缝通信系统基础能大幅度改善信息技术和自动化技术的设备数据集成,减少工程量、现场验收、运行、监视、诊断和维护等费用,节约大量时间,增加了自动化系统使用期间的灵活性。它解决了变电站自动化系统产品的互操作性和协议转换问题。采用该标准还可使变电站自动化设备具有自描述、自诊断和即插即用(Plug and Play)的特性,极大的方便了系统的集成,降低了变电站自动化系统的工程费用。在我国采用该标准系列将大大提高变电站自动化系统的技术水平、提高变电站自动化系统安全稳定运行水平、节约开发验收维护的人力物力、实现完全的互操作性。5 278浏览会员免费
- 流域数据集大小:826KB该数据集展示了全国流域数据,有DEM数据提取而来,较好的展示了自然流域的范围该数据集展示了全国流域数据,有DEM数据提取而来,较好的展示了自然流域的范围1 2719浏览会员免费
- MNIST大小:11MB资源来自http://yann.lecun.com/exdb/mnist/index.html,打包压缩上传。 文件包涵: t10k-images-idx3-ubyte.gz t10k-labels-idx1-ubyte.gz train-images-idx3-ubyte.gz train-labels-idx1-ubyte.gz资源来自http://yann.lecun.com/exdb/mnist/index.html,打包压缩上传。 文件包涵: t10k-images-idx3-ubyte.gz t10k-labels-idx1-ubyte.gz train-images-idx3-ubyte.gz train-labels-idx1-ubyte.gz4 169浏览会员免费
- Stereo大小:138MB用于双目立体匹配的测试数据集,包含标准视差图,整合了2001、2003、2005、2006四年的数据集用于双目立体匹配的测试数据集,包含标准视差图,整合了2001、2003、2005、2006四年的数据集4 2083浏览会员免费
- 数据集大小:16MB包括餐饮、电信、航空、商圈等。包括餐饮、电信、航空、商圈等。0 5737浏览会员免费
- kNN,机器学习大小:481KB资源为机器学习实战第二章kNN所需相关代码和数据集,大家有用的可以下载哈资源为机器学习实战第二章kNN所需相关代码和数据集,大家有用的可以下载哈4 212浏览会员免费
- 数据库大小:33KB包括 Oracle面试问题-技术篇.doc 某门户网站数据库职位笔试题.doc 某数据集团数据库初试笔试题.doc 数据库人员面试:SQL Server常用测试题.doc 数据库面试笔试题集+一.doc包括 Oracle面试问题-技术篇.doc 某门户网站数据库职位笔试题.doc 某数据集团数据库初试笔试题.doc 数据库人员面试:SQL Server常用测试题.doc 数据库面试笔试题集+一.doc4 101浏览会员免费
- 数据集大小:56MB收集两千多张海面船舶图片收集两千多张海面船舶图片5 2864浏览会员免费
- 由于数据在各个科学领域的增值,新兴的数据分析技术正在以难以置信的速度发展。大数据集目前通常在科学上用于激励发展数学技术和计算方法,用来帮助分析、解释和释疑数据在科学应用环境中的意义。本书的特定目的是集成标准的科学计算方法和数据分析技术。通过这种方式,本书还引入了统计学、时频分析和降维处理等方面的重要思想。全书共分四部分(26章),前三部分详细讲解各类数学运算与分析方法,第四部分重点讲解如何应用数学方法进行动态复杂系统分析与大数据处理。其中,第一部分讨论数学、矩阵分析和概率论的主要数据计算方法及结果可视化;第二部分讨论微分方程计算与建模;第三部分讨论各种数值分析与计算方法并进行比较,引入动态复杂系统概念;第四部分讲解复杂系统与大数据分析方法和处理模型的建立。5 1339浏览会员免费
- RAR大小:8MB第1章 架设网站……………………………….1<br>1-1 服务器的选用 2<br>1-2 安装或升级IE的版本 3<br>1-3 安装IIS 6<br>1-4 测试及设置 12<br>第2章 编辑器的选用………………………..17<br>2-1 编辑软件的需求 18<br>2-1-1 记事本 18<br>2-1-2 FrontPage 编辑器与MSE编辑器 19<br>2-2 MSE的操作 23<br>2-2-1 MSE的各部分 23<br>2-2-2 建立基本的设计窗体 24<br>2-3 加入控制标记 28<br>2-3-1 加入文字 28<br>2-3-2 加入窗体控制标记 29<br>2-3-3 加入ASP控制命令 32<br>2-3-4 存储设计的成果 33<br>2-3-5 修改的方式 35<br>2-4 本章总结 36<br>第3章 数据库基本概念……………………..39<br>3-1 数据库系统 40<br>3-1-1 数据库系统的类型 40<br>3-1-2 数据库系统的结构 40<br>3-1-3 数据库系统的主要组件 42<br>3-1-4 数据集中化管理 44<br>3-1-5 数据独立 46<br>3-2 数据库管理系统(DBMS) 46<br>3-3 关系型数据库 48<br>3-3-1 数据的表示方法 48<br>3-3-2 表 49<br>3-3-3 键 50<br>3-3-4 表索引 50<br>3-3-5 视图 51<br>3-3-6 存储过程 52<br>3-3-7 触发器 53<br>3-3-8 数据目录 54<br>3-4 数据库设计 55<br>3-4-1 Entities & Relationship 55<br>3-4-2 数据正规化 55<br>3-5 SQL语句 58<br>3-5-1 DDL数据定义语言 58<br>3-5-2 DML数据处理语言 59<br>第4章 系统的安装与激活…………….……..61<br>4-1 安装前的准备 62<br>4-1-1 选择安装版本 62<br>4-1-2 硬件需求 63<br>4-1-3 软件需求 63<br>4-2 开始安装SQL Server 2000 64<br>4-3 重要设置说明 73<br>4-3-1 服务帐户 73<br>4-3-2 安全验证方式 79<br>4-3-3 许可模式 82<br>4-4 管理工具程序 85<br>4-4-1 Enterprise Manager管理 工具 85<br>4-4-2 Profiler管理工具 86<br>4-4-3 查询分析器 87<br>4-4-4 服务器网络公用程序 88<br>4-4-5 客户端网络公用程序 89<br>4-4-6 服务管理器 89<br>4-4-7 导入及导出数据 90<br>4-5 激活服务 91<br>4-5-1 服务的启动方式 91<br>4-5-2 SQL Server服务管理器的操作 92<br>第5章 数据库的创建………………….…….95<br>5-1 Enterprise Manager管理工具 96<br>5-1-1 Enterprise Manager画面 96<br>5-1-2 Enterprise Manager的操作 97<br>5-1-3 向导的使用 98<br>5-2 注册SQL Server 99<br>5-2-1 使用“注册服务器向导” 注册 99<br>5-2-2 直接设置注册属性 103<br>5-2-3 更改注册 105<br>5-2-4 删除注册 106<br>5-3 内建数据库 106<br>5-4 数据库结构 107<br>5-4-1 数据库的逻辑组件 107<br>5-4-2 数据库的实体结构 111<br>5-4-3 文件组 112<br>5-5 创建新的数据库 113<br>5-5-1 使用Enterprise Manager管理工具 114<br>5-5-2 利用创建数据库向导 117<br>5-5-3 CREATE DATABASE 指令 122<br>5-6 数据库选项 124<br>5-6-1 自动选项 124<br>5-6-2 数据指针选项 126<br>5-6-3 复原选项 126<br>5-6-4 SQL选项 127<br>5-6-5 状态选项 129<br>5-6-6 调整数据库选项 129<br>5-7 数据库的删除与分离 132<br>5-7-1 删除数据库 132<br>5-7-2 分离数据库 133<br>5-7-3 附加数据库 133<br>第6章 表的创建…………………………….135<br>6-1 查看数据的内容 136<br>6-1-1 使用“打开表”功能查看数据内容 136<br>6-1-2 查看表属性 137<br>6-2 数据类型 138<br>6-2-1 数值数据 138<br>6-2-2 货币数据 139<br>6-2-3 日期数据 139<br>6-2-4 字符串数据 140<br>6-2-5 Unicode数据 141<br>6-2-6 Binary数据 141<br>6-2-7 其他特殊数据类型 142<br>6-3 创建表 143<br>6-3-1 表设计窗口 143<br>6-3-2 使用表设计窗口创建 表 148<br>6-3-3 创建表主键 150<br>6-3-4 使用CREATE TABLE指令创建表 152<br>6-4 表索引的管理 154<br>6-4-1 表设计工具属性页 154<br>6-4-2 利用表设计工具属性创建索引 156<br>6-4-3 使用向导创建索引 158<br>6-4-4 利用“管理索引”窗口管理表索引 161<br>6-5 创建关联 162<br>6-6 数据输入 165<br>6-6-1 在表窗口中输入数据 165<br>6-6-2 导入数据 166<br>6-6-3 使用INSERT INTO语句 171<br>第7章 数据库的备份与管理……………….173<br>7-1 生成数据库的SQL脚本 174<br>7-1-1 生成SQL脚本窗口 174<br>7-1-2 执行生成SQL脚本 179<br>7-1-3 执行SQL脚本文件 181<br>7-2 收缩数据库 182<br>7-3 数据库备份与还原 185<br>7-3-1 备份模式 185<br>7-3-2 数据库备份 186<br>7-3-3 数据库备份设置实例 189<br>7-3-4 数据库还原 190<br>7-4 使用权限的管理 194<br>7-4-1 权限类型 194<br>7-4-2 权限验证 197<br>7-4-3 权限授与 197<br>7-4-4 拒绝权限 202<br>7-4-5 撤销权限 204<br>第8章 Transact-SQL语法基础…………….207<br>8-1 Transact-SQL 表达式 208<br>8-1-1 数学表达式 208<br>8-1-2 字符串表达式 209<br>8-1-3 比较表达式 209<br>8-1-4 逻辑表达式 210<br>8-1-5 表达式的优先级 210<br>8-2 Transact-SQL数据类型 211<br>8-3 Transact-SQL 函数 213<br>8-4 Query Analyzer工具程序 220<br>8-5 Transact-SQL 语句语法 223<br>8-5-1 Create Table语句 223<br>8-5-2 Alter Table语句 225<br>8-5-3 Drop Table语句 229<br>8-6 数据处理语法(DML) 230<br>8-6-1 Select语句 230<br>8-6-2 Active Query–Insert语句 240<br>8-6-3 Active Query-Delete语句 242<br>8-6-4 Active Query-Update语句 244<br>第9章 Response,Request对象的<br>基础与应用…………………………247<br>9-1 Response对象 248<br>9-1-1 Write方法的基础与应用 250<br>9-1-2 Redirect方法的基础与 应用 252<br>9-1-3 END方法的基础与应用 255<br>9-1-4 Cookies的基础与应用 256<br>9-1-5 服务器缓冲区处理 259<br>9-2 Request对象 261<br>9-2-1 ClientCertificate变量 262<br>9-2-2 Cookies集合 262<br>9-2-3 Form集合 264<br>9-2-4 QueryString变量 266<br>9-2-5 ServerVariables集合 270<br>9-3 Session对象的基础与应用 272<br>9-3-1 Session对象的基础 272<br>9-3-2 Session变量的使用 272<br>9-3-3 Session变量的使用限制 276<br>9-4 Application对象 277<br>9-4-1 用户ASP程序之间信息的共享 277<br>9-4-2 Application语法 279<br>9-4-3 Application变量的使用 280<br>9-5 Global.asa文件 282<br>9-5-1 Global.asa文件的结构 282<br>9-5-2 全局对象 283<br>9-5-3 Application起始及结束 事件 284<br>9-5-4 Application与Session对象的事件处理程序 285<br>9-5-5 Global.asa文件的使用 285<br>第10章 ODBC的设置与应用……….…….287<br>10-1 ODBC的简介 288<br>10-2 数据存取组件的更新 290<br>10-2-1 下载MDAC 290<br>10-2-2 更新数据存取组件 293<br>10-3 ODBC数据源的创建 294<br>10-4 测试ODBC DSN 300<br>第11章 ADO对象的基础与应用…………303<br>11-1 ADO对象的结构 304<br>11-1-1 ADO对象 304<br>11-1-2 ADO的结构 304<br>11-2 Connection对象 305<br>11-2-1 连接、打开数据库的 方法 305<br>11-2-2 直接使用ADO与SQL 连接 307<br>11-2-3 直接与Access MDB 连接 308<br>11-3 Recordset对象的基础 308<br>11-3-1 取得字段名称与内容 314<br>11-3-2 取得、移动记录指针 317<br>11-3-3 Field对象 320<br>11-4 ADO对象与数据库的应用 323<br>11-4-1 添加记录 323<br>11-4-2 记录的更新 327<br>11-4-3 记录的删除 334<br>11-5 Error对象 339<br>第12章 ASP与ActiveX DLL………………345<br>12-1 什么是MTS 346<br>12-1-1 MTS概述 346<br>12-1-2 何时该使用MTS 348<br>12-1-3 使用MTS的优点 349<br>12-2 如何创建ASP组件 350<br>12-2-1 新建工程 351<br>12-2-2 设置引用 352<br>12-2-3 如何设计ActiveX DLL的内容 357<br>12-2-4 编译ActiveX DLL 360<br>12-3 将组件加入MTS 362<br>12-3-1 NT技术操作平台 363<br>12-3-2 Windows 9x技术操作 平台 363<br>12-3-3 注册ActiveX DLL 364<br>12-4 调用MTS中的ASP组件 368<br>12-4-1 开始编辑ASP程序 368<br>12-4-2 带有参数的ASP程序 370<br>第13章 Server对象与其他对象的<br>整合、应用………………………..373<br>13-1 FSO文件对象组件 374<br>13-1-1 FileSystemObject对象的基础 374<br>13-1-2 创建文本文件 375<br>13-1-3 检查文件是否存在 378<br>13-1-4 删除文件 380<br>13-1-5 取得文件属性 383<br>13-2 文本文件的读取与写入 386<br>13-2-1 如何读取与写入文本 文件 386<br>13-2-2 写入文本文件 389<br>13-2-3 写入空白行到文本文件 391<br>13-2-4 写入一行字符串到文本 文件 394<br>13-2-5 添加文字到文本文件 396<br>13-2-6 读取文本文件的字符/一行文字 398<br>13-2-7 读取整个文本文件 400<br>13-3 CDO对象 403<br>13-3-1 SMTP环境的创建与 使用 404<br>13-3-2 实际测试 407<br>13-3-3 使用邮件接收软件验证 411<br>第14章 范例系统的设计与应用(一)………413<br>14-1 结构说明 414<br>14-2 动态菜单的设计 415<br>14-2-1 设置CSS属性 416<br>14-2-2 固定的选项设计 417<br>14-2-3 动态选项的设计 419<br>14-2-4 CSS表现方式的控制 421<br>14-3 Cookies的处理 422<br>14-4 动态产品展示 424<br>14-4-1 基本功能设置 425<br>14-4-2 相关资料的取得 425<br>14-4-3 全图预览方式的设置 427<br> <br>14-4-4 动态展示产品内容 428<br>14-5 新上市产品 431<br>14-6 索取详细信息 432<br>14-6-1 未选择产品信息需求 的处理 434<br>14-6-2 显示选择信息的内容 436<br>14-6-3 用户填写信息的窗体 设计 438<br>14-6-4 存储用户信息 442<br>14-6-5 写入用户填写的信息 446<br>14-6-6 以E-Mail 转发用户 需求 450<br>第15章 范例系统的设计与应用(二)………455<br>15-1 后台数据管理系统的组成 456<br>15-2 登录管理 457<br>15-3 系统信息设置 461<br>15-4 密码更改 467<br>15-5 币别信息管理 472<br>15-6 类别管理 478<br>15-7 产品上架 484<br>15-8 产品下架 490<br>15-9 产品信息修改 496<br>附录 范例系统安装…………………………507<br>一、还原数据库 508<br>二、复制范例 513<br>三、实际测试 514<br>四、错误排除 515<br>第1章 架设网站……………………………….1<br>1-1 服务器的选用 2<br>1-2 安装或升级IE的版本 3<br>1-3 安装IIS 6<br>1-4 测试及设置 12<br>第2章 编辑器的选用………………………..17<br>2-1 编辑软件的需求 18<br>2-1-1 记事本 18<br>2-1-2 FrontPage 编辑器与MSE编辑器 19<br>2-2 MSE的操作 23<br>2-2-1 MSE的各部分 23<br>2-2-2 建立基本的设计窗体 24<br>2-3 加入控制标记 28<br>2-3-1 加入文字 28<br>2-3-2 加入窗体控制标记 29<br>2-3-3 加入ASP控制命令 32<br>2-3-4 存储设计的成果 33<br>2-3-5 修改的方式 35<br>2-4 本章总结 36<br>第3章 数据库基本概念……………………..39<br>3-1 数据库系统 40<br>3-1-1 数据库系统的类型 40<br>3-1-2 数据库系统的结构 40<br>3-1-3 数据库系统的主要组件 42<br>3-1-4 数据集中化管理 44<br>3-1-5 数据独立 46<br>3-2 数据库管理系统(DBMS) 46<br>3-3 关系型数据库 48<br>3-3-1 数据的表示方法 48<br>3-3-2 表 49<br>3-3-3 键 50<br>3-3-4 表索引 50<br>3-3-5 视图 51<br>3-3-6 存储过程 52<br>3-3-7 触发器 53<br>3-3-8 数据目录 54<br>3-4 数据库设计 55<br>3-4-1 Entities & Relationship 55<br>3-4-2 数据正规化 55<br>3-5 SQL语句 58<br>3-5-1 DDL数据定义语言 58<br>3-5-2 DML数据处理语言 59<br>第4章 系统的安装与激活…………….……..61<br>4-1 安装前的准备 62<br>4-1-1 选择安装版本 62<br>4-1-2 硬件需求 63<br>4-1-3 软件需求 63<br>4-2 开始安装SQL Server 2000 64<br>4-3 重要设置说明 73<br>4-3-1 服务帐户 73<br>4-3-2 安全验证方式 79<br>4-3-3 许可模式 82<br>4-4 管理工具程序 85<br>4-4-1 Enterprise Manager管理 工具 85<br>4-4-2 Profiler管理工具 86<br>4-4-3 查询分析器 87<br>4-4-4 服务器网络公用程序 88<br>4-4-5 客户端网络公用程序 89<br>4-4-6 服务管理器 89<br>4-4-7 导入及导出数据 90<br>4-5 激活服务 91<br>4-5-1 服务的启动方式 91<br>4-5-2 SQL Server服务管理器的操作 92<br>第5章 数据库的创建………………….…….95<br>5-1 Enterprise Manager管理工具 96<br>5-1-1 Enterprise Manager画面 96<br>5-1-2 Enterprise Manager的操作 97<br>5-1-3 向导的使用 98<br>5-2 注册SQL Server 99<br>5-2-1 使用“注册服务器向导” 注册 99<br>5-2-2 直接设置注册属性 103<br>5-2-3 更改注册 105<br>5-2-4 删除注册 106<br>5-3 内建数据库 106<br>5-4 数据库结构 107<br>5-4-1 数据库的逻辑组件 107<br>5-4-2 数据库的实体结构 111<br>5-4-3 文件组 112<br>5-5 创建新的数据库 113<br>5-5-1 使用Enterprise Manager管理工具 114<br>5-5-2 利用创建数据库向导 117<br>5-5-3 CREATE DATABASE 指令 122<br>5-6 数据库选项 124<br>5-6-1 自动选项 124<br>5-6-2 数据指针选项 126<br>5-6-3 复原选项 126<br>5-6-4 SQL选项 127<br>5-6-5 状态选项 129<br>5-6-6 调整数据库选项 129<br>5-7 数据库的删除与分离 132<br>5-7-1 删除数据库 132<br>5-7-2 分离数据库 133<br>5-7-3 附加数据库 133<br>第6章 表的创建…………………………….135<br>6-1 查看数据的内容 136<br>6-1-1 使用“打开表”功能查看数据内容 136<br>6-1-2 查看表属性 137<br>6-2 数据类型 138<br>6-2-1 数值数据 138<br>6-2-2 货币数据 139<br>6-2-3 日期数据 139<br>6-2-4 字符串数据 140<br>6-2-5 Unicode数据 141<br>6-2-6 Binary数据 141<br>6-2-7 其他特殊数据类型 142<br>6-3 创建表 143<br>6-3-1 表设计窗口 143<br>6-3-2 使用表设计窗口创建 表 148<br>6-3-3 创建表主键 150<br>6-3-4 使用CREATE TABLE指令创建表 152<br>6-4 表索引的管理 154<br>6-4-1 表设计工具属性页 154<br>6-4-2 利用表设计工具属性创建索引 156<br>6-4-3 使用向导创建索引 158<br>6-4-4 利用“管理索引”窗口管理表索引 161<br>6-5 创建关联 162<br>6-6 数据输入 165<br>6-6-1 在表窗口中输入数据 165<br>6-6-2 导入数据 166<br>6-6-3 使用INSERT INTO语句 171<br>第7章 数据库的备份与管理……………….173<br>7-1 生成数据库的SQL脚本 174<br>7-1-1 生成SQL脚本窗口 174<br>7-1-2 执行生成SQL脚本 179<br>7-1-3 执行SQL脚本文件 181<br>7-2 收缩数据库 182<br>7-3 数据库备份与还原 185<br>7-3-1 备份模式 185<br>7-3-2 数据库备份 186<br>7-3-3 数据库备份设置实例 189<br>7-3-4 数据库还原 190<br>7-4 使用权限的管理 194<br>7-4-1 权限类型 194<br>7-4-2 权限验证 197<br>7-4-3 权限授与 197<br>7-4-4 拒绝权限 202<br>7-4-5 撤销权限 204<br>第8章 Transact-SQL语法基础…………….207<br>8-1 Transact-SQL 表达式 208<br>8-1-1 数学表达式 208<br>8-1-2 字符串表达式 209<br>8-1-3 比较表达式 209<br>8-1-4 逻辑表达式 210<br>8-1-5 表达式的优先级 210<br>8-2 Transact-SQL数据类型 211<br>8-3 Transact-SQL 函数 213<br>8-4 Query Analyzer工具程序 220<br>8-5 Transact-SQL 语句语法 223<br>8-5-1 Create Table语句 223<br>8-5-2 Alter Table语句 225<br>8-5-3 Drop Table语句 229<br>8-6 数据处理语法(DML) 230<br>8-6-1 Select语句 230<br>8-6-2 Active Query–Insert语句 240<br>8-6-3 Active Query-Delete语句 242<br>8-6-4 Active Query-Update语句 244<br>第9章 Response,Request对象的<br>基础与应用…………………………247<br>9-1 Response对象 248<br>9-1-1 Write方法的基础与应用 250<br>9-1-2 Redirect方法的基础与 应用 252<br>9-1-3 END方法的基础与应用 255<br>9-1-4 Cookies的基础与应用 256<br>9-1-5 服务器缓冲区处理 259<br>9-2 Request对象 261<br>9-2-1 ClientCertificate变量 262<br>9-2-2 Cookies集合 262<br>9-2-3 Form集合 264<br>9-2-4 QueryString变量 266<br>9-2-5 ServerVariables集合 270<br>9-3 Session对象的基础与应用 272<br>9-3-1 Session对象的基础 272<br>9-3-2 Session变量的使用 272<br>9-3-3 Session变量的使用限制 276<br>9-4 Application对象 277<br>9-4-1 用户ASP程序之间信息的共享 277<br>9-4-2 Application语法 279<br>9-4-3 Application变量的使用 280<br>9-5 Global.asa文件 282<br>9-5-1 Global.asa文件的结构 282<br>9-5-2 全局对象 283<br>9-5-3 Application起始及结束 事件 284<br>9-5-4 Application与Session对象的事件处理程序 285<br>9-5-5 Global.asa文件的使用 285<br>第10章 ODBC的设置与应用……….…….287<br>10-1 ODBC的简介 288<br>10-2 数据存取组件的更新 290<br>10-2-1 下载MDAC 290<br>10-2-2 更新数据存取组件 293<br>10-3 ODBC数据源的创建 294<br>10-4 测试ODBC DSN 300<br>第11章 ADO对象的基础与应用…………303<br>11-1 ADO对象的结构 304<br>11-1-1 ADO对象 304<br>11-1-2 ADO的结构 304<br>11-2 Connection对象 305<br>11-2-1 连接、打开数据库的 方法 305<br>11-2-2 直接使用ADO与SQL 连接 307<br>11-2-3 直接与Access MDB 连接 308<br>11-3 Recordset对象的基础 308<br>11-3-1 取得字段名称与内容 314<br>11-3-2 取得、移动记录指针 317<br>11-3-3 Field对象 320<br>11-4 ADO对象与数据库的应用 323<br>11-4-1 添加记录 323<br>11-4-2 记录的更新 327<br>11-4-3 记录的删除 334<br>11-5 Error对象 339<br>第12章 ASP与ActiveX DLL………………345<br>12-1 什么是MTS 346<br>12-1-1 MTS概述 346<br>12-1-2 何时该使用MTS 348<br>12-1-3 使用MTS的优点 349<br>12-2 如何创建ASP组件 350<br>12-2-1 新建工程 351<br>12-2-2 设置引用 352<br>12-2-3 如何设计ActiveX DLL的内容 357<br>12-2-4 编译ActiveX DLL 360<br>12-3 将组件加入MTS 362<br>12-3-1 NT技术操作平台 363<br>12-3-2 Windows 9x技术操作 平台 363<br>12-3-3 注册ActiveX DLL 364<br>12-4 调用MTS中的ASP组件 368<br>12-4-1 开始编辑ASP程序 368<br>12-4-2 带有参数的ASP程序 370<br>第13章 Server对象与其他对象的<br>整合、应用………………………..373<br>13-1 FSO文件对象组件 374<br>13-1-1 FileSystemObject对象的基础 374<br>13-1-2 创建文本文件 375<br>13-1-3 检查文件是否存在 378<br>13-1-4 删除文件 380<br>13-1-5 取得文件属性 383<br>13-2 文本文件的读取与写入 386<br>13-2-1 如何读取与写入文本 文件 386<br>13-2-2 写入文本文件 389<br>13-2-3 写入空白行到文本文件 391<br>13-2-4 写入一行字符串到文本 文件 394<br>13-2-5 添加文字到文本文件 396<br>13-2-6 读取文本文件的字符/一行文字 398<br>13-2-7 读取整个文本文件 400<br>13-3 CDO对象 403<br>13-3-1 SMTP环境的创建与 使用 404<br>13-3-2 实际测试 407<br>13-3-3 使用邮件接收软件验证 411<br>第14章 范例系统的设计与应用(一)………413<br>14-1 结构说明 414<br>14-2 动态菜单的设计 415<br>14-2-1 设置CSS属性 416<br>14-2-2 固定的选项设计 417<br>14-2-3 动态选项的设计 419<br>14-2-4 CSS表现方式的控制 421<br>14-3 Cookies的处理 422<br>14-4 动态产品展示 424<br>14-4-1 基本功能设置 425<br>14-4-2 相关资料的取得 425<br>14-4-3 全图预览方式的设置 427<br> <br>14-4-4 动态展示产品内容 428<br>14-5 新上市产品 431<br>14-6 索取详细信息 432<br>14-6-1 未选择产品信息需求 的处理 434<br>14-6-2 显示选择信息的内容 436<br>14-6-3 用户填写信息的窗体 设计 438<br>14-6-4 存储用户信息 442<br>14-6-5 写入用户填写的信息 446<br>14-6-6 以E-Mail 转发用户 需求 450<br>第15章 范例系统的设计与应用(二)………455<br>15-1 后台数据管理系统的组成 456<br>15-2 登录管理 457<br>15-3 系统信息设置 461<br>15-4 密码更改 467<br>15-5 币别信息管理 472<br>15-6 类别管理 478<br>15-7 产品上架 484<br>15-8 产品下架 490<br>15-9 产品信息修改 496<br>附录 范例系统安装…………………………507<br>一、还原数据库 508<br>二、复制范例 513<br>三、实际测试 514<br>四、错误排除 515<br>5 383浏览会员免费
- 旅游信息;网络化;动态网站大小:1MB本文是根据旅游行业的这种现状,提出解决问题的一个可行性方法:采用现代化统一的计算机网络系统,实现了旅游管理的网络化,各类信息有序地进行存储,同时采用了权限认证的方式,只有经过了系统权限认证之后,方可进入系统主控界面,进行信息管理,信息查询,在线预定,留言簿等功能的使用。实现了各种业务系统的数据集成和信息集成,对旅行社各类信息、资源进行协同集中管理。利用ASP技术建立动态网站,实现旅游信息快速发布及接受游客的网上预定。本文是根据旅游行业的这种现状,提出解决问题的一个可行性方法:采用现代化统一的计算机网络系统,实现了旅游管理的网络化,各类信息有序地进行存储,同时采用了权限认证的方式,只有经过了系统权限认证之后,方可进入系统主控界面,进行信息管理,信息查询,在线预定,留言簿等功能的使用。实现了各种业务系统的数据集成和信息集成,对旅行社各类信息、资源进行协同集中管理。利用ASP技术建立动态网站,实现旅游信息快速发布及接受游客的网上预定。0 100浏览会员免费
- 人脸识别大小:5MB采用PCA进行人脸特征脸的提取,基于osu-svm进行分类,采用的数据集是ORL人脸库,识别正确率可达93%。资源包括代码,osu-svm工具箱,orl人脸库、实验保存的数据以及对程序的详细说明,值得刚开始做人脸识别的看看!采用PCA进行人脸特征脸的提取,基于osu-svm进行分类,采用的数据集是ORL人脸库,识别正确率可达93%。资源包括代码,osu-svm工具箱,orl人脸库、实验保存的数据以及对程序的详细说明,值得刚开始做人脸识别的看看!3 455浏览会员免费