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语言程序设计图书管理系统c语言程序设计课程设计图书管理系统图书管理系统 本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用文件存储结构实现对图书管理的原理,为进一步开发出高质量的管理信息系统打下坚https://blog.csdn.net/qq_63964231/article/details/128260731
2.C语言实现图书管理系统课程设计C语言这篇文章主要为大家详细介绍了C语言实现图书管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家https://www.jb51.net/article/256425.htm
3.C++课程设计(简单图书管理系统)6篇(全文)C++课程设计(简单图书管理系统) 第3篇 随着计算机技术的迅猛发展, 很多新的、高效的软件开发技术应运而生。《C++程序设计》就是应潮流与需求而发展起来的一门优秀的程序设计语言, 它受到许多计算机专业人士及程序设计人员的青睐,在很多高等院校中《C++程序设计》都被列为计算机专业教学体系中的一门重要的主干课。但https://www.99xueshu.com/w/fileiuknvdrv.html
4.c语言图书管理系统程序设计C语言图书管理系统程序设计是一个经典的编程练习,它涵盖了数据结构、文件操作、用户交互等多个方面。以下是一个基于你提供的tips的详细设计和实现方案: 一、设计图书管理系统的数据结构 首先,我们需要设计存储图书信息和读者信息的数据结构。这里可以使用结构体(struct)来定义这些数据。 c #include <stdio.h>https://agents.baidu.com/content/question/4ee55e04f12ab75d86fefd8a
5.轻松学做C语言课程设计:图书管理系统数组实现C语言课程设计,对于初学者来说,主要是综合运用C语言基础知识,以实际项目的形式锻炼编程能力。从今天开始,一起轻松学做C语言课程设计常见项目,建议先运行代码,再一步步理解其实现。 题目要求 图书管理系统提供图书信息管理以及借还管理。图书信息至少包括:图书编号、书名、价格、作者、借还状态,提供以下功能: https://www.jianshu.com/p/4747f7993672
6.图书管理系统可行性研究报告(精选6篇)在当下社会,报告的使用频率呈上升趋势,我们在写报告的时候要注意逻辑的合理性。相信许多人会觉得报告很难写吧,下面是小编为大家整理的图书管理系统可行性研究报告(精选6篇),供大家参考借鉴,希望可以帮助到有需要的朋友。 图书管理系统可行性研究报告1 第1章 引言 https://m.ruiwen.com/baogao/6424056.html
7.图书管理系统设计报告3篇(图书管理系统详细设计报告).docx图书管理系统设计报告1 中南高校 本科生课程设计(实践)任务书、设计报告 (计算机程序设计基础C+) 题目 同学姓名 指导老师 学院 专业班级 同学学号 图书馆信息管理系统 计算机基础教学试验中心 2022 年 7 月 1 日 图书馆信息管理系统 1.任务描述 始终以来人们使用传统的人工方式管理图书馆的日常工作,手工管理书籍https://m.renrendoc.com/paper/225342986.html
8.C/C++项目开发之图书管理系统嵌入式技术C/C++项目开发之图书管理系统-管理系统一直是我们计算机专业同学都要经历的项目设计,而管理系统的核心知识点其实都是一样的,无法就是换了个马甲,今天我们就来看看很多同学都会遇到的管理项目之一:图书管理系统!https://www.elecfans.com/emb/202210281913516.html
9.java图书馆管理系统项目详细设计基于javaweb+mysql的ssm+maven图书馆图书管理系统(java+ssm+jsp+js+mysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb+mysql的SSM+Maven图书馆图书管理系统(java+ssm+jsp+js+mysql) 项https://blog.51cto.com/u_16213589/11950751
10.《数字系统设计在图书馆管理系统中的应用调查问卷》比较熟悉C. 一般了解D. 不太了解E. 完全不了解 在您的日常工作 / 学习中,您经常使用图书馆管理系统的哪些功能?(可多选) 图书信息查询借阅图书归还图书读者账户管理图书预订与预约查看借阅历史接收系统通知(如逾期提醒)其他 您认为数字系统设计给图书馆管理带来的最大优势是什么?(可多选) 提高图书管理效率方便读者https://www.wjx.cn/xz/294504596.aspx
11.承德市人民政府专项规划承德市绿色建筑专项规划(2020~2025年坚持合理布局、分步实施、统筹安排、有序推进,抓好绿色建筑提质、建筑能效提升、建造方式革新、绿色产业培育、技术创新驱动、典型示范带动,促进建筑由“浅绿”到“深绿”、从单体到街区(社区)等区域单元,从规划、设计、建造到运行管理,从绿色建筑到装配式建筑、绿色建材,把绿色发展理念延伸至建筑全领域、全过程及全产业https://www.chengde.gov.cn/art/2021/9/2/art_10609_793714.html
12.2023年4月自考《管理系统中计算机应用》考试真题(更新中)自考C.一致性检验 D.无冗余性检验 24.在系统设计阶段,通常采用结构化设计方式,进行软件结构设计的主要方法是绘制 A.控制结构图 B.数据流程图 C.业务流程图 D.实体属性图 26.某管理信息系统中对人员编码采用“人名汉语拼音”,该编码方式采用的是 A.顺序码 https://www.educity.cn/chengkao/5036952.html
13.课程图书管理系统的设计 闫大顺 第一章程序设计基础知识 程序设计基础知识 ●1.1程序与程序语言 程序与程序语言 ●1.2算法和算法描述 算法和算法描述 ●1.3结构化程序设计方法 结构化程序设计方法 第二章C语言概述 C语言概述 ●2.1最简单C程序 最简单C程序 ●2.2C语言的上机执行过程 C语言的上机执行过程 ●2.3C语言的https://higher.smartedu.cn/course/6260b20af29a9e60d0f26c04
14.图书馆管理系统因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆https://www.fwsir.com/ligong/html/ligong_20070130182525_25748.html
15.2020年一级造价工程师《建设工程技术与计量(安装)》真题及答案7.具有较高的强度、耐热性,最高工作温度可达95C,在1.0MPa下长期(50年)使用温度可达70C,无毒,耐化学腐蚀,常温下无任何溶剂能溶解,广泛地用在冷热水供应系统中的管材为( )。 A.聚氯乙烯管 B.聚乙烯管 C.聚丙烯管 D.工程塑料管 【汇英答案】C 【汇英解析】聚丙烯管无毒,价廉,但抗冲击强度差。Pp-R管是最轻http://m.huiyingedu.net/h-nd.html?id=1846
16.数据库设计说明介绍模板实例说明文书会员借阅 / 归图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信二具 V F 7 . 0 / P o w e r D e s i g n e r 第三章结构设计 3 . ) 中的函数依赖为 C - H , 为 B 0 F , 此关系模式包含了联系一“增 及系统状态的查看、维护并生成催还图书报表。 ( 一 ) 管理系统https://www.docin.com/p-4655707842.html
17.软件工程课程设计——学校图书借阅管理系统专业方向组设计 学校图书借阅管理系统 指导教师 李鑫 院(系、部) 电信学院 专业班级 计算机 06—2 学 号 0606010212 姓 名 宋成龙 电子与信息工程学院 计算机科学系 参考目录 1 问题定义 2 项目背景 https://doc.mbalib.com/view/c33c697a77fd207ec1f042da189adfdd.html
18.2024年免费图书管理软件:用户评价最高的前十名下面给大家推荐几款好用的免费的图书管理软件,有需要的小伙伴们来了解一下。 1.精点图书管理系统 单机版 6.0 精点图书管理系统是一款专为中小型图书馆设计的管理软件。它融合了先进的图书管理经验,是科学化、信息化建设的有力工具。该系统适用于各类企事业单位、学校和科研院所的图书馆或图书室。主要功能包括采访https://app.zol.com.cn/jiqiao/129836.html
19.软件技术创业计划书(精选7篇)创业团队自成立以来一直致力于软件开发,专业应用软件如“国腾学院图书管理系统”、“诚安顺公司管理销售系统”,硬件集成系统如“‘绿墙’小区安全综合系统”(获得微软大学生实践项目资助,并完全结题)等,从作需求分析、计划书编写到模块划分、封装测试都是独立完成,积累了一定的技术经验,构建了良好的开发模式。最初的一https://www.yjbys.com/chuangye/ziliao/chuangyejihuashu/633438.html