600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 图书管理系统(简单版)面向对象程序设计c++

图书管理系统(简单版)面向对象程序设计c++

时间:2020-12-20 03:53:38

相关推荐

图书管理系统(简单版)面向对象程序设计c++

大一期末作业,第一个博客,多多指教

图书信息的组成部分为:书号、书名、作者名、出版社、出版时间、价格

1) 新书上架:添加图书信息

2) 图书浏览:输出所有图书信息

3) 图书查询:可按书号、书名或作者名查询

4)图书下架:删除指定图书信息,如按书号

一、各部分构成(后面有完整代码)

#include<iostream>#include<cstring>#include<stdlib.h>#include <fstream>using namespace std;#define max 1000

书类

class book{private:string num;//书号 string name;//书名string author;//作者名 string publisher;//出版社string time;//出版时间 double price;//图书价格public:book() {}; //构造函数 void fuzhibook(string num1, string name1,string author1,string publisher1,string time1,double price1);//给整体赋值 void Num(string num2);// 给书号 赋值 void Name(string name2);//给书名赋值void Author(string author2);//给作者名赋值void Publisher(string publisher2);//给出版社赋值void Time(string time2);//给出版时间赋值void Price(double price2);//给图书价格赋值string getNum();//获取书号 string getName();//获取书名string getAuthor();//获取作者名 string getPublisher();//获取出版社string getTime();//获取出版时间 double getPrice();//获取图书价格bool isName(string name3);//判断书名 bool isNum(string num3);//判断书号bool isAuthor(string author3);//判断作者名 void display();//};

操作类

class library{private:book arr[max];//存书的数组int count;//书的数量public:void add();//添加void show();//显示void deletebook();//删除void findbynum();//按书号查找void findbyname();//按书名查找void findbyauthor();//按作者名查找//void modifyPerson();//修改联系人void infile();//读文件void outfile();//写文件};

添加操作

void library::add(){if (count>=max){cout << "书籍已满,无法添加" << endl;return;}else{string num4,name4,author4,publisher4,time4;double price4;cout << "书号\t书名\t作者名\t出版社\t出版时间\t价格" << endl;cin >>num4>>name4>>author4>>publisher4>>time4>>price4;arr[count].fuzhibook(num4,name4,author4,publisher4,time4,price4);count++;system("pause");}}

浏览

void library::add(){if (count>=max){cout << "书籍已满,无法添加" << endl;return;}else{string num4,name4,author4,publisher4,time4;double price4;cout << "书号\t书名\t作者名\t出版社\t出版时间\t价格" << endl;cin >>num4>>name4>>author4>>publisher4>>time4>>price4;arr[count].fuzhibook(num4,name4,author4,publisher4,time4,price4);count++;system("pause");}}

删除

void library::deletebook(){cout << "请输入您要删除图书的书号" << endl;string num5;cin >> num5;int j = 0;//未知for (int i = 0; i < count; i++){if (arr[i].isNum(num5))break;else j++;}if (j== count){cout << "没有您要删除的书" << endl;system("pause");return;}for (int i =j ; i < count; i++){arr[i] =arr[i + 1];}count--;system("pause");}

查询

void library::findbynum(){cout << "请输入您要查找的书号" << endl;string num6;cin >> num6;for (int i = 0;i < count;i++){if (arr[i].isNum(num6)){arr[i].display();system("pause");return;}else continue;}cout << "没有您要查找的书" << endl;system("pause");}void library::findbyname(){cout << "请输入您要查找的书名" << endl;string name6;cin >> name6;for (int i = 0;i < count;i++){if (arr[i].isName(name6)){arr[i].display();system("pause");return;}else continue;}cout << "没有您要查找的书" << endl;system("pause");}void library::findbyauthor(){cout << "请输入您要查找的作者名" << endl;string author6;cin >> author6;for (int i = 0;i < count;i++){if (arr[i].isAuthor(author6)){arr[i].display();system("pause");return;}else continue;}cout << "没有您要查找的书" << endl;system("pause");}

文件

void library::infile()//读文件 {fstream infile;infile.open("book.txt", ios::in);string s;while (infile >> s)cout << s << endl; infile.close();}void library::outfile()//写文件 {fstream outfile;outfile.open("book.txt", ios::out | ios::app);for (int i = 0; i < count; i++){outfile << arr[i].getNum()<<endl;outfile << arr[i].getName() << endl;outfile << arr[i].getAuthor() << endl;outfile << arr[i].getPublisher()<<endl;outfile << arr[i].getTime() << endl;outfile << arr[i].getPrice() << endl;}cout<<"成功保存到文件"<<endl; outfile.close();}

菜单

void menu(){cout << "\t\t\t***************************************************************" << endl;cout << "\t\t\t*******************欢迎光临图书管理系统************************" << endl;cout << "\t\t\t**************** 1.输入1 新书上架*******************" << endl;cout << "\t\t\t**************** 2.输入2 图书浏览*******************" << endl;cout << "\t\t\t**************** 3.输入3 图书下架 *******************" << endl;cout << "\t\t\t**************** 4.输入4 按书名查询 *******************" << endl;cout << "\t\t\t**************** 5.输入5 按作者名查询 *******************" << endl;cout << "\t\t\t**************** 6.输入6 按书号查询*******************" << endl;cout << "\t\t\t**************** 6.输入7 按书号查询*******************" << endl;cout << "\t\t\t**************** 7.输入0 退出程序*******************" << endl;cout << "\t\t\t***************************************************************" << endl;}

主函数

int main(){int x= 0;library* librarys = new library;librarys->infile();int count = 0;menu();while (true){cin >>x;switch (x){case 1: //添加librarys->add();break;case 2: //显示librarys->show();break;case 3: //删除librarys->deletebook();break;case 4: //书名查找librarys->findbyname();break;case 5://作者名查找librarys->findbyauthor();break;case 6: //书号查找librarys->findbynum();break;case 7: //将数据保存到文件librarys->outfile();break;case 0: //退出程序cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");return 0;}

二、全部代码

#include<iostream>#include<cstring>#include<stdlib.h>#include <fstream>using namespace std;#define max 1000class book{private:string num;//书号 string name;//书名string author;//作者名 string publisher;//出版社string time;//出版时间 double price;//图书价格public:book() {}; //构造函数 void fuzhibook(string num1, string name1,string author1,string publisher1,string time1,double price1);//给整体赋值 void Num(string num2);// 给书号 赋值 void Name(string name2);//给书名赋值void Author(string author2);//给作者名赋值void Publisher(string publisher2);//给出版社赋值void Time(string time2);//给出版时间赋值void Price(double price2);//给图书价格赋值string getNum();//获取书号 string getName();//获取书名string getAuthor();//获取作者名 string getPublisher();//获取出版社string getTime();//获取出版时间 double getPrice();//获取图书价格bool isName(string name3);//判断书名 bool isNum(string num3);//判断书号bool isAuthor(string author3);//判断作者名 void display();//};void book::fuzhibook(string num1, string name1,string author1,string publisher1,string time1,double price1){num=num1;name=name1;author=author1;publisher=publisher1;time=time1;price=price1;}void book::Num(string num2){num=num2;}void book::Name(string name2){name=name2;}void book::Author(string author2){author=author2;}void book::Publisher(string publisher2){publisher=publisher2;}void book::Time(string time2){time=time2;}void book::Price(double price2){price=price2;}string book::getNum(){return num;}string book::getName(){return name;}string book::getAuthor(){return author;}string book::getPublisher(){return publisher;}string book::getTime(){return time;}double book::getPrice(){return price;}bool book::isName(string name3){if (name == name3) return true;else return false;}bool book::isNum(string num3){if (num3 == num) return true;else return false;}bool book::isAuthor(string author3){if (author == author3) return true;else return false;}void book::display(){cout<<" 书号:"<<num<<"书名:"<<name<<"作者名:"<<author<<"出版社:"<<publisher<<"出版时间:"<<time<<"价格:"<<price;}class library{private:book arr[max];//存书的数组int count;//书的数量public:void add();//添加void show();//显示void deletebook();//删除void findbynum();//按书号查找void findbyname();//按书名查找void findbyauthor();//按作者名查找//void modifyPerson();//修改联系人void infile();//读文件void outfile();//写文件};void library::add(){if (count>=max){cout << "书籍已满,无法添加" << endl;return;}else{string num4,name4,author4,publisher4,time4;double price4;cout << "书号\t书名\t作者名\t出版社\t出版时间\t价格" << endl;cin >>num4>>name4>>author4>>publisher4>>time4>>price4;arr[count].fuzhibook(num4,name4,author4,publisher4,time4,price4);count++;system("pause");}}void library::show(){for (int i = 0;i < count;i++){arr[i].display();}system("pause");}void library::deletebook(){cout << "请输入您要删除图书的书号" << endl;string num5;cin >> num5;int j = 0;//未知for (int i = 0; i < count; i++){if (arr[i].isNum(num5))break;else j++;}if (j== count){cout << "没有您要删除的书" << endl;system("pause");return;}for (int i =j ; i < count; i++){arr[i] =arr[i + 1];}count--;system("pause");}void library::findbynum(){cout << "请输入您要查找的书号" << endl;string num6;cin >> num6;for (int i = 0;i < count;i++){if (arr[i].isNum(num6)){arr[i].display();system("pause");return;}else continue;}cout << "没有您要查找的书" << endl;system("pause");}void library::findbyname(){cout << "请输入您要查找的书名" << endl;string name6;cin >> name6;for (int i = 0;i < count;i++){if (arr[i].isName(name6)){arr[i].display();system("pause");return;}else continue;}cout << "没有您要查找的书" << endl;system("pause");}void library::findbyauthor(){cout << "请输入您要查找的作者名" << endl;string author6;cin >> author6;for (int i = 0;i < count;i++){if (arr[i].isAuthor(author6)){arr[i].display();system("pause");return;}else continue;}cout << "没有您要查找的书" << endl;system("pause");}void library::infile()//读文件 {fstream infile;infile.open("book.txt", ios::in);string s;while (infile >> s)cout << s << endl; infile.close();}void library::outfile()//写文件 {fstream outfile;outfile.open("book.txt", ios::out | ios::app);for (int i = 0; i < count; i++){outfile << arr[i].getNum()<<endl;outfile << arr[i].getName() << endl;outfile << arr[i].getAuthor() << endl;outfile << arr[i].getPublisher()<<endl;outfile << arr[i].getTime() << endl;outfile << arr[i].getPrice() << endl;}cout<<"成功保存到文件"<<endl; outfile.close();}void menu(){cout << "\t\t\t***************************************************************" << endl;cout << "\t\t\t*******************欢迎光临图书管理系统************************" << endl;cout << "\t\t\t**************** 1.输入1 新书上架*******************" << endl;cout << "\t\t\t**************** 2.输入2 图书浏览*******************" << endl;cout << "\t\t\t**************** 3.输入3 图书下架 *******************" << endl;cout << "\t\t\t**************** 4.输入4 按书名查询 *******************" << endl;cout << "\t\t\t**************** 5.输入5 按作者名查询 *******************" << endl;cout << "\t\t\t**************** 6.输入6 按书号查询*******************" << endl;cout << "\t\t\t**************** 6.输入7 按书号查询*******************" << endl;cout << "\t\t\t**************** 7.输入0 退出程序*******************" << endl;cout << "\t\t\t***************************************************************" << endl;}int main(){int x= 0;library* librarys = new library;librarys->infile();int count = 0;menu();while (true){cin >>x;switch (x){case 1: //添加librarys->add();break;case 2: //显示librarys->show();break;case 3: //删除librarys->deletebook();break;case 4: //书名查找librarys->findbyname();break;case 5://作者名查找librarys->findbyauthor();break;case 6: //书号查找librarys->findbynum();break;case 7: //将数据保存到文件librarys->outfile();break;case 0: //退出程序cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。