⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdatabase.cpp

📁 一个用VC编写的Dos界面的图书管理系统
💻 CPP
字号:
// bdatabase.cpp: implementation of the bdatabase class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "fstream.h"
#include "bdatabase.h"
#include <iostream.h>
 
 
bdatabase::bdatabase()
{

    Book s;
	top=-1;
	fstream file;
	file.open("book.dat",ios::in|ios::binary);
	while(1)
	{
		file.read((char*)&s,sizeof(s));
		if(!file)break;
		top++;
		book[top]=s;
	}
	file.close();
}

bdatabase::~bdatabase()
{
	fstream file;
	file.open("book.dat",ios::out|ios::binary);
	for(int i=0;i<=top;i++)
		if(book[i].getnote()==0)
			file.write((char*)&book[i],sizeof(book[i]));
		file.close();
}

void bdatabase::bookdata()
{
   int choice=1;
   char bookname[20];
   int bookid;
   Book *b;
   while(choice!=0)
   {
   cout<<"图书维护:"<<endl;
   cout<<"_____________________________________________________"<<endl;
   cout<<"1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 7:退出"<<endl;
   cin>>choice;
   cout<<"_____________________________________________________"<<endl;
        switch(choice)
		{
		case 1:cout<<"输入图书编号:";
			cin>>bookid;
			cout<<"输入图书名:";
			cin>>bookname;
			addbook(bookid,bookname);
			writeB();
			break;
		case 2:cout<<"输入图书编号:";
			cin>>bookid;
			b=query(bookid);
			if(b ==NULL)
			{cout<<"该图书不存在"<<endl; 
			break;}
			cout<<"输入新的图书名:";
			cin>>bookname;
			b->setname(bookname);
			writeB();			
			break;
		case 3:cout<<"输入图书编号:";
			cin>>bookid;
			b=query(bookid);
			if(b==NULL)
			{cout<<"该图书不存在!"<<endl;break;}
			cout<<"输入“0”确定删除"<<endl;
			cin>>bookname;
			b->setname(bookname);
			writeB();
			break;
		case 4:
			cout<<"输入图书编号:";
				cin>>bookid;
			b=query(bookid);
			if(b==NULL)
			{cout<<"该图书不存在!"<<endl;
			break;}
			b->list();
			writeB();
			break;
		case 5:list();
            writeB();
			break;
        case 6:break;

		}
   }

  
  
}

void bdatabase::list()
{
    for(int i=0;i<=top;i++)
		book[i].list();
}
void bdatabase::writeB()
{
	fstream file;
	file.open("book.dat",ios::out|ios::binary);
	for(int i=0;i<=top;i++)
		if(book[i].getnote()==0)
			file.write((char*)&book[i],sizeof(book[i]));
		file.close();     
}

Book *bdatabase::query(int bookid)
{
	for(int i=0;i<=top;i++)
	{
		if(book[i].getnumber()==bookid&&book[i].getnote()==0)
		return &book[i];
	}
		return NULL;
	
}

int bdatabase::addbook(int n, char *na)
{
    Book *p=query(n);
	if(p==NULL)
	{
		top++;
		book[top].addbook(n,na);
		return 1;
	}
	return 0;
}

void bdatabase::clear()
{
	top=-1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -