案例十简单图书管理系统.ppt
1页 共22页,案例十 简单图书管理系统,本案例知识要点对象数组的使用文件操作函数的重载类的设计和使用,2页 共22页,一、案例需求,案例描述制作一个简易的图书管理系统,实现新书录入、图书资料查询、显示所有图书信息等功能。通过这个案例可以系统地了解类以及文件的输入输出流。案例效果图简单图书管理系统案例效果如图所示。,3页 共22页,图书管理案例效果图,4页 共22页,功能说明图书资料(书名、作者)的录入和存储。图书资料的按书名查询。显示图书库存信息。,5页 共22页,二、案例分析,根据案例需求,可以定义一个图书类,图书的基本信息有书名和作者(其实还可以添加很多其他信息,例如出版社、价格等,这里只选用最重要的两条信息为代表)。对图书的管理包括设置书名、设置作者名、查询书名等功能,这些功能需要调用图书类的成员函数实现。由于需要对图书资料进行读入和存储,在程序中需要文件的输入输出操作。先从相应的文件中读入图书资料,用户在对资料进行处理后,在退出系统时将已修改的资料重新存储到原文件中。,6页 共22页,三、案例设计,类的设计 Book类的设计如图所示。,Book类图,7页 共22页,数据成员char nameStrNum;用来存放书名。char writerStrNum;用来存放作者姓名。函数成员Book();无参构造函数,用于为书名和作者姓名设置默认值。Book(const char*Name,const char*Writer)带参构造函数,按照入口参数设置书名和作者姓名。char*get_name();用于获取书名。char*get_writer();用于获取作者姓名。void changeName(const char*newName);用于设置书名。void changeWriter(const char*newWriter);用于设置作者姓名。int cmpName(const char*Name);用于比较查询词和书名,如果相等则返回“1”。,8页 共22页,主程序设计函数的设计void showBook(Book book)用于输出一册图书的书名。void showAll(Book*book,int Num)用于输出Num册图书的书名。主函数的设计在主函数中创建了一个Book类的对象数组,对图书资料的操作都将通过该类所创建对象的函数成员完成。在主函数中通过调用两个函数showBook()和showAll()实现图书资料的显示功能。,9页 共22页,主程序流程图,10页 共22页,四、案例实现,11页 共22页,12页 共22页,13页 共22页,14页 共22页,15页 共22页,16页 共22页,17页 共22页,18页 共22页,19页 共22页,20页 共22页,21页 共22页,五、案例总结与提高,案例总结本案例只是完成了图书管理系统中的一部分基础功能,需求相对简单,采用数组和链表也可以实现。案例涉及到了对象数组及文件的操作,这些知识点并不难理解,读者需要注意的是类结构的设计。除此以外,读者还需要注意以下几点:C+是一门过程语言,无法在源程序中实现数据的存储,必须将数据存储在外部文件中,在必要时可以读入和输出。在不使用文件时要及时关闭,且文件的打开和关闭都要作异常处理。,22页 共22页,案例提高本案例只是完成了图书管理系统中的一部分基础功能,还有很多功能没有实现,可以在以下方面继续完善本案例:增加图书信息,例如出版社、价格、摘要等。提供多样化的查询和预览方式。提供删除、借还书等功能。改用链表形式制作图书管理系统也是很好的选择。用MFC结合数据库可以制作出理想而优秀的图书管理系统。,