标签:
图书信息管理系统包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作(5)图书信息的删除与修改
下面是源代码:
book.h:
#ifndef BOOK_H_INCLUDED #define BOOK_H_INCLUDED #include<fstream> #include<iostream> #include<cstdlib> #include<string> using namespace std; class Book//图书的类 { private: string number;//登陆号 string name;//书名 string author;//作者 string snumber;//分类号 string office;//出版单位 string time;//出版时间 string money;//价格 public: string get_number(){return number;} string get_name(){return name;} string get_author(){return author;} string get_snumber(){return snumber;} string get_office(){return office;} string get_time(){return time;} string get_money(){return money;} void set_number(string num){number=num;} void set_name(string n){name=n;} void set_author(string a){author=a;} void set_snumber(string sn){snumber=sn;} void set_office(string o){office=o;} void set_time(string t){time=t;} void set_money(string m){money=m;} void setbook(string num,string n,string a,string sn,string o,string t,string m); }; #endif // BOOK_H_INCLUDED
#ifndef MENU_H_INCLUDED #define MENU_H_INCLUDED #include<fstream> #include<iostream> #include<cstdlib> #include<string> using namespace std; class Menu { public: Book *book=new Book[5000]; Menu(); ~Menu(); int num; void showmenu(); int name_search(string);//桉树名查找 int num_search(string);//按登录号查找 void searchbook(int);//查找图书 void showinfo(int);//显示图书信息 void showchange();//显示信息更改菜单 void showall();//显示所有的信息 int openfile(void);//打开文件 void savefile();//保存文件 void addinfo();//增加图书信息 void changeinfo();//修改图书信息 }; #endif // MENU_H_INCLUDED
#include <fstream> #include <iostream> #include <cstdlib> #include <string> #include "book.h" using namespace std; void Book::setbook(string num,string n,string a,string sn,string o,string t,string m) { number=num; name=n; author=a; snumber=sn; office=o; time=t; money=m; }
menu.cpp:
#include <fstream> #include <iostream> #include <cstdlib> #include <string> #include "book.h" #include "menu.h" using namespace std; Menu::Menu() { num=0; string number,n,a,sn,o,t,m; ifstream infile("bookinfo.dat",ios::in); if (!infile) { cout<<"打开文件失败!"; exit(1); } while (infile>>number>>n>>a>>sn>>o>>t>>m) { book[num].setbook(number,n,a,sn,o,t,m); num++; } infile.close(); //cout<<num<<endl; //文件读取结束 } Menu::~Menu() { delete []book; } void Menu::savefile() { int i; ofstream outfile("bookinfo.dat",ios::out); if (!outfile) { cout<<"打开文件失败!"; exit(1); } for (i=0; i<num; i++) { outfile<<book[i].get_number()<<" "<<book[i].get_name()<<" "<<book[i].get_author()<<" "<<book[i].get_snumber()<<" "<<book[i].get_office()<<" "<<book[i].get_time()<<" "<<book[i].get_money()<<endl; } outfile.close(); } void Menu::showmenu() { /*for (int i=0; i<num; i++) { cout<<book[i].get_number()<<book[i].get_name()<<endl; }*/ cout<<"+-------------------+"<<endl; cout<<"图书信息管理系统"<<endl; cout<<"+-------------------+"<<endl; cout<<"1、按登录号查找"<<endl; cout<<"2、按书名查找"<<endl; cout<<"3、图书信息浏览"<<endl; cout<<"4、图书信息录入"<<endl; cout<<"5、修改图书信息"<<endl; cout<<"请选择功能(输入0退出):"; } void Menu::showchange(void) { cout<<"+-------------------+"<<endl; cout<<"1、登陆号"<<endl; cout<<"2、书名"<<endl; cout<<"3、作者名"<<endl; cout<<"4、分类号"<<endl; cout<<"5、出版单位"<<endl; cout<<"6、出版时间"<<endl; cout<<"7、价格"<<endl; cout<<"+-------------------+"<<endl; cout<<"请输入要修改的选项(1-7):"; } int Menu::name_search(string key)//按书名查找 { int i; for (i=0; i<num; i++) { if (key==book[i].get_name()) return i; } return i; } int Menu::num_search(string key)//按登录号查找 { int i=-1; for (i=0; i<num; i++) { if (key==book[i].get_number()) return i; } return i; } void Menu::searchbook(int way)//查找图书信息 { string numkey,namekey; int i; while(1) { if (way==1) { cout<<"请输入图书登录号:"; cin>>numkey; i=num_search(numkey); if (i==-1) { cout<<"无此图书信息!"<<endl; continue; } else { showinfo(i); system("PAUSE"); break; } } else if (way==2) { cout<<"请输入书名:"; cin>>namekey; i=name_search(namekey); if (i==-1) { cout<<"无此图书信息!"<<endl; continue; } else { showinfo(i); system("PAUSE"); break; } } } } void Menu::showinfo(int i) { cout<<book[i].get_number()<<" "<<book[i].get_name()<<" "<<book[i].get_author()<<" "<<book[i].get_snumber()<<" "<<book[i].get_office()<<" "<<book[i].get_time()<<" "<<book[i].get_money()<<endl; } void Menu::showall() { int i; cout<<"图书信息:"<<endl<<cout<<"依次为图书的登陆号、书名、作者名、分类号、出版单位、出版时间、价格:"<<endl; for (i=0; i<num; i++) { showinfo(i); } system("PAUSE"); } void Menu::addinfo() { int add,addsum,tem; tem=num; string numb,n,a,sn,o,t,m; cout<<"请输入录入的个数:"; cin>>addsum; cout<<"请依次输入图书的登陆号、书名、作者名、分类号、出版单位、出版时间、价格"<<endl; cout<<"例如:201501 《在这复杂的世界里》 韩寒 201 浙江出版社 2014-06-01 49"<<endl; //打开文件 ofstream outfile("bookinfo.dat",ios::app); if (!outfile) { cout<<"打开文件失败!"; exit(1); } tem+=addsum; for (add=tem; add<(addsum+tem); add++) { cin>>numb>>n>>a>>sn>>o>>t>>m; outfile<<numb<<" "<<n<<" "<<" "<<a<<" "<<sn<<" "<<a<<" "<<t<<" "<<m<<endl; } num=addsum+tem; outfile.close(); cout<<"写入结束!共写入"<<addsum<<"条记录,现共有"<<num-1<<"条记录。"<<endl; system("PAUSE"); //文件写入结束 } void Menu::changeinfo() { int i; string numkey,numb,n,a,sn,o,t,m; int cut; cout<<"请输入要修改图书的登陆号:"; cin>>numkey; i=num_search(numkey); cout<<"您正在修改“"; showinfo(i); cout<<"”的信息"<<endl; showchange(); cin>>cut; cout<<"请输入修改的内容:"; while (1) { if (cut==1) { cin>>numb; book[i].set_number(numb); } else if (cut==2) { cin>>n; book[i].set_name(n); } else if (cut==3) { cin>>a; book[i].set_author(a); } else if (cut==4) { cin>>sn; book[i].set_snumber(sn); } else if (cut==5) { cin>>o; book[i].set_office(o); } else if (cut==6) { cin>>t; book[i].set_time(t); } else if (cut==7) { cin>>m; book[i].set_money(m); } else { cout<<"输入错误,请重新输入。"<<endl; continue; } savefile(); cout<<"修改成功!"<<endl; system("PAUSE"); break; } }
main.cpp:
#include <fstream> #include <iostream> #include <cstdlib> #include <string> #include "book.h" #include "menu.h" using namespace std; int main() { int choice; Menu m; while (1) { system("cls"); m.showmenu();//显示开始菜单 cin>>choice; switch(choice) { case 0:cout<<"感谢使用图书管理系统!";exit(1); case 1:m.searchbook(1);break; case 2:m.searchbook(2);break; case 3:m.showall();break; case 4:m.addinfo();break; case 5:m.changeinfo();break; default: cout<<"输入错误,请重新输入。"; } } return 0; }
图书数据库信息:
@ Mayuko
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/mayuko2012/article/details/46919497