C#图书管理系统
using System;
using System.Collections.Generic;
using System.Linq;
namespace Program
{
class Program
{
static void Main(string[] args)
{
Menu menu = new Menu();
menu.ShowMainMenu();
Console.ReadLine();
}
}
/********************> Publications <**********************/
class Publications
{
private string PublicationsISBN;
public string PublicationsIsbn
{
get
{
return PublicationsISBN;
}
set
{
PublicationsISBN = value;
}
}
/*出版物名称*/
public string PublicationName;
/*出版物作者或机构*/
public string PublicationAuthor;
/*出版物在书架状态*/
public bool PublicationStatus;
/*出版物类型*/
public string PublicationType;
public Publications()
{
}
public Publications(string PublicationsISBN, string PublicationName,
string PublicationAuthor, bool PublicationStatus, string PublicationType)
{
this.PublicationsISBN = PublicationsISBN;
this.PublicationName = PublicationName;
this.PublicationAuthor = PublicationAuthor;
this.PublicationStatus = PublicationStatus;
this.PublicationType = PublicationType;
}
}
/********************> Readers <**********************/
class Readers
{
private string ReaderID;
public string ReaderId
{
get
{
return ReaderID;
}
set
{
ReaderID = value;
}
}
public string ReaderName;
public string ReaderSex;
public string ReaderDepartment;
public string ReaderMajor;
public string[] BowPublication = new string[10] { "", "", "", "", "", "", "", "", "", "", };
public Readers()
{
}
public Readers(string ReaderID, string ReaderName, string ReaderSex, string ReaderDepartment,
string ReaderMajor)
{
this.ReaderMajor = ReaderMajor;
this.ReaderName = ReaderName;
this.ReaderSex = ReaderSex;
this.ReaderDepartment = ReaderDepartment;
this.ReaderID = ReaderID;
}
}
/***************************> Manage <**********************/
class Manage
{
public bool BorrowFlag = false;/*借阅操作成功标志*/
public bool ReturnFlag = false;/*归还操作成功标志*/
public Publications pub_search;/*保存查询到的出版物*/
public Readers Red_valid;/*保存查询到的合法用户*/
/*申明藏书物数组*/
public Publications[] pubs = new Publications[100];
/*申明注册读物数组*/
public Readers[] reds = new Readers[30];
/*实例化出版物对象*/
public Publications pub0 = new Publications("000000","aa","中华科技", true, "书籍");
public Publications pub1 = new Publications("000001", "bb", "长春大学出版社", true, "杂志");
public Publications pub2 = new Publications("000002", "cc", "清华大学出版社", true, "书籍");
public Publications pub3 = new Publications("000003", "dd", "中国四大名著", true, "书籍");
public Publications pub4 = new Publications("000004", "ee", "中国人名", true, "杂志");
public Publications pub5 = new Publications("000005", "ff", "中国四大名著", true, "书籍");
public Publications pub6 = new Publications("000006", "gg", "中国四大名著", true, "书籍");
public Publications pub7 = new Publications("000007", "hh", "中国四大名著", true, "书籍");
public Publications pub8 = new Publications("000008", "ii", "周末电台", true, "报纸");
public Publications pub9 = new Publications("000009", "jj", "俞敏洪", true, "音像制品");
public Readers red0 = new Readers("2016000", "yy", "男","物理学院", "团战先锋学院");
public Readers red1 = new Readers("2016001", "nn","男", "数学学院","团战核心学院");
public Readers red2 = new Readers("2016002", "hh","男", "电子信息学院", "开团先锋学院");
public Readers red3 = new Readers("2016003", "ll", "女","生物工程学院", "团战盾牌学院");
public Readers red4 = new Readers("2016004","xx", "女","物理学院", "团战输出学院");
public Readers red5 = new Readers("2016005", "mm", "雌","化学学院", "战地记者");
/*初始化出版物数组*/
public void PublicationsInitial()
{
pubs[0] = pub0;
pubs[1] = pub1;
pubs[2] = pub2;
pubs[3] = pub3;
pubs[4] = pub4;
pubs[5] = pub5;
pubs[6] = pub6;
pubs[7] = pub7;
pubs[8] = pub8;
pubs[9] = pub9;
}
/*初始化读者数组*/
public void ReadersInitial()
{
reds[0] = red0;
reds[1] = red1;
reds[2] = red2;
reds[3] = red3;
reds[4] = red4;
reds[5] = red5;
}
/*查询图书操作*/
public bool SearchPublications()
{
string Pub_Name;
bool SearchFlag = false;
Pub_Name = Console.ReadLine();
foreach (Publications pub in pubs)
{
if (pub != null && pub.PublicationName == Pub_Name)
{
SearchFlag = true;
pub_search = pub;
}
}
return SearchFlag;
}
/*借阅图书操作*/
public void Borrow()
{
string Red_Name;
string Pub_Name;
bool ReaderFlag = false;
Red_Name = Console.ReadLine();
foreach (Readers red in reds)
{
if (red != null && red.ReaderName == Red_Name)
{
ReaderFlag = true;
Red_valid = red;
}
}
if (ReaderFlag)
{
Console.WriteLine("请输入你需要借阅的出版物的名称:");
Pub_Name = Console.ReadLine();
foreach (Publications pub in pubs)
{
if(pub != null && pub.PublicationName == Pub_Name)
{
BorrowFlag = true;
pub.PublicationStatus = false;
AddToReders(pub.PublicationName, Red_valid);
}
}
}
else
{
Console.WriteLine("抱歉,你是非法读者,GET OUT!");
}
}
/*归还图书操作*/
public void Return()
{
string Red_Name;
string Pub_Name;
bool ReaderFlag = false;
Red_Name= Console.ReadLine();
foreach (Readers red in reds)
{
if (red != null && red.ReaderName == Red_Name)
{
ReaderFlag = true;
Red_valid =red;
}
}
if (ReaderFlag)
{
Console.Write("请输入你需要归还出版物的名称:");
Pub_Name = Console.ReadLine();
foreach (Publications pub in pubs)
{
if (pub != null && pub.PublicationName == Pub_Name)
{
for (int i = 0; i < 10; i++)
{
if (Red_valid.BowPublication[i] == Pub_Name)
{
ReturnFlag = true;
pub.PublicationStatus = true;
RemoveFromReders(Pub_Name, Red_valid);
}
}
}
}
}
else
{
Console.WriteLine("抱歉,你是非法读者,无法归还图书!");
}
}
/*添加图书到读者*/
private void AddToReders(string PublicationName, Readers red)
{
/*设置借阅上限为10本*/
for (int i = 0; i<10; i++)
{
if (red != null && red.BowPublication[i] == "")
{
red.BowPublication[i] = PublicationName;
break;
}
}
}
/*读者对象中移除图书*/
private void RemoveFromReders(string PublicationName, Readers red)
{
/*设置借阅上限为10本*/
for (int i = 0; i < 10; i++)
{
if (red != null && red.BowPublication[i] == PublicationName)
{
red.BowPublication[i] = red.BowPublication[i + 1];
}
}
}
/*新书入库操作*/
public void AddPublications(Publications pub)
{
for (int i = 11; i < 100; i++)
{
if (pubs[i] == null)
{
pubs[i] = pub;
}
}
}
/*添加新读者操作*/
public void AddReaders(Readers red)
{
for (int i = 6; i < 30; i++)
{
if (reds[i] == null)
{
reds[i] = red;
}
}
}
/*查询读者信息**/
public void RedIndex()
{
string Red_Name;
bool ReaderFlag = false;
Red_Name = Console.ReadLine();
foreach (Readers red in reds)
{
if (red != null && red.ReaderName == Red_Name)
{
ReaderFlag = true;
Red_valid = red;
}
}
if (!ReaderFlag)
{
Console.WriteLine("抱歉,你是非法读者,无法查到你的借阅信息");
}
}
}
/*********************************> Menus <**********************/
class Menu
{
//创建一个集体管理对象
Manage mag = new Manage();
//声明一个读者对象
Readers red;
//申明一个出版物对象
Publications pub;
public void ShowMainMenu()
{
mag.PublicationsInitial();
mag.ReadersInitial();
Console.WriteLine("欢迎使用图书管理系统V8.0");
Console.WriteLine("-------------------------------------------------------------" +
"-------------------");
Console.WriteLine("1.查询图书");
Console.WriteLine("2.借阅图书");
Console.WriteLine("3.还书服务");
Console.WriteLine("4.新书入库");
Console.WriteLine("5.录入新读者");
Console.WriteLine("6.查阅读者借阅信息");
Console.WriteLine("7.退出系统");
Console.WriteLine("--------------------------------------------------------------" +
"--------------------");
bool flag;
do
{
flag = false;
Console.WriteLine("请选择:");
string key = Console.ReadLine();
switch (key)
{
case "1":
Console.Write("请输入需要查询的图书名:");
ShowPubInfo();
break;
case "2":
Console.Write("请输入你的名字");
mag.Borrow();
ShowBorrowInfo();
break;
case "3":
Console.WriteLine("请输入你的名字:");
mag.Return();
ShowReturnInfo();
break;
case "4":
Console.WriteLine("请按照提示逐步输入需要入库的出版物信息。。。");
ShowAddPublications();
break;
case "5":
Console.WriteLine("请按照提示逐步输入新读者注册信息。。。");
ShowAddReaders();
break;
case "6":
Console.WriteLine("请输入你的名字:");
mag.RedIndex();
ShowRedPubInfo(mag.Red_valid);
break;
case "7":
flag = false;
break;
default:
Console.WriteLine("无此业务,是否重新选择(y/n)?");
string answer = Console.ReadLine();
if (answer != "y")
{
flag = false;
}
else
{
flag = true;
}
break;
}
} while (flag);
}
/*显示查询到的出版物信息*/
public void ShowPubInfo()
{
if (mag.SearchPublications())
{
Console.WriteLine("你要查询的出版物信息:");
Console.WriteLine("-----------------------------------------------------------" +
"---------------------");
Console.WriteLine("编号:" + mag.pub_search.PublicationsIsbn);
Console.WriteLine("出版物名字:" + mag.pub_search.PublicationName);
Console.WriteLine("出版物信息:" + mag.pub_search.PublicationAuthor);
Console.WriteLine("出版物类型:" + mag.pub_search.PublicationType);
if (mag.pub_search.PublicationStatus)
{
Console.WriteLine("出版物状态:有余留,运气不错");
}
else
{
Console.WriteLine("出版物状态:未在架,未知");
}
Console.WriteLine("--------------------------------------------------------" +
"----------------------");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
Console.WriteLine();
}
else
{
Console.WriteLine("Over");
}
}
else
{
Console.WriteLine("抱歉,未找到该图书!");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
Console.WriteLine();
}
else
{
Console.WriteLine("结束!");
}
}
}
/*借阅操作结果*/
public void ShowBorrowInfo()
{
if (mag.BorrowFlag)
{
Console.WriteLine("Successful,借阅成功!");
ShowRedPubInfo(mag.Red_valid);
}
else
{
Console.WriteLine("抱歉,借阅失败!");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
}
else
{
Console.WriteLine("结束!");
}
}
}
/*显示归还操作*/
public void ShowReturnInfo()
{
if (mag.ReturnFlag)
{
Console.WriteLine("感谢,归还成功!");
ShowRedPubInfo(mag.Red_valid);
}
else
{
Console.WriteLine("抱歉,归还失败!");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
}
else
{
Console.WriteLine("结束!");
}
}
}
public void ShowRedPubInfo(Readers red)
{
Console.WriteLine("当前你的借阅信息如下:");
Console.WriteLine("------------------------------------------------------" +
"----------------------");
Console.WriteLine("编号:"+red.ReaderId);
Console.WriteLine("姓名:" + red.ReaderName);
Console.WriteLine("性别:" + red.ReaderSex);
Console.WriteLine("所在学院:" + red.ReaderDepartment);
Console.WriteLine("主修专业:" + red.ReaderMajor);
Console.WriteLine("已借图书:");
for (int i = 0; i < red.BowPublication.Length - 1; i++)
{
if (red.BowPublication[i] != "")
{
Console.Write(" " + red.BowPublication[i]);
}
}
Console.WriteLine("");
Console.WriteLine("------------------------------------------------------" +
"----------------------");
Console.WriteLine("");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
}
else
{
Console.WriteLine("结束!");
}
}
/*显示新出版物入库信息*/
public void ShowAddPublications()
{
pub = new Publications();
Console.Write("请输入出版物编号:");
pub.PublicationsIsbn = Console.ReadLine();
Console.WriteLine("请输入出版物名称:");
pub.PublicationName = Console.ReadLine();
Console.WriteLine("请输入出版物作者:");
pub.PublicationAuthor = Console.ReadLine();
Console.WriteLine("请输入出版物类型:");
pub.PublicationType = Console.ReadLine();
pub.PublicationStatus = true;
mag.AddPublications(pub);
Console.WriteLine("新出版物入库成功!");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
Console.WriteLine();
Console.WriteLine();
}
else
{
Console.WriteLine("结束!");
}
}
/*显示新注册用户信息*/
public void ShowAddReaders()
{
red = new Readers();
Console.Write("请输入新用户的编号:");
red.ReaderId = Console.ReadLine();
Console.Write("请输入新用户的姓名:");
red.ReaderName = Console.ReadLine();
Console.Write("请输入新用户的性别:");
red.ReaderSex = Console.ReadLine();
Console.Write("请输入新用户的院系:");
red.ReaderDepartment = Console.ReadLine();
Console.Write("请输入新用户的专业:");
red.ReaderMajor = Console.ReadLine();
for (int i=0; i<10; i++)
{
red.BowPublication[i] = "";
}
mag.AddReaders(red);
Console.WriteLine("新用户注册成功!");
Console.WriteLine("是否办理其他业务(y/n)?");
string answer = Console.ReadLine();
if (answer == "y")
{
ShowMainMenu();
Console.WriteLine();
Console.WriteLine();
}
else
{
Console.WriteLine("结束!");
}
}
}
}