课程设计.图书信息管理系统
来源:互联网 发布:淘宝上一次性口罩 编辑:程序博客网 时间: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
- 课程设计.图书信息管理系统
- 课程设计-图书信息管理系统
- 课程设计(图书信息管理系统)
- 课程设计论文-图书信息管理系统
- 课程设计—图书信息管理系统
- 课程设计---图书信息管理系统设计
- 数据结构课程设计—图书信息管理系统
- 课程设计--图书信息管理系统(C语言)
- 数据结构课程设计——图书信息管理系统设计
- 课程设计:大学生信息管理系统
- 课程设计--学生信息管理系统
- 学生信息管理系统(课程设计)
- 课程设计---学生信息管理系统
- 课程设计--学生信息管理系统
- 课程设计: 学生信息管理系统
- 课程设计--学生信息管理系统
- 课程设计-学生信息管理系统
- 课程设计--学生信息管理系统
- github常用操作
- 饭后为什么不宜喝冷饮?
- 小暑7/7食谱
- poj 1941 The Sierpinski Fractal 递归
- [游戏安全] Unity3D游戏无意中的发现
- 课程设计.图书信息管理系统
- Step into Kotlin - 10 - 映射及多重声明
- 【剑指Offer学习】【面试题41:和为s 的两个数字vs 和为s 的连续正数序列】
- 上传APP添加视频预览--精简点名
- 基于C语言sprintf函数的深入理解
- [Objective-C] assign/retain/copy 详解
- 2015070705 - EffactiveJava笔记 - 第15条 使可变性最小(2)
- 黑马程序员---OC基础---类的声明和实现
- 说的很清楚:限制对象只能建立在堆上或者栈上