课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc

上传人:仙人指路1688 文档编号:2395946 上传时间:2023-02-17 格式:DOC 页数:33 大小:442.50KB
返回 下载 相关 举报
课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc_第1页
第1页 / 共33页
课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc_第2页
第2页 / 共33页
课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc_第3页
第3页 / 共33页
课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc_第4页
第4页 / 共33页
课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于ACCESS数据库的图书管理系统的设计与实现.doc(33页珍藏版)》请在三一办公上搜索。

1、课程设计报告书课题:图书管理系统学 生 姓 名: XXX 学号: XXX 学 部 (系): 专 业 年 级: 指 导 教 师: 承诺书本人郑重声明:本人所呈交的学术论文,是本人在导师指导下独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确的方式标明。本人完全意识到本声明的法律结果由本人承担。学生(签名): 2011 年 6 月 20 日引言一、设计题目一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,

2、其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。二、设计概要 本文介绍了一个基于ACCESS数据库的图书管理系统的设计与实现,运用Visual C+结合Microsoft Access 2000开发,模块中有登陆模块,登陆模块用于验证用户身份,选择登陆方式,从而限制不同用户的不同操作,在主界面验证后进选择模块,在其中可以选择多种功能操作,包括关于读者资料,图书资料,借阅归还图书的管理,在数据库设计中根据需求分析严格制表,整个系统的设计中运用了模块化的设计思想和开发方法。AbstractFirst:Design Su

3、bjectA simple library management system includes information on books in libraries, schools, students in the school of information and student loan information. This system functions for administrators to students and is divided into two parts, in which students can borrow, renew, return and check b

4、ooks and other operations, administrators and students can complete books to add, delete and modify as well as for students to borrow , renew, return confirmation.Second:This article describes a based on ACCESS database library management system design and implementation, using Visual C + + with Mic

5、rosoft Access 2000 development, the module has landing module, login module for user authentication, select the landing approach, which limits the different users of different operating , verify the backward selection in the main interface module, which you can choose a variety of functions in opera

6、tions, including information on the readers, books, return books to borrow management, database design, requirements analysis based on strict watch, the whole system design of the use of the Modular design and development methods.目 录一 、 系统功能和结构1.1 程序设计目的1.2 需求分析二、 数据库设计2.1数据库概念结构设计2.1.1数据需求2.1.2事务需求

7、2.2数据库逻辑结构设计(每个表的结构,字段的类型、长度等)三、 程序结构设计3.1 设计开发平台说明3.2 程序框架设计3.3 程序详细设计四、 系统详细设计 4.1 (1)(2)(3)(4)功能详细设计及说明 4.2 (1)(2)(3)(4)主要功能的实现方法五 、设计体会与总结5.1程序不足5.2设计心得六、附录参考文献致谢一 、 系统功能和结构1.1 程序设计目的图书管理系统中涉及登陆,图书管理读者管理,以及权限设置相关知识,需要运用的知识全面,可有效检查出学习中的缺陷,同时在实践中巩固数据库相关知识以及VC+编程设计。1.2 需求分析在符合设计要求的情况下:图书管理系统中主要出现的事

8、物是1、图书,2、读者,3、管理员而需要实现的功能主要有1、借阅,2、还书、3、注册新读者,4、续借功能,除了图书管理方面功能,另外还有对读者信息的修改 对图书信息的修改,以及细节上如对登陆密码的修改等。二、 数据库设计2.1数据库概念结构设计针对需求分析可以得出此设计中主要分为数据需求和事物需求两种2.1.1数据需求根据系统的需求,首先将要记录的信息分类,要记录的信息如下。读者信息包括“读书证号”、“姓名”、“身份证号”,“最多可借书数目”和“能否借书”书籍信息包括“书籍号码”、“书籍名称”、“书籍作者”、“书籍出版社”、“出版日期”及“可否借出”借阅信息包括“书籍号码”、“借阅读者证号”、

9、“借阅日期”以及“借阅次序*”*借阅次序:考虑到后期会设计续借功能故预留之以方便一些操作,不过程序设计后期由于持续编译出错未能纠错无法实现此功能,代码在程序中进行了屏蔽,后会详细说明。另外在程序设计初期对借阅信息这一块考虑到了管理员也可借书故还添加了“管理员证号”不过在程序设计后期并未实现功能,但依旧存在于表中2.1.2 事务需求实现登陆功能为实现登陆功能设计了两个表,分别是作为管理员登陆的“管理员登录表”及作为普通用户登录的“普通用户登录表”其中分别都只有用户名和密码两项。实现历史记录功能为了图书借阅功能的可查可控,制作了历史记录表便于记录各种信息诸如何人何时借阅归还何书,是否超期还书等。实

10、现权限功能为实现各种普通用户,管理员用户两层权限,设计了权限表2.2数据库逻辑结构设计在此处将把设计的各表详细信息给出表 名字段名称数据类型长 度主 键READERREADER_ID文本8YesNAME文本8IDCARD文本18MAXNUM_CAN_BORROW数字FLAG_BORROW文本1BOOKBOOK_ID文本30YesBOOK_NAME文本50AUTHOR文本30PRESS文本50PRESS_DATE文本50FLAG_BORROW文本10BORROWID自动编号YesREADER_ID文本30YesBOOK_ID文本30BORROW_DATE日期/时间B_CLERK_ID文本30HI

11、STORYID自动编号YesREADER_ID文本30BOOK_ID文本30BORROW_DATE日期/时间RETURN_DATE日期/时间B_CLERK_ID文本30R_CLERK_ID文本30CLERKNAME文本8YesPASSWORD文本8LOGINNAME文本30YesLOGIN文本10VIPNAME文本8YesPASSWORD文本30*其中CLERK表是用来记录管理员登录核对信息LOGIN表用来记录登录后的登陆者信息及该人权限VIP表中用来记录普通用户登录核对信息三、 程序结构设计3.1设计开发平台本小组4人的设计平台均为WinXP系统 Microsoft ACCESS 2000,

12、Visual C+6.0。硬件方面略有不同不予列举。3.2程序框架设计程序框架方面根据数据流程,首先要有登陆窗口登陆窗口方面主要要分为普通用户的登录窗口和管理员用户的登录窗口登录进入系统以后要进入选择界面,选择需要的服务,这里根据普通用户和管理员用户的不同分为普通用户选择界面和管理员用户选择界面服务方面已细分为读者信息管理,书籍信息管理,借书管理和还书管理 4种四、 系统详细设计4.1(1) 功能详细设计及说明关于读者信息服务功能方面是面向两个方面的首先是管理员方面,我企划把它设计成1、 管理员使用时可以增加删除读者信息2、 读者信息是与登录信息挂钩的,换句话说读者是用姓名加密码进行登录,初始

13、密码可以在管理员第一次注册读者的时候默认设为4个03、 管理员可以进行读者信息的查询,从而方便进行读者的删除增加修改4、 管理员可以设定读者是否可以借书然后是读者方面读者方面1、 首先屏蔽了对读者的查询功能,毕竟登录进去的自己就是读者,也没有必要让读者发现其他读者的信息2、 鉴于读者查询功能关闭,所以第一条上一条下一条等还有包括增加删除等功能都预予关闭3、 修改功能保留但是只能修改自己的个人信息,修改信息包括密码的修改,身份证件的修改,对是否可借阅及姓名 读者条码的修改亦关闭之。综合以上的设计思路首先定义一个来建立与数据库中读者表READER的连接。同时由于在管理员权限中可以增加读者登录信息,

14、所以又定义了一个来与登录信息表VIP进行连接来设定普通读者用户的密码,及普通读者用户的新用户申请方面的信息,另外权限的问题,这里实现权限不同功能不同的方法是在登录同时向修改数据库中LOGIN表的数据,所以还建立了一个来连接数据库中LOGIN表。关于设定连接数据库的功能,见附录4.2(1) 主要功能的实现方法(核心代码、页面截图、页面功能简单介绍)代码设计方面首先在即读者信息的对话框头文件中加入了以上3个数据库连接cpp的头文件,然后分别定义几个数据库类,方便后面程序中对数据库操作的方便准备工作做好后,就是关于读者信息管理的具体实现了程序一开始运行后第一步需要获取目前登录的是谁,是什么类型的人来

15、方便确定权限这里我把这点获取工作放到了方法中,在头文件中定义了两个字符串变量,然后让其获取,数据库中的登录信息其中mlsDataSet是数据库中LOGIN的连接类所建立。此处关于LOGIN表数据的更改方面,既是实现分组中未提到的关于登录框架的实现,这点是大家共同作业完成,将在后面再予说明获取登录信息后先来考虑下数据载入由于要频繁的将数据载入到各个文本框中所以安排了一个方法来方便之后频繁的数据载入。关于这个类,由于管理员看到的信息和普通用户看到的信息也不同,所以开始运用之前获取的LoginName 和LoginType两个信息来作为主导,当Logintype=1时,即说明此次登陆的是管理员所以在

16、显示数据时显示所有人的信息而若LoginType=0,则在显示的时候只显示该登录用户的信息,说完了DisplayRecord方法后,再来说下方法此方法和DisplayRecord中一样也分为面向读者和面向管理员两部分关于本方法的实现,简单解释一下,各个按钮的属性很好理解用指针也很好实现首先还是用来判断是否是管理员登陆的,如果是则根据数据库是否打开以及是否按了修改或者增加键来确定其他各按钮的可操作性,代码繁多这里就不一一写明只说明一点当的时候没有任何权限所以将仅留修改的权限,设定为,根据按下edit否来更改一些按钮属性else if(LoginType=0)if(!m_rsDataSet.IsO

17、pen()pWnd = GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEW);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_EDIT);p

18、Wnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_ENQUERY);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_SAVE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(FALSE);return TRUE;if (m_bEdit)pWnd = GetDlgItem(IDC_FIRST);

19、pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEW);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE);pWnd = Get

20、DlgItem(IDC_ENQUERY);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_SAVE);pWnd-EnableWindow(TRUE);pWnd = GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(TRUE);return TRUE;pWnd = GetDlgItem(IDC_NEW);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_ENQ

21、UERY);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_SAVE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FA

22、LSE);pWnd = GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);return TRUE;再来说下其实方法和很像,在管理员时不能修改密码而可以修改读者除读者id外的一切其他信息,而在普通用户时只可以修改密码和自己的身份证id,其他信息皆不可修改。代码繁多,见程序。这几点说完了,关于其他几个按键的实现,实际上按键的实现都是VC+很基本的功能,所以这里也就不一一列举了,举一个编译的时候很费了些时间的按键好了,也就是保存按键,面向读者和管理员两

23、个方面的保存按键都有点麻烦因为修改的信息虽少,但经常要在两个数据库中修改信息才能完成所以这里一个是随时都与数据库连接的,它是由定义出来的,保存信息起来尚且简单,添加编辑都好办但是另外一个文件是登陆信息的表的修改,在这里就必须用到查询语句,而且还要使用目前登录的信息变量LoginName实现方法是这段语句编译时从一开始的Open()方法出错到之后的Edit出错,以及再之后的不停的弹出记录集是只读的,弄了好几个下午之后才发现原来在数据库的连接的时候出了错误程序的此处竟然写的是一段乱码.这是让我纠缠很久的一个小功能的实现.。至此关于读者信息的管理方面已经说的差不多了.其他的一些细节地方并不复杂,应该

24、没有其他需要说明的地方了。4.1(2) 功能详细设计及说明本来管理员的借书这一点也算在借书服务中,所以在一开始创建表的时候也申请创建了一个关于记录管理员借书的表,但是由于后来感觉实现起来有些繁琐,再加上自己对数据库连接方面不是很熟悉,经常编译出错,只得放弃这一点功能,而且设计来设计去,一开始的很多很漂亮的构想也经常因为调试错误而放弃了,最终选择了一个像现在界面这样简单的设计方法。而且由于不在于管理员借书功能方面的实现所以代码中也不涉及权限问题。本借书功能中要考虑的问题是首先书有的不能借,有的可以借,这一点要分情况讨论然后有的读者不能借书有的读者不能借书这一点也要分开讨论4.2(2) 主要功能的

25、实现方法(核心代码、页面截图、页面功能简单介绍)本页面上说起来很简单在分别填上读者编码和书籍编码即可然后点下确定程序会自行判断读者是否可借书,书是否可借关于这一点的判断的实现,详见代码首先定义先搜索定义出所输入ID的读者的位置,找到读者在表中的位置。然后if (!m_rsReaderDataSet.IsEOF()if (m_rsReaderDataSet.m_FLAG_BORROW = Y)mSqlStr = SELECT * FROM BORROW WHERE READER_ID= + m_strReaderID;mSqlStr = mSqlStr + ;if (!m_rsDataSet.O

26、pen(AFX_DB_USE_DEFAULT_TYPE,mSqlStr)m_rsReaderDataSet.Close();AfxMessageBox(数据表打开错误!);return;/ Add some code to determine the num of book which this reader borrowed.m_bCanBorrow = TRUE;m_rsDataSet.Close();通过此代码进行查询,首先判断可否打开数据库如果可以择判断能否查看到借书标签如果借书标签为Y则可以借书将m_bCanBorrow = TRUE;这样在之后如果发现图书不能结束,则弹出对话框if

27、 (!m_bCanBorrow)AfxMessageBox(读者不能借书,请向管理员申请权限);return;这样的设计主要是为了让界面友好。然后读者可否借书的判断借书后,开始判断书是否可借,这一点的实现等同读者方面除此之外重要的一点就是关于借书方面的记录,毕竟图书馆需要留下借书的记录在案才能管理借书这一点我运用了插入到表的做法并且同时加入系统时间等的信息,做好借书的记录。首先定义几个变量来获取系统时间然后编写sql插入语句最后执行插入即可。此时在表中已经可以看到生成的借书信息另外由于是管理员登录借书所以此处用原先定义为管理员借书的来显示对此操作的管理员名称。4.1 (3)功能详细设计及说明本

28、次我负责的模块是还书功能,在这里参照了下胡磊同学设计的借书模块,设计成为相似界面,后来考虑到要设计续借功能,虽然整体上并未实现借阅功能,但是还是加入了续借的按钮还书的操作比较简单输入图书代码后按下还书键即可弹出信息询问是否还书。还书开始时,系统首先查询该书的书籍方面信息这部分代码是当确定书存在于数据库中时,开始计算是否超期还书地方将默认的可持书时间定为了一个月所以在还书时首先判断该读者是否超期void CReturnDlg:OnConfirm() int rs;CWnd *pWnd;CString m_strtmp;rs=QryBorrow();if(rs=1)m_strtmp.Format(

29、超期%d天,确认还书?,m_Days);if(:MessageBox(this-m_hWnd,m_strtmp,提示,MB_YESNO)=IDYES)Insert_History();Delete_Borrow();SetTxtNull();elsereturn;else if(rs=2)if(:MessageBox(this-m_hWnd,确认还书吗?,提示,MB_YESNO)=IDYES)Insert_History();Delete_Borrow();SetTxtNull();elsereturn;然后由于要对还书记录可查可控,在每还一本书的同时都有进行历史记录if(!mdb.Open(

30、_T(library)AfxMessageBox(数据库执行出错);return 0;m_strsql=INSERT INTO HISTORY (READER_ID,BOOK_ID,BORROW_DATE,RETURN_DATE) VALUES (+m_rsDataSet.m_READER_ID+;m_strsql=m_strsql+,+m_rsDataSet.m_BOOK_ID+;m_strsql=m_strsql+,+m_BorrowDate+;m_strsql=m_strsql+,+(CTime:GetCurrentTime().Format(%Y,%B %d)+);trymdb.Beg

31、inTrans();mdb.ExecuteSQL(m_strsql);mdb.CommitTrans();catch(CDBException e)AfxMessageBox(数据库执行出错);return 0;return 1;这里采用了直接打开数据库书写的方式,但是在程序中也有用到数据库连接,borrow表的连接,具体的连接方法见附录下面来说下未能实现的一个功能,既是续借功能续借版块不是一般常见的所谓延期的续借方法,想要实现一种简单一点的续借方法,既是,该生续借就在借书表中将那本书的借书信息删除,然后重新放进一个借书信息,新的信息中包含当天的新日期。用这样的方法来实现续借,但是在数据库定位

32、的时候频繁出错,以至后来接近交报告时期无奈只得放弃,关于那部分尝试时所编写的代码,以及设计的与数据库的连接类,尚留存在程序中,待以后再尝试。下面贴出尝试期间的书写代码,/*void CReturnDlg:OnContinue() / TODO: Add your control notification handler code hereReturnDataSet.m_strFilter = READER_ID= + m_ReaderName;ReturnDataSet.m_strFilter = ReturnDataSet.m_strFilter + ;ReturnDataSet.Reque

33、ry();ReturnDataSet.Delete();CString m_strUserID;m_strUserID = theApp.m_strUserName ;COleDateTime m_CurrentTime=COleDateTime:GetCurrentTime();CString strTime;int y=m_CurrentTime.GetYear();int m=m_CurrentTime.GetMonth();int d=m_CurrentTime.GetDay();strTime.Format(%d-%d-%d,y,m,d);mSqlStr = INSERT INTO

34、BORROW (READER_ID, BOOK_ID,BORROW_DATE, B_CLERK_ID) VALUES(;mSqlStr = mSqlStr + m_strReaderID;mSqlStr = mSqlStr + ,;mSqlStr = mSqlStr + m_strBookID;mSqlStr = mSqlStr + ,;mSqlStr = mSqlStr + strTime;mSqlStr = mSqlStr +,;mSqlStr = mSqlStr + m_strUserID;mSqlStr = mSqlStr + );CDatabase mDB;/用于插入一条记录借书信息

35、if (!mDB.Open(_T(Library)*/代码中重新建立了与history和borrow表的连接,拟首先删除borrow表中的记录,然后重新插入新的借阅记录,最后在history中加入相关信息,鉴于一直编译有错,只得放弃功能4.1 (4)功能详细设计及说明图书管理功能方面是面向读者和管理员两方面的读者方面当面向读者时:主要要实现的是不可以增加和修改图书的相关信息当面向管理员时:可以进行增加修改图书的功能,同时可以设定图书是否可借阅然后这里比较繁琐的一个功能是查询功能,这一点的设计是和朱文瑞的关于读者信息的查询功能一个思路,这里将详细讲到。4.2 (4)主要功能的实现方法(核心代码、

36、页面截图、页面功能简单介绍)这里首先用到方法来将数据库中的图书信息输入到编辑框中,具体的实现重点在之后在中获取来设定按钮的情况,关于LoginType是定义在的头文件中的,用这个变量在中通过获取登录信息,有关登录信息的设计,在后面通用设计处有详细讲到if(LoginType=0)if(!m_rsDataSet.IsOpen()pWnd = GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_PRIOR);

37、pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEW);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_ENQUERY);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd =

38、 GetDlgItem(IDC_SAVE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(FALSE);return TRUE;if (m_rsDataSet.IsBOF()pWnd = GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);elsepWnd = GetDlgItem(IDC_FIRST);pWnd-EnableWindow(

39、TRUE);pWnd = GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(TRUE);if (m_rsDataSet.IsEOF()pWnd = GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);elsepWnd = GetDlgItem(IDC_NEXT);pWnd-EnableWindow(TRUE);pWnd = GetDlgItem(IDC_LAST);pWnd-EnableWindow(TRUE);if (

40、m_rsDataSet.IsBOF() & m_rsDataSet.IsEOF()pWnd = GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);elsepWnd = GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_NEW);pWnd-EnableW

41、indow(FALSE);pWnd = GetDlgItem(IDC_ENQUERY);pWnd-EnableWindow(TRUE);pWnd = GetDlgItem(IDC_SAVE);pWnd-EnableWindow(FALSE);pWnd = GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(FALSE);return TRUE;此处代码的实现如图的屏蔽掉增加修改删除的功能。最后运用在显示编辑框中的内容.这里由于已经对普通用户屏蔽了修改功能即没有权限之分,就不多谈了。功能中较难实现的一点是功能也就是查询功能,这一点上运用了数据库的查询语句,由

42、于有两个编辑框分别是书的ID和书的名称,所以有3种情况分别是单有ID的输入单有书名的输入和具有id和书名双重输入的情况要实现,这里实现的方法是void CBookDlg:OnEnquery() / TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_strBookIDQ.IsEmpty() & m_strBookNameQ.IsEmpty()m_rsDataSet.m_strFilter = ;m_rsDataSet.Requery();DisplayRecord();SetButtonState();

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号