基于vc60access的图书馆管理系统内容摘要:
E,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } //显示用户资料 m_strPass =。 m_strRePass = m_strPass。 m_bIsAdmin =。 ()。 UpdateData(FALSE)。 *pResult = 0。 } void CUserDlg::OnButtonNew() {//清空用户资料 m_strUser =。 m_strPass =。 m_strRePass =。 m_bIsAdmin = FALSE。 //设置用户名编辑框为可用 (TRUE)。 ()。 //更新数据到界面 UpdateData(FALSE)。 } void CUserDlg::OnButtonDelete() {UpdateData(TRUE)。 //判断是否指定用户 if(m_strUser==) { MessageBox(请选择一个用户。 )。 return。 } CString strSQL。 (select * from user where user=39。 %s39。 ,m_strUser)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } //删除该用户 14 ()。 ()。 //刷新用户列表 RefreshData()。 m_strUser =。 m_strPass =。 m_strRePass =。 m_bIsAdmin = FALSE。 UpdateData(FALSE)。 } void CUserDlg::OnOK() {UpdateData()。 if(()) {//增加新用户的输入检查 if(m_strUser==) { MessageBox(请填写用户名。 )。 ()。 return。 } } else {//修改用户信息的输入检查 if(m_strUser==) { MessageBox(请选择一个用户。 )。 return。 } } //限制密码不能为空 if(m_strPass==) { MessageBox(密码不能为空,请输入密码。 )。 ()。 return。 } //验证密码与确认密码是否一致 if(m_strPass!=m_strRePass) { MessageBox(两次输入地密码不一致,请重新输入密码。 )。 ()。 m_strPass =。 m_strRePass =。 UpdateData(FALSE)。 return。 } //打开记录集 CString strSQL。 (select * from user where user=39。 %s39。 ,m_strUser)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } 借书 界面设计 15 void CBorrowDlg::OnChangeEditReaderCode() {UpdateData()。 //获取读者基本信息 CReaderInfoSet rs_reader。 CString strSQL。 (select * from readerInfo where code = 39。 %s39。 ,m_strReaderCode)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) {MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } if(()==0) { ()。 return。 } m_strReaderName =。 m_strReaderType =。 ()。 //根据读者类型获取读者可借阅册数 CReaderTypeSet rs_readerType。 (select * from readerType where type = 39。 %s39。 ,m_strReaderType)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } if(()==0) 16 { ()。 return。 } m_nAllow =。 ()。 //根据读者编号读取读者已借阅册数 CBookInfoSet rs_BookInfoSet。 (select * from BookInfo where reader_code = 39。 %s39。 ,m_strReaderCode)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } m_nAlready=()。 m_nLeft = m_nAllow m_nAlready。 ()。 m_bReaderEnable = TRUE。 UpdateData(FALSE)。 } void CBorrowDlg::OnChangeEditBookCode() {UpdateData()。 //获取图书基本信息 CBookInfoSet rs_book。 CString strSQL。 (select * from bookInfo where code = 39。 %s39。 ,m_strBookCode)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } if(()==0) { ()。 return。 } if() { AfxMessageBox(此图书已借出。 )。 ()。 return。 } m_strBookName =。 m_strBookType =。 m_strBookPrice =。 ()。 //根据图书类型获取图书可借阅天数 CBookTypeSet rs_bookType。 (select * from bookType where type = 39。 %s39。 ,m_strBookType)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) {MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } if(()==0) 17 {()。 return。 } m_nDays =。 ()。 m_bBookEnable = TRUE。 UpdateData(FALSE)。 } void CBorrowDlg::OnOK() {// 判断读者是否具有借阅资格,以及图书是否可以被借出 if(!m_bReaderEnable|!m_bBookEnable) return。 CLibraryApp* ptheApp = (CLibraryApp *) AfxGetApp()。 //修改图书库存信息 CBookInfoSet rs_book。 CString strSQL。 (select * from bookInfo where code = 39。 %s39。 ,m_strBookCode)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) {MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } if(()==0) {()。 return。 } ()。 = TRUE。 = m_strReaderCode。 ()。 ()。 if(!(AFX_DB_USE_DEFAULT_TYPE)) { AfxMessageBox(打开数据库失败 !)。 return。 } //添加借书记录 ()。 = m_strBookCode。 = m_strBookName。 = m_strBookType。 = CTime::GetCurrentTime()。 = ptheAppm_strOperator。 = m_strBookPrice。 = m_strReaderCode。 = m_strReaderName。 = CTime::GetCurrentTime()+m_nDays*24*3600。 = FALSE。 ()。 ()。 //更新界面显示 18 m_strBookCode=。 m_strBookName=。 m_strBookType=。 m_strBookPrice=。 m_nDays=0。 m_nAlready++。 m_nLeft。 m_bBookEnable = FALSE。 UpdateData(FALSE)。 RefreshData()。 } void CBorrowDlg::RefreshData() {()。 (FALSE)。 UpdateData(TRUE)。 CString strSQL。 ( select * from borrowInfo where reader_code = 39。 %s39。 ,m_strReaderCode)。 if(!(AFX_DB_USE_DEFAULT_TYPE,strSQL)) { MessageBox(打开数据库失败 !,数据库错误 ,MB_OK)。 return。 } int i=0。 CString strTime。 while(!()) { (i,)。 (i,1,)。 (i,2,)。 (i,3,)。 (%d%d%d,(),(),m_recor())。 (i,4,strTime)。 (%d%d%d,(),(),m_recordse())。 (i,5,strTime)。 (i,6,)。 i++。 ()。 } ()。 (TRUE)。 } BOOL CBorrowDlg::OnInitDialog() 借书查询 19 void CBorrowSearchDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX)。 //{{AFX_DATA_MAP(CBorrowSearchDlg) DDX_Control(pDX, IDC_LIST1, m_ctrList)。 DDX_Text(pDX, IDC_EDIT_BOOKCODE, m_strBookCode)。 DDX_Text(pDX, IDC_EDIT_READERCODE, m_strReaderCode)。 //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBorrowSearchDlg, CDialog) //{{AFX_MSG_MAP(CBorrowSearchDlg) ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnButtonSearch) ON_EN_CHANGE(IDC_EDIT_READERCODE, OnChangeEditReadercode) //}}AFX_MSG_MAP END_MESSAGE_MAP() // CBorrowSearchDlg messa。基于vc60access的图书馆管理系统
相关推荐
++) for(int j=0。 j4。 j++) (i)。 //每次从上面的临时地图中取走 (获取后并在临时地图删除 ) //一个动物放到地图的空方块上 for(int i=0。 im_nRow*m_nCol。 i++) { //随机挑选一个位置 int nIndex=(int(rand()*+rand()*+rand()))%()。 //获取该选定物件放到地图的空方块
有信息保持不变。 可由特殊方式擦出,主要存储需要永久保持的系统或用户程序。 ( 3) 电可擦出只读存储器( EEROM) :使用编程器能容易的进行修改的存储 单元。 同样,作为只读存储器,其内存储的数据断电情况下保持不变。 通常也可 根据项目设计的需要, 使用专用内存卡片方式扩充 (但扩充能力得依各厂牌与型号有所不同 )。 输入 /输出单元 PLC 的对外功能,主要是通过各种 I/O 接口 模块
流电通过整流器转换成直流电,然后再把直流电转换成频率、电压均可控制的交流电,以供给电动机。 变频器的电路一般由整流器、中间直 流环节、逆变器和控制电路 4个部分组成。 交流电动机的同步转速表达式为 n = 60 f (1− s) / p 式中: n— 异步电动机的转速; f— 异步电动机的频率;s— 电动机转差率; p— 电动机极对数。 由上式可知,异步电动机的转速 n 与频率 f 成正比
科技学院《 Windows 程序设计 》课程设计报告 5 2 设计环境或器材、原理与说明 设计 环境与器材 因为选择使用 MFC 编程, 该程序又是网络编程, 所以设计环境与器材为: PC 机两到三台 (程序试运行时需要多台电脑充当客户端 ); 能正常连接的网卡; Windows环境与 Microsoft Visual C++ 编译环境; 原理与说明 在计算机网络中,信息的传输是建立在
址锁存有效信号输出端。 当访问片外程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节,一般情况下, ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的,要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 XTAL1(18):振荡器反相放大器 的输出端。 通过 XTAL XTAL2 外接晶振后
TL0=0Xfb。 P04=1。 //电机 1 左轮 P05=1。 P06=1。 //电机 2 P07=0。 i=1。 } if(P00==0amp。 amp。 P01==0amp。 amp。 P02==0amp。 amp。 i==1) // 特别 {TH0=0XFF。 TL0=0Xfb。 P04=1。 P05=1。 P06=1。 基于 STC89C52 单片机的智能小车设计系统