C--课程设计-图书管理系0.doc
《C--课程设计-图书管理系0.doc》由会员分享,可在线阅读,更多相关《C--课程设计-图书管理系0.doc(81页珍藏版)》请在咨信网上搜索。
课 程 设 计 报 告 课程名称:面向对象程序设计C++ 设计题目: 图书管理系统 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹 2015 年 1 月 10 日 一、系统需求分析 1.1系统介绍 图书馆管理系统对加强图书馆管理有着极其重要的作用。随着图书的日益增多,传统的手工图书馆管理不仅工作量大,而且容易出现问题。图书馆管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理管理、图书借阅和归还管理,图书的查询和修改等。 经过对我校详细调查,并多次与负责图书管理的老师进行研讨后,加深了对 现 行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如下: v 新的图书购进后,分门别类地进行归并并汇总,加以编号。 v 新书编号后,上到书架以备学生借阅。 v 如某学生需要借阅图书,则在其本人的借阅登记表上进行登记,记录 相关借阅信息与借阅日期,同时相应图书应减少所借出的数目,尽管该书只剩下零本,也能查询到该书的信息。 v 学生借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。 根据以上调查分析,可以给出其现行业务流程图如图所 1.2系统面向的用户群体 本图书管理系统面向的用户群体为本校的师生全体。系统能帮助图书馆管理工作者进行大量业务处理工作用计算机进行简单操作以实现全面现代化管理。且该系统对用户来说操作简单,并且容易学习和掌握。 1.3 系统的功能性需求 1.3.1 系统功能需求分析 图书馆管理系统对加强图书馆管理有着极其重要的作用。随着图书的日益增多,传统的手工图书馆管理不仅工作量大,而且容易出现问题。图书馆管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、读者信息管理管理、图书借阅和归还管理,图书的查询和修改等。 由于系统主要是为方便管理定制开发的,因此针对图书馆管理的实际工作而言,经过了反复地论证,最终确定了图书馆管理系统的设计方案,图书馆管理系统的主要功能为: 1.图书管理:包括图书类别管理和图书信息管理两部分。其中,图书类别管理包括添加图书类别、修改图书类别等;图书信息管理包括图书信息的添加、图书信息的修改,图书信息的查询、图书信息的删除等。 2.读者管理:包括读者类别管理和读者信息管理两部分。其中,读者类别管理包括添加读者类别、修改读者类别等;读者信息管理包括添加读者信息、修改读者信息、读者信息、查询读者信息等。 3.借阅管理:包括借书信息管理和还书信息管理两部分。其中,借书信息管理包括借书信息的添加、借书信息的修改、借书信息的查询等;还书信息管理部分包括还书的添加、还书信息的修改、还书信息的查询等。 4. 系统管理:包括修改系统用户密码、增加新用户以及退出系统等。 1.3.2系统的功能模块划分 (1)系统管理模块: 设置系统管理人员。系统初始设置一个用户名和密码,操作人员可利用这个用户名和密码登录后,设置其他的管理员用户名。 (2) 图书管理模块 a) 图书信息编辑子模块 图书信息编辑子模块主要完成对图书馆内的所有图书信息进行图书分类,添加图书,修改图书信息,删除图书信息等。当图书馆购进新书后需要对数据库中的图书表进行维护添加。当图书馆内的现有图书数量等发生了变化时需要对现有图书数据库中的信息进行修改和删除一些记录。对图书数据库进行维护的字段包括图书编号、书名、作者、类别、出版社、价格、总库存量、剩余量、入库日期等。 b)图书基本信息的查询子模块 图书馆中的书数以万计,想了解图书藏在哪里,馆内现在书的状态包括库存量和剩余量,图书的作者,出版社等信息是我们在借书时经常想知道的,传统的手工方法显然无法快速准确的获得这些信息,而通过计算机管理优势就十分明显,可以通过图书编号,书名,作者,出版社,类别等快速获得我们想了解的信息。比如,通过图书编号就可以知道该书大致藏在哪里。在不知道图书编号的时候可以通过书名或者作者,或者出版社,类别等快速查询出我们需要的图书相关的编号等信息。系统的查询包括单项查询和多项查询,查询的字段包括:图书编号、书名、作者、出版社、类别等。 (3) 读者管理模块 a)读者信息编辑子模块 读者信息编辑子模块主要完成对在图书馆内的所有读者信息进行添加读者信息,修改读者信息,删除读者信息等。当新的读者时需要对数据库中的读者表进行维护添加。当现有读者基本信息比如联系方式等发生了变化时需要对现有读者数据库中的信息进行修改和删除一些记录。对读者数据库进行维护的字段包括读者编号、性别、姓名、类别、身份证号、办证日期、证有效期、工作单位、E-mail、联系电话等。 b)读者基本信息的查询子模块 由于图书借出后有的图书经常超期,及时通知读者了解读者信息。读者借书时是严格对读者和借书的图书作了登记的,所以当出现借出的书超期没有归还时可以通过超期的借书证号来进入本子模块就可以快速查询读者的联系方式等信息。系统的查询包括单项查询和多项查询,查询的字段包括:编号、姓名、类别等。 (4) 图书借出信息模块 a)图书借出信息编辑子模块 图书被读者借出时系统都对图书编辑记录书的信息,便于对整个馆内的图书有一个详尽的了解和信息的备份以及以后的该书整个外借的情况。记录借书的信息包括图书编号,借书证号,借出日期,应归还日期,借出状态。其中除图书编号和借书证号外其它的信息不需管理员输入,计算机自动完成,借书日期记录当前日期,应归还的日期记录在当前日期情况下加上设定的最多外借时间比如30天后的日期。当然该子模块也可以完成对这些信息的修改和删除,来达到可以对数据库信息进行有效性的维护。比如输入的借书证号粗心输入错误就可以来通过该模块来修改该记录信息。 b)图书借出信息查询模块 由于图书借出后有的图书经常超期以及需要了解图书借出的其它信息。所以就需要对图书的借书信息进行查询,系统的查询包括单项查询和多项查询,查询的字段包括:读者编号、读者姓名、图书编号、图书类别等。 (5)图书归还管理信息模块: 图书归还时,管理员需要了解书是否出现借书时间超期。想了解这些信息首先需要对图书借出数据库进行查找定位图书编号的记录来获得图书的相关借书信息。获得这些信息后,就可以将信息添加到图书归还管理数据库表中。当出现超期图书管理员还需根据规定收起对学生的罚金。添加的信息包括:归还的图书编号、读者的编号、罚款金额、罚款日期、管理员姓名等。 二、 总体设计 硬件环境:个人PC 软件环境: 1) Windows XP或Windows7及以上的操作系统; 2)首先本系统采用的是C/S开发模式。因此, Microsoft Visual C++6.0,这是本系统所采用的编译器,是一款很实用的C++编译软件,图书馆管理系统数据库采用的是SQLServer2008数据库,这是一款微软提供的功能比较全的数据库,visual c++连接SQLServer2008数据库之后便可以实现数据的交互。C++开发方式为c++中MFC连接SQLServer2008方式,所以对用户的友好度那是相当的高。 三、详细设计 3.1用户界面需求设计 图书馆管理系统提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的录入、查询等功能操作提供方便。快捷按钮的创建也是非常需要的,以方便用户操作。该系统的界面有:(1)用户登陆界面 (2)学生界面(3)注册介面(4)管理员界面(5)图书借阅界面等。 3.2数据需求设计 图书信息(book_info):图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价+入库时间+图书状态 读者信息(reader_info):用户Id+姓名+性别+读者类别+院系班级+已借书目信息+借书数 已借书目信息(borrowed_book):图书编号+书名+书号+图书类别+作者+出版社+出版时间+单价 3.3 系统的性能需求设计 为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求: 1. 系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足对信息处理的需求。 2.系统的开放性和系统的可扩充性 图书馆管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3.系统的易用性和易维护性 图书馆管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 4.系统的标准性 系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。 5.系统的先进性 目前计算系统的技术发展相当快,做为图书馆管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。 6.系统的响应速度 图书馆管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。 3.4安全保密要求设计 用户进入自己系统要进行注册和登录,并有用户名和密码。对用 户的个人信息进行保护,其中用户可以自行修改自己的密码等。用户只能自己修改密码或者其他信息,其他人则不能修改。 安全性要求:系统应设置访问用户的标识以鉴别是否是合法用户, 并要求合法用户设置其密码,保证用户身份不被盗用;系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。 完整性要求:各种信息记录的完整性,信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性。 3.5资源分析设计 本系统的开发是学生的课程设计作业,所用到的资源较为简单,可以再自己的个人电脑上完成开发,用到的开发软件是Visual C++6.0 ,用到的数据库是SQLSserver2008,基于这些资源本系统的开发可以顺利完成。 3.6结构化分析与设计 3.6.1.结构化分析方法 结构化方法总的指导思想是自顶向下,逐步求精,其基本原则是抽象与分解。结构化方法是分析,设计到实现都使用结构化思想的软件开发方法,实际上由三部分组成:结构化分析,结构化设计和结构化程序设计。任何程序都由程序结构,选择结构和循环结构三种基本结构组成。结构化方法具有以下特点: (1) 开发方法使用最早,使用时间最长。 (2)应用最广泛,特别适用于自动控制及程序控制等数据处理方面。 (3)相应的支持工具多,发展较为成熟,快速,自然和方便。 结构化分析步骤: (1) 构建原系统物理模型。 (2)抽象原系统逻辑模型。 (3)建立新系统逻辑模型。 (4)进一步补充和优化。 v 优缺点:优点是简单实用成熟,适合于瀑布模型,易于开发者掌握,成功率较高,仅次于面向对象的方法。缺点是不太适应规模大的复杂项目,难以解决软件重用问题,较难适应需求变化,难以彻底解决维护问题。 3.6.2相关的图的设计 图3.6.2-1 图书管理系统顶层图 图3.6.2-2 图书管理系统0层图 图3.6.2-3 图书管理系统借阅功能设计图 3.3 数据字典 数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。 数据项名 图书库 别名 Book 描述 记录所有图书的基本信息 定义 图书信息=图书编号+图书名称+ISBN号+类别+作者+出版社 +出版时间+价格+图书总数+库存量+借出量+入库时间 输入数据 图书编号、图书名称 输出数据 图书信息 名称 借书登记表 别名 Borrow 描述 记录所有借出图书的借阅情况 定义 借书信息=读者编号+读者类别+图书编号+图书类别+图书名称+作者 +出版社+借出日期+应还日期 输入数据 读者编号、图书编号 输出数据 借书信息 名称 归还图书登记表 别名 Return 描述 记录所有已归还图书的归还情况 定义 归还信息=读者编号+读者类别+图书编号+图书类别+图书名称+作者+出版社+借出日期+应还日期+实还日期+罚款 输入数据 读者编号、图书编号 输出数据 归还信息 名称 管理员信息表 别名 Administrator 描述 记录管理员信息 定义 管理员信息=管理员ID+管理员名称+管理员密码 输入数据 管理员ID 输出数据 管理员信息 名称 读者信息表 别名 Reader 描述 记录所有读者的基本情况 定义 读者信息=读者编号+姓名+性别+类别+联系方式 输入数据 读者编号 输出数据 读者信息 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 测试范围与主要内容 测试范围 主要内容 概要说明 系统登录验证 验证用户身份以及确定用户权限,测试数据以及代码的正确性 功能性测试 添加图书信息功能测试 测试添加图书进入数据库的准确性 功能性测试 查询图书信息功能测试 测试用户对图书查找的准确性 功能性测试 修改图书信息功能测试 测试管理员对图书信息修改的准确性 功能性测试 添加读者信息功能测试 测试管理员添加读者入库的准确性 功能性测试 查询读者信息功能测试 测试管理员对读者查找的准确性 功能性测试 修改读者信息功能测试 测试管理员对读者信息修改的准确性 功能性测试 借阅图书功能测试 测试图书借阅登记的准确性 功能性测试 借阅信息查询功能测试 测试图书借阅信息查询的准确性 功能性测试 归还图书功能测试 测试图书归还登记的准确性 功能性测试 归还信息查询功能测试 测试图书归还信息查询的准确性 功能性测试 4.2测试用例 4.2.1用例一 项目 图书管理系统 功能模块名 管理员登录模块 功能特性 管理员身份验证 测试目的 验证是否输入合法的信息,允许合法登录,阻止非法登录 测试数据 用户名=admin 密码=1 身份=管理员 操作步骤 操作描述 数据 期望结果 实际结果 测试状态 1 输入用户名和密码,并选择登录的身份 输入用户名和密码用户名=admin 密码=1 选择管理员登录。 显示进入后的页面 同期望结果 正常 2 输入用户名和密码,并选择登录的身份 输入用户名和密码用户名=admin1 密码=1 选择管理员登录。 显示警告信息“用户名输入有误,请重新输入!” 同期望结果 正常 3 输入用户名和密码,并选择登录的身份 输入用户名和密码用户名=admin1 密码=123 选择管理员登录。 显示警告信息“密码输入有误,请重新输入!” 同期望结果 正常 4.2.2、用例二 项目 图书管理系统 功能模块名 用户查询图书信息模块 功能特性 用户可以查询所需图书的全部信息 测试目的 验证是否输入正确的图书信息,如果正确,则显示图书情况;如果不正确,则显示错误信息 测试数据 书名=B22304561 书名=软件工程 类别=计算机 作者=钱乐秋 出版社=清华大学出版社 操作步骤 操作描述 数据 期望结果 实际结果 测试状态 1 输入书号,按“查询”按钮 书号=B22304561 显示图书信息 同期望结果 正常 2 输入书号,按“查询”按钮 书号=Q22304561 查询结果为空 同期望结果 正常 3 输入书名,按“查询”按钮 书名=软件工程 显示图书信息 同期望结果 正常 4 输入书名,按“查询”按钮 书名=数学 查询结果为空 同期望结果 正常 5 输入类别,按“查询”按钮 类别=计算机 显示图书信息 同期望结果 正常 6 输入类别,按“查询”按钮 类别=外语 查询结果为空 同期望结果 正常 7 输入作者,按“查询”按钮 作者=钱乐秋 显示图书信息 同期望结果 正常 8 输入作者,按“查询”按钮 作者=张三 查询结果为空 同期望结果 正常 9 输入出版社,按“查询”按钮 出版社=清华大学出版社 显示图书信息 同期望结果 正常 10 输入出版社,按“查询”按钮 出版社=工业出版社机械 查询结果为空 同期望结果 正常 4.2.3、用例三 项目 图书管理系统 功能模块名 添加读者信息模块 功能特性 管理员可以添加读者信息 测试目的 验证是否输入正确的读者信息,如果正确,则添加读者信息;如果不正确,则显示错误信息 测试数据 读者编号=123 姓名=a 性别=女 类别=学生 联系方式=18883398888(已有信息) 读者编号=124 姓名=b 性别=男 类别=老师 联系方式=18883398999(未有信息) 操作步骤 操作描述 数据 期望结果 实际结果 测试状态 1 输入新的读者信息 读者编号=123 姓名=a 性别=女 类别=学生 联系方式-18883398888 显示警告信息“读者编号已存在,添加失败!” 同期望结果 正常 2 输入新的读者信息 读者编号=124 姓名=b 性别=男 类别=教职工 联系方式-18883398999 显示信息“成功添加一条记录!” 同期望结果 正常 4.2.3、用例四 项目 图书管理系统 功能模块名 修改读者信息模块 功能特性 管理员可以修改读者信息 测试目的 验证读者信息是否有效,如果有效,则更新读者信息;如果不正确,则显示错误信息 测试数据 读者编号=123 姓名=a 性别=女 类别=学生 联系方式=18883398888 操作步骤 操作描述 数据 期望结果 实际结果 测试状态 1 输入读者编号,按“查询”按钮 读者编号=124 显示警告信息“读者编号有误或不存在!” 同期望结果 正常 2 输入读者编号,按“查询”按钮 读者编号=123 显示读者信息 同期望结果 正常 3 查询操作之后,修改姓名,按“确认”按钮 姓名=空 显示警告信息“请输入完整的读者信息!” 同期望结果 正常 4 查询操作之后,修改姓名,按“确认”按钮 姓名=c 更新读者信息成功 同期望结果 正常 4.2.4、用例五 功能特性 读者借书 测试目的 验证是否输入有效的读者编号和图书编号,如果有效且图书余数不为0,则办理借书;如果无效,则显示错误信息 测试数据 读者编号=123 图书编号=B21338745 操作步骤 操作描述 数据 期望结果 实际结果 测试状态 1 输入图书编号与读者编号,按“确定”按钮 图书编号=Q12345678 读者编号=123 显示警告信息“图书编号有误或不存在!” 同期望结果 正常 2 输入图书编号与读者编号,按“确定”按钮 图书编号=B21338745 读者编号124 显示警告信息“读者编号有误或不存在!” 同期望结果 正常 3 输入图书编号与读者编号,按“确定”按钮 图书编号=B21338745 读者编号=123 显示信息正确 同期望结果 正常 4 输入图书编号与读者编号,按“确定”按钮 图书编号=Q12345678 读者编号=124 显示警告信息“读者编号与图书编号有误或不存在!” 同期望结果 正常 5 读者编号与图书编号都存在时按“借阅”按钮,若图书余数!=0 图书编号=B21338745 读者编号=123 显示借阅成功 同期望结果 正常 6 读者编号与图书编号都存在时按“借阅”按钮,若图书余量=0 图书编号=B21338745 读者编号=123 显示警告信息“该图书已被借完” 同期望结果 正常 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_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBookInfoSet IMPLEMENT_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_INIT m_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("[code]"), 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_code); RFX_Text(pFX, _T("[brief]"), m_brief); //}}AFX_FIELD_MAP } ///////////////////////////////////////////////////////////////////////////// // CBookInfoSet diagnostics #ifdef _DEBUG void CBookInfoSet::AssertValid() const { CRecordset::AssertValid(); } void CBookInfoSet::Dump(CDumpContext& dc) const { CRecordset::Dump(dc); } #endif //_DEBUG // BookLostDlg.cpp : implementation file // #include "stdafx.h" #include "Library.h" #include "BookLostDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBookLostDlg dialog CBookLostDlg::CBookLostDlg(CWnd* pParent /*=NULL*/) : CDialog(CBookLostDlg::IDD, pParent) { //{{AFX_DATA_INIT(CBookLostDlg) m_strCode = _T(""); //}}AFX_DATA_INIT } void CBookLostDlg::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_MAP } BEGIN_MESSAGE_MAP(CBookLostDlg, CDialog) //{{AFX_MSG_MAP(CBookLostDlg) ON_BN_CLICKED(IDC_BUTTON_LOST, OnButtonLost) ON_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBookLostDlg message handlers BOOL CBookLostDlg::OnInitDialog() { CDialog::OnInitDialog(); //设置列表 m_ctrList.InsertColumn(0,"图书编号"); m_ctrList.InsertColumn(1,"图书名称"); m_ctrList.InsertColumn(2,"图书类别"); m_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(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 FALSE } void CBookLostDlg::OnButtonLost() { // TODO: Add your control notification handler code here UpdateData(); 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("打开数据库失败!"); return ; } 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 notification handler code here CString strSQL; strSQL.Format( "select * from bookInfo "); RefreshData( strSQL); } void CBookLostDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here int i = m_ctrList.GetSelectionMark(); m_strCode = m_ctrList.GetItemText(i,0); UpdateData(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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 图书 管理
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文