C++实现图书管理系统课程设计

大一C++课设,没有用分文件的形式,只是把菜单页面单独分开了。用的是链表,都是一些基础的东西。另外采用了二维数组来保存读者借书信息,并将二维数组读入文件中。

菜单:#pragmaoncevoid_mainmenu();voidLoginmenu();voidRegistmenu();voidreadermenu();voidmangermenu();voidchangebookmenu();voidbrowsemenu();菜单文件`#include“menu.h”

void_mainmenu(){

voidRegistmenu(){printf(“注册页面\n”);printf(“**\n”);printf(“1.管理员注册\n”);printf(“\n”);printf(“2.用户注册\n”);printf(“\n”);printf(“3.返回\n”);printf(“\n”);printf(“4.退出\n”);printf(“**\n”);printf(“请按键选择:”);}

voidreadermenu(){printf(“用户页面\n”);printf(“**\n”);printf(“1.借书\n”);printf(“\n”);printf(“2.还书\n”);printf(“\n”);printf(“3.浏览图书信息\n”);printf(“\n”);printf(“4.查看已借阅书籍\n”);printf(“\n”);printf(“5.修改密码\n”);printf(“\n”);printf(“6.返回\n”);printf(“\n”);printf(“7.退出\n”);printf(“**\n”);printf(“请按键选择:”);}

voidmangermenu(){printf(“管理员页面\n”);printf(“**\n”);printf(“1.增加图书\n”);printf(“\n”);printf(“2.删除图书\n”);printf(“\n”);printf(“3.修改图书信息\n”);printf(“\n”);printf(“4.查看读者信息\n”);printf(“\n”);printf(“5.浏览图书信息\n”);printf(“\n”);printf(“6.修改密码\n”);printf(“\n”);printf(“7.返回\n”);printf(“\n”);printf(“8.退出\n”);printf(“**\n”);printf(“请按键选择:”);}

voidchangebookmenu(){printf(“\n\n”);printf(“\t\t\t\t*\n”);printf(“\t\t\t\t1.修改id号\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t2.修改图书名称\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t3.修改图书作者\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t4.修改出版社\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t5.修改图书数量\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t6.修改是否可借\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t7.返回\n”);printf(“\t\t\t\t*“);printf(“\n\n”);}

voidbrowsemenu(){printf(“\n\n\n\n”);printf(“\t\t\t\t*\n”);printf(“\t\t\t\t1.按id号浏览\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t2.按图书数量浏览\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t3.返回\n”);printf(“\t\t\t\t\n”);printf(“\t\t\t\t4.退出\n”);printf(“\t\t\t\t*\n”);printf(“请按键选择:”);}主程序#define_CRT_SECURE_NO_WARNINGS

usingnamespacestd;classUser{protected:characcount[20];charpassword[20];charspassword[20];

public:virtualvoidLogin()=0;virtualvoidRegist()=0;virtualvoidsave()=0;virtualvoidBrowseBook()=0;virtualvoidChangePassword()=0;virtualvoidFindPassword()=0;};

classReader:publicUser{private:intnumber;stringname;stringsex;intbooks;//借书数量intbookcnt;//借阅次数charbooklist[20][20];//储存借阅书籍classReader*next;

public:virtualvoidLogin();virtualvoidRegist();virtualvoidsave();virtualvoidBrowseBook();virtualvoidChangePassword();virtualvoidFindPassword();voidcreat();voidBrowseBorrowBook(Readerpp);voidBorrowBook(Readerpp);voidReturnBook(Reader*pp);

public:voidset_number(int_number){number=_number;};voidset_name(string_name){name=_name;};voidset_sex(string_sex){sex=_sex;};voidset_next(Readerp){next=p;};voidset_books(int_books){books=_books;};voidset_bookcnt(int_bookcnt){bookcnt=_bookcnt;};intget_bookcnt(){returnbookcnt;};intget_number(){returnnumber;};intget_books(){returnbooks;};Readerget_next(){returnnext;}stringget_name(){returnname;};stringget_sex(){returnsex;};charget_account(Readerp){returnp->account;};charget_password(Readerp){returnp->password;};charget_spassword(Readerp){returnp->spassword;};charget_booklist(Readerp,inti){returnp->booklist[i];};

};

classManger:publicUser{private:classManger*next;

public:

public:voidset_next(Mangerp){next=p;};Mangerget_next(){returnnext;};charget_account(Mangerp){returnp->account;};charget_password(Mangerp){returnp->password;};charget_spassword(Mangerp){returnp->spassword;};};

classBook{private:intid;intamount;intflag;stringbookname;stringauthor;stringpress;classBook*next;

};

classDBFile{public:voidcls();voidover();voidlogin();voiduseLogin(Userbase);voidregist();voiduseRegist(Userbase);voidusebrowsebook(Userbase);voidusesave(Userbase);voidusechangepassword(Userbase);voidusefindpassword(Userbase);voidfindpassword();intexist(characconut,intflag);void_main();voididsort();voidbookamountsort();voidshowidsort();voidshowbookamountsort();voidmangerfunction();voidreaderfunction(Readerrp);};Readerrhead=NULL;Reader_rend=NULL;Mangermhead=NULL,mend=NULL;Bookbhead=NULL;Bookbend=NULL;charcode[20]=“glysw”;

//读者类voidReader::Login(){intcnt=4;intflag=0;intk=0;inti;charc;DBFilefp=newDBFile;Readerp=rhead->get_next();charrpassword[2000];charraccount[2000];cout<<“\n\n\n\n\n\n\n”;printf(“请输入您的账户(按0退出):”);while(cin>>raccount){if(strcmp(raccount,“0”)==0){return;}if(strlen(raccount)<=16){break;}else{cout<<“请输入长度为1到16位的账户:”;}}

}

voidReader::Regist(){DBFilefp=newDBFile;Readerrp=newReader;charraccount[2000];charrpassword[2000];charrspassword[2000];charname[200];charsex[10];intnumber;

}voidReader::save(){Reader*rp=rhead->get_next();ofstreamf_reader(“reader.txt”,ios::out);while(rp){f_reader<account<<““<password<<““<spassword<<““<number<<““<name<<““<sex<<““<bookcnt<<““<books;for(inti=0;ibookcnt;i++){f_reader<<““<get_next();}f_reader.close();}

voidReader::BorrowBook(Readerpp){Bookbp=bhead->get_next();Book*_bp=newBook;_bp->show_book();charbookname[200];intamount;intflag=1;intsign=1;intexist=0;

//数据操作类voidDBFile::cls(){system(“cls”);}voidDBFile::over(){DBFile*dbp=newDBFile;dbp->cls();system(“color6”);inttime=6;printf(“\n\n\n\n\n\n\n\n\n”);printf(“\t\t\t\t\t\t感谢您的使用!!\n\n\n\n\n”);printf(“程序即将关闭…”);while(—time>=1){printf(“\r%d”,time);printf(“\b”);Sleep(1000);}dbp->cls();exit(0);}

voidDBFile::login(){Readerrp=newReader;Mangermp=newManger;intsign=0;while(1){cls();Loginmenu();charchoose=_getch();switch(choose){case‘1’:cls();useLogin(mp);break;case‘2’:cls();useLogin(rp);break;case‘3’:cls();sign=1;break;case‘4’:cls();over();break;default:cout<<“输入无效!!”;break;}if(sign){break;}}}voidDBFile::useLogin(Userbase){base->Login();}voidDBFile::regist(){Readerrp=newReader;Mangermp=newManger;intsign=0;while(1){cls();Registmenu();charchoose=_getch();switch(choose){case‘1’:cls();useRegist(mp);break;case‘2’:cls();useRegist(rp);break;case‘3’:cls();sign=1;break;case‘4’:cls();over();break;default:cout<<“无效输入!!”;break;}if(sign){break;}}}voidDBFile::usesave(Userbase){base->save();}voidDBFile::usechangepassword(User*base){base->ChangePassword();}

voidDBFile::useRegist(User*base){base->Regist();}

voidDBFile::usebrowsebook(User*base){base->BrowseBook();}

voidDBFile::usefindpassword(Userbase){base->FindPassword();}voidDBFile::findpassword(){printf(“\n\n\n\n\n\n”);printf(“\t\t\t\t\t**\n”);printf(“\t\t\t\t\t\n”);printf(“\t\t\t\t\t1.管理员找回密码\n”);printf(“\t\t\t\t\t\n”);printf(“\t\t\t\t\t2.用户找回密码\n”);printf(“\t\t\t\t\t\n”);printf(“\t\t\t\t\t3.返回\n”);printf(“\t\t\t\t\t\n”);printf(“\t\t\t\t\t**\n”);printf(“请按键选择:”);intchoose;intsign=0;Readerrp=newReader;Manger*mp=newManger;scanf(“%d”,&choose);while(1){cls();

}intDBFile::exist(characcount,intflag){if(flag==0){Readerp=rhead->get_next();while(p!=NULL){if(strcmp(account,p->get_account(p))==0){return1;}p=p->get_next();}}elseif(flag==1){Manger*p=mhead->get_next();while(p!=NULL){if(strcmp(account,p->get_account(p))==0){return1;}p=p->get_next();}}return0;}voidDBFile::_main(){while(1){cls();_mainmenu();charchoose=_getch();switch(choose){case‘1’:cls();login();break;case‘2’:cls();regist();break;case‘3’:cls();findpassword();break;case‘4’:cls();over();break;default:cout<<“无效输入!!”;break;}}}

}voidManger::BrowseBook(){DBFilefp=newDBFile;intsign=0;while(1){fp->cls();browsemenu();charchoose=_getch();switch(choose){case‘1’:fp->cls();fp->showidsort();break;case‘2’:fp->cls();fp->showbookamountsort();break;case‘3’:fp->cls();sign=1;break;case‘4’:fp->cls();fp->over();break;default:break;}if(sign){break;}}}voidManger::save(){Mangermp=mhead->get_next();ofstreamf_manger(“manger.txt”,ios::out);while(mp){f_manger<account<<““<password<<““<spassword<get_next();}f_manger.close();}voidManger::creat(){characcount[20];charpassword[20];charspassword[20];

}voidManger::AddBook(){DBFilefp=newDBFile;Bookp=bhead->get_next();inta;intid=0;intamount;charbookname[2000];do{fp->cls();cout<<“\n\n\n\n\n”;cout<<“请输入要添加书名id(按0退出):”;while(cin>>id){if(id==0){return;}if(id<0){cout<<“请输入正确格式的id号(按0退出):”;}else{break;}}intflag=0;while(p){if(p->get_id()==id){flag=1;break;}p=p->get_next();}if(flag){cout<<“已查出此书,请输入再次增加图书的数量:”;while(cin>>amount){if(amount<=199&&amount>0){inttemp=p->get_amount()+amount;p->set_amount(temp);cout<<“图书”<get_bookname()<<“添加成功!”;

}voidManger::ChangeBook(){DBFilefp=newDBFile;Bookp=bhead->get_next();intid;intamount;intflag=0;charbookname[200];charauthor[200];charpress[200];intexist=0;intsign=0;

}voidManger::DeleteBook(){Bookbp=bhead->get_next();charbookname[20];intflag=0;bp->show_book();cout<<“请输入您要删除图书的名称(按0退出):”;while(cin>>bookname){if(strcmp(bookname,“0”)==0){return;}while(bp){if(bp->get_bookname()==bookname){flag=1;break;}bp=bp->get_next();}if(flag==0){cout<<“未查询到此书!\n”<<“请重新输入(按0退出):”;bp=bhead->get_next();}else{break;}}DeleteReaderBook(bookname);bp=bhead->get_next();Bookpp=bhead;while(bp){//bp->next可能是链表的最后一个if(bp->get_bookname()==bookname){if(bp->get_next()==NULL){bhead->set_next(NULL);}else{pp->set_next(bp->get_next());}}pp=pp->get_next();bp=bp->get_next();}

}voidManger::DeleteReaderBook(charbookname){Readerrp=rhead->get_next();Reader*pp=newReader;intflag=0;

}voidManger::BrowseReader(){

//图书类voidBook::creat()

{ifstreamf_book(“book.txt”,ios::in);intid;intamount;intflag;stringbookname;stringauthor;stringpress;while(f_book>>id&&f_book>>flag&&f_book>>amount&&f_book>>bookname&&f_book>>author&&f_book>>press){Book*p=newBook;p->id=id;p->flag=flag;p->amount=amount;p->bookname=bookname;p->author=author;p->press=press;

voidBook::save(){Book*bp=bhead->get_next();ofstreamf_book(“book.txt”,ios::out);while(bp){f_book<id<<““<flag<<““<amount<<““<bookname<<““<author<<““<press<get_next();}f_book.close();}

voidBook::show_book(){Book*bp=bhead->get_next();cout<<“id号\t\t”<<“是否可借\t\t”<<“数量\t\t”<<“书名\t\t”<<“作者\t\t”<<“出版社\n”;while(bp){cout<get_id()<<“\t\t”<get_flag()<<“\t\t\t”<get_amount()<<“\t\t”<get_bookname()<<“\t\t”<get_author()<<“\t\t”<get_press()<<“\n”;bp=bp->get_next();}}intmain(){mhead=newManger;mend=newManger;mhead->set_next(NULL);mend=mhead;

THE END
1.C语言期末/课程设计图书借阅管理系统(VC++2010)提示:还书时,图书数量会增加,存在状态有修改 4、图书管理信息的查询,查询图书借阅情况。 按图书编号查询借阅情况 按借书人学号查询借阅情况 5、图书基本信息的删除。 6、浏览,从文件中读取每本图书的借阅信息并显示。 7、退出 要求:使用文件存储数据,系统以菜单方式工作。 https://blog.csdn.net/weixin_47040861/article/details/139026604
2.C/C++项目开发之图书管理系统嵌入式技术printf(" Eugeo图书管理借阅系统 "); printf("t0.登记书籍 "); printf("t1.浏览书籍 "); printf("t2.借阅书籍 "); printf("t3.归还书籍 "); printf("t4.查找书籍 "); printf("t5.排序书籍 "); printf("t6.删除书籍 "); printf("t7.退出系统 https://www.elecfans.com/emb/202210281913516.html
3.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
4.C++实现图书馆管理系统C语言本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 一、实验名称 图书馆管理系统 二、实验目的 利用C++语言设计开发一个小型的图书馆管理系统模拟程序,具有如下功能:退出系统、增加图书、删除图书、借阅图书、归还图书、显示图书信息、查询图书等功能。实验中应掌握继承结构,并掌握对象、类、https://www.jb51.net/article/240534.htm
5.图书管理系统(C++)studyhardforever是管理端与用户端结合到一起的,没有摘出来分为管理端与用户端(其实复制粘贴过去应该就能实现两个代码),这里添加了登录情况,可以直接登录为管理端或客户端(当然这次代码里没有使用管理端(注释掉了,取消注释也可以直接用))//对于书籍查询的继承,由于一开始写的是查询与修改写到了一起(管理端),用户端查询与借阅https://www.cnblogs.com/study-hard-forever/p/14387283.html
6.图书管理系统问题报告8篇(全文)(《计算机程序设计基础》C++) 题目 学生姓名 指导教师 学院 专业班级 学生学号 图书馆信息管理系统 计算机基础教学实验中心 2014 年 7 月 1 日 图书馆信息管理系统 1.任务描述 一直以来人们使用传统的人工方式管理图书馆的日常工作,手工管理书籍过程繁琐且易出错,利用计算机来处理这些流程无疑会极大程度地提高效率和https://www.99xueshu.com/w/fileair8lxsh.html
7.图书管理系统c++数据结构实验报告.docx该【图书管理系统 c++ 数据结构实验报告 】是由【das】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【图书管理系统 c++ 数据结构实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您https://www.taodocs.com/p-979278932.html
8.图书管理系统开题报告1.能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除; 2.能够实现对读者档案的查询和编辑管理; 3.能够进行罚款功能; 能够进行借阅历史的查询功能; 三、开发平台 1.使用Visual C++6.0作为本次系统的开发工具。因为Visual C++6.0是功能最为强大可视化开发工具,它不仅支持传统的软件开发方法,更重要的是它https://www.unjs.com/fanwenwang/kaitibaogao/20110821165045_683280.html
9.图书管理系统图书管理系统是典型的信息管理系统。图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对这些数据的有效管理。本系统的主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。其开发主要包括后台数据库的建立和维护,以及前端的应用程序的开发两个方面。对于前者要https://wap.cnki.net/lunwen-2009053253.html
10.图书管理系统api接口(图书管理系统功能简介)本篇文章给大家谈谈图书管理系统api接口,以及图书管理系统功能简介对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享图书管理系统api接口的知识,其中也会对图书管理系统功能简介进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! https://www.eolink.com/news/post/61446.html
11.c++图书管理系统当然,我可以帮助你规划一个C++图书管理系统的基本框架和关键功能实现。以下是一个详细的步骤指南: 1. 需求分析 图书管理系统应包括以下基本功能: 添加图书 删除图书 查找图书 显示所有图书 借阅图书 归还图书 2. 设计系统架构 我们可以将系统分为以下几个模块: 用户界面模块:负责与用户交互,接收用户输入并显示结果。https://agents.baidu.com/content/question/77ff827c3f853a8c6a3d655c
12.图书管理系统项目总结(精选14篇)2、图书馆管理系统的运行 图书馆管理系统运用方便、操作简捷,工作人员先通过编目和打印子系统对图书进行电子书签的制作,并且在系统中录入图书名称、作者、类别、出版商、出版时间、价格和书籍大小等详细信息。再制作电子书签并粘贴在图书书脊,以便读者在借阅时直接扫描电子书签即可完成借阅操作,从而使图书馆的流通和管理效https://www.hrrsj.com/gongzuozongjie/xiangmuzongjie/831296.html
13.图书管理系统开题报告1.能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除; 2.能够实现对读者档案的查询和编辑管理; 3.能够进行罚款功能; 能够进行借阅历史的查询功能; 三.开发平台 1.使用Visual C++6.0作为本次系统的开发工具,开题报告《图书管理系统开题报告》。因为Visual C++6.0是功能最为强大可视化开发工具,它不仅支持https://www.yjbys.com/bylw/kaitibaogao/109809.html
14.C++实现简单的图书管理系统C++实现简单的图书管理系统 今天再为大家介绍另一个常用的管理系统——图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果。 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:https://www.xiuzhanwang.com/a1/Cyuyan/2909.html
15.手把手实现Java图书管理系统(附源码)Javaweb项目:基于JavaWeb的图书管理系统(有源码) 源码如下 实现功能 数据库 运行环境 数据库设计 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆信息管理作为计算机应用的一个分支,有着手工管理无法比拟https://cloud.tencent.com/developer/article/2129040
16.基于Qt的简易图书管理系统设计与实现简介:基于Qt的简易图书管理系统设计与实现 Qt是一个功能强大的跨平台C++库,用于开发GUI应用程序。本文介绍了一个基于Qt的简易图书管理系统的设计与实现。该系统包括图书的增删改查、借阅管理以及用户管理等功能。文章最后将提供完整的Qt代码和运行结果。 1.引言 https://developer.aliyun.com/article/1470128
17.在图书管理系统中,有如下关系模式:图书(图书编号,分类号,书名在图书管理系统中,有如下关系模式:图书(图书编号,分类号,书名,作者,出版单位,单价),读者(借书证号,单位,姓名,性别,地址),借阅(借书证号,图书编号,借书日期)。 在该系统数据库中,要查询借阅了《数据库应用》一书的借书证号的SQL语句如下:select 借书证号 from 借阅 where 图书编号=___;在横线处填写下面哪个https://www.shuashuati.com/ti/a671eb92b4fa4b7cb01f15b413d86cec.html
18.某高校图书馆欲建设一个图书馆管理系统,目前已经完成了需求分析【答案解析】阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某高校图书馆欲建设一个图书馆管理系统,目前已经完成了需求分析阶段的工作。功能需求均使用用例进行描述,其中用例“借书(CheckOutBooks)”的详细描述如下。参与者:读者(Patronhttps://www.cnitpm.com/st/381417404.html
19.C语言数据结构应用(图书借阅系统)51CTO博客{"C++ Programming Language"}, {"Effactive C++"}, {"More Effactive C++"}, {"Design Patterns"} }; for ( int i=0; i<6; i++ ) ListInsert( s, i, mybooks[i]); } void SystemRun() { char GetCommand(); void DoCommand (char cmd); https://blog.51cto.com/u_16107545/6264019
20.GitHubi该项目是在学习完C++语言后,独立完成设计开发的简易图书管理系统 设计的基本要求 基本完成对图书系统的设计,包含基本的功能,无界面设计。 要有明显的分类,对不同的进入者有不同的功能,功能要齐全。 要有基本维护功能,能完成对书籍,登陆者的基本功能需求。 设计思路 1.对基本类的书写,共有三个类,book类,manage类https://github.com/i-oc/BooksManageSystem