c++图书管理系统(完整精华排版)

2018-11-22 22:53

//图书管理系统

#include #include #include #include

using namespace std;

const int Maxb=10000; //最多的图书 class Book//图书类 {

int tag; //删除标记1:已删0:未删 int no; //图书编号 char name[20]; //书名 char author[10]; //作者名 char no2[10];//输入分类号 char dan[20];//输入出版单位 char time[20];//出版时间 int price;//价格

public:

Book() {}

char *getname() { return name; } //获取姓名 int getno() { return no; }//获取图书编号 int gettag() { return tag; } //获取删除标记 char *getauthor() {return author;} //获取作者名

char *getno2() {return no2;} //获取分类号 char *getdan() {return dan;} //获取出版单位 char *gettime() {return time;} //获取出版时间 char getprice() {return price;} //获取图书价格

void setname(char na[]) //设置书名 {

strcpy(name,na); }

void setauthor(char au[]) //设置作者名 {

strcpy(author,au); }

void setno2(char n[]) //设置分类号 {

strcpy(no2,n); }

void setdan(char d[]) //设置出版单位

{

strcpy(dan,d); }

void settime(char t[]) //设置出版时间 {

strcpy(time,t); }

void delbook() { tag=1; } //删除图书

void addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr) //增加图书 {

tag=0; no=n; price=pr;

strcpy(name,na); strcpy(author,au); strcpy(no2,n2); strcpy(dan,da); strcpy(time,ti); }

void disp() //输出图书 {

cout << setw(10) << no << setw(10) << name << setw(10) <<

setw(10)<

class BDatabase //图书库类 {

int top; //图书记录指针

Book book[Maxb]; //图书记录 public:

BDatabase() //构造函数,将book.txt读到book[]中 {

Book b; top=-1;

fstream file(\ while (1) {

file.read((char *)&b,sizeof(b)); if (!file) break; top++;

book[top]=b; }

file.close(); }

void clear() //全删 {

top=-1; }

int addbook(int n,char *na,char *au, char *n2, char *da,char *ti,int pr) {

Book *p=query(n); if (p==NULL) {

top++;

book[top].addbook(n,na,au,n2,da,ti,pr); return 1; }

return 0; }

Book *query(int bookid) //查找图书 {

for (int i=0;i<=top;i++)

if (book[i].getno()==bookid && book[i].gettag()==0) return &book[i]; return NULL; }

Book *query2(int bookid,char *name) //按书名查找图书 {

for(int i=0;i<=top;i++)

if(strcmp(book[i].getname(),name)==0) {bookid=book[i].getno(); return &book[i]; }

return NULL; }

Book *query3(int bookid,char *author) //按作者查找图书 {

for(int i=0;i<=top;i++)

//增加图书 if(strcmp(book[i].getauthor(),author)==0) {bookid=book[i].getno(); return &book[i]; }

return NULL; }

void bookdata(); //图书库维护 void disp() {

cout<

for (int i=0;i<=top;i++) if (book[i].gettag()==0) book[i].disp(); }

~BDatabase() //析构函数,将book[]写入book.txt文件中 {

fstream file(\ for (int i=0;i<=top;i++) if (book[i].gettag()==0)

file.write((char *)&book[i],sizeof(book[i])); file.close(); } };

void BDatabase::bookdata() {

int choice=1; int choice2=1; int choice3=1; int choice4=1;

char bname[40]; char bauthor[10]; char bno2[20]; char bdan[20]; char btime[20]; int bprice;

int bookid; Book *b;

while (choice!=0) { cout<

cout<<\ * * * * * * * * * * * *\

cout<<\ * 1 添加信息 *\

cout<<\ * 2 修改信息 *\cout<<\ * 3 删除信息 *\cout<<\ * 4 信息查询 *\cout<<\ * 5 显示信息 *\cout<<\ * 6 全部删除 *\cout<<\ * 0 退出 *\

cout<<\ * * * * * * * * * * * *\cout<> choice;

//如果输入的编号在菜单里不存在的情况---在for循环内部如果出现这样的错的时候 while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=0){

cout<>choice; }

switch (choice) {

case 1:

cout <<\输入图书编号:\ cin >> bookid;

cout <<\输入图书书名:\ cin >> bname; cout <<\输入作者名:\cin >>bauthor;

cout <<\输入分类号:\cin>>bno2;

cout<<\输入出版单位:\cin>>bdan;

cout<<\输入出版时间:\ cin>>btime; cout<<\输入价格:\cin>>bprice;

addbook(bookid,bname,bauthor,bno2,bdan,btime,bprice);

cout<<\图书编号\添加成功;按任意键返回菜单 \

break; case 2:

cout << \ 输入图书编号:\ cin >> bookid; b=query(bookid); if (b==NULL) {


c++图书管理系统(完整精华排版).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:统计初步复习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: