在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++语言基础 → 图书馆管理系统(c++入门级源码)

图书馆管理系统(c++入门级源码)

C/C++语言基础

下载此实例
  • 开发语言:C/C++
  • 实例大小:33.10M
  • 下载次数:34
  • 浏览次数:740
  • 发布时间:2019-08-14
  • 实例类别:C/C++语言基础
  • 发 布 人:圆缘
  • 文件格式:.rar
  • 所需积分:5

实例介绍

【实例简介】这是一个控制台项目

【实例截图】

from clipboard


from clipboard


from clipboard


from clipboard

from clipboard


【核心代码】

#include<iostream>
#include<iomanip>
#include<string>
#include<ctime>
#include"Library.h"
using namespace std;


void Menu1();	//系统主菜单
void Menu2();	//图书管理菜单(主菜单中的第2项)
void Menu3();	//读者管理菜单(主菜单中的第3项)
void Menu4(string no);	//登录系统菜单(主菜单中的第4项)

int main()
{
	Library myLib; //图书馆对象myLib
	int choice1, choice2, choice3, choice4;
	//choice1~4分别对应menu1~4的用户输入

	string myno = "000000"; //用户登录时输入的借书证号
	string s; //查找图书时用户输入的书名或作者名

	int result; //用于保存调用借书或还书函数返回的结果
	int reader_index, book_index;
	do
	{
		Menu1();
		cin >> choice1;
		switch (choice1)
		{
		case 1:return 0;
		case 2:
			do
			{
				Menu2();
				cin >> choice2;
				switch (choice2)
				{
				case 1:break;
				case 2:
					system("cls");
					//TODO:显示myLib的所有图书
					myLib.displayAllBooks();
					system("pause");
					break;
				case 3:
					system("cls");
					cout << "请输入你要查找的书名:";
					cin >> s;
					myLib.SearchBookbyName(s);
					//TODO:调用myLib的成员函数进行查找图书
					system("pause");
					break;
				case 4:
					system("cls");
					cout << "请输入你要查找的作者名字:";
					cin >> s;
					//TODO:调用myLib的成员函数进行查找图书
					myLib.SearchBookbyWriter(s);
					system("pause");
					break;
				case 5:
					system("cls");
					//TODO:调用myLib的成员函数进行增加图书
					myLib.addBook();
					system("pause");
					break;
				}
			} while (choice2 != 1);
			break;
		case 3:
			/*输出Menu3,输入用户选项,并使用switch语句调用相应的成员函数*/
			do
			{
				Menu3();
				cin >> choice3;
				switch (choice3)
				{
				case 1:
					break;
				case 2:
					system("cls");
					myLib.displayAllReaders();
					system("pause");
					break;
				case 3:
					system("cls");
					myLib.modifyReader();
					system("pause");
					break;
				}
			} while (choice3 != 1);
			break;

		case 4:
			cout << "请输入借书证号登录系统:";
			cin >> myno;
			//查找输入的借书证号myno在读者readers数组中的下标并返回
			reader_index = myLib.findReader(myno);
			if (reader_index != -1)
			{
				do
				{
					Menu4(myno);
					cin >> choice4;
					string myISBN;
					switch (choice4)
					{
					case 1: break;
					case 2:
						system("cls");
						//TODO:输出读者的个人信息,此处调用myLib的成员函数
						myLib.printReader(reader_index);
						system("pause");
						break;
					case 3:
						do
						{
							system("cls");
							cout << "请输入书本ISBN号(输入0000结束借书): ";
							cin >> myISBN;
							if (myISBN == "0000")
								break;
							//TODO:查找myLib中是否有这本书
							book_index = myLib.findBook(myISBN);
							if (book_index == -1)
							{
								cout << "查无此书!" << endl;
							}
							else
							{
								//1表示借书成功,0表示可借数目已达到上限,-1表示该书的馆藏数量为0
								result = myLib.readerBorrowBook(reader_index, book_index);
								if (result == 1)
									cout << "借书成功!" << endl;
								else if (result == 0)
									cout << "借书失败!您的借书量以达到上限!" << endl;
								else
									cout << "借书失败!该书馆藏书目不足。" << endl;
							}
							system("pause");
						} while (myISBN != "0000");
						system("pause");
						break;
					case 4:
						//TODO: 编写还书的代码
						do
						{
							system("cls");
							cout << "请输入书本ISBN号(输入0000结束借书): ";
							cin >> myISBN;
							if (myISBN == "0000")
								break;
							//TODO:查找myLib中是否有这本书
							book_index = myLib.findbook(reader_index, myISBN);
							if (book_index == -1)
							{
								cout << "您没有借过此书!" << endl;
							}
							else
							{
								//TODO:调用myLib成员函数读者还书并返回结果给result
								//1表示还书成功,-1表示没有借过此书
								result = myLib.readerRestoreBook(reader_index, book_index);
								if (result == 1)
									cout << "还书成功!" << endl;
							}
							system("pause");
						} while (myISBN != "0000");
						system("pause");
						break;
					}//switch
				} while (choice4 != 1);
			}//if
			else
			{
				cout << "无此用户,请检查输入借书证号是否正确。" << endl;
				system("pause");
			}

		}//switch		
	} while (choice1 != 1);
}

//系统主菜单
void Menu1()
{
	system("cls");
	cout << "-----------------------------" << endl;
	cout << "       图书馆管理系统              " << endl;
	cout << "-----------------------------" << endl;
	cout << "\t1. 退出" << endl;
	cout << "\t2. 图书管理" << endl;
	cout << "\t3. 读者管理" << endl;
	cout << "\t4. 登录系统" << endl;
	cout << "-----------------------------" << endl;
	cout << "请输入选择:";
}

//图书管理菜单(主菜单中的第2项)
void Menu2()
{
	system("cls");
	cout << "-----------------------------" << endl;
	cout << "           图书管理             " << endl;
	cout << "-----------------------------" << endl;
	cout << "\t1. 返回上级菜单" << endl;
	cout << "\t2. 查看所有图书" << endl;
	cout << "\t3. 按书名查找图书" << endl;
	cout << "\t4. 按作者名查找图书" << endl;
	cout << "\t5. 增加图书" << endl;
	cout << "-----------------------------" << endl;
	cout << "请输入选择:";
}

//读者管理菜单(主菜单中的第3项)
void Menu3()
{
	system("cls");
	cout << "-----------------------------" << endl;
	cout << "           读者管理             " << endl;
	cout << "-----------------------------" << endl;
	cout << "\t1. 返回上级菜单" << endl;
	cout << "\t2. 查看所有读者" << endl;
	cout << "\t3. 修改读者信息" << endl;
	cout << "-----------------------------" << endl;
	cout << "请输入选择:";
}

//登录系统菜单(主菜单中的第4项)
void Menu4(string no)
{
	system("cls");
	cout << "--------------------------------------" << endl;
	cout << "         借书证号:" << no << endl;
	cout << "--------------------------------------" << endl;
	cout << "\t1. 返回上级菜单(注销登录)" << endl;
	cout << "\t2. 输出个人信息" << endl;
	cout << "\t3. 借书" << endl;
	cout << "\t4. 还书" << endl;
	cout << "--------------------------------------" << endl;
	cout << "请输入选择:";
}

实例下载地址

图书馆管理系统(c++入门级源码)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警