如何使用C++实现图书信息管理系统(C++,开发技术)

时间:2024-05-07 00:15:36 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

具体内容如下

1.题目:

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

完成如下的功能:

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

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

3.代码实现:

#include<iostream>#include<string>usingnamespacestd;structNode{intISBN;//编号stringname;//书名floatprice;//定价Node*next;};//操作类classLink{private:intnumber;//图书数量Node*head;public:Link(inta):number(a){}~Link(){deletehead;}voidcreate_node();//创建voidselect();//功能选择intfind_node(inti);//按照编号查找intfind_node(stringn);//按照书名查找intfind_node(floatp);//按照价格查找intinsert_node(intpos);//插入intdelete_node(intd);//删除intmod_node(intd);//修改voidsort_node_ISBN();//按照编号排序voidsort_node_price();//按照价格排序intget_node();//计数总数voidprint();//打印操作};voidLink::create_node(){Node*pnew;head=newNode;//cout<<"请按顺序输入图书的ISBN,书名,定价";head->ISBN=0;head->name='n';head->price=0;head->next=NULL;Node*ptemp=head;for(inti=0;i<number;i++){pnew=newNode;cout<<endl;cout<<"请按顺序输入图书的ISBN,书名,定价:";cin>>pnew->ISBN>>pnew->name>>pnew->price;pnew->next=NULL;ptemp->next=pnew;ptemp=pnew;}}//按编号查找intLink::find_node(inti){Node*ptemp=head->next;for(intcount=0;count<number;count++){if(ptemp->ISBN==i)//按编号查找图书{cout<<"图书的编号为:"<<ptemp->ISBN<<"书名为:"<<ptemp->name<<"定价为:"<<ptemp->price<<endl;return1;}ptemp=ptemp->next;}return0;}//按照书名查找intLink::find_node(stringn){Node*ptemp=head->next;for(intcount=0;count<number;count++){if(ptemp->name==n){cout<<"图书的编号为:"<<ptemp->ISBN<<"书名为:"<<ptemp->name<<"定价为:"<<ptemp->price<<endl;return1;}ptemp=ptemp->next;}return0;}//按照价格查找intLink::find_node(floatp){Node*ptemp=head->next;for(intcount=0;count<number;count++){if(ptemp->price==p){cout<<"图书的编号为:"<<ptemp->ISBN<<"书名为:"<<ptemp->name<<"定价为:"<<ptemp->price<<endl;return1;}ptemp=ptemp->next;}return0;}//插入intLink::insert_node(intpos){if((pos>number)||(pos<0)){cout<<"插入位置错误!"<<endl;return0;}else{Node*ptemp=head,*pnew;for(inti=0;i<pos-1;i++){ptemp=ptemp->next;}pnew=newNode;cout<<"请按顺序输入图书的ISBN,书名,价格:";cin>>pnew->ISBN>>pnew->name>>pnew->price;pnew->next=ptemp->next;ptemp->next=pnew;number+=1;}return1;}//删除intLink::delete_node(intd){if((d>number)||(d<0)){cout<<"删除位置错误!"<<endl;return0;}else{Node*ptemp=head,*pdelete;for(inti=0;i<d-1;i++){ptemp=ptemp->next;}pdelete=ptemp->next;ptemp->next=pdelete->next;deletepdelete;number-=1;}return1;}//修改intLink::mod_node(intd){intaa;stringbb;floatcc;if((d>number)||(d<0)){cout<<"要修改的位置错误!"<<endl;return0;}else{Node*ptemp=head->next;for(inti=0;i<d-1;i++){ptemp=ptemp->next;}cout<<"要修改编号请输入0,要修改书名请输入1,要修改价格请输入2:";intk;cin>>k;switch(k){case0:cout<<"请输入要修改的编号:";cin>>aa;ptemp->ISBN=aa;cout<<endl;break;case1:cout<<"请输入要更改的书名:";cin>>bb;ptemp->name=bb;cout<<endl;break;case2:cout<<"请输入要更改的价格:";cin>>cc;ptemp->price=cc;cout<<endl;break;}}return1;}//按编号排序voidLink::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();}//按照价格排序voidLink::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();}//获取长度intLink::get_node(){returnnumber;}//打印输出voidLink::print(){Node*ptemp=head->next;for(intk=0;k<number;k++){cout<<"图书编号:"<<ptemp->ISBN<<"书名为:"<<ptemp->name<<"价格为:"<<ptemp->price<<endl;ptemp=ptemp->next;}}//功能函数voidLink::select(){inta;//ISBNstringb;//书名floatc;//定价intd;//位置intp;//选择功能cin>>p;switch(p){case0:cout<<"请输入图书的编号";cin>>a;if(this->find_node(a)){cout<<endl;}elsecout<<"该图书不存在!"<<endl;break;case1:cout<<"请输入图书的名字:";cin>>b;if(this->find_node(b)){cout<<endl;}elsecout<<"该图书不存在!"<<endl;break;case2:cout<<"请输入图书的价格:";cin>>c;if(this->find_node(c)){cout<<endl;}elsecout<<"该图书不存在!"<<endl;break;case3:cout<<"请输入要插入的位置:";cin>>d;if(this->insert_node(d)){cout<<"插入操作的结果为:"<<endl;this->print();//打印插入结果}break;case4:cout<<"请输入要删除的位置:";cin>>d;if(this->delete_node(d)){cout<<"删除操作的结果为:"<<endl;this->print();//打印插入结果}break;case5:cout<<"请输入要修改的图书的位置:";cin>>d;if(this->mod_node(d)){cout<<"修改后的结果为:"<<endl;this->print();}break;case6:cout<<"按照图书的编号进行排序的结果为:"<<endl;this->sort_node_ISBN();break;case7:cout<<"按照图书的价格进行排序的结果为:"<<endl;this->sort_node_price();break;case8:cout<<"当前馆内的图书数量为:";cout<<this->get_node();break;}}intmain(){intsele=1;//功能选择inti;//最开始的数量cout<<"请输入你要输入的图书的数量:";cin>>i;Linkl(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<<"-----------已退出图书管理系统------------";return0;}

4.效果

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

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何使用C++实现图书信息管理系统的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:使用SpringSecurity设置角色和权限的注意事项有哪些下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18