简易图书管理系统

图书管理系统

大概思路

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. 处理数据
  1. 给出选择
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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值