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.数据库系统原理课程设计——图书借阅管理系统1.1 设计背景 1.1.1 图书管理的现状 图书馆作为一种资源的集散地,图书和用户在借阅资料繁多,包含很多的信息管理,现在有很多的图书馆都是初步的开始使用,甚至尚未使用计算机进行资源管理,没有建立相对应的图书管理数据系统,而是使用人工计算,抄写进行,数据处理工作量大,容易出错和数据丢失。 https://blog.csdn.net/2401_86940371/article/details/142405302
2.图书借阅管理系统课程设计报告.doc图书借阅管理系统课程设计报告42405327课程设计报告课程名称 C语言程序设计课题名称图书借阅管理系统专业网络工程班级1002班学号201003120216 姓名指导教师唐北平、陈淑红、谭小兰2011年 6 月 30 日湖南工程学院课程设计任务书课程名称 C语言程序设计课题图书借阅管理系统专业班级网络工程1002班学生姓名学号201003120216 指导老师唐北http://taodocs.com/p-121982605.html
3.数据库课程设计报告—图书借阅管理系统.doc数据库课程设计报告—图书借阅管理系统,数据库课程设计报告(一) ——图书借阅管理系统本报告包含三部分,简要摘录参见下属。本文共42页,1.3万余字系统概述图书馆管理系统是一些单位不可缺少的部分,书籍是人类不可缺少的精神食粮,尤其对一些学校来说,尤其重要。所以图书馆管理系统应该能够为用户提供充足的信息和快捷的http://www.queshao.com/docs/34523/
4.图书管理系统问题报告8篇(全文)图书管理系统问题报告 第2篇 1、本课题的研究意义(选题依据,课题来源,学术价值和对社会、经济发展和科技进步的意义):作为毕业设计这一最后环节是学生完 成本专业基础课程、专业课程及实践课程的一次综合性的练习与实践,是检验学生综合运用所学知识解决实际问题的能力,是以本专业知识参加社会工作前的一次模 拟训练。通https://www.99xueshu.com/w/fileair8lxsh.html
5.图书管理系统数据库课程设计报告书数据库课程设计实验报告 页脚内容- 1 - 图书管理系统 一、背景资料: 1)图书馆有各种图书若干万册。 2)每种图书都有书名、图书编号、作者(译者)、出版社、定价和内容简介。 3)借书证记录有借阅者的姓名、工作单位、住址、联系电话等。 4)凭借书证借书,每次最多能借5 本书,借书期限最长为60 天。 二、系统https://www.mayiwenku.com/p-54875419.html
6.图书管理系统开题报告接地气的大学生活即将结束,大家都在认真的做毕业设计,而做毕业设计之前指导老师都会要求先写好开题报告,优秀的开题报告都具备一些什么特点呢?下面是小编帮大家整理的图书管理系统开题报告,欢迎大家借鉴与参考,希望对大家有所帮助。 图书管理系统开题报告 1 一、https://www.unjs.com/fanwenwang/kaitibaogao/20110821165045_683280.html
7.java云借阅图书管理系统报告总结基于javaweb的图书借阅系统(1)管理员 (2)用户 4、数据设计 5、部分功能展示 (1)管理员演示 (2)普通用户验证 6、项目结构 1、项目简介 一个基于JavaWeb纯原生的图书借阅系统 2、技术栈 前端:JSP、layui 后端:JavaWeb 数据库:mysql 3、主要功能 (1)管理员 图书分类管理 https://blog.51cto.com/u_16213681/8576913
8.图书管理系统可行性研究报告(精选6篇)图书管理系统可行性研究报告(精选6篇) 在当下社会,报告的使用频率呈上升趋势,我们在写报告的时候要注意逻辑的合理性。相信许多人会觉得报告很难写吧,下面是小编为大家整理的图书管理系统可行性研究报告(精选6篇),供大家参考借鉴,希望可以帮助到有需要的朋友。 https://www.ruiwen.com/baogao/6424056.html
9.图书管理系统开题报告1.能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除; 2.能够实现对读者档案的查询和编辑管理; 3.能够进行罚款功能; 能够进行借阅历史的查询功能; 三.开发平台 1.使用Visual C++6.0作为本次系统的开发工具,开题报告《图书管理系统开题报告》。因为Visual C++6.0是功能最为强大可视化开发工具,它不仅支持https://www.yjbys.com/bylw/kaitibaogao/109809.html
10.关于图书管理员心得体会7篇能结构设计模块,设计报告的总体完成模块;在分工中,这也是我实际情况出发的。 首先,在系统的需求设计模块中,我和组长认真协调组织,和代码开发人员进行认真协调沟通,根据课程设计任务书的要求,结合课本上的图书信息管理系统案例和图书馆借相关书籍,在课堂上老师的指导下,完成了我们的图书信息管理系统的需求分析;在这个过程https://www.wenshubang.com/xindetihui/3414829.html
11.软件工程课程设计——学校图书借阅管理系统专业方向组设计 学校图书借阅管理系统 指导教师 李鑫 院(系、部) 电信学院 专业班级 计算机 06—2 学 号 0606010212 姓 名 宋成龙 电子与信息工程学院 计算机科学系 参考目录 1 问题定义 2 项目背景 https://doc.mbalib.com/view/c33c697a77fd207ec1f042da189adfdd.html
12.图书馆书目检索系统1.6 数字电路课程设计的基础知识和设计方法 1.6.1 明确系统的设计任务要求 1.6.2 方案的选择 1.6.3 单元电路的设计、参数计算和器件选择 1.6.4 电路图的绘制 1.7 数字电路的组装和调试 1.7.1 数字电路的组装 1.7.2 数字电路的调试 1.8 课程设计的总结报告第2章 示波器的使用和基本门电路特性测量实验 实验1 示https://elib.nuist.edu.cn/space/searchDetailLocal/m0061da456f4ededafba09996b5418625
13.uml图书借阅管理系统用例图设计几个类,用UML类图说明一个 学生借阅图书 系统 基于UML的图书馆借阅管理系统设计(1)系统分析(包括系统描述(问题域描述)、用例模型、分析类图)。(2)系统设计(包括系统的逻辑模型如设计类图、顺序图、状态图及组件图等)。(3)系统实施(包括信息代码设计、数据库设计、输入设计、输出设计、用户界面设计和处理过程的https://www.zboao.com/cgal/9422.html
14.电子图书馆(图书借阅系统):图书借阅管理的功能模块根据登录人员5.1 课程设计总结 5.2 心得体会 参考文献 致谢 电子图书馆(图书借阅系统) 介绍 图书借阅管理的功能模块根据登录人员的不同可分为普通用户和管理员。普通用户登录后可以查看所有图书、查询图书、查看最新的图书列表和自己的图书借阅记录。而管理员登录后不但可以进行关于图书的操作,还可以管理所有的普通用户,添加删除普通https://gitee.com/hehe8/library
15.图书管理系统的出现意义图书管理系统注意事项这些人需要的是较高的授权以便于对图书馆的图书进行管理。而作为用户就不需要如此高的授权,只需要提供图书借阅、图书归还等服务就可以。 相信大家已经知道了图书管理系统对于现代人的意义,也明白了图书管理系统在设计时需要注意的事项。在这里还是建议大家多多的去回归书本,那才是真正可以直达心灵的东西。https://cloud.tencent.com/developer/article/1851631
16.java图书管理系统(LibrarySystem)这是我小学期使用 java servlet做的一个图书管理系统,实现图书的增删改查等基本功能,有一定参考价值。 上传者:yishuida时间:2018-03-25 ssm图书管理系统 基于ssm框架做的图书管理系统 实现了增删改查数据库。 上传者:liepainian时间:2018-12-08 基于JAVA + MySQL的图书管理系统+WORD文档报告.zip https://www.iteye.com/resource/listen322-1308583
17.Java课程设计基于JavaSwing的图书管理系统本次课程设计基于教材《Java基础案例教程(第二版)》中的第十三章,对课程源码的整理和分享。整个课程设计,我整理了mysql数据库的两个版本:5.7和8.0,方便各位码友们的学习! 开发环境: jdk8 mysql数据库 intelliJ IDEA 一、功能结构 图书管理系统分为用户界面和管理员界面,结构下图所示: https://maimai.cn/article/detail?fid=1801466866&efid=wr3zs7fsyMh7Zz9KNa4xFg