程序设计综合课程设计
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