⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmenua.cpp

📁 图书管理系统 所有图书管理功能都有,包括借书 还书 查询
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// CMenuA.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "CMenuA.h"
#include "CBooksApp.h"
#include "CBooks.h"
#include "CManager.h"
#include "CManagerAuther.h"
#include "CManagerTitle.h"
#include "CManagerLender.h"
#include <iostream.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

CMenuA::CMenuA()
{}

CMenuA::~CMenuA()
{}

void CMenuA::ShowMain() //显示主菜单
{
	int num;
	int Stop=-1;
	//从存档文件中读取数据
	manager.Open("e:\\Library.txt",&manager);

	cout<<"                                图书管理系统\n"
		<<"                             (可容纳40万册图书)\n"
		<<endl;

again:
	cout<<"                                    菜单\n"    //主菜单
		<<"                     0--预览  3--排序  6--借书  9--保存\n"
		<<"                     1--添加  4--查找  7--还书  10--退出\n"
		<<"                     2--删除  5--修改  8--打印催还书通知\n";
	cout<<endl;
	cout<<"请选择:";
	cin>>num;

	cout<<endl;

	switch(num)
	{
	case 0:   //预览所有书籍
		{
			ShowAll();
			break;
		}
	case 1:   //显示添加菜单
		{
			ShowAdd();
			break;
		}
	case 2:   //显示删除菜单
		{
			ShowDelete();
			break;
		}
	case 3:   //显示排序菜单
		{
			ShowSort();
			break;
		}
	case 4:   //显示查找菜单
		{
			ShowFind();
			break;
		}
	case 5:   //显示修改菜单
		{
			ShowFit();
			break;
		}
	case 6:   //显示借书菜单
		{
			ShowBorrow();
			break;
		}
	case 7:   //显示还书菜单
		{
			ShowReturn();
			break;
		}
	case 8:   //显示打印催还书通知菜单
		{
			ShowNote();
			break;
		}
	case 9:   //保存
		{
			ShowSave();
			break;
		}
	case 10:  //退出
		{
againO:
			char Order;
			cout<<"                        请确定已经保存! 是(Y),否(N) :";
			cin>>Order;

			switch(Order)
			{
			case 'Y':
				{	//退出
					break;
				}
			case 'N':
				{	//重新返回主菜单,进行保存工作
					goto again;
				}
			case 'y':
				{
					cout<<endl
						<<"                                 请注意大小写.\n"
						<<endl;
					goto againO;
				}
			case 'n':
				{
					cout<<endl
						<<"                                 请注意大小写.\n"
						<<endl;
					goto againO;
				}
			default:
				{
					cout<<endl
						<<"                              输入错误,请重新输入.\n"
						<<endl;
					goto againO;
				}
			}
			Stop=1;
			break;
		}
	default:
		{
			cout<<"                             输入错误,重新输入.\n"
				<<endl
				<<endl;
			//重新返回主菜单
			goto again;
		}
	}
	if(Stop!=1) //退出
		//重新返回主菜单
		goto again;
}

void CMenuA::ShowFind() //显示查找菜单
{
	char serialNumber[50],title[100],auther[10],lender[10];

	int num,Stop=-1;

again:
	cout<<"                                     查找选项:\n"
		<<"                     0-按编号查找    2-按作者查找    4-修改\n"
		<<"                     1-按书名查找    3-按读者查找    5-退出\n";
	cout<<endl;
	cout<<"请选择:";
	cin>>num;

	cout<<endl;

	switch(num)
	{
	case 0:
		{
			cout<<"请输入要查找的编号:";
			cin>>serialNumber;

			cout<<endl;
			cout<<"以下为所要查找的书籍:"
				<<endl
				<<endl;
			//调用对象manager的Find函数
			if(!(manager.Find(serialNumber))) //如果没找到,就输出以下提示
				cout<<"                               很抱歉,此编号不存在!\n";
			cout<<endl;
			break;
		}
	case 1:
		{
			cout<<"请输入要查找的书名:";
			cin>>title;

			cout<<endl;
			cout<<"以下为所要查找的书籍:"
				<<endl
				<<endl;

			managerTitle=new CManagerTitle;
			managerTitle->m_pParent=&manager;
			//调用对象managerTitle的Find函数
			if(!(managerTitle->Find(title))) //如果没找到,就输出以下提示
				cout<<"                               很抱歉,此书名不存在!\n";
			cout<<endl;

			delete managerTitle;
			break;
		}
	case 2:
		{
			cout<<"请输入要查找的作者:";
			cin>>auther;

			cout<<endl;
			cout<<"以下为所要查找的书籍:"
				<<endl
				<<endl;

			managerAuther=new CManagerAuther;
			managerAuther->m_pParent=&manager;
			//调用对象managerAuther的Find函数
			if(!(managerAuther->Find(auther))) //如果没找到,就输出以下提示
				cout<<"                               很抱歉,此作者不存在!\n";
			cout<<endl;

			delete managerAuther;
			break;
		}
	case 3:
		{
			cout<<"请输入要查找的读者姓名:";
			cin>>lender;

			cout<<endl;
			cout<<"以下为所要查找的书籍:"
				<<endl
				<<endl;

			managerLender=new CManagerLender;
			managerLender->m_pParent=&manager;
			//调用对象managerLender的Find函数
			if(!(managerLender->Find(lender))) //如果没找到,就输出以下提示
				cout<<"                               很抱歉,此读者不存在!\n";
			cout<<endl;

			delete managerLender;
			break;
		}
	case 4:
		{	//显示修改菜单
			ShowFit();
			break;
		}
	case 5:
		{	//退出
			Stop=1;
			break;
		}
	default:
		{
			cout<<"                                输入错误,重新输入.\n"
				<<endl
				<<endl;
			//重新返回查找菜单
			goto again;
		}
	}
	if(Stop!=1) //退出
		//重新返回查找菜单
		goto again;
}

void CMenuA::ShowSort() //显示排序菜单
{
	int num,Stop=-1;

again:
	cout<<"                                  排序选项:\n"
		<<"                          0-按编号排序    3-按读者排序\n"
		<<"                          1-按书名排序    4-退出\n"
		<<"                          2-按作者排序\n"
		<<endl;
	cout<<"请选择:";
	cin>>num;

	cout<<endl;

	switch(num)
	{
	case 0:
		{
			//调用对象manager的Sort函数
			manager.Sort();
			//输出排序后的所有书籍
			cout<<endl
				<<"按编号排序为:\n"
				<<endl
				<<manager
				<<endl
				<<endl;
			break;
		}
	case 1:
		{
			managerTitle=new CManagerTitle;
			managerTitle->m_pParent=&manager;
			//调用对象managerTitle的Sort函数
			managerTitle->Sort();
			//输出排序后的所有书籍
			cout<<endl
				<<"按书名排序为:\n"
				<<endl
				<<manager
				<<endl
				<<endl;

			delete managerTitle;
			break;
		}
	case 2:
		{
			managerAuther=new CManagerAuther;
			managerAuther->m_pParent=&manager;
			//调用对象managerAuther的Sort函数
			managerAuther->Sort();
			//输出排序后的所有书籍
			cout<<endl
				<<"按作者排序为:\n"
				<<endl
				<<manager
				<<endl
				<<endl;

			delete managerAuther;
			break;
		}
	case 3:
		{
			managerLender=new CManagerLender;
			managerLender->m_pParent=&manager;
			//调用对象managerLender的Sort函数
			managerLender->Sort();
			//输出排序后的所有书籍
			cout<<endl
				<<"按读者排序为:\n"
				<<endl
				<<manager
				<<endl
				<<endl;

			delete managerLender;
			break;
		}
	case 4:
		{	//退出
			Stop=1;
			break;
		}
	default:
		{
			cout<<"                             输入错误,重新输入.\n"
				<<endl
				<<endl;
			//重新返回排序菜单
			goto again;
		}
	}
	if(Stop!=1) //退出
		//重新返回排序菜单
		goto again;
}

void CMenuA::ShowDelete() //显示删除菜单
{
	int num,Stop=-1;
again:
	cout<<"                                   删除选项:\n"
		<<"                      0-按位置删除    3-按作者删除    6-退出\n"
		<<"                      1-按编号删除    4-按读者删除\n"
		<<"                      2-按书名删除    5-删除所有书籍\n"
		<<endl
		<<"请选择:";
	cin>>num;

	cout<<endl;

	switch(num)
	{
	case 0:
		{
			int index;
			cout<<"所要删除书籍的位置:";
			cin>>index;
			cout<<endl;
			//调用对象manager的Delete函数
			manager.Delete(index);
			break;
		}
	case 1:
		{
			char serialNumber[50];
			cout<<"请输入所要删除书籍的编号:";
			cin>>serialNumber;
			cout<<endl;
			//调用对象manager的Delete函数
			manager.Delete(serialNumber);
			break;
		}
	case 2:
		{
			char title[100];
			cout<<"请输入所要删除书籍的书名:";
			cin>>title;
			cout<<endl;

			managerTitle=new CManagerTitle;
			managerTitle->m_pParent=&manager;
			//调用对象managerTitle的Delete函数
			managerTitle->Delete(title);

			delete managerTitle;
			break;
		}
	case 3:
		{
			char auther[10];
			cout<<"请输入所要删除书籍的作者:";
			cin>>auther;
			cout<<endl;

			managerAuther=new CManagerAuther;
			managerAuther->m_pParent=&manager;
			//调用对象managerAuther的Delete函数
			managerAuther->Delete(auther);

			delete managerAuther;
			break;
		}
	case 4:
		{
			char lender[10];
			cout<<"请输入所要删除书籍的读者:";
			cin>>lender;
			cout<<endl;

			managerLender=new CManagerLender;
			managerLender->m_pParent=&manager;
			//调用对象managerLender的Delete函数
			managerLender->Delete(lender);

			delete managerLender;
			break;
		}
	case 5:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -