C++ 图书管理系统源代码.doc
如有侵权,请联系网站删除,仅供学习与交流C+ 图书管理系统源代码【精品文档】第 24 页图书管理系统系统功能:1借书:根据借书人提出的图书编号(id)查询该图书,如果该图书现存量(store)不为0,则提示输入借阅者的学号(num),为借书人办理借书手续,提示用户该书已被借出。2归书:根据借书人的学号查询该读者的信息,若有该读者,则提示输入所借书籍的编号(id),为该读者办理还书手续,提示该书已还。 3.书籍管理:弹出书籍管理界面,输入所要执行操作的号码: (1)增加书籍:弹出注册新书的窗口,按照提示输入所增加书籍的信息,最后,提示用户该书已被注册。(2)删除书籍:弹出删除书籍的窗口,输入所要删除书籍的编号(id),输出该书的信息,确认是否删除该书,1为删除,0为放弃。(3)修改书籍:弹出修改书籍的窗口,输入所要修改书籍的编号(id),输出该书的信息,确认是否修改该书,1为修改,0为放弃。之后按照提示重新输入书籍的信息。4.读者管理:弹出读者管理界面,输入所要执行操作的号码: (1)增加读者:弹出注册读者的窗口,按照提示输入所增加读者的信息,最后,提示用户该读者已被注册。(2)删除书籍:弹出删除读者的窗口,输入所要删除读者的学号(num),输出该读者的信息,确认是否删除该读者,1为删除,0为放弃。(3)修改书籍:弹出修改读者的窗口,输入所要修改读者的学号(num),输出该读者的信息,确认是否修改该读者,1为修改,0为放弃。之后按照提示重新输入读者的信息。5.搜索:此搜索包括两方面的搜索,书籍搜索以及读者搜索,弹出搜索的窗口,按照提示输入所要搜索的内容,1为书籍搜索,2为读者搜索:(1)搜索书籍:弹出搜索书籍的窗口,按照提示输入所要搜索的方式,包括按<1>书名搜索,<2>书号搜索,<3>作者搜索,<4>出版社搜索,<5>出版时间搜索;根据所选方式输入相应的内容,若是该书籍存在,则输出该书籍的信息,否则,返回主界面。(2)搜索读者:弹出搜索读者的窗口,按照提示输入所要搜索的方式,包括按<1>名字搜索,<2>学号搜索;根据所选方式输入相应的内容,若是该读者存在,则输出该读者的信息,否则,返回主界面。6.退出:退出图书管理系统。图书类设计:私有成员:书名(name)、编号(id)、作者名(writer)、价格(price)、总存量(total)、现存量(store)、出版单位(publish)、出版时间(pub_time)。及该书的借阅情况(借阅者名字(borrower)、借阅者学号(borr_num):若无人借阅该书,则borrower=0, borr_num=0;否则borrower=借阅者名字,borr_num=借阅者学号)。class bookprivate: char name50; /书名 char writer10; /作者 char borrower10; /借书人 int id; /书号 int borr_num; /借书人学号 int store; /现存量 int total; / 总存量 int pub_time; /出版时间 float price; /价格 char publish50; /出版社public: book(); /book类构造函数 int book1();/书籍管理界面函数 int book_add();/增加书籍函数 int book_del();/删除书籍函数 int book_mod();/修改书籍函数 int book_out();/借书函数 int book_in();/还书函数 int book_name(); /按书名搜索书籍函数 int book_id();/按书号搜索书籍函数 int book_pub();/按出版社搜索书籍函数 int book_time();/按出版时间搜索书籍函数 int book_writer();/按作者搜索书籍函数 int seach_book();/搜索书籍界面函数 int seach(); /主搜索界面函数读者类设计:私有成员: 借书人的姓名(name)、性别(sex)、年级(grade)、班级(class)、学号(num)。及所借图书名字(book_name)、借书日期(date)、可借天数(avai_days)。class readerprivate: char name10; /名字 int num; /学号 char grade10; /年级 char clas10; /班级 char sex10; /性别 char book_name50; /所借书的书名 char date10; /借书日期 int avai_days; /可借天数public: int reader_1();/读者管理界面函数 int reader_add();/增加读者函数 int reader_del();/删除读者函数 int reader_mod(); /修改读者函数 int reader_name(); /按读者名字搜索读者函数 int reader_num(); /按读者学号搜索读者函数 int seach_reader(); /搜索读者界面函数 char *getname(); /获取读者姓名函数 int getnum(); /获取读者学号函数 char *getgrade();/获取读者年级函数 char *getclas(); /获取读者班级函数 char *getsex();/获取读者性别函数 char *getbook_name();/获取所借书书名函数 char *getdate(); /获取借书日期函数 int getavaiday();/获取可借天数函数 int setname(char *); /设置读者姓名函数 int setnum(int); /设置读者学号函数 int setgrade(char *); /设置读者年级函数 int setclas(char *); /设置读者班级函数 int setsex(char *); /设置读者性别函数 int setbook_name(char *); /设置所借书籍书名函数 int setdate(char *); /设置借书日期函数 int setavaiday(int); /设置可借天数函数图书管理系统源代码:#include<iostream>using namespace std;class reader;class bookprivate: char name50; /书名 char writer10; /作者 char borrower10; /借书人 int id; /书号 int borr_num; /借书人学号 int store; /现存量 int total; / 总存量 int pub_time; /出版时间 float price; /价格 char publish50; /出版社public: book(); /book类构造函数 int book1();/书籍管理界面函数 int book_add();/增加书籍函数 int book_del();/删除书籍函数 int book_mod();/修改书籍函数 int book_out();/借书函数 int book_in();/还书函数 int book_name(); /按书名搜索书籍函数 int book_id();/按书号搜索书籍函数 int book_pub();/按出版社搜索书籍函数 int book_time();/按出版时间搜索书籍函数 int book_writer();/按作者搜索书籍函数 int seach_book();/搜索书籍界面函数 int seach(); /主搜索界面函数class readerprivate: char name10; /名字 int num; /学号 char grade10; /年级 char clas10; /班级 char sex10; /性别 char book_name50; /所借书的书名 char date10; /借书日期 int avai_days; /可借天数public: int read1();/读者管理界面函数 int reader_add();/增加读者函数 int reader_del();/删除读者函数 int reader_mod(); /修改读者函数 int reader_name(); /按读者名字搜索读者函数 int reader_num(); /按读者学号搜索读者函数 int seach_reader(); /搜索读者界面函数 char *getname(); /获取读者姓名函数 int getnum(); /获取读者学号函数 char *getgrade();/获取读者年级函数 char *getclas(); /获取读者班级函数 char *getsex();/获取读者性别函数 char *getbook_name();/获取所借书书名函数 char *getdate(); /获取借书如期函数 int getavaiday();/获取可借天数函数 int setname(char *); /设置读者姓名函数 int setnum(int); /设置读者学号函数 int setgrade(char *); /设置读者年级函数 int setclas(char *); /设置读者班级函数 int setsex(char *); /设置读者性别函数 int setbook_name(char *); /设置所借书籍书名函数 int setdate(char *); /设置借书日期函数 int setavaiday(int); /设置可借天数函数#include<string.h>#include<conio.h>#include<stdlib.h>#include<windows.h>#define SIZE 100#define AMOUNT 50book booksSIZE;reader studAMOUNT;int return_back() cout<<"请按下任何键. " getch(); return 0;char *reader:getname()return name;int reader:getnum()return num;char *reader:getgrade()return grade;char *reader:getclas()return clas;char *reader:getsex()return sex;char *reader:getbook_name()return book_name;char *reader:getdate()return date;int reader:getavaiday()return avai_days;int reader:setname(char *names)strcpy(name,names);return 0;int reader:setnum(int nums)num=nums;return 0;int reader:setgrade(char *grades)strcpy(grade,grades);return 0;int reader:setclas(char *classes)strcpy(clas,classes);return 0;int reader:setsex(char *sexs)strcpy(sex,sexs);return 0;int reader:setbook_name(char *book_names)strcpy(book_name,book_names);return 0;int reader:setdate(char *dates)strcpy(date,dates);return 0;int reader:setavaiday(int avaiday)avai_days=avaiday;return 0;int page_title() system("cls"); cout<<" * * * * * * * * * * * * * * * * * * * * * * * * * *n " cout<<" * 欢迎来到图书管理系统 *n " cout<<" * * * * * * * * * * * * * * * * * * * * * * * * * *n " return 0;book:book() system("color 17"); reader read; menu: page_title(); cout<<" 主菜单 "<<endl<<endl<<endl; cout<<" * * * * * * * * * * * "<< endl; cout<<" * 1.借 书 * "<< endl<<endl; cout<<" * 2.还 书 * "<< endl<<endl; cout<<" * 3.书籍管理 * "<< endl<<endl; cout<<" * 4.读者管理 * "<< endl<<endl; cout<<" * 5.搜 索 * "<< endl<<endl; cout<<" * 0.退 出 * "<< endl; cout<<" * * * * * * * * * * *"<<endl<<endl; cout<<" 请输入你的选择:" ; switch(getch() case'1':book_out();break; case'2':book_in();break; case'3':book1();break; case'4':read.read1();break; case'5':seach();break; case'0':exit(0);break; default:system("cls"); page_title(); cout<<" n错误,请再输入一遍! "<< endl; goto menu; int book:book1() system("cls"); page_title(); cout<<" 管理" <<endl<< endl<< endl; cout<<" * * * * * * * * * * *"<< endl; cout<<" * 1.增加书籍 * "<< endl<< endl; cout<<" * 2.注销书籍 * "<< endl<< endl; cout<<" * 3.修改书籍 * "<< endl<< endl; cout<<" * 0.返 回 *"<<endl; cout<<" * * * * * * * * * * * "<< endl<< endl; cout<<" 请输入你的选择:" ; switch(getch()case'1':book_add();break; case'2':book_del();break; case'3':book_mod();break; case'0':return_back();break; default:system("cls"); cout<<"n错误,请再输入一遍!n" return 0;int book:book_add() /定义增加书籍的函数 FILE *bfp; int i,n; page_title(); cout<<" 增加书籍"<< endl; cout<<">>>请输入书的信息<<<"<< endl; bfp=fopen("books","rb"); for(n=0;n<SIZE;n+) fread(&booksn,sizeof(booksn),1,bfp); if(booksn.id=0) break; fclose(bfp); do cout<<"请输入一个新的书号(书号从1001开始,但必须不同于已存在的书号):" ; cin>>booksn.id; for(i=0;i<SIZE;i+) if(booksn.id=booksi.id&&n!=i) cout<<"n这个书号已经存在. "<< endl; break; while(booksn.id=booksi.id); cout<<"书名: " cin>>booksn.name; cout<<"作者: " cin>>booksn.writer; cout<<"价格: " cin>>booksn.price; cout<<"总存量: " cin>>booksn.total; cout<<"现存量: " cin>>booksn.store; cout<<"出版社: " cin>>booksn.publish; cout<<"出版时间: " cin>>booksn.pub_time; cout<<"借书人: " cin>>booksn.borrower; cout<<"借书者学号: " cin>>booksn.borr_num; bfp=fopen("books","wb"); for(n=0;n<SIZE;n+) fwrite(&booksn,sizeof(booksn),1,bfp); fclose(bfp); cout<<"n该书已经添加.n"<< endl; return 0;int book:book_del() /定义删除书籍的函数 FILE *bfp; int i,id,s; page_title(); cout<<" 注销旧书"<< endl; if(bfp=fopen("books","rb")=0) cout<<"无法打开文件. " for(i=0;i<SIZE;i+) fread(&booksi,sizeof(booksi),1,bfp); fclose(bfp); cout<<"n请输入书号: " cin>>id; for(i=0,s=-1;i<SIZE;i+) if(booksi.id=id) cout<<"书名: "<<booksi.name<< endl; cout<<"书号: "<<booksi.id<< endl; cout<<"作者: "<<booksi.writer<< endl; cout<<"价格: "<<booksi.price<< endl; cout<<"总存量: "<<booksi.total<< endl; cout<<"现存量: "<<booksi.store<< endl; cout<<"出版社: "<<booksi.publish<< endl; cout<<"出版时间: "<<booksi. pub_time<< endl; cout<<"读者: "<<booksi.borrower<< endl; cout<<"读者学号: "<<booksi.borr_num<< endl; cout<<"*"<< endl; cout<<"请问是否确定注销此书(1为是,0为否): " cin>>s; if(s=1) for(;i<SIZE;i+) booksi=booksi+1; else if(s=0) return 0; if(s=-1) cout<<"该书不存在."<< endl; if(bfp=fopen("books", "wb")=0) cout<<"无法打开文件. " for(i=0;i<SIZE;i+) fwrite(&booksi,sizeof(booksi),1,bfp); fclose(bfp); return 0;int book:book_mod() /定义修改书籍的函数 FILE *bfp; int i,id,s,n; page_title(); cout<<" 修改书籍"<<endl; if(bfp=fopen("books","rb")=0) cout<<"无法打开文件. " for(i=0;i<SIZE;i+) fread(&booksi,sizeof(booksi),1,bfp); fclose(bfp); cout<<endl<<"请输入书号: " cin>>id; for(i=0,s=0;i<SIZE;i+) if(booksi.id=id) cout<<"书名:"<<booksi.name<<endl; cout<<"书号: "<<booksi.id<< endl; cout<<"作者: "<<booksi.writer<< endl; cout<<"价格: "<<booksi.price<< endl; cout<<"总存量: "<<booksi.total<< endl; cout<<"现存量: "<<booksi.store<< endl; cout<<"出版社: "<<booksi.publish<< endl; cout<<"出版时间: "<<booksi. pub_time<< endl; cout<<"读者: "<<booksi.borrower<< endl; cout<<"读者学号: "<<booksi.borr_num<< endl;cout<<"*"<< endl;cout<<"是否确定修改该书籍(1为是,0为否): "cin>>s;if(s=1) page_title();cout<<">>>请重新输入书籍的信息:<<<"<<endl;docout<<endl<<"请输入一个新的书号(学号从1001开始,但必须不同于已存在的书号):"cin>>booksi.id;for(n=0;n<SIZE;n+)if(booksi.id=booksn.id&&n!=i)cout<<"该书号已存在. "<<endl;break;while(booksi.id=booksn.id); cout<<"书名: " cin>>booksi.name; cout<<"作者: " cin>>booksi.writer; cout<<"价格: " cin>>booksi.price; cout<<"总存量: " cin>>booksi.total; cout<<"现存量: " cin>>booksi.store; cout<<"出版社: " cin>>booksi.publish; cout<<"出版时间: " cin>>booksi.pub_time; cout<<"借书人: " cin>>booksi.borrower; cout<<"借书者学号: " cin>>booksi.borr_num; else if(s=0)return 0; if(s=-1) cout<<"该书不存在。"<<endl; if(bfp=fopen("books", "wb")=0) cout<<"无法打开文件. " for(i=0;i<SIZE;i+) fwrite(&booksi,sizeof(booksi),1,bfp); fclose(bfp); return 0;int reader:reader_1()system("cls"); page_title(); cout<<" 管理n"<<endl<<endl<<endl; cout<<" * * * * * * * * * * *"<<endl; cout<<" * 1.增加读者 *"<<endl<<endl; cout<<" * 2.注销读者