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

来源:互联网 发布:淘宝上一次性口罩 编辑:程序博客网 时间:2024/05/22 05:28
/****************库函数的调用************************************/#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[N];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();}elsecout << "已保存的图书信息如下:" << 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[n].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;}

0 0
原创粉丝点击