您的位置:首页 > 其它

课程设计.图书信息管理系统

2015-07-07 08:10 447 查看
/****************库函数的调用************************************/
#include<string>
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;

/**********************定义全局变量****************************/
#define N   100  //宏替换
void menu();//显示菜单
string p;//p作为接收菜单选项的字符串
void domain();
/********************自定义结构体图书管理**************************/

class book
{
private:
string name, date,author,address;//名字、出版日期、作者、存放地址
public:
book(){}
~book(){}
friend class Information;
};

/******************覆盖*******************************************/
class Information
{
private:
book book1
;
int NUM;//用来计算图书数目
public:
Information()
{
NUM = 0;
}
void search();     //查找图书信息
void write();       //录入图书信息
void delet();         //删除图书信息
void show();          //显示图书信息
void save();//图书信息以文件形式保存
};

/*****************************菜单函数*******************************/
void menu()
{
system("cls");
cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓";
cout << "┃****************   ☆   图 书 信 息 管 理 系  统    ☆   ****************** ┃";
cout << "┃********** ★★★★★        ★★★★★★★         ★★★★★  *********** ┃";
cout << "┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫";
cout << "┃****************★  ☆          1.录入图书信息        ☆  ★****************┃";
cout << "┃****************★  ☆          2.删除图书信息        ☆  ★****************┃";
cout << "┃****************★  ☆          3.查找图书信息        ☆  ★****************┃";
cout << "┃****************★  ☆          4.显示图书信息        ☆  ★****************┃";
cout << "┃****************★  ☆          5.文件保存信息        ☆  ★****************┃";
cout << "┃****************★  ☆          0.安全退出系统        ☆  ★****************┃";
cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛";
cout << " 请输入您的选择(0--5):"; cout << endl;
}
void Information::write()//图书信息录入函数实现
{
char a;
do
{
NUM++;
cout << "\n请输入第" << NUM << "个图书信息:\n";
cout << "\t名字:";
cin >> book1[NUM].name;
cout << "\t出版日期:";
cin >> book1[NUM].date;
cout << "\t作者:";
cin >> book1[NUM].author;
cout << "\t存放地址:";
cin >> book1[NUM].address;
cout << "是否要继续录入图书信息(Y/N):";
cin >> a;

} while (a == 'Y' || a == 'y');

}

void Information::show()//图书信息显示函数实现
{
if (NUM <= 0)
{
cout << "没有图书信息存入,系统将返回主菜单" << endl;
menu();
}
else
cout << "已保存的图书信息如下:" << endl;
cout << setw(10) << "名字" << setw(10) << "出版日期" << setw(10) << "作者" << setw(10) << "存放地址" << endl;
for (int i = 1; i <= NUM; i++)
cout << setw(10) << book1[i].name << setw(10) << book1[i].date << setw(10) << book1[i].author << setw(10) << book1[i].address << endl;
}

void Information::delet()//图书信息删除函数实现
{
char a;
string b;
do
{
cout << "请你输入要删除信息的图书名字: ";
cin >> b;
int n = 1, m;
int flag = 1;
while (flag)
{
for (; n <= NUM; n++)
{
if (b == book1
.name)
{
flag = 0;
m = n;
break;
}
}
if (flag)
{
cout << "不存在此图书,请重新输入:";
n = 0;
cin >> b;
}
}
cout << "图书信息如下:" << endl;
cout << setw(10) << "名字" << setw(10) << "出版日期" << setw(10) << "作者" << setw(10) << "存放地址" << endl;
cout << setw(10) << book1[m].name << setw(10) << book1[m].date << setw(10) << book1[m].author << setw(10) << book1[m].address << endl;
cout << endl;
cout << "是否确认删除该图书信息(Y/N):";
cin >> a;
if (a == 'Y' || a == 'y')
{
cout << "删除成功!" << endl;
for (int j = m; j < NUM; j++)
book1[j] = book1[j + 1];
NUM--;
break;
}
else break;
} while (a == 'n' || a == 'N');
}
void Information::search()
{
int y;
cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓";
cout << "┃****************★  ☆          1.作者查找信息        ☆  ★****************┃";
cout << "┃****************★  ☆          2.姓名查找信息        ☆  ★****************┃";
cout << "┃****************★  ☆          0.立即返回菜单        ☆  ★****************┃";
cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛";
cout << "输选择(0-2):";
cin >> y;
while (y<0 || y>2)
{
cout << "输入有误,请重新输入:";
cin >> y;
}
if (y == 1)
{
string num2;
cout << "请输入要查询的图书的作者:";
cin >> num2;
int j = 1, k;
int flag = 1;
while (flag)
{
for (; j <= NUM; j++)
{
if (num2 == book1[j].author)
{
flag = 0;
k = j;
cout << "图书信息如下:" << endl;
cout << setw(10) << "名字" << setw(10) << "出版日期" << setw(10) << "作者" << setw(10) << "存放地址" << endl;
cout << setw(10) << book1[k].name << setw(10) << book1[k].date << setw(10) << book1[k].author << setw(10) << book1[k].address << endl;
break;
}
}
if (flag)
{
flag = 0;
cout << "不存在此图书\n返回主菜单" << endl;
break;
}
}
}
else if (y == 2)
{
string name2;
cout << "请输入要查询的图书的名字:";
cin >> name2;
int j2 = 1, k2;
int flag2 = 1;
while (flag2)
{
for (; j2 <= NUM; j2++)
{
if (name2 == book1[j2].name)
{
flag2 = 0;
k2 = j2;
cout << "图书信息如下:" << endl;
cout << setw(10) << "名字" << setw(10) << "出版日期" << setw(10) << "作者" << setw(10) << "存放地址" << endl;
cout << setw(10) << book1[k2].name << setw(10) << book1[k2].date << setw(10) << book1[k2].author << setw(10) << book1[k2].address << endl;
break;
}
}
if (flag2)
{
flag2 = 0;
cout << "不存在此图书!!\n返回主菜单" << endl;
break;
}
}
}
else if (y == 0)
{
};
}
void Information::save()//图书信息文件保存函数实现
{
if (NUM <= 0)
{
cout << "没有图书信息存入,系统将返回主菜单" << endl;
menu();
}
else
{
ofstream fout;
fout.open("D:\\Book.txt", ios::out);
cout << "文件正在保存......请稍候!!" << endl;
cout << "数据保存成功!!!" << endl;
fout << "已保存图书信息如下:" << endl;
fout << setw(10) << "名字" << setw(10) << "出版日期" << setw(10) << "作者" << setw(10) << "存放地址" << endl;
for (int i = 1; i <= NUM; i++)
fout << setw(10) << book1[i].name << setw(10) << book1[i].date << setw(10) << book1[i].author << setw(10) << book1[i].address << endl;
fout.close();
}
}

void domain()//主菜单函数实现
{
Information w;
while (1)
{
system("cls");
menu();
int i;
cin >> i;
while (!(i >= 0 && i <= 5))
{
cout << "输入有误,请重新输入:" << endl;
cin >> i;
}
switch (i)
{
case 1:
w.write(); break;
case 2:
w.delet(); break;
case 3:
w.search(); break;
case 4:
w.show(); break;
case 5:
w.save(); break;
case 0:
cout << "系统退出!!" << endl;
exit(0);
default:
break;
}
cout << "是否返回主菜单?  Y/N" << endl;
cin >> p;
if (p == "n" || p == "N")
{
cout << "系统退出!!" << endl;
exit(0);
}
}
}
int main()
{
domain();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: