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

📄 rdatabase.cpp

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

#include "stdafx.h"
#include "iostream.h"
#include "rdatabase.h"
#include "fstream.h"
/////////////////////////////////////////////////////////////////////////////
// rdatabase
rdatabase::rdatabase()
{   
	Reader s;
    top=-1;
	ifstream file;
	file.open("reader.dat",ios::in|ios::binary);
	while(1)
	{file.read((char*)&s,sizeof(s));
	if(!file)break;
	top++;
	read[top]=s;
	}
	file.close();
}
void rdatabase::clear()
{   
  top=-1;
}
Reader *rdatabase::query(int readerid)
{
	 for(int i=0;i<=top;i++)
		 if(read[i].getnumber()==readerid&&read[i].getnote()==0)
			 return &read[i];
		 return NULL;
}

int rdatabase::addreader(int n,char *na)
{
	Reader *p=query(n);
	if(p==NULL)
	{
		top++;
		read[top].addreader(n,na);
		return 1;
	}
	return 0;
}
void rdatabase::list()
{
	 for(int i=0;i<=top;i++)
		 read[i].list();
}

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

void rdatabase::readerdata()
{
	 int choice=1;
	 char readername[20];
	 int readerid;
	 Reader *r;
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>>readerid;
			cout<<"输入读者姓名:";
			cin>>readername;
			addreader(readerid,readername);
			writeR();
			break;
		case 2:cout<<"输入读者编号:";
			cin>>readerid;
			r=query(readerid);
			if(r==NULL)
			{cout<<"该图书不存在"<<endl;
			break;}
			cout<<"输入新的姓名:";
			cin>>readername;
		    r->setname(readername);
			writeR();
			break;
		case 3:cout<<"输入读者编号:";
			cin>>readerid;
			r=query(readerid);
			if(r==NULL)
			{cout<<"该读者不存在!"<<endl;break;	}
			cout<<"输入“0”确定删除"<<endl;
			cin>>readername;
			r->setname(readername);
			writeR();
		    break;
		case 4:
			cout<<"输入读者编号:";
				cin>>readerid;
			r=query(readerid);
			if(r==NULL)
			{cout<<"该读者不存在!"<<endl;
			writeR();
			break;}
			r->list();break;
		case 5:list();break;
        case 6:break;
		default: cout<<"输入错误!"<<endl;

		}
   }

	 
}

⌨️ 快捷键说明

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