千家信息网

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

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,小编给大家分享一下如何使用C++实现图书信息管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下1.题目:类型有:编号:ISBN书名:name价格:price完成如下的
千家信息网最后更新 2025年01月19日如何使用C++实现图书信息管理系统

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

具体内容如下

1.题目:

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

完成如下的功能:

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

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

3.代码实现:

#include #include 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>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;countISBN == i)//按编号查找图书            {                cout<<"图书的编号为:"<ISBN<<"     书名为:"<name<<"       定价为:"<price<next;        }        return 0;}//按照书名查找int Link::find_node(string n){    Node *ptemp = head->next;    for(int count=0;countname == n)            {                cout<<"图书的编号为:"<ISBN<<"     书名为:"<name<<"       定价为:"<price<next;        }        return 0;}//按照价格查找int Link::find_node(float p){    Node *ptemp = head->next;    for(int count=0;countprice == p)            {                cout<<"图书的编号为:"<ISBN<<"     书名为:"<name<<"       定价为:"<price<next;        }    return 0;}//插入int Link::insert_node(int pos){    if((pos > number)||(pos<0))    {        cout<<"插入位置错误!"<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<<"删除位置错误!"<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<<"要修改的位置错误!"<next;        for(int i=0;inext;        }        cout<<"要修改编号请输入0,要修改书名请输入1,要修改价格请输入2:";        int k;        cin>>k;        switch(k)        {        case 0:            cout<<"请输入要修改的编号:";            cin>>aa;            ptemp->ISBN = aa;            cout<>bb;            ptemp->name = bb;            cout<>cc;            ptemp->price = cc;            cout<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;kISBN<<"       书名为:"<name<<"       价格为:"<price<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<>b;        if(this->find_node(b))        {            cout<>c;        if(this->find_node(c))        {            cout<>d;        if(this->insert_node(d))        {            cout<<"插入操作的结果为:"<print();//打印插入结果        }        break;    case 4:        cout<<"请输入要删除的位置:";        cin>>d;        if(this->delete_node(d))        {            cout<<"删除操作的结果为:"<print();//打印插入结果        }        break;    case 5:        cout<<"请输入要修改的图书的位置:";        cin>>d;        if(this->mod_node(d))        {            cout<<"修改后的结果为:"<print();        }        break;    case 6:        cout<<"按照图书的编号进行排序的结果为:"<sort_node_ISBN();        break;    case 7:        cout<<"按照图书的价格进行排序的结果为:"<sort_node_price();        break;    case 8:        cout<<"当前馆内的图书数量为:";        cout<get_node();        break;    }}int main(){    int sele=1;//功能选择    int i;//最开始的数量    cout<<"请输入你要输入的图书的数量:";    cin>>i;    Link l(i);    l.create_node();    cout<>sele;        cout<<"请输入要选择的功能:";    }    cout<<"-----------已退出图书管理系统------------";    return 0;}

4.效果

看完了这篇文章,相信你对"如何使用C++实现图书信息管理系统"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0