实例介绍
【实例简介】这是一个控制台项目
【实例截图】
【核心代码】
#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 << "请输入选择:";
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论