收藏 分销(赏)

C--课程设计-图书管理系0.doc

上传人:可**** 文档编号:2934354 上传时间:2024-06-11 格式:DOC 页数:81 大小:1.66MB
下载 相关 举报
C--课程设计-图书管理系0.doc_第1页
第1页 / 共81页
C--课程设计-图书管理系0.doc_第2页
第2页 / 共81页
C--课程设计-图书管理系0.doc_第3页
第3页 / 共81页
C--课程设计-图书管理系0.doc_第4页
第4页 / 共81页
C--课程设计-图书管理系0.doc_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目: 图书管理系统 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹 2015 年 1 月 10 日一、系统需求分析1.1系统介绍 图书馆管理系统对加强图书馆管理有着极其重要的作用。随着图书的日益增多,传统的手工图书馆管理不仅工作量大,而且容易出现问题。图书馆管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理管理、图书借阅和归还管理,图书的查询和修改等。 经过对我校详细调查,并多次与负责图书管理的老师进行研讨后,加深了对 现 行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如

2、下: v 新的图书购进后,分门别类地进行归并并汇总,加以编号。v 新书编号后,上到书架以备学生借阅。v 如某学生需要借阅图书,则在其本人的借阅登记表上进行登记,记录 相关借阅信息与借阅日期,同时相应图书应减少所借出的数目,尽管该书只剩下零本,也能查询到该书的信息。v 学生借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。 根据以上调查分析,可以给出其现行业务流程图如图所1.2系统面向的用户群体 本图书管理系统面向的用户群体为本校的师生全体。系统能帮助图书馆管理工作者进行大量业务处理工作用计算机进行简单操作以实现全面现代化管理。且该系统对用户来说操作简单,并且容易学习和掌握。

3、1.3 系统的功能性需求1.3.1 系统功能需求分析 图书馆管理系统对加强图书馆管理有着极其重要的作用。随着图书的日益增多,传统的手工图书馆管理不仅工作量大,而且容易出现问题。图书馆管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理管理、图书借阅和归还管理,图书的查询和修改等。 由于系统主要是为方便管理定制开发的,因此针对图书馆管理的实际工作而言,经过了反复地论证,最终确定了图书馆管理系统的设计方案,图书馆管理系统的主要功能为: 1图书管理:包括图书类别管理和图书信息管理两部分。其中,图书类别管理包括添加图书类别、修改图书类别等;图书信息管理包括图书信息的添加、图书信息的修

4、改,图书信息的查询、图书信息的删除等。 2读者管理:包括读者类别管理和读者信息管理两部分。其中,读者类别管理包括添加读者类别、修改读者类别等;读者信息管理包括添加读者信息、修改读者信息、读者信息、查询读者信息等。 3借阅管理:包括借书信息管理和还书信息管理两部分。其中,借书信息管理包括借书信息的添加、借书信息的修改、借书信息的查询等;还书信息管理部分包括还书的添加、还书信息的修改、还书信息的查询等。 4.系统管理:包括修改系统用户密码、增加新用户以及退出系统等。1.3.2系统的功能模块划分 (1)系统管理模块:设置系统管理人员。系统初始设置一个用户名和密码,操作人员可利用这个用户名和密码登录后

5、,设置其他的管理员用户名。(2) 图书管理模块 a) 图书信息编辑子模块 图书信息编辑子模块主要完成对图书馆内的所有图书信息进行图书分类,添加图书,修改图书信息,删除图书信息等。当图书馆购进新书后需要对数据库中的图书表进行维护添加。当图书馆内的现有图书数量等发生了变化时需要对现有图书数据库中的信息进行修改和删除一些记录。对图书数据库进行维护的字段包括图书编号、书名、作者、类别、出版社、价格、总库存量、剩余量、入库日期等。b)图书基本信息的查询子模块图书馆中的书数以万计,想了解图书藏在哪里,馆内现在书的状态包括库存量和剩余量,图书的作者,出版社等信息是我们在借书时经常想知道的,传统的手工方法显然

6、无法快速准确的获得这些信息,而通过计算机管理优势就十分明显,可以通过图书编号,书名,作者,出版社,类别等快速获得我们想了解的信息。比如,通过图书编号就可以知道该书大致藏在哪里。在不知道图书编号的时候可以通过书名或者作者,或者出版社,类别等快速查询出我们需要的图书相关的编号等信息。系统的查询包括单项查询和多项查询,查询的字段包括:图书编号、书名、作者、出版社、类别等。(3) 读者管理模块a)读者信息编辑子模块 读者信息编辑子模块主要完成对在图书馆内的所有读者信息进行添加读者信息,修改读者信息,删除读者信息等。当新的读者时需要对数据库中的读者表进行维护添加。当现有读者基本信息比如联系方式等发生了变

7、化时需要对现有读者数据库中的信息进行修改和删除一些记录。对读者数据库进行维护的字段包括读者编号、性别、姓名、类别、身份证号、办证日期、证有效期、工作单位、E-mail、联系电话等。b)读者基本信息的查询子模块 由于图书借出后有的图书经常超期,及时通知读者了解读者信息。读者借书时是严格对读者和借书的图书作了登记的,所以当出现借出的书超期没有归还时可以通过超期的借书证号来进入本子模块就可以快速查询读者的联系方式等信息。系统的查询包括单项查询和多项查询,查询的字段包括:编号、姓名、类别等。(4) 图书借出信息模块 a)图书借出信息编辑子模块 图书被读者借出时系统都对图书编辑记录书的信息,便于对整个馆

8、内的图书有一个详尽的了解和信息的备份以及以后的该书整个外借的情况。记录借书的信息包括图书编号,借书证号,借出日期,应归还日期,借出状态。其中除图书编号和借书证号外其它的信息不需管理员输入,计算机自动完成,借书日期记录当前日期,应归还的日期记录在当前日期情况下加上设定的最多外借时间比如30天后的日期。当然该子模块也可以完成对这些信息的修改和删除,来达到可以对数据库信息进行有效性的维护。比如输入的借书证号粗心输入错误就可以来通过该模块来修改该记录信息。 b)图书借出信息查询模块 由于图书借出后有的图书经常超期以及需要了解图书借出的其它信息。所以就需要对图书的借书信息进行查询,系统的查询包括单项查询

9、和多项查询,查询的字段包括:读者编号、读者姓名、图书编号、图书类别等。(5)图书归还管理信息模块: 图书归还时,管理员需要了解书是否出现借书时间超期。想了解这些信息首先需要对图书借出数据库进行查找定位图书编号的记录来获得图书的相关借书信息。获得这些信息后,就可以将信息添加到图书归还管理数据库表中。当出现超期图书管理员还需根据规定收起对学生的罚金。添加的信息包括:归还的图书编号、读者的编号、罚款金额、罚款日期、管理员姓名等。二、 总体设计 硬件环境:个人PC软件环境: 1) Windows XP或Windows7及以上的操作系统; 2)首先本系统采用的是C/S开发模式。因此, Microsoft

10、 Visual C+6.0,这是本系统所采用的编译器,是一款很实用的C+编译软件,图书馆管理系统数据库采用的是SQLServer2008数据库,这是一款微软提供的功能比较全的数据库,visual c+连接SQLServer2008数据库之后便可以实现数据的交互。C+开发方式为c+中MFC连接SQLServer2008方式,所以对用户的友好度那是相当的高。三、详细设计3.1用户界面需求设计 图书馆管理系统提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的录入、查询等功能操作提供方便。快捷按钮的创建也是非常需要的,以方便用户操作。该系统的界面有:(1)用户登陆界面 (2)学生

11、界面(3)注册介面(4)管理员界面(5)图书借阅界面等。3.2数据需求设计 图书信息(book_info):图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价+入库时间+图书状态 读者信息(reader_info):用户Id+姓名+性别+读者类别+院系班级+已借书目信息+借书数 已借书目信息(borrowed_book):图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价3.3 系统的性能需求设计 为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:1 系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过

12、程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足对信息处理的需求。2系统的开放性和系统的可扩充性 图书馆管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3系统的易用性和易维护性 图书馆管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,

13、易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。4系统的标准性 系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。5系统的先进性 目前计算系统的技术发展相当快,做为图书馆管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。6系统的响应速

14、度 图书馆管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。3.4安全保密要求设计 用户进入自己系统要进行注册和登录,并有用户名和密码。对用户的个人信息进行保护,其中用户可以自行修改自己的密码等。用户只能自己修改密码或者其他信息,其他人则不能修改。 安全性要求:系统应设置访问用户的标识以鉴别是否是合法用户, 并要求合法用户设置其密码,保证用户身份不被盗用;系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;系统应对不同用户设置不同的权限,区

15、分不同的用户,如区分普通用户(学生),管理员。完整性要求:各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。3.5资源分析设计 本系统的开发是学生的课程设计作业,所用到的资源较为简单,可以再自己的个人电脑上完成开发,用到的开发软件是Visual C+6.0 ,用到的数据库是SQLSserver2008,基于这些资源本系统的开发可以顺利完成。3.6结构化分析与设计3.6.1.结构化分析方法 结构化方法总的指导思想是自顶向下,逐步求精,其基本原则是抽象与分解。结构化方法是分析,设计到实现都使用结构化思想的软件开发方法,实际上由三部分组成:结构

16、化分析,结构化设计和结构化程序设计。任何程序都由程序结构,选择结构和循环结构三种基本结构组成。结构化方法具有以下特点:(1) 开发方法使用最早,使用时间最长。(2)应用最广泛,特别适用于自动控制及程序控制等数据处理方面。(3)相应的支持工具多,发展较为成熟,快速,自然和方便。结构化分析步骤:(1) 构建原系统物理模型。(2)抽象原系统逻辑模型。(3)建立新系统逻辑模型。(4)进一步补充和优化。v 优缺点:优点是简单实用成熟,适合于瀑布模型,易于开发者掌握,成功率较高,仅次于面向对象的方法。缺点是不太适应规模大的复杂项目,难以解决软件重用问题,较难适应需求变化,难以彻底解决维护问题。3.6.2相

17、关的图的设计图3.6.2-1 图书管理系统顶层图图3.6.2-2 图书管理系统0层图图3.6.2-3 图书管理系统借阅功能设计图3.3 数据字典 数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。数据项名图书库别名Book描述记录所有图书的基本信息定义图书信息=图书编号+图书名称+ISBN号+类别+作者+出版社+出版时间+价格+图书总数+库存量+借出量+入库时间输入数据图书编号、图书名称输出数据图书信息名称借书登记表别

18、名Borrow描述记录所有借出图书的借阅情况定义借书信息=读者编号+读者类别+图书编号+图书类别+图书名称+作者+出版社+借出日期+应还日期输入数据读者编号、图书编号输出数据借书信息名称归还图书登记表别名Return描述记录所有已归还图书的归还情况定义归还信息=读者编号+读者类别+图书编号+图书类别+图书名称+作者+出版社+借出日期+应还日期+实还日期+罚款输入数据读者编号、图书编号输出数据归还信息名称管理员信息表别名Administrator描述记录管理员信息定义管理员信息=管理员ID+管理员名称+管理员密码输入数据管理员ID输出数据管理员信息名称读者信息表别名Reader描述记录所有读者的

19、基本情况 定义读者信息=读者编号+姓名+性别+类别+联系方式输入数据读者编号输出数据读者信息3.4结构图设计 结构化设计方法中用结构图(structure chart)来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。 本图书管理系统的模块结构图如下图所示: 图 3.4.1 图书管理系统模块结构图 图3.4.2图书管理系统使用流程图3.5 E-R图设计1. 读者E-R图3.5.1图读者E-R图2. 图书库E-R图3.5.2图书库E-R图3. 管理员E-R图3.5.3管理员E-R图4. 总体E-R图图3.5.4总体E-R图四、 测试4.1 测试范围与主要内容测试范

20、围主要内容概要说明系统登录验证验证用户身份以及确定用户权限,测试数据以及代码的正确性功能性测试添加图书信息功能测试测试添加图书进入数据库的准确性功能性测试查询图书信息功能测试测试用户对图书查找的准确性功能性测试修改图书信息功能测试 测试管理员对图书信息修改的准确性 功能性测试添加读者信息功能测试 测试管理员添加读者入库的准确性功能性测试查询读者信息功能测试 测试管理员对读者查找的准确性功能性测试修改读者信息功能测试 测试管理员对读者信息修改的准确性功能性测试借阅图书功能测试 测试图书借阅登记的准确性功能性测试借阅信息查询功能测试 测试图书借阅信息查询的准确性功能性测试归还图书功能测试 测试图书

21、归还登记的准确性功能性测试归还信息查询功能测试 测试图书归还信息查询的准确性功能性测试4.2测试用例4.2.1用例一项目图书管理系统功能模块名管理员登录模块功能特性管理员身份验证测试目的验证是否输入合法的信息,允许合法登录,阻止非法登录测试数据用户名=admin 密码=1 身份=管理员操作步骤操作描述数据期望结果实际结果测试状态1输入用户名和密码,并选择登录的身份输入用户名和密码用户名=admin 密码=1 选择管理员登录。显示进入后的页面同期望结果正常2输入用户名和密码,并选择登录的身份输入用户名和密码用户名=admin1 密码=1 选择管理员登录。显示警告信息“用户名输入有误,请重新输入!

22、”同期望结果正常3输入用户名和密码,并选择登录的身份输入用户名和密码用户名=admin1 密码=123 选择管理员登录。显示警告信息“密码输入有误,请重新输入!”同期望结果正常4.2.2、用例二项目图书管理系统功能模块名用户查询图书信息模块功能特性用户可以查询所需图书的全部信息测试目的验证是否输入正确的图书信息,如果正确,则显示图书情况;如果不正确,则显示错误信息测试数据书名=B22304561 书名=软件工程 类别=计算机 作者=钱乐秋 出版社=清华大学出版社操作步骤操作描述数据期望结果实际结果测试状态1输入书号,按“查询”按钮书号=B22304561显示图书信息同期望结果正常2输入书号,按

23、“查询”按钮书号=Q22304561查询结果为空同期望结果正常3输入书名,按“查询”按钮书名=软件工程显示图书信息同期望结果正常4输入书名,按“查询”按钮书名=数学查询结果为空同期望结果正常5输入类别,按“查询”按钮类别=计算机显示图书信息同期望结果正常6输入类别,按“查询”按钮类别=外语查询结果为空同期望结果正常7输入作者,按“查询”按钮作者=钱乐秋显示图书信息同期望结果正常8输入作者,按“查询”按钮作者=张三查询结果为空同期望结果正常9输入出版社,按“查询”按钮出版社=清华大学出版社显示图书信息同期望结果正常10输入出版社,按“查询”按钮出版社=工业出版社机械查询结果为空同期望结果正常4.

24、2.3、用例三项目图书管理系统功能模块名添加读者信息模块功能特性管理员可以添加读者信息测试目的验证是否输入正确的读者信息,如果正确,则添加读者信息;如果不正确,则显示错误信息测试数据读者编号=123 姓名=a 性别=女 类别=学生 联系方式=18883398888(已有信息)读者编号=124 姓名=b 性别=男 类别=老师 联系方式=18883398999(未有信息)操作步骤操作描述数据期望结果实际结果测试状态1输入新的读者信息读者编号=123 姓名=a 性别=女 类别=学生 联系方式-18883398888 显示警告信息“读者编号已存在,添加失败!”同期望结果正常2输入新的读者信息读者编号=

25、124 姓名=b 性别=男 类别=教职工 联系方式-18883398999显示信息“成功添加一条记录!”同期望结果正常4.2.3、用例四项目图书管理系统功能模块名修改读者信息模块功能特性管理员可以修改读者信息测试目的验证读者信息是否有效,如果有效,则更新读者信息;如果不正确,则显示错误信息测试数据读者编号=123 姓名=a 性别=女 类别=学生 联系方式=18883398888 操作步骤操作描述数据期望结果实际结果测试状态1输入读者编号,按“查询”按钮读者编号=124显示警告信息“读者编号有误或不存在!”同期望结果正常2输入读者编号,按“查询”按钮读者编号=123 显示读者信息同期望结果正常3

26、查询操作之后,修改姓名,按“确认”按钮姓名=空显示警告信息“请输入完整的读者信息!”同期望结果正常4查询操作之后,修改姓名,按“确认”按钮姓名=c更新读者信息成功同期望结果正常4.2.4、用例五功能特性读者借书测试目的验证是否输入有效的读者编号和图书编号,如果有效且图书余数不为0,则办理借书;如果无效,则显示错误信息测试数据读者编号=123 图书编号=B21338745 操作步骤操作描述数据期望结果实际结果测试状态1输入图书编号与读者编号,按“确定”按钮图书编号=Q12345678 读者编号=123显示警告信息“图书编号有误或不存在!”同期望结果正常2输入图书编号与读者编号,按“确定”按钮图书

27、编号=B21338745 读者编号124显示警告信息“读者编号有误或不存在!”同期望结果正常3输入图书编号与读者编号,按“确定”按钮图书编号=B21338745 读者编号=123显示信息正确同期望结果正常4输入图书编号与读者编号,按“确定”按钮图书编号=Q12345678 读者编号=124显示警告信息“读者编号与图书编号有误或不存在!”同期望结果正常5读者编号与图书编号都存在时按“借阅”按钮,若图书余数!=0图书编号=B21338745 读者编号=123显示借阅成功同期望结果正常6读者编号与图书编号都存在时按“借阅”按钮,若图书余量=0图书编号=B21338745 读者编号=123显示警告信息

28、“该图书已被借完”同期望结果正常4.3、运行截图1. 登录界面2首页3.用户管理界面4. 图书类型设置界面5. 读者类型设置6. 借书界面7. 还书查询8. 新书登记9. 图书信息查询五、 主要源代码:/ BookInfoSet.cpp : implementation file/#include stdafx.h#include Library.h#include BookInfoSet.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CBookInfoSetI

29、MPLEMENT_DYNAMIC(CBookInfoSet, CRecordset)CBookInfoSet:CBookInfoSet(CDatabase* pdb): CRecordset(pdb)/AFX_FIELD_INIT(CBookInfoSet)m_code = _T();m_name = _T();m_type = _T();m_press = _T();m_writer = _T();m_price = _T();m_isBorrow = FALSE;m_reader_code = _T();m_brief = _T();m_nFields = 10;/AFX_FIELD_IN

30、ITm_nDefaultType = snapshot;CString CBookInfoSet:GetDefaultConnect()return _T(ODBC;DSN=LibraryDB);CString CBookInfoSet:GetDefaultSQL()return _T(bookInfo);void CBookInfoSet:DoFieldExchange(CFieldExchange* pFX)/AFX_FIELD_MAP(CBookInfoSet)pFX-SetFieldType(CFieldExchange:outputColumn);RFX_Text(pFX, _T(c

31、ode), m_code);RFX_Text(pFX, _T(name), m_name);RFX_Text(pFX, _T(type), m_type);RFX_Text(pFX, _T(press), m_press);RFX_Text(pFX, _T(writer), m_writer);RFX_Text(pFX, _T(price), m_price);RFX_Date(pFX, _T(in_date), m_in_date);RFX_Bool(pFX, _T(isBorrow), m_isBorrow);RFX_Text(pFX, _T(reader_code), m_reader_

32、code);RFX_Text(pFX, _T(brief), m_brief);/AFX_FIELD_MAP/ CBookInfoSet diagnostics#ifdef _DEBUGvoid CBookInfoSet:AssertValid() constCRecordset:AssertValid();void CBookInfoSet:Dump(CDumpContext& dc) constCRecordset:Dump(dc);#endif /_DEBUG/ BookLostDlg.cpp : implementation file/#include stdafx.h#include

33、 Library.h#include BookLostDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CBookLostDlg dialogCBookLostDlg:CBookLostDlg(CWnd* pParent /*=NULL*/): CDialog(CBookLostDlg:IDD, pParent)/AFX_DATA_INIT(CBookLostDlg)m_strCode = _T();/AFX_DATA_INITvoid CBookLostD

34、lg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CBookLostDlg)DDX_Control(pDX, IDC_LIST1, m_ctrList);DDX_Text(pDX, IDC_EDIT_BOOK_CODE, m_strCode);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CBookLostDlg, CDialog)/AFX_MSG_MAP(CBookLostDlg)ON_BN_CLICKED(IDC_BUTTON_LOST, OnButtonLost)O

35、N_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll)ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CBookLostDlg message handlersBOOL CBookLostDlg:OnInitDialog() CDialog:OnInitDialog();/设置列表m_ctrList.InsertColumn(0,图书编号);m_ctrList.InsertColumn(1,图书名称);m_ctrList.InsertColumn(2,图书类别);m

36、_ctrList.InsertColumn(3,作者);m_ctrList.InsertColumn(4,出版社);m_ctrList.InsertColumn(5,图书价格);m_ctrList.InsertColumn(6,登记日期);m_ctrList.InsertColumn(7,备注说明);m_ctrList.SetColumnWidth(0,60);m_ctrList.SetColumnWidth(1,120);m_ctrList.SetColumnWidth(2,80);m_ctrList.SetColumnWidth(3,80);m_ctrList.SetColumnWidth

37、(4,80);m_ctrList.SetColumnWidth(5,80);m_ctrList.SetColumnWidth(6,80);m_ctrList.SetColumnWidth(7,80);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CBookLostDlg:

38、OnButtonLost() / TODO: Add your control notification handler code hereUpdateData();if(m_strCode.IsEmpty()AfxMessageBox(请输入待挂失的图书编号!);return;CString strSQL;strSQL.Format(select * from bookInfo where code = %s ,m_strCode);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)AfxMessageBox(打开数据库失败!);retu

39、rn ;if(m_recordset.GetRecordCount()=0)AfxMessageBox(没有找到该图书!);m_recordset.Close();return;m_recordset.Delete();m_recordset.Close();AfxMessageBox(图书挂失成功!,MB_ICONINFORMATION );m_ctrList.DeleteAllItems();m_strCode = _T();UpdateData(FALSE);void CBookLostDlg:OnButtonAll() / TODO: Add your control notifica

40、tion handler code hereCString strSQL;strSQL.Format( select * from bookInfo );RefreshData( strSQL);void CBookLostDlg:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereint i = m_ctrList.GetSelectionMark();m_strCode = m_ctrList.GetItemText(i,0);UpdateD

41、ata(FALSE);*pResult = 0;void CBookLostDlg:RefreshData(CString strSQL)m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);UpdateData(TRUE);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;int i=0;CString strTime;while(!m_recordset.IsEOF()m_ctrList.InsertItem(i,m_recordset

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服