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

📄 main.cpp

📁 小型图书管理系统
💻 CPP
字号:
#include "Reader.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>





void main()
{
	Book aB;//建立书类便于管理员直接对图书进行操作
	Reader R;

	int Day=0;//计算天数
	char choose;//选择变量
	int cb;//选择借阅类型
	char bname[20],bwriter[20];
	int btotal,curr;
	int bn;//读入书号
	int em;//接收空变量
	int bkn;//接收书物理地址
	int rn;//当前操作读者位置
	char rname[20];//读者姓名


	int Flag_start=1;
	int Flag_admin=1;
	int Flag_reader_login=1;
	int Flag_reader=1;

	int Flag_cb=1;
	int Flag_cr=1;
	
	while(Flag_start)
	{
		cout <<"\n\n\n\n\n\n\n"<<endl;
		cout <<"\t\t\t  ************************"<<endl;
		cout <<"\t\t\t  * 欢迎使用图书管理系统 *"<<endl;
		cout <<"\t\t\t  ************************"<<endl;
		cout <<"\t\t\t      $ 1_管理员入口 $" <<endl;
		cout <<"\t\t\t      $ 2_读者入口   $" <<endl;
		cout <<"\t\t\t      $ 3_退出本系统 $" <<endl;
		choose =getch();
		switch(choose)
		{
		case '1'://*****************************************管理员操作****************************
			system("cls");
			Flag_admin =1;
			aB.ReadBook();//..............................................
			R.ReadReader();//......... 
			while(Flag_admin)
			{
				cout <<"\t\t\t\t******************" <<endl;
				cout <<"\t\t\t\t* 管理员操作平台 *" <<endl;
				cout <<"\t\t\t\t*----------------*" <<endl;
				cout <<"\t\t\t\t* 1_图书添加入库 *" <<endl;
				cout <<"\t\t\t\t* 2_浏览全部图书 *" <<endl;
				cout <<"\t\t\t\t* 3_图书书号检索 *" <<endl;
				cout <<"\t\t\t\t* 4_图书书名检索 *" <<endl;
				cout <<"\t\t\t\t* 5_图书作者检索 *" <<endl;
				cout <<"\t\t\t\t* 6_清空图书库存 *" <<endl;
				cout <<"\t\t\t\t* 7_查看读者信息 *" <<endl;
				cout <<"\t\t\t\t* 8_清空读者信息 *" <<endl;
				cout <<"\t\t\t\t* 9_退出操作平台 *" <<endl;
				cout <<"\t\t\t\t******************" <<endl;
				choose =getch();
				switch(choose)
				{
				case '1':
					cout <<"\n书名" <<endl;
					gets(bname);
					cout <<"\n作者" <<endl;
					gets(bwriter);
					cout <<"\n总量" <<endl;
					cin >>btotal;
					aB.AddBook(bname,bwriter,btotal);
					cout <<"\n入库成功" <<endl;
					break;
				case '2':
					em =aB.IsEmpty();
					if(em ==1)
					{
						cout<<"以下全部图书信息~~~\n"
							<<"序号"<<"\t"
							<<"书名"<<"\t\t"
							<<"作者"<<"\t\t"
							<<"剩余量"<<"\t"
							<<"总量"<<"\t"
							<<"当前状态"<<endl;
						cout<<"-------------------------------------------------------------------"<<endl;
						aB.ViewAll();
					}
					else cout <<"\n书库空" <<endl;
					break;
				case '3':
					em =aB.IsEmpty();
					if(em ==1)
					{
						cout <<"\n请输入要检索的书号" <<endl;
						cin >>curr;
						bn=aB.FindNum(curr);
						if(bn ==-1)
							cout <<"\n\t\t\t没找到该序号的图书" <<endl;
					}
					else cout <<"\n书库空" <<endl;
					break;
				case '4':
					em =aB.IsEmpty();
					if(em ==1)
					{
						cout <<"\n请输入要检索的书名" <<endl;
						gets(bname);
						bkn=aB.FindName(bname,0);				
					}
					else cout <<"\n书库空" <<endl;
					break;
				case '5':
					em =aB.IsEmpty();
					if(em ==1)
					{
						cout <<"\n请输入要检索的作者" <<endl;
						gets(bwriter);
						bkn=aB.FindWriter(bwriter,0);
					}
					else cout <<"\n书库空" <<endl;
					break;
				case '6':
					Flag_cb=1;
					em =aB.IsEmpty();
					if(em ==1)
					{
						while(Flag_cb)
						{
							cout <<"\n确认是否要清空图书数据库?(y/n)" <<endl;
							choose=getch();
							switch(choose)
							{
							case 'y':
								aB.CleanBook();
								Flag_cb=0;
								aB.~Book();
								cout <<"\n\t\t\t图书数据空清空" <<endl;
								break;
							case 'n':
								Flag_cb=0;
								break;
							default:
								cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
								break;
							}
						}
					}
					else cout <<"\n书库空" <<endl;
					break;
				case '7':
					cout<<"请输入您要查看的读者名:"<<endl;
					gets(rname);
					rn=R.Login(rname);
					if(rn!=-1)
					{
						R.ViewReader(rn);
					}
					else 
						cout<<"不存在指定编号的读者信息"<<endl;
					break;
				case '8':
					Flag_cr=1;
					while(Flag_cr)
					{
						cout <<"\n确认是否要清空读者数据库?(y/n)" <<endl;
						choose=getch();
						switch(choose)
						{
						case 'y':
							R.CleanReader();
							Flag_cr=0;
							cout <<"\n\t\t\t读者数据空清空" <<endl;
							R.~Reader();
							break;
						case 'n':
							Flag_cr=0;
							break;
						default:
							cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
							break;
						}
					}
					break;
				case '9':
					Flag_admin=0;
					R.~Reader();//.........................
					aB.~Book();//.........
					break;
				default:
					cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
					break;
				}
				cout <<"\n\n\n\t\t\t按任意键返回菜单~~~~~" <<endl;
				getch();	
				system("cls");
			}
			break;
		case '2'://**************************************读者**********************************
			system("cls");
			Flag_reader_login=1;
			R.ReadReader();//..................................
			while(Flag_reader_login)
			{	
				cout <<"\t\t\t\t======================"<<endl;
				cout <<"\t\t\t\t★ 欢迎使用读者系统 ★" <<endl;
				cout <<"\t\t\t\t======================"<<endl;
				cout <<"\t\t\t\t      ◇1_登陆◇" <<endl;
				cout <<"\t\t\t\t      ◇2_注册◇" <<endl;
				cout <<"\t\t\t\t      ◇3_退出◇" <<endl;
				choose =getch();
				switch(choose)
				{
				case '1':
					cout <<"\n请输入用户名:" <<endl;
					gets(rname);
					rn=R.Login(rname);
					if(rn!=-1)
					{
						cout <<"\n\t\t\t\t\t登陆成功" <<endl;
						getch();
						system("cls");
						Flag_reader =1;
						while(Flag_reader)
						{
							system("cls");
							cout <<"\t\t\t\t〓〓〓〓〓〓〓" <<endl;
							cout <<"\t\t\t\t▲ 欢迎登陆 ▲" <<endl;
							cout <<"\t\t\t\t〓〓〓〓〓〓〓" <<endl;
							cout <<"\t\t\t\t○1_书名检索○" <<endl;
							cout <<"\t\t\t\t○2_作者检索○" <<endl;
							cout <<"\t\t\t\t○3_还书操作○" <<endl;
							cout <<"\t\t\t\t○4_我的信息○" <<endl;
							cout <<"\t\t\t\t○5_安全退出○" <<endl;
							choose=getch();
							switch(choose)
							{
							case '1':
								cout <<"\n请输入要检索的书名:" <<endl;
								gets(bname);
								bkn=R.FindName(bname);
								if(bkn!=-1)
								{
									cout<<"请选择您要进行的借阅类型~~~1.借阅 2.预借~~"<<endl;
									while(1)
									{
										cin>>cb;
										if(cb==1)
										{
											curr=R.BorBooks(rn);
											break;
										}
										else if(cb==2)
										{
											curr=R.DestineBooks(rn);
											break;
										}
										else
											cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
									}
									if(curr ==1)
										cout <<"\n\t\t\t借书成功" <<endl;
									else if(curr ==-1)
										cout <<"\n\t\t\t该书没有库存" <<endl;
									else
										cout <<"\n\t\t\t你的借书或预借数量已满,请查看后再借!" <<endl;
									break;
								}		
								break;
							case '2':
								cout <<"\n请输入要检索的作者:" <<endl;
								gets(bwriter);
								bkn=R.FindWriter(bwriter);
								if(bkn!=-1)
								{
									cout<<"请选择您要进行的借阅类型~~~1.借阅 2.预借~~"<<endl;
									while(1)
									{
										cin>>cb;
										if(cb==1)
										{
											curr=R.BorBooks(rn);
											break;
										}
										else if(cb==2)
										{
											curr=R.DestineBooks(rn);
											break;
										}
										else
											cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
									}
									if(curr ==1)
										cout <<"\n\t\t\t借书成功" <<endl;
									else if(curr ==-1)
										cout <<"\n\t\t\t该书没有库存" <<endl;
									else
										cout <<"\n\t\t\t你的借书或预借数量已满,请查看后再借!" <<endl;
									break;
								}		
								break;								
							case '3':
								R.ViewReader(rn);

								cout<<"请选择您要进行的还书类型~1.归还已借图书 2.取消预借图书~"<<endl;
								while(1)
								{
									cin>>cb;
									if(cb==1)
									{
										cout <<"\n请输入要还书的书号:" <<endl;
										cin >>bn;
										curr =R.ReturnBooks(bn,rn);
										break;
									}
									else if(cb==2)
									{
										cout <<"\n请输入要取消预借的书号:" <<endl;
										cin >>bn;
										curr =R.DesRBooks(bn,rn);
										break;
									}
									else
										cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
								}

								if(curr ==-1)
									cout <<"\n错误的还书书号" <<endl;
								else if(curr ==-2)
									cout <<"\n您还没有借书" <<endl;
								else
									cout <<"\n还书成功" <<endl;
								break;
					  		case '4':
								R.ViewReader(rn);
								break;
							case '5':
								Flag_reader=0;
								break;
							default:
								cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
								break;
								
							}
							cout <<"\n\n\n\t\t\t按任意键返回菜单~~~~~" <<endl;
							getch();
							system("cls");
						}
					}
					else
					{
						cout <<"\n\t您输入的用户名不存在,请从新输入或先注册~~" <<endl;
					}
					break;
				case '2':
					cout <<"\n请输入要注册的用户名:" <<endl;
					gets(rname);
					rn=R.AddReader(rname);
					cout <<"\n\t\t\t注册成功,您的编号为"
						 <<rn<<"请重新登陆" <<endl;
					break;
				case '3':
					Flag_reader_login=0;
					R.~Reader();//.......................
					aB.ReadBook();//......
					aB.~Book();//.......
					break;
				default:
					cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
					break;
				}
				cout <<"\n\n\n\t\t\t按任意键返回菜单~~~~~" <<endl;
				getch();
				system("cls");
			}
			break;
		case '3':
			Flag_start=0;
			system("cls");
			cout<<"\n\n\n\n\n\n\n\n\n\n\n\n"
				<<"\t\t感谢对本系统支持~祝您好运 ~_^软件054赵寅"
				<<"\n\n\n\n\n\n\n\n\n\n\n\n" <<endl;
			break;
		default:
			cout <<"\n\t\t\t输入错误~~请按提示输入……" <<endl;
			break;
		}
		cout <<"\n\n\n\t\t\t按任意键返回主菜单~~~~~" <<endl;
		getch();
		system("cls");
	}
}

⌨️ 快捷键说明

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