手把手教你用c++做图书管理系统嘿,抬头!

添加功能:主要完成图书信息的添加,要求ISBN号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加。

查询功能:可按书名、ISBN号、作者、出版社进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”。

修改功能:可根据查询结果对相应的记录进行修改,修改时注意ISBN号的唯一性。

删除功能:主要完成图书信息的删除。输入要删除的ISBN号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。

(3)统计功能。输出当前书库中所有图书的总数及详细信息;可按书的价格、库存量、作者、出版社进行统计,输出统计信息时,要按从大到小进行排序。

(4)图书存盘:将当前程序中的图书信息存入文件中。

(5)读出信息:从文件中将图书信息读入程序。

这个简单,就这几个属性,直接上代码

classBook{public:Book();~Book();stringname;intISBN;intprice;//价格stringwriter;//作者stringpublishingHouse;//出版社intinStock;//库存};就把他放在Book.h头文件吧

定义bool类函数来判断用户输入的密码是否正确,随便写一字符串就好

intisExist(intisbn,vector&b){for(auto&i:b){//遍历这个Book类vector,判断ISBN是否唯一if(i.ISBN==isbn)return-1;}return0;}然后写添加书籍名称的函数

voidaddBookName(vector&b,Book&c){stringname;cout<<"请输入书名"<>name;c.name=name;}添加ISBN的函数,在其中插入判断ISBN是否唯一的函数

voidaddBookIsbn(vector&b,Book&c){intisbn;cout<<"请输入ISBN号"<>isbn;if(isExist(isbn,b)==-1)cout<<"ISBN号重复,请重新输入"<

voidaddBookWriter(vector&b,Book&c){stringwriter;cout<<"请输入作者"<>writer;c.writer=writer;}添加出版社的函数

voidaddBookPublishingHouse(vector&b,Book&c){stringchubanshe;cout<<"请输入出版社"<>chubanshe;c.publishingHouse=chubanshe;}添加库存的函数

voidaddBookInStock(vector&b,Book&c){intkucun;cout<<"请输入库存"<>kucun;c.inStock=kucun;}添加价格的函数

voidaddBookPrice(vector&b,Book&c){intjiage;cout<<"请输入价格"<>jiage;c.price=jiage;}最后一起调用,做添加图书的总函数

查找图书肯定要按多种条件查找先做一个菜单

voidshowMenu4(){cout<<"*************************************"<

接下来需要考虑的问题是书籍信息重复问题书名会重,一个作者会写好多本书,出版社也肯定不会只出一本书考虑到上述情况,查找结果可能不止一本书

还是先做查找书名的函数,参数传两个Book类的vector

voidfindBookName(vector&b,vector&c){stringname;cout<<"请输入您要查找的书籍名称"<>name;for(auto&i:b){if(i.name==name){c.push_back(i);}}}然后是查找作者的函数

voidfindBookWriter(vector&b,vector&c){stringwriter;cout<<"请输入您要查找的书籍作者"<>writer;for(auto&i:b){if(i.writer==writer){c.push_back(i);}}}还有查找出版社的函数

voidfindBookPublishingHouse(vector&b,vector&c){stringchubanshe;cout<<"请输入您要查找的书籍出版社"<>chubanshe;for(auto&i:b){if(i.publishingHouse==chubanshe){c.push_back(i);}}}最后是查找ISBN的函数,ISBN肯定是唯一的所以这种检索方式是最准确的但是为方便后续操作依旧传两个vector

voidfindBookIsbn(vector&b,vector&c){cout<<"请输入您要查找的书籍ISBN"<>ISBN;for(auto&i:b){if(i.ISBN==ISBN){c.push_back(i);Book::show(i);}}}查找之后肯定要把图书信息显示出来供使用者确认做一个展示图书信息的函数我写到了Book类里

voidBook::show(Bookb){cout<<"书名:"<

修改图书也简单,跟添加图书差不多吧无非就是修改单个信息肯定是要先找到图书,再去修改,所以函数中传一个vector和一本书就好

先做一个菜单

voidshowMenu5(){cout<<"*************************************"<

然后还是先做修改单个信息的函数修改书名的

voidmodifyBookName(vector&b,Book&c){stringname;cout<<"请输入修改后书名"<>name;inti=0;for(;i

voidmodifyBookIsbn(vector&b,Book&c){intisbn;cout<<"请输入修改后ISBN号"<>isbn;if(isExist(isbn,b)==-1)//判断ISBN是否重复{cout<<"ISBN重复,修改失败"<

voidmodifyBookWriter(vector&b,Book&c){stringzuozhe;cout<<"请输入修改后作者"<>zuozhe;inti=0;for(;i

voidmodifyBookChubanshe(vector&b,Book&c){stringchubanshe;cout<<"请输入修改后出版社"<>chubanshe;inti=0;for(;i

voidmodifyBookKucun(vector&b,Book&c){intkucun;cout<<"请输入修改后库存"<>kucun;inti=0;for(;i

voidmodifyBookJiage(vector&b,Book&c){intjiage;cout<<"请输入修改后价格"<>jiage;inti=0;for(;i

voidmodifyBookInformation(vector&b,Book&c){while(true){showMenu5();charchoose5;cin>>choose5;switch(choose5){case'1':{modifyBookName(b,c);break;}case'2':{modifyBookIsbn(b,c);break;}case'3':{modifyBookWriter(b,c);break;}case'4':{modifyBookChubanshe(b,c);break;}case'5':{modifyBookJiage(b,c);break;}case'6':{modifyBookKucun(b,c);break;}case'0':{cout<<"退出修改系统"<

同样也是先查找书籍再删除参数传一个vector和一本书

我把这个函数写到了Book类中

做一个修改书目的菜单函数,没什么要求(好看就行)

voidshowMenu3(){cout<<"*************************************"<

voidmodifyBook(vector&b,Book&c){showMenu3();charchoose4;cin>>choose4;switch(choose4){case'0'://退出{cout<<"退出修改系统"<

voidshowMenu2(){cout<<"*************************************"<

销售图书无非就是先检索出来判断库存,然后输出

直接上代码

voidbuyBook(vector&b){Bookmai=findBook(b);if(mai.ISBN!=-1){intnumber;cout<<"请输入要购买的数量"<>number;if(number>mai.inStock)//判断库存够不够{cout<<"库存不足,购买失败"<

voidshowMenu6(){cout<<"*********************************************"<

因为是用vector存储的书籍所以排序也是很容易操作直接用sort方法就可以故只需要自己定义比较函数

先定义比较ISBN的比较函数

boolisbnCmp(constBook&a,constBook&b){returna.ISBN>b.ISBN;}接着是库存比较函数

boolinStockCmp(constBook&a,constBook&b){if(a.inStock==b.inStock)returna.ISBN>b.ISBN;//库存相等的时候按ISBN排序returna.inStock>b.inStock;}然后是价格比较函数

boolpriceCmp(constBook&a,constBook&b){if(a.price==b.price)returna.ISBN>b.ISBN;//价格相等的时候按ISBN排序returna.price>b.price;}最后封装好统计函数

voidtongji(vector&b){showMenu6();charchoose6;cin>>choose6;switch(choose6){case'0'://退出{cout<<"退出统计系统"<

open函数要写打开模式

写入模式ios::out读取模式ios::in

具体操作方法如下保存Book类vector信息代码

接着先写一个类,就叫User叭

classUser{public:User(){}~User(){}stringuserName;stringpassword;};然后开始写注册函数当然也要判断用户名是否唯一

判断用户名是否唯一的函数代码

既然是存储用户信息的vector,当然也要保存在文件中同样加一个宏定义#defineFILENAME2"users.txt"

然后上代码

intmain(){vectorlib;vectorusers;fetchUser(users);fetchBook(lib);selectOption(lib,users);return0;}

THE END
1.C++图书管理系统图书管理系统c++C++图书管理系统 目录 实现功能 用户管理 图书管理 借阅与归还 未归还图书 部分效果图 结构体 Book 结构体 User 结构体 源代码 编译时在连接器命令行加入 完整代码 实现功能 用户管理 添加用户:输入用户ID、用户名和密码,将新用户添加到系统中。 删除用户:根据用户ID删除指定用户。https://blog.csdn.net/w11111xxxl/article/details/140690286
2.C++实现简易图书馆管理系统C语言本文实例为大家分享了C++实现简易图书馆管理系统的具体代码,供大家参考,具体内容如下 思路 在本程序中共有四个类: book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的get()和set()方法。类图如下: library类:此类中有一个存放的书的数组,并且可以对书进行,查询,借阅,归还,添加,等相关操作。类图如下:https://m.jb51.net/article/240545.htm
3.C++图书管理系统1、源代码# include<iostream>#include<iomanip># include<string># include<fstream>using namespace std;class bookpublic:void setall(int c,string n,string au,string pub,float p,string is);/对类屮的私有数据进行设置 void setcode(int t)code=t+l;void setname() cin?bookname;void setau() https://www.renrendoc.com/paper/162437730.html
4.c++图书信息管理系统(附源码).pdf学号 计算机实习报告 系 别:管理系 专 业:信息管理与信息系统专业 班 级:1043班 学生姓名:李优 指导教师:徐日 日 期:2012-09-03~2012-09-14 1需求分析 1.1 选题任务 图书借阅管理系统 (1) 编程工具 C++ (2) 要求 选题学生应具有端正的学习态度、正常的交流能力,应有积极主动、克服困难 的学习意识 (3)https://max.book118.com/html/2020/1029/5142213233003014.shtm
5.interlib图书馆管理系统:用c++编写的图书管理系统项目,有增删改c++图书馆管理系统 介绍 概况 运行时的截图 使用 1. 如果你想看成果 2. 如果你想继续开发 功能 登录 用户列表 图书列表 新增修改图书 借阅图书 借阅记录 修改密码 API 文件 variable.h listener.h util.h router.h page_[admin | user]_XXX.h https://toscode.mulanos.cn/aimaier4869/interlib-library-manager
6.图书管理系统(C语言实现)(全部代码)!直接上代码不解释,文章末尾有惊喜! typedef struct book{ char*name; int id; int count; int status; structbook *next; Book *head = NULL; intnbook =0; int main(){ welcome(); return0; }void welcome(){ printf("***欢迎使用图书管理系统***\n"); while(1){ printf("---\n"); printfhttps://zhuanlan.zhihu.com/p/93560677
7.图书管理系统C++代码图书管理系统C++代码#include <iostream> #include <iomanip> #include <string> #include <fstream> using namespace std; constintReader=100; constintMaxb=100; constintBor=5; class Student { private: inttag; intnumber; char name[10]; intborbook[Bor]; public: Student() { } char *getname(https://wenku.baidu.com/view/5d990842be1e650e52ea9998.html