/*
*程序的版权和版本声明部分:
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2014 年 5 月 18 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: -
*问题描述:图书信息管理系统
*程序输出:图书信息
*问题分析:
*算法设计:
*/
#include<iostream>
#include<cstdlib>
#include<iomanip>
#include<string>
using namespace std;
void menu(); //菜单
void findMenu(); //查书界面
void showBook(int);//显示图书信息
int size=0; //记录当前图书数量
class Book
{
public:
void addBook(); //增加图书
void findBookName(string); //名称查找图书
void findBookNumber(string);//编号查找图书
void findBookAuthor(string);//作者查找图书
void findBookAddress(string);//出版社查找图书
void display(); //显示所有图书信息
string getName()
{
return name;
}
string getNumber()
{
return number;
}
string getAuthor()
{
return author;
}
string getAddress()
{
return address;
}
double getPrice()
{
return price;
}
private:
string name,author,number,address; //书名,作者,编号,出版社
double price; //价格
};
Book b[20];
int main()
{
int choose;
do
{
menu();
cin>>choose;
if(choose==1)
b[size].addBook();
else if(choose==2)
findMenu();
else if(choose==3)
b[size].display();
else if(choose==0)
exit(0);
else
menu();
}
while(choose!=0);
return 0;
}
void Book::addBook()
{
char yrn;
cout<<"图书编号:";
cin>>b[size].number;
cout<<"图书名称:";
cin>>b[size].name;
cout<<"作者:";
cin>>b[size].author;
cout<<"出版社:";
cin>>b[size].address;
cout<<"价格:";
cin>>b[size].price;
cout<<"增加成功!"<<endl;
showBook(size);
size+=1;
cout<<"是否继续添加?是(Y/y)否(N/n)";
cin>>yrn;
if(yrn=='y'||yrn=='Y')
Book::addBook();
}
void findBookNumber(string Bnumber)
{
bool flag=false;
int i;
for(i=0; i<=size; ++i)
{
if(b[i].getNumber()==Bnumber)
{
flag=true;
break;
}
}
if(flag)
showBook(i);
else
cout<<"查无此书!";
findMenu();
}
void findBookName(string Bname)
{
bool flag=false;
int i;
for(i=0; i<=size; ++i)
{
if(b[i].getName()==Bname)
{
flag=true;
break;
}
}
if(flag)
showBook(i);
else
cout<<"查无此书!";
findMenu();
}
void findBookAuthor(string Bauthor)
{
bool flag=false;
int i;
for(i=0; i<=size; ++i)
{
if(b[i].getAuthor()==Bauthor)
{
flag=true;
break;
}
}
if(flag)
showBook(i);
else
cout<<"查无此书!";
findMenu();
}
void findBookAddress(string Baddress)
{
bool flag=false;
int i;
for(i=0; i<=size; ++i)
{
if(b[i].getAddress()==Baddress)
{
flag=true;
break;
}
}
if(flag)
showBook(i);
else
cout<<"查无此书!";
findMenu();
}
void Book::display()
{
for(int i=0; i<size; ++i)
showBook(i);
findMenu();
}
void showBook(int n)
{
cout<<"-------------------------------------------------------"<<endl;
cout<<"图书编号 图书名称 作者 出版社 价格"<<endl;
cout<<b[n].getNumber()<<setw(20)<<b[n].getName();
cout<<setw(8)<<b[n].getAuthor()<<setw(16)<<b[n].getAddress();
cout<<setw(6)<<b[n].getPrice()<<endl;
cout<<"-------------------------------------------------------"<<endl;
}
void findMenu()
{
bool flag=true;
int choose;
string name,number,address,author;
while(flag)
{
cout<<"-----------------------"<<endl;
cout<<"--- 1 根据图书编号---"<<endl;
cout<<"--- 2 根据图书名称---"<<endl;
cout<<"--- 3 根据图书作者---"<<endl;
cout<<"--- 4 根据出版社-----"<<endl;
cout<<"--- 5 返回主菜单-----"<<endl;
cin>>choose;
switch(choose)
{
case 1:
cout<<"请输入编号:";
cin>>number;
findBookNumber(number);
break;
case 2:
cout<<"请输入书名:";
cin>>name;
findBookName(name);
break;
case 3:
cout<<"请输入作者:";
cin>>author;
findBookAuthor(author);
break;
case 4:
cout<<"请输入出版社:";
cin>>address;
findBookAddress(address);
break;
case 5:
flag=false;
break;
}
}
}
void menu()
{
cout<<"------------------------"<<endl;
cout<<"----- 图书管理系统----- "<<endl;
cout<<"------------------------"<<endl<<endl;
cout<<"------------------------"<<endl;
cout<<"---- 1 增加图书 ----"<<endl;
cout<<"---- 2 查找图书 ----"<<endl;
cout<<"---- 3 显示全部 ----"<<endl;
cout<<"---- 0 退出系统 ----"<<endl;
cout<<"请选择业务:";
}
运行结果:
心得体会:有点像数据库