数据结构课程设计一——图书信息管理系统的设计与实现

设计二的链接:https://blog.csdn.net/m0_53276696/article/details/118059598?spm=1001.2014.3001.5501

设计三的链接:https://blog.csdn.net/m0_53276696/article/details/118060861

目录

一、实现内容

二、实验目标

三、数据结构方法选择

四、数据结构方法选择

五、实验思路

六、源代码链接

 

一、实现内容

设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能:

根据指定图书个数,逐个输入图书信息;
逐个显示图书表中所有图书的相关信息;
能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;
根据指定的待出库的旧图书的位置,将该图书从图书表中删除;
能统计表中图书个数;
实现图书信息表的图书去重;
实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;
图书信息表按指定条件进行批量修改;
利用快速排序按照图书价格降序排序;
实现最贵图书的查找;

根据指定图书个数,逐个输入图书信息;
逐个显示图书表中所有图书的相关信息;
能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;
根据指定的待出库的旧图书的位置,将该图书从图书表中删除;
能统计表中图书个数;
实现图书信息表的图书去重;
实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;
图书信息表按指定条件进行批量修改;
利用快速排序按照图书价格降序排序;
实现最贵图书的查找;

二、实验目标

  1. 了解并掌握数据结构和算法设计的方法,具备初步的独立分析和设计能力
  2. 初步掌握软件开发过程的问题分析分析、系统设计、程序编码和测试等基本方法和技能。
  3. 提高综合运用所学的理论知识和方法,独立分析和解决问题的能力。
  4. 训练用系统的观点和软件开发一般规范进行软件的开发,培养软件工作着所具备的科学工作方法和作风。

三、数据结构方法选择

图书信息的定义:

typedef struct {

    char no[8];   //8位书号

    char name[20]; //书名

    int price;     //价格

}Book;

顺序表的定义:

typedef  struct {

  Book  *elem;     //指向数据元素的基地址

  int  length;       //线性表的当前长度                                                           

 }SqList;

链表的定义:

typedef struct LNode{

     Book   data;       //数据域

     struct LNode  *next;   //指针域

}LNode,*LinkList;

 

四、数据结构方法选择

1、采用顺序表

2、采用链表

由于链表便于增删,所以这里我选择方法2。

五、实验思路

类包括具体方法和参数

//类实现功能的操作
class LibraryMS {
 
private:
 
    LNode* first;  //链表头结点
 
public:
 
    //无参默认构造函数构造函数
    LibraryMS(){   
        first = new LNode();    
        first->next = NULL;   //创建头结点
    }
 
    //有参默认构造函数构造函数
    LibraryMS(Book book[], int n); 
 
    //逐个显示图书表中所有图书相关信息
    void bookPrint();  
 
    //能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置
    void bookInsert(Book book, int n); 
 
    //根据指定的待出库的旧图书的位置,将该图书从图书表中删除;
    Book bookDelete(char no[]); 
 
    //能统计表中图书个数;
    int bookNumber();
 
    //实现图书信息表的图书去重;
    void bookSameDelete();
 
    //实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;
    void bookLoveFind(char name[]);
 
    //图书信息表按指定条件进行批量修改;
    void bookModify();
 
    //利用快速排序按照图书价格降序排序;
    void bookSort();
 
    //实现最贵图书的查找;
    void bookExpensive();
 
};

图书数据的初始化

Book book[50]; //存储初始化图书信息
    bool tag = true; //用于判断是否结束输入
    char ch;  //用于判断是否还输入下一个
    int i = 0,length=0; //length为初始化长度
    cout << "请输入书号,书名和价格(中间以空格符隔开)" << endl;
    while (tag) {  //
        cin >> book[i].no;
        cin >> book[i].name;
        cin >> book[i++].price;
        length++; //图书信息+1
        cout << "是否还输入下一个Y/N" << endl;
        cin >> ch;
        if (ch != 'Y' && ch != 'y')tag = false;
    }

六、源代码链接

https://blog.csdn.net/m0_53276696/article/details/118076003

你可能感兴趣的:(数据结构课程设计一——图书信息管理系统的设计与实现)