C++实现图书信息管理系统

这篇文章主要为大家详细介绍了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.效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。

以上就是C++实现图书信息管理系统的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » C语言