C++图书管理系统.doc_第1页
C++图书管理系统.doc_第2页
C++图书管理系统.doc_第3页
C++图书管理系统.doc_第4页
C++图书管理系统.doc_第5页
免费预览已结束,剩余30页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+图书管理系统 目 录第一章 需求分析2 系统总体功能需求2第二章 模块分析3(一) 登陆系统.3(二) 主界面.3(三) 添加模块.3(四) 删除模块.4(五) 修改模块.5(六) 查询模块.5(七) 显示可出借图书信息模块.6 (八) 借书模块.6 (九) 还书模块.7 (十) 退出模块.8第三章 图书管理系统各界面设计分析.9(一) 登陆系统界面.9(二) 主界面模块.9(三) 图书管理模块.101) 添加模块.102)删除模块.10 3)修改模块.10(四) 图书借阅模块.111)显示可出借图书信息.112)查询模块.113)借书模块.12 4)还书模块.13 5)退出模块.13第4章 图书管理系统应用程序代码.15(一) 主程序模块.15main() 函数的实现,程序的主界面的引导.15 (二) 添加模块.17 (三) 删除模块.18 (四) 修改模块.18 (五) 查询模块.20 (六) 显示可出借图书信息模块.22 (七) 借书模块. 22 (八) 还书模块.23 (九) 退出模块.24 (十) 完整程序.24第五章 结束语.34参考文献.34 第一章 需求分析(一)系统总体功能需求 图书管理系统可以为图书管理员、借阅者分别提供添加、删除书目、修改书目、以及查询书目、借还书目等服务。借阅者每次最多能借3本书。图书管理员主要负责添加、删除、修改书目以及借还图书等管理工作,。所有人员都可以浏览和查询图书信息。经过总体分析,图书管理系统应该具有以下几个模块:添加模块、删除模块、修改模块、查询模块、显示可出借图书信息模块、借书模块 、还书模块、以及退出等模块 。主要运用C+中类和字符串以及友元函数等知识点。 添 加 删 除 修 改图书管理系统 查 询 显示可出借图书信息 退 出 还 书 借 书 第二章 模块分析 (一) 登录系统: 此项设计主要是为系统的安全运行考虑的,一个稳定功能齐全的系统必须有此项。只有图书管理员才可以对图书的相关信息作出修改,非图书管理人员一律不得进入该系统,以防止图书管理系统的紊乱,造成不必要的损失(详见第三章界面设计分析)。(二)主界面: 主界面主要由添加、删除、查询、显示可出借图书、借书、还书、退出七大部分组成,各部分相互关联又相互独立,保证了图书管理系统的正常运行。本主界面简单明了美观,操作简单(见第三章界面设计分析)。 主 界 面 还书退出修改借书显示可出借图书信息查询 删除 添加(三)添加模块 : 本模块主要功能是实现图书的增添,将新增图书的特征信息(数量、图书编号、书名、出版社、存放地等)存储在数据库中,图书的借阅、图书信息的查询都是以此作为基础的。 添 加 模 块 添 加 成 功输 入 书 所 在 存 放 地 添 加 书 的 出 版 社 添 加 书 名 添 加 图 书 编 号 输入添加的书籍信息的个数(四)删除模块:本模块的主要功能是实现图书信息的删除。将废旧的或丢失的图书信息删除,以减少数据库中的无用信息,同时也将减少图书查询中的错误信息,这将大大有利于提高图书管理系统的运算率,从而保证图书信息的正确率,为图书管理者和借阅者提高更好的服务。 删 除 模 块 输入要删除的图书编号 删 除 成 功没有该书信息,请重新输入 Yes No(五)修改模块:继续修改修改后存放地修改后出版社修改后书名没有该书信息,请确认后再修改按3修改存放地按2修改出版社按1修改书名 输 入 修 改 图 书 编 号 修 改 模 块 本模块的主要功能是当发现图书信息错误时,可以及时进行图书信息的修改。具体包括图书编号、书名、存放地以及出版社的修改 ,从而保证图书信息的正确性,为图书管理员和借阅者提供更大的方便。 YES继续修改继续修改 ( YESNO NO NO 按 任 意 键 退 出(六)查询模块 : 本模块的主要功能是实现图书信息的查询。通过本模块,图书管理员、借阅者可以通过输入书号、书名、出版社、等任一查询方式查询到自己所需要的图书,进而以最短的时间找到自己所需的图书,不失为一绝径。 按 书 号 查 询 查询模块 按 书 名 查 询 按 出 版社查询 按 存 放地查询(七)显示可出借图书信息模块:本模块通过独具匠心的设计,实现了此时此刻图书馆可以外接的图书。实现了现时图书存储、图书外界的详细情况,方便借阅者及时了解自己所需要的图书是否存在 ,即有利的节省了借阅者的时间 ,方便借阅者及时了解图书的信息。出版社书名书 号 显示可出借图书信息模块存放地(八)借书模块:本模块的功能主要是实现借阅者对图书的借阅,通过输入借阅者的学号,由系统判断是否存在该学生,若存在则输入该同学所借图书的书号,如果该图书存在则要求输入借书日期,最后由系统判断该同学已借图书的总数,若超过3本,则该同学借书失败并且如果当前要借阅的图书已经被其他人预约,也将也无法完成借阅。反之成功借阅。 借 书 成 功 借 书 失 败借书总数超过3本 输 入 借 书 时 间 输 入 所 借 的 书 号 输 入借 书 学 生 的 学 号 借 书 模 块 找到该生 该书不存在 找到该书找不到该生YES NO(九)还书模块: 该模块的功能主要是对借阅者还书进行管理,其功能复杂齐全,是图书管理系统的重要组成部分,该部分的设计直接影响图书的有关保存。而且需要对图书的借阅时间做出计算,若所借时间超过30天,将提交一定的罚款,并且超出时间越长所交罚款将越多。如期还书,还书成功借书超过30天需提交罚款 还 书 时 间 借 书 时 间 所 还 书 的 书 号 是 输 入 还 书 者 学 号 还 书 模 块 (十)退出模块:该模块的功能主要是实现系统的退出,相对其他模块而言较简单,但一样不容小视,是成功退出图书管理系统的重要保障(详见第三章界面设计分析)。 第三章 图书管理系统各界面设计分析(一)登陆系统界面:(要求输入身份和密码,若二者均正确,则进入图书管理系统,反之不能进入)。(二)主界面模块 (登陆后即进入该模块)。 (三)图书管理模块1)添加模块(在主界面模块中输入数字1然后按Enter键即可进入添加模块)。2)删除模块(在主界面模块键数字2然后Enter即进入此模块 )。 3)修改模块(主界面模块键数字 3后Enter即可进入此模块 )。 (四)图书借阅模块1)显示可出借图书信息(在主界面模块中输入数字5然后Enter即可进入此模块)。 2)查询模块(在主界面模块中输入数字4然后Enter即可进入查询模块随之输入相应数字选择相应查询方式)。 3)借书模块(在主界面模块中输入数字6然后Enter即可进入此 模块,随之按相应数字操作即可)。4) 还书模块(在主界面模块中输入数字7然后Enter即可进入还书模块)。 5)退出模块(在主界面模块中输入数字0即可退出系统) 第四章 图书管理系统应用程序代码本程序共包括八大模块:添加模块、删除模块、修改模块、查询模块、显示可出借图书信息模块、借书模块、还书模块、以及退出模块。各模块既相互关联又相互独立,进而紧密的构成了图书管理系统。其中各部分功能不再详细介绍(参阅第二、三章)。各部分代码如下。(一)main() 函数的实现,程序的主界面的引导:#include #include #include#include #include #includeusing namespace std;const int n = 10000;/定义书籍最大数 int countn=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,; string Studentn = 1001,1002,1004,1005,1003,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020;int j = 0 ; int jj=0; /全局变量将用于添加时增加记录使用struct Date /定义结构体,用于标记借还书日期int year; int month; int day ;day1,day2;/声明两个结构体变量,day1为借书日期,day2为还书日期 class initpublic: void Print(); /主界面 void AddBook(); /定义共有成员函数AddBook,用于添加图书信息 void DeleteBook();/定义共有成员函数DeleteBook,用于删除图书信息 void AlterBook(); /定义共有成员函数AlterBook,用于修改图书信息 void Select(); /定义查询函数 void BorrowBook();/定义借书函数 void ReturnBook();/定义还书函数 friend void display(init &);/定义友元函数display,用于显示书籍信息private: string BookIDn;/定义书号 string BookNamen; /定义书名 string Publishern; /定义出版社 string Locationn;/定义存放地 ;void init:Print()/主界面system(color 2C); cout 欢迎进入北华大学图书管理系统 endl; cout endl; cout 1、添加 endl; cout 2、删除 endl; cout 3、修改 endl; cout 4、查询 endl; cout 5、显示可出借图书信息 endl; cout 6、借书 endl; cout 7、还书 endl; cout 0、退出 endl; cout endl; int main() /主函数 system(color EC);init t; int choice; string a,pw; bool flag=111701020129; /为真的时,就继续执行程序begin: cout请输入您的身份:a; if(a=111701020129) cout请输入密码:pw; if(pw=122637) cout登陆成功endl; elsecout密码错误!请重试!;endl; goto begin; else cout用户名错误!请重试!endl; goto begin; while(flag)system(cls); /返回表头,与getch()连用 t.Print(); cout请输入您要执行的操作:choice; switch(choice) case 1: t.AddBook();getch();break; case 2: t.DeleteBook();getch();break; case 3: t.AlterBook();getch();break; case 4: t.Select(); getch(); break; case 5: display(t);getch();break; case 6: t.BorrowBook();t.DeleteBook();getch();break; case 7: t.ReturnBook();t.AddBook();getch();break; case 0: flag=0 ;exit(1);break; /为假的时候,退出程序 default: cout没有此功能,请重新输入;getch(); break; return 0;(二)添加模块: void init:AddBook()int i = 0 ; int nn;/定义所要添加的图书信息的个数 ofstream outfile(lib.txt,ios:app); /打开文件,将此数组写入文件 if(!outfile)/找不到该文件! cerr找不到该文件!endl; exit(1); coutnn; for(i=j;inn+j;i+) cout请输入您要添加的第i+1个图书信息: endl ; coutBookIDi; outfileBookIDi;/写入文件 coutBookNamei; outfileBookNamei; coutPublisheri; outfilePublisheri; coutLocationi; outfileLocationi; cout添加成功!endl; outfile.close(); j=j+nn;(三 )删除模块:void init:DeleteBook()/删除成员函数,用于删除该书记录string id ; int flag1=0; /用于检查是否符合删除条件,初始值为0,当有此书记录时,flag1=1 coutid ; for(int i = 0 ; i j ; i+) if(BookIDi = id) flag1 = 1;/当有这本书时,flag设置为1 cout删除成功!endl; for(int ii = 0; iij-i;ii+)/定义ii,ii只是一个标志,用于执行j-i次下面操作 BookIDi = BookIDi+1; /后面的往前覆盖 BookNamei=BookNamei+1; Publisheri = Publisheri+1; Locationi= Locationi+1; j=j-1;/删除一个,全局变量值相应减少1 if(flag1=0)/没有这本书 cout没有该书信息!,请确认后在删除!endl; (4) 修改模块:void init:AlterBook()string id ; int flag1 = 0; int chose; string a1,a2,a3;begin2:/返回此操作 coutid; for(int i = 0 ; ij ;i+) if(BookIDi=id) flag1=1; cout找到该书,请选择操作:endl; begin1: cout按1修改书名;按2修改出版社;按3修改存放地.chose; switch(chose) case 1: couta1; BookNamei=a1;/将字符串a1复制到BookNamei break; case 2: couta2; Publisheri=a2; break; case 3: couta3; Locationi=a3; break; coutchose1; if(chose1=y|chose1=Y) goto begin1; else coutchose2; if(chose2=y|chose2=Y) goto begin2; else cout返回主菜单!endl; if(flag1=0) cout没有该书信息!请确认后再修改!endl; void display(init &t)/定义友元函数,用于显示所有书籍信息cout 书号 书名 出版社 存放地endl; for( int i = 0 ;ij;i+)coutsetw(6)t.BookIDisetw(6)t.BookNameisetw(6)t.Publisherisetw(6)t.Locationiendl; (5) 查询模块:void init:Select()string id; string name; string pub; string loc; int flag1 = 0; int i; int getchose; /用于选择查询方式cout endl; cout 欢迎进入图书查询系统 endl; cout 1、按书号查 询 endl; cout 2、按书 名 查询 endl; cout 3、按出版社查询 endl; cout 4、按存放地查询 endl; cout getchose; switch(getchose) case 1: coutid; for(i=0; ij; i+) if(BookIDi=id) flag1=1; cout查询成功!,数据如下:endl; cout 书号 书名 出版社 存放地endl;coutBookIDisetw(6)BookNameisetw(6)Publisherisetw(6)Locationiendl; if(flag1=0) cout找不到该图书,请确认后重新查询!endl; break; case 2: coutname; for( i=0; ij; i+) if(BookNamei=name) flag1=1; cout查询成功!,数据如下:endl; cout 书号 书名 出版社 存放地endl; coutBookIDisetw(6)BookNameisetw(6)Publisherisetw(6)Locationiendl; if(flag1=0) cout找不到该图书,请确认后重新查询!endl; break; case 3: coutpub; for( i=0; ij; i+) if(Publisheri=pub) flag1=1; cout查询成功!,数据如下:endl; cout 书号 书名 出版社 存放地endl;coutBookIDisetw(6)BookNameisetw(6)Publisherisetw(6)Locationiendl; if(flag1=0) cout找不到该图书,请确认后重新查询!endl; break; case 4: coutloc; for( i=0; ij; i+) if(Locationi=loc) flag1=1; cout查询成功!,数据如下:endl; cout 书号 书名 出版社 存放地endl;coutBookIDisetw(6)BookNameisetw(6)Publisherisetw(6)Locationiendl; if(flag1=0) cout找不到该图书,请确认后重新查询!endl; break; (6) 显示可出借图书信息模块:friend void display(init &);/定义友元函数display,用于显示书籍信息private: string BookIDn;/定义书号 string BookNamen; /定义书名 string Publishern; /定义出版社 string Locationn;/定义存放地 ;(7) 借书模块: void init:BorrowBook()int i=0; string id; int flag = 0; string s1; int flag1= 0; if(counti3) couts1; for(i=0;in;i+) if(s1=Studenti) flag=1; cout找到该学生!请输入所借的书号!id; for ( int ii = 0; iij;ii+) if(BookIDii=id ) flag1=1; cout找到该书endl; cout请输入借书时间:endl; coutday1.year; coutday1.month; coutday1.day; counti+; cout该生已经借了counti本书!endl; if(flag1=0) cout很抱歉,没有这本书!endl; if(flag=0) cout找不到该学生!借书失败!endl; else cout您借书已经超过3本,不能继续借书!endl; (8) 还书模块:void init:ReturnBook()string s1,id; int flag =0 ; cout请输入还书者学号:s1; for(int i =0 ;in; i+) if(s1=Studenti) cout找到该学生!endl; flag = 1; cout该生所还书的书号是:id; cout该生借此书时间是:endl; coutday1.year年day1.month月day1.day日endl; cout请输入还书时间:endl; coutday2.year; coutday2.month; coutday2.day; if(day2.year-day1.year=0) if(day2.month-day1.month=0) cout如期还书,还书成功!endl; cout该生还有counti-1本书未还endl; counti-; else if(day2.month-day1.month=1) if(day2.day-day1.day1) cout如期还书,还书成功!endl; cout该生还有counti-1本书未还endl; counti-; else int d=day2.day-day1.day; cout该生借书已超过三十天,需要提交罚款!0.1*d元!endl; else int m = day2.month -day1.month ; int d1 = day2.day-day1.day; cout该生借书已超过三十天,需要提交(30*m+d1)*0.1元罚款!0) int m = day2.month -day1.month ; int d1 = day2.day-day1.day; cout该生借书已超过三十天,需要提交(365*y+(30*m+d1)*0.1元罚款!endl; if(flag = 0) cout找不到该学生!还书失败!endl; (9) 退出模块:case 0: flag=0 ;exit(1);break; /为假的时候,退出程序 default: cout没有此功能,请重新输入;getch(); break;(10) 完整程序:#include #include #include#include #include #includeusing namespace std;const int n = 10000;/定义书籍最大数 int countn=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,; s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论