如何使用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;count ISBN == i)//按编号查找图书 { cout<<"图书的编号为:"< ISBN<<" 书名为:"< name<<" 定价为:"< price< next; } return 0;}//按照书名查找int Link::find_node(string n){ Node *ptemp = head->next; for(int count=0;count name == n) { cout<<"图书的编号为:"< ISBN<<" 书名为:"< name<<" 定价为:"< price< next; } return 0;}//按照价格查找int Link::find_node(float p){ Node *ptemp = head->next; for(int count=0;count price == 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;i next; } 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;k ISBN<<" 书名为:"< 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++实现图书信息管理系统"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
图书
排序
价格
功能
结果
书名
元素
定价
选择
位置
信息
管理系统
系统
管理
数量
错误
输入
C++
个位
属性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库窗体名称拼写出错
魔兽世界服务器比例在哪里查询
人大金仓数据库的配置文件路径
服务器正常启动连接显示器黑屏
亦云网络安全科技馆
幼儿网络安全图画
荔枝做菜软件开发
招聘 软件开发
广东工控软件开发哪家正规
2015自考数据库真题
怎么王者现在显示服务器未响应
银行流水数据如何导入数据库
三星手机无法联接到服务器
传奇数据库真魂腰带代码
江西省网络安全人员名单
mysql数据库应用项目
网络安全威胁有哪些类型
嵌入式软件与软件开发
应用怎么调取数据库数据
软件开发ccb
跨网段访问服务器
淘宝代理服务器犯法吗
数据库导入好慢
三国志幻想大陆b站服务器列表
rss网络实时数据库
唐山oa办公系统网络技术
二道区现代化网络安全质量服务
网络安全设备的所知所想
ctf网络安全应用编程
浙江省网络安全人才培养