图书管理系统
大概思路
1. 接收数据
- 储存方式--------用 struct 定义一个结构体类型,包含书名,序列号,所属学科。
- 并且给图书馆数据库初始化5本书
struct Book
{
string b_name;
int b_number;
string b_Subject;
}book[20] = {"经济学原理",55,"经济学","价值与资本",59,"经济学",
"孙子兵法",85,"军事","战争论",55,"军事","国民经济学原理",80,"经济学", };
- 接收方式------为了简单(不然真的太累了),不对输入的值进行检测。
void getbook()
{
cout << "请输入书名,序列号,所属学科 " << endl;
cin>> book[sumnum].b_name >> book[sumnum].b_number >> book[sumnum].b_Subject;
sumnum++;
}
2. 处理数据
- 给出选择
void choose()
{
int m_choose;
cout << "*************这里是图书馆管理系统**************" << endl;
cout << "1. 插入一本书 " << endl;
cout << "2. 删除一本书 " << endl; //按照书名删除
cout << "3. 替换一本书 " << endl; //按照序列号替换
cout << "4. 查找一本书 " << endl; //按照科目查找
cout << " 输入你的操作 " << endl;
cin >> m_choose;
switch (m_choose)
{
case 1:choose_1(); break;
case 2:choose_2(); break;
case 3:choose_3(); break;
case 4:choose_4(); break;
default:break;
}
}
case 里的几个函数具体实现贴在文后。
3. 输出数据
void show()
{
cout << "此时图书馆的存书有" <<sumnum<<"本"<< endl;
for (int i = 0; i < sumnum; i++)
{
cout << book[i].b_name << " " << book[i].b_number << " " << book[i].b_Subject << endl;
}
}
全部代码
#include <string.h>
#include "图书馆管理系统.h"
using namespace std;
struct Book
{
string b_name; //书名
int b_number; //序列号
string b_Subject; //科目
}book[20] = {"经济学原理",55,"经济学","价值与资本",59,"经济学",
"孙子兵法",85,"军事","战争论",55,"军事","国民经济学原理",80,"经济学", };
int sumnum=5;
//一开始书库里就存5本书
void show();
void choose();
void getbook();
void changebook(int sumnum);
void choose_1();
void choose_2();
void choose_3();
void choose_4();
int main()
{
//cout << book[1].b_name <<" "<< book[1].b_number << " " << book[1].b_Subject;
choose();
show();
}
void show()
{
cout << "此时图书馆的存书有" <<sumnum<<"本"<< endl;
for (int i = 0; i < sumnum; i++)
{
cout << book[i].b_name << " " << book[i].b_number << " " << book[i].b_Subject << endl;
}
}
void choose()
{
int m_choose;
cout << "*************这里是图书馆管理系统**************" << endl;
cout << "1. 插入一本书 " << endl;
cout << "2. 删除一本书 " << endl;//按照书名删除
cout << "3. 替换一本书 " << endl;//按照序列号替换
cout << "4. 查找一本书 " << endl;//按照科目查找
cout << " 输入你的操作 " << endl;
cin >> m_choose;
switch (m_choose)
{
case 1:choose_1(); break;
case 2:choose_2(); break;
case 3:choose_3(); break;
case 4:choose_4(); break;
default:break;
}
}
void getbook()
{
cout << "请输入书名,序列号,所属学科 " << endl;
cin>> book[sumnum].b_name >> book[sumnum].b_number >> book[sumnum].b_Subject;
sumnum++;
}
void changebook(int sumnum)
{
cout << "请输入书名,序列号,所属学科 " << endl;
cin >> book[sumnum].b_name >> book[sumnum].b_number >> book[sumnum].b_Subject;
}
void choose_1()
{
getbook();
}
void choose_2()
{
string name;
cout << "输入书名" << endl;
cin >> name;
for (int i = 0; i < sumnum; i++)
{
if (book[i].b_name == name)//找到了书名所在地
{
//接下来要把后面的所有书全部往前移
for (int j = i; j < sumnum - 1; j++)
{
book[i].b_name = book[i + 1].b_name;
book[i].b_number = book[i + 1].b_number;
book[i].b_Subject = book[i + 1].b_Subject;
}
cout << "删除成功" << endl;
sumnum--;
return;
}
}
cout << "删除失败" << endl;
return;
}
void choose_3()
{
int number;
cout << "输入书名" << endl;
cin >> number;
for (int i = 0; i < sumnum; i++)
{
if (book[i].b_number == number)//找到了序列号所在地
{
cout << "请输入要替换的书名,序列号,所属学科" << endl;
changebook(i);
cout << "替换成功" << endl;
return;
}
}
cout << "替换失败" << endl;
return;
}
void choose_4()
{
string subject;
int signal=0;
cout << "输入学科" << endl;
cin >> subject;
for (int i = 0; i < sumnum; i++)
{
if (book[i].b_Subject == subject)//找到了序列号所在地
{
cout << "查找成功" << endl;
cout << book[i].b_name << " " << book[i].b_number << " " << book[i].b_Subject << endl << endl;
signal = 1;
}
}
if(signal!=1)
{
cout << "查找失败" << endl;
return;
}
return;
}