课设内容:
设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能:
- 根据指定图书个数,逐个输入图书信息;
- 逐个显示图书表中所有图书的相关信息;
- 能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;
- 根据指定的待出库的旧图书的位置,将该图书从图书表中删除;
- 能统计表中图书个数;
- 实现图书信息表的图书去重;
- 实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;
- 图书信息表按指定条件进行批量修改;
- 利用快速排序按照图书价格降序排序;
代码如下:
#include<iostream>
#include<string>
#include<vector>
#include<iomanip>
using namespace std;
class Libarary {
struct Book {
string no;//8位书号
string name;//书名
float price;//价格
};
//链表结构
struct LNode
{
Book data;
LNode* next;
LNode* pre;
};
private:
LNode* head;
LNode* ptr;
int number;
public:
//创建图书表
void Creat() {
cout << "输入 n+1 行,其中前 n 行是 n 本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第 n+1 行是输入结束标志:0 0 0(空格分隔的三个 0)。其中书号和书名为字符串类型,价格为浮点数类型。" << endl;
head = new LNode;
ptr = head;
while (1) {
string notemp;
cin >> notemp;
string nametemp;
cin >> nametemp;
float pricetemp;
cin >> pricetemp;
if (notemp == "0" && nametemp == "0" && pricetemp == 0) {
cout << "-----------------------------