一、实验名称
图书馆管理系统
二、实验目的
利用C++语言设计开发一个小型的图书馆管理系统模拟程序,具有如下功能:退出系统、增加图书、删除图书、借阅图书、归还图书、显示图书信息、查询图书等功能。实验中应掌握继承结构,并掌握对象、类、链表的使用和成员函数、构造函数的定义及调用,并掌握使用实验设备的技能技巧和程序的调试方法。
三、实验平台
运行环境:VC++6.0
四、问题分析
图书馆管理系统模拟程序可划分为7个模块:退出模块、增加图书模块、删除图书模块、借阅图书模块、归还图书模块、显示图书信息模块、查询图书模块。各模块之间均有着或多或少的联系,比如: 借阅图书模块、显示图书信息模块、查询图书模块都需要在进行增加图书模块后进行。理解了各模块之间的主要关系有利于程序的设计与完成,使程序的层次结构清晰,便于程序的编写、阅读和调试。以下为本次试验的项目构架图:
本次实验定义了三个类:Item类、Person类、Library类
Item类中有public函数: name、item_type、bool Register(bool函数输出值只有ture和force,用来判断是否注册)。
Person类中public函数:Name ()、Adress ()、Regist_items。
Library类中public函数:addBook()向图书馆里加书籍、deleteBook()删除无用书籍、brrowBook()借书,之前先判断书籍是否存在、returnBook()还书、getReader()查询某编号的书是谁借了、indexOfNum(string num) 根据编号得到书在数组中的下标;
private函数:vector books所有书籍、map<string, int> readers存储读者及其所借的书籍数目、currentNum库存书籍数目、brrowNum借出书籍数目。
附录:
程序源代码:
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<iomanip>
#include <list>
using namespace std;
class item
{
public:
string name;
string item_type;
bool Register;
};
//杂志类
class magazine :public item
{
string Type;
string Writer;
};
//MusicCd类
class MusicCd :public item
{
string Singer;
};
//电影类
class Movie :public item
{
string Type;
string Director;
string Actor;
};
//书籍类
class Book : public item
{
public:
Book() { borrow_flag = false; } //无参构造函数
Book(string name, string num, string auther)
:name(name), num(num), auther(auther) {
borrow_flag = false;
} //有参构造函数
void setReader(string reader, int lcn, string data); //设置读者
void setInfo(string name, string num, string auther); //设置书籍信息
string getName() {
return name;
}
string getNum() {