程序设计综合课程设计
void set_rtel(char *rt) //设置电话
{strcpy(rtel,rt);}
char *get_rtel() //获得电话 {return rtel;}
void copy(Reader m) //读者Reader结构体copy函数
{strcpy(rname,m.get_rname());strcpy(rclass,m.get_rclass());strcpy(rtel,m.get_rtel());}
};
//*********读者管理结构体,实现对读者用户的管理********* class ReaderManage {
Reader readers[50]; //定义读者结构体数组对象,最多50位 int length;
void readFile() //读取读者文件函数
{
ifstream fread; //定义输入文件流对象fread
length=0; //计数 if(!fread)
{cout<<\读取磁盘文件失败!\
fread.open(ReaderFile,ios::binary);//使文件流与文件关联,以二进制方式打开
int i=0;
while((fread.read((char *)&readers[i],sizeof(Reader))))//计算并
返回所占字节数
i++;
length=i;
fread.close();//关闭磁盘文件
}
19
程序设计综合课程设计
void saveFile() //保存读者文件 {
ofstream fwrite; //定义输出文件流对象fwrite
if(!fwrite)
{cout<<\文件保存失败!\\n\
fwrite.open(ReaderFile,ios::binary);//使文件流与文件关联,以二
进制方式打开
fwrite.write((char *)readers,length*sizeof(Reader));//计算并返
回所占字节数
fwrite.close(); //关闭磁盘文件
}
public:
ReaderManage() //构造函数,读取读者文件
{readFile();}
~ReaderManage() //析构函数,保存读者文件 {saveFile();}
void add_reader(Reader r) //添加读者用户函数
{
if(length>=50)
{cout<<\对不起,注册人数已满!\\n\
readers[length].copy(r); //调用读者结构体copy函数 length++;
}
int search(char *rn) //按姓名查找读者函数 {
for(int i=0;i if(strcmp(readers[i].get_rname(),rn)==0)//判断是否相等   return i;                  return -1;                               20      程序设计综合课程设计                           }  bool revise(Reader reader,int i)  //修改读者资料函数  {   }  void delete_reader(int index)  //删除读者函数  {    }  bool log_reader(Reader r)  //登录时判断读者用户是否存在函数  {     }  void reg_reader()  //注册用户函数 {     char n[10];    //姓名name char c[10];   //班级class char t[10];   //电话tel for(int i=0;i if(strcmp(readers[i].get_rname(),r.get_rname())==0)   return true;  for(int i=index;i readers[i].copy(readers[i+1]); //用后面的地址覆盖前面的地址  readers[i].copy(reader); //调用读者结构体cpoy函数 return true;  length--;  return false;            Reader reader;          cout<<\请输入您的姓名:\        cin>>n;          cout<<\请输入您的所在班级:\        cin>>c;          cout<<\请输入您的联系电话:\ 21      程序设计综合课程设计          cin>>t;          reader.set_rname(n);  //调用读者结构体设置读者姓名函数         reader.set_rclass(c); //调用读者结构体设置读者班级函数         reader.set_rtel(t); //调用读者结构体设置联系电话函数         add_reader(reader); //调用读者结构体添加读者函数        }  void show_reader()  //不带参的显示读者信息函数  {   cout<<\读****者****信****息****列****cout<<\注册成功!\ 表**********************\\n\\n\         cout<<\姓名\\t\\t\\t班级\\t\\t\\t电话\\n\        for(int i=0;i      }  void  show_reader(int i)  //带参的显示读者信息函数 {  {        }  cout< cout<<\cout<<\        cout<<\读****者****信****息****列****表**********************\\n\\n\        cout<<\姓名\\t\\t\\t班级\\t\\t\\t电话\\n\       cout<        cout<<\       cout<<\  }           };       22