本文主要是介绍CCAT-S1试题-图书管理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*
*程序的版权和版本声明部分:
*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);elsemenu();}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);elsecout<<"查无此书!";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);elsecout<<"查无此书!";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);elsecout<<"查无此书!";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);elsecout<<"查无此书!";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<<"请选择业务:";
}
运行结果:
心得体会:有点像数据库
这篇关于CCAT-S1试题-图书管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!