📄 cmenua.cpp
字号:
// 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 + -