iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >如何使用C++实现图书信息管理系统
  • 472
分享到

如何使用C++实现图书信息管理系统

2023-06-29 12:06:17 472人浏览 独家记忆
摘要

小编给大家分享一下如何使用c++实现图书信息管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下1.题目:类型有:编号:ISBN书名:name价格:price完成如下的功能:①录入:从键盘输入(或从文件读入)

小编给大家分享一下如何使用c++实现图书信息管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

具体内容如下

1.题目:

类型有:编号:ISBN
书名:name
价格:price

完成如下的功能:

①录入:从键盘输入(或从文件读入)图书(或学生)信息表的各个数据元素;
②查找:可按不同属性查找所有等于给定值的数据元素,找到并返回它们在表中的位序;
③插入:在表中第i(1=<i<=N+1)个位置插入一个新元素;
④删除:可删除表中第i(1=<i<=N)个位置上的元素;
⑤输出:依次打印表中的各个元素的值;
排序:可按某属性对表中的元素进行排序。(可选)

2.实现方式:链表(带头节点)

3.代码实现:

#include <iOStream>#include <string>using namespace std;struct node{    int ISBN;//编号    string name;//书名    float price;//定价    Node *next;};//操作类class Link{private:    int number;//图书数量    Node *head;public:    Link(int a):number(a){}    ~Link(){delete head;}    void create_node();//创建    void select();//功能选择    int find_node(int i);//按照编号查找    int find_node(string n);//按照书名查找    int find_node(float p);//按照价格查找    int insert_node(int pos);//插入    int delete_node(int d);//删除    int mod_node(int d);//修改    void sort_node_ISBN();//按照编号排序    void sort_node_price();//按照价格排序    int get_node();//计数总数    void print();//打印操作};void Link::create_node(){    Node *pnew;    head = new Node;    //cout<<"请按顺序输入图书的ISBN,书名,定价";    head->ISBN = 0;    head->name = 'n';    head->price = 0;    head->next = NULL;    Node *ptemp = head;    for(int i=0;i<number;i++)    {        pnew = new Node;        cout<<endl;        cout<<"请按顺序输入图书的ISBN,书名,定价:";        cin>>pnew->ISBN>>pnew->name>>pnew->price;        pnew->next = NULL;        ptemp->next = pnew;        ptemp = pnew;    }}//按编号查找int Link::find_node(int i){    Node *ptemp = head->next;    for(int count = 0;count<number;count++)        {            if(ptemp->ISBN == i)//按编号查找图书            {                cout<<"图书的编号为:"<<ptemp->ISBN<<"     书名为:"<<ptemp->name<<"       定价为:"<<ptemp->price<<endl;                return 1;            }            ptemp = ptemp->next;        }        return 0;}//按照书名查找int Link::find_node(string n){    Node *ptemp = head->next;    for(int count=0;count<number;count++)        {            if(ptemp->name == n)            {                cout<<"图书的编号为:"<<ptemp->ISBN<<"     书名为:"<<ptemp->name<<"       定价为:"<<ptemp->price<<endl;                return 1;            }            ptemp = ptemp->next;        }        return 0;}//按照价格查找int Link::find_node(float p){    Node *ptemp = head->next;    for(int count=0;count<number;count++)        {            if(ptemp->price == p)            {                cout<<"图书的编号为:"<<ptemp->ISBN<<"     书名为:"<<ptemp->name<<"       定价为:"<<ptemp->price<<endl;                return 1;            }            ptemp = ptemp->next;        }    return 0;}//插入int Link::insert_node(int pos){    if((pos > number)||(pos<0))    {        cout<<"插入位置错误!"<<endl;        return 0;    }    else    {        Node *ptemp = head,*pnew;        for(int i=0;i<pos-1;i++)        {            ptemp = ptemp->next;        }        pnew = new Node;        cout<<"请按顺序输入图书的ISBN,书名,价格:";        cin>>pnew->ISBN>>pnew->name>>pnew->price;        pnew->next = ptemp->next;        ptemp->next = pnew;        number += 1;    }    return 1;}//删除int Link::delete_node(int d){    if((d > number)||(d<0))    {        cout<<"删除位置错误!"<<endl;        return 0;    }    else    {        Node *ptemp = head,*pdelete;        for(int i=0;i<d-1;i++)        {            ptemp = ptemp->next;        }        pdelete = ptemp->next;        ptemp->next = pdelete->next;        delete pdelete;        number -= 1;    }    return 1;}//修改int Link::mod_node(int d){    int aa;    string bb;    float cc;    if((d > number)||(d<0))    {        cout<<"要修改的位置错误!"<<endl;        return 0;    }    else    {        Node *ptemp = head->next;        for(int i=0;i<d-1;i++)        {            ptemp = ptemp->next;        }        cout<<"要修改编号请输入0,要修改书名请输入1,要修改价格请输入2:";        int k;        cin>>k;        switch(k)        {        case 0:            cout<<"请输入要修改的编号:";            cin>>aa;            ptemp->ISBN = aa;            cout<<endl;            break;        case 1:            cout<<"请输入要更改的书名:";            cin>>bb;            ptemp->name = bb;            cout<<endl;            break;        case 2:            cout<<"请输入要更改的价格:";            cin>>cc;            ptemp->price = cc;            cout<<endl;            break;        }    }    return 1;}//按编号排序void Link::sort_node_ISBN(){    Node *ptemp = head->next,*pre;    Node *pr = ptemp->next;    ptemp->next = NULL;    ptemp = pr;    while(ptemp != NULL)    {        pr = ptemp->next;        pre = head;        while(pre->next != NULL && pre->next->ISBN > ptemp->ISBN)        {            pre = pre->next;        }        ptemp->next = pre->next;        pre->next = ptemp;        ptemp = pr;    }    Link::print();}//按照价格排序void Link::sort_node_price(){    Node *ptemp = head->next,*pre;    Node *pr = ptemp->next;    ptemp->next = NULL;    ptemp = pr;    while(ptemp != NULL)    {        pr = ptemp->next;        pre = head;        while(pre->next != NULL && pre->next->price > ptemp->price)        {            pre = pre->next;        }        ptemp->next = pre->next;        pre->next = ptemp;        ptemp = pr;    }     Link::print();}//获取长度int Link::get_node(){    return number;}//打印输出void Link::print(){    Node *ptemp = head->next;    for(int k=0;k<number;k++)    {        cout<<"图书编号:"<<ptemp->ISBN<<"       书名为:"<<ptemp->name<<"       价格为:"<<ptemp->price<<endl;        ptemp = ptemp->next;    }}//功能函数void Link::select(){    int a;//ISBN    string b;//书名    float c;//定价    int d;//位置    int p;//选择功能    cin>>p;    switch(p)    {    case 0:        cout<<"请输入图书的编号";        cin>>a;        if(this->find_node(a))        {            cout<<endl;        }        else            cout<<"该图书不存在!"<<endl;        break;    case 1:        cout<<"请输入图书的名字:";        cin>>b;        if(this->find_node(b))        {            cout<<endl;        }        else            cout<<"该图书不存在!"<<endl;        break;    case 2:        cout<<"请输入图书的价格:";        cin>>c;        if(this->find_node(c))        {            cout<<endl;        }        else            cout<<"该图书不存在!"<<endl;        break;    case 3:        cout<<"请输入要插入的位置:";        cin>>d;        if(this->insert_node(d))        {            cout<<"插入操作的结果为:"<<endl;            this->print();//打印插入结果        }        break;    case 4:        cout<<"请输入要删除的位置:";        cin>>d;        if(this->delete_node(d))        {            cout<<"删除操作的结果为:"<<endl;            this->print();//打印插入结果        }        break;    case 5:        cout<<"请输入要修改的图书的位置:";        cin>>d;        if(this->mod_node(d))        {            cout<<"修改后的结果为:"<<endl;            this->print();        }        break;    case 6:        cout<<"按照图书的编号进行排序的结果为:"<<endl;        this->sort_node_ISBN();        break;    case 7:        cout<<"按照图书的价格进行排序的结果为:"<<endl;        this->sort_node_price();        break;    case 8:        cout<<"当前馆内的图书数量为:";        cout<<this->get_node();        break;    }}int main(){    int sele=1;//功能选择    int i;//最开始的数量    cout<<"请输入你要输入的图书的数量:";    cin>>i;    Link l(i);    l.create_node();    cout<<endl;    cout<<"0---------------------为查找(按编号)"<<endl;    cout<<"1---------------------为查找(按书名)"<<endl;    cout<<"2---------------------为查找(按定价)"<<endl;    cout<<"3---------------------为插入"<<endl;    cout<<"4---------------------为删除"<<endl;    cout<<"5---------------------为修改"<<endl;    cout<<"6---------------------为按照图书编号排序"<<endl;    cout<<"7---------------------为按照图书的价格排序"<<endl;    cout<<"8---------------------为显示当前馆内的图书总数"<<endl;    cout<<"请输入要选择的功能:";    while(sele == 1)    {        l.select();        cout<<"是否要退出管理系统?(输入0退出、输入1继续)";        cin>>sele;        cout<<"请输入要选择的功能:";    }    cout<<"-----------已退出图书管理系统------------";    return 0;}

4.效果

如何使用C++实现图书信息管理系统

看完了这篇文章,相信你对“如何使用C++实现图书信息管理系统”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网其他教程频道,感谢各位的阅读!

--结束END--

本文标题: 如何使用C++实现图书信息管理系统

本文链接: https://www.lsjlt.com/news/324604.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用C++实现图书信息管理系统
    小编给大家分享一下如何使用C++实现图书信息管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下1.题目:类型有:编号:ISBN书名:name价格:price完成如下的功能:①录入:从键盘输入(或从文件读入)...
    99+
    2023-06-29
  • C++实现图书信息管理系统
    本文实例为大家分享了C++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 1.题目: 类型有:编号:ISBN书名:name价格:price 完成如下的功能: ①录入:从键盘...
    99+
    2024-04-02
  • C/C++实现图书信息管理系统
    本文实例为大家分享了c/c++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 程序流程图 源代码 #include <stdio.h> #include ...
    99+
    2024-04-02
  • C++利用链表如何实现图书信息管理系统
    这篇文章将为大家详细讲解有关C++利用链表如何实现图书信息管理系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++利用链表实现一个简单的图书信息管理系统,具体内容如下(1)图书信息包括I...
    99+
    2023-06-25
  • C++利用链表实现图书信息管理系统
    C++利用链表实现一个简单的图书信息管理系统,供大家参考,具体内容如下 (1)图书信息包括ISBN号、书名、作者名、价格和数量等; (2)系统的主要功能包括:图书信息的创建、输出图书...
    99+
    2024-04-02
  • 如何使用C++实现信息管理系统
    小编给大家分享一下如何使用C++实现信息管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下有一个信息管理系统,要求检查每一个登录系统的用户(Use...
    99+
    2023-06-29
  • C++如何实现图书管理系统
    本文小编为大家详细介绍“C++如何实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。功能:首先是注册,登录,找回密码和修改密码...
    99+
    2023-06-29
  • C#如何实现图书管理系统
    本文小编为大家详细介绍“C#如何实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#如何实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、设计目的通过模拟图书管理系统,实现以下功能...
    99+
    2023-06-29
  • C++如何使用链表实现图书管理系统
    这篇文章主要为大家展示了“C++如何使用链表实现图书管理系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++如何使用链表实现图书管理系统”这篇文章吧。具体内容如下一、程序实现功能录入书籍:将...
    99+
    2023-06-29
  • 如何使用C++编写实现图书管理系统
    这篇文章将为大家详细讲解有关如何使用C++编写实现图书管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下为图书管理人员编写一个图书管理系统,图书管理系统的设计主要是实现对图书的管理和相关操...
    99+
    2023-06-29
  • C#实现图书管理系统
    本文为大家分享了C#实现图书管理系统课程设计,供大家参考,具体内容如下 一、设计目的 通过模拟图书管理系统,实现以下功能学生账号的注册学生对馆藏图书状况的查询学生借书,还书状态的查询...
    99+
    2024-04-02
  • 如何实现C++版图书管理系统
    这篇文章主要介绍了如何实现C++版图书管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下使用介绍图书管理系统源码由两部分组成,第一部分book.h头文件,第二...
    99+
    2023-06-29
  • 如何使用Java实现图书管理系统
    本篇内容介绍了“如何使用Java实现图书管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 功能介绍1.1 使用介绍1.输入姓名2....
    99+
    2023-07-02
  • C++使用链表实现图书管理系统
    本文实例为大家分享了vue + element ui实现锚点定位的具体代码,供大家参考,具体内容如下 一、程序实现功能 1.录入书籍:将书籍录入图书管理系统 2.浏览书籍:查看图书管...
    99+
    2024-04-02
  • C++实现信息管理系统
    本文实例为大家分享了C++实现信息管理系统的具体代码,供大家参考,具体内容如下 有一个信息管理系统,要求检查每一个登录系统的用户(User)的用户名和口令,系统检查合格以后方可登录系...
    99+
    2024-04-02
  • C语言如何实现图书管理系统
    这篇文章将为大家详细讲解有关C语言如何实现图书管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。主要内容        开发一个图书信息管理系统,图书信息包括:...
    99+
    2023-06-28
  • C++如何实现小型图书管理系统
    这篇文章给大家分享的是有关C++如何实现小型图书管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下因为课程设计的原因,需要实现一个小型图书管理系统包含功能:问题描述:设计一个系统,对图书信息进行管...
    99+
    2023-06-29
  • 如何使用C++实现教职工信息管理系统
    这篇文章主要介绍如何使用C++实现教职工信息管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一.问题描述一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法如下:经理:...
    99+
    2023-06-29
  • C++实现图书馆管理系统
    本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 一、实验名称 图书馆管理系统 二、实验目的 利用C++语言设计开发一个小型的图书馆管理系统模拟程序,...
    99+
    2024-04-02
  • 如何用C++实现简单图书馆管理系统
    这篇文章主要介绍“如何用C++实现简单图书馆管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用C++实现简单图书馆管理系统”文章能帮助大家解决问题。功能如下:1,添加书籍2,删除书籍(可删...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作