当前位置:文档之家› C++图书管理系统源代码

C++图书管理系统源代码

图书管理系统系统功能: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 book{private:char name[50]; //书名char writer[10]; //作者char borrower[10]; //借书人int id; //书号int borr_num; //借书人学号int store; //现存量int total; // 总存量int pub_time; //出版时间float price; //价格char publish[50]; //出版社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 reader{private:char name[10]; //名字int num; //学号char grade[10]; //年级char clas[10]; //班级char sex[10]; //性别char book_name[50]; //所借书的书名char date[10]; //借书日期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 book{private:char name[50]; //书名char writer[10]; //作者char borrower[10]; //借书人int id; //书号int borr_num; //借书人学号int store; //现存量int total; // 总存量int pub_time; //出版时间float price; //价格char publish[50]; //出版社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 reader{private:char name[10]; //名字int num; //学号char grade[10]; //年级char clas[10]; //班级char sex[10]; //性别char book_name[50]; //所借书的书名 char date[10]; //借书日期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 books[SIZE];reader stud[AMOUNT];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(&books[n],sizeof(books[n]),1,bfp);if(books[n].id==0) break;}fclose(bfp);do{cout<<"请输入一个新的书号(书号从1001开始,但必须不同于已存在的书号):" ; cin>>books[n].id;for(i=0;i<SIZE;i++){if(books[n].id==books[i].id&&n!=i){cout<<"\n这个书号已经存在. "<< endl; break;}}}while(books[n].id==books[i].id);cout<<"书名: ";cin>>books[n].name;cout<<"作者: ";cin>>books[n].writer;cout<<"价格: ";cin>>books[n].price;cout<<"总存量: ";cin>>books[n].total;cout<<"现存量: ";cin>>books[n].store;cout<<"出版社: ";cin>>books[n].publish;cout<<"出版时间: ";cin>>books[n].pub_time;cout<<"借书人: ";cin>>books[n].borrower;cout<<"借书者学号: ";cin>>books[n].borr_num;bfp=fopen("books","wb");for(n=0;n<SIZE;n++)fwrite(&books[n],sizeof(books[n]),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(&books[i],sizeof(books[i]),1,bfp);}fclose(bfp);cout<<"\n请输入书号: ";cin>>id;for(i=0,s=-1;i<SIZE;i++){if(books[i].id==id){cout<<"书名: "<<books[i].name<< endl;cout<<"书号: "<<books[i].id<< endl;cout<<"作者: "<<books[i].writer<< endl;cout<<"价格: "<<books[i].price<< endl;cout<<"总存量: "<<books[i].total<< endl;cout<<"现存量: "<<books[i].store<< endl;cout<<"出版社: "<<books[i].publish<< endl;cout<<"出版时间: "<<books[i]. pub_time<< endl; cout<<"读者: "<<books[i].borrower<< endl;cout<<"读者学号: "<<books[i].borr_num<< endl;cout<<"**********************************************************"<< endl; cout<<"请问是否确定注销此书(1为是,0为否): "; cin>>s;if(s==1){for(;i<SIZE;i++)books[i]=books[i+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(&books[i],sizeof(books[i]),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(&books[i],sizeof(books[i]),1,bfp);}fclose(bfp);cout<<endl<<"请输入书号: ";cin>>id;for(i=0,s==0;i<SIZE;i++){if(books[i].id==id){cout<<"书名:"<<books[i].name<<endl;cout<<"书号: "<<books[i].id<< endl;cout<<"作者: "<<books[i].writer<< endl;cout<<"价格: "<<books[i].price<< endl;cout<<"总存量: "<<books[i].total<< endl;cout<<"现存量: "<<books[i].store<< endl;cout<<"出版社: "<<books[i].publish<< endl;cout<<"出版时间: "<<books[i]. pub_time<< endl; cout<<"读者: "<<books[i].borrower<< endl;cout<<"读者学号: "<<books[i].borr_num<< endl;cout<<"**********************************************************"<<cout<<"是否确定修改该书籍(1为是,0为否): ";cin>>s;if(s==1){ page_title();cout<<">>>请重新输入书籍的信息:<<<"<<endl;do{cout<<endl<<"请输入一个新的书号(学号从1001开始,但必须不同于已存在的书号):";cin>>books[i].id;for(n=0;n<SIZE;n++){if(books[i].id==books[n].id&&n!=i){cout<<"该书号已存在. "<<endl;break;}}}while(books[i].id==books[n].id);cout<<"书名: ";cin>>books[i].name;cout<<"作者: ";cin>>books[i].writer;cout<<"价格: ";cin>>books[i].price;cout<<"总存量: ";cin>>books[i].total;cout<<"现存量: ";cin>>books[i].store;cout<<"出版社: ";cin>>books[i].publish;cout<<"出版时间: ";cin>>books[i].pub_time;cout<<"借书人: ";cin>>books[i].borrower;cout<<"借书者学号: ";cin>>books[i].borr_num;}else if(s==0){return 0;}}if(s==-1){cout<<"该书不存在。

相关主题