按顺序将数据输出到磁盘文件中保存 C++
小到大的顺序将5名教师数据输出到磁盘文件中保存,注意可以随时添加教师信息可以输出这个文件中的全部数据用输入输出流解决问题有代码追加50分...
小到大的顺序将5名教师数据输出到磁盘文件中保存,注意可以随时添加教师信息
可以输出这个文件中的全部数据
用输入输出流解决问题
有代码追加50分 展开
可以输出这个文件中的全部数据
用输入输出流解决问题
有代码追加50分 展开
3个回答
展开全部
#include<iostream>
#include<fstream>
using namespace std;
class Teacher
{
private:
char name[10];
int age;//年龄从小到大?
public:
Teacher()
{
cout<<"请输入老师的姓名"<<endl;
cin>>name;
cout<<"年龄"<<endl;
cin>>age;
}
void get(ofstream fout)
{
fout.write((char*) this,sizeof(*this));
}
friend void paixu(Teacher t[],int n);
friend void getdata(Teacher t[],int n,ofstream &f);
};
void getdata(Teacher t[],int n,ofstream &fout)
{
for(int i=0;i<n;i++)
fout.write((char *)&t[i],sizeof(t[i]));
}
void paixu(Teacher t[],int n)
{
int j,i;//冒泡法
Teacher t0(t[0]);
for(j=0;j<n;j++)
for(i=0;i<n-j-1;i++)
{
if(t[i+1].age<t[i].age)
{
t0=t[i];
t[i]=t[i+1];
t[i+1]=t0;
}
}
}
int main()
{
Teacher t[5];
cout<<"排序"<<endl;
paixu(t,5);
ofstream fout;//二进制形式存储
fout.open("Teacher.txt",ios::binary);
getdata(t,5,fout);
fout.close();
cout<<"您要添加数据么?(y/n)"<<endl;
char log='n';
cin>>log;
while(log=='y')
{
fout.open("Teacher.txt",ios::binary|ios::app);
Teacher *t0;
t0=new Teacher[1];
t0->get(fout);
fout.close();
delete t0;
cout<<"您要添加数据么?(y/n)"<<endl;
cin>>log;
}
return 0;
}
#include<fstream>
using namespace std;
class Teacher
{
private:
char name[10];
int age;//年龄从小到大?
public:
Teacher()
{
cout<<"请输入老师的姓名"<<endl;
cin>>name;
cout<<"年龄"<<endl;
cin>>age;
}
void get(ofstream fout)
{
fout.write((char*) this,sizeof(*this));
}
friend void paixu(Teacher t[],int n);
friend void getdata(Teacher t[],int n,ofstream &f);
};
void getdata(Teacher t[],int n,ofstream &fout)
{
for(int i=0;i<n;i++)
fout.write((char *)&t[i],sizeof(t[i]));
}
void paixu(Teacher t[],int n)
{
int j,i;//冒泡法
Teacher t0(t[0]);
for(j=0;j<n;j++)
for(i=0;i<n-j-1;i++)
{
if(t[i+1].age<t[i].age)
{
t0=t[i];
t[i]=t[i+1];
t[i+1]=t0;
}
}
}
int main()
{
Teacher t[5];
cout<<"排序"<<endl;
paixu(t,5);
ofstream fout;//二进制形式存储
fout.open("Teacher.txt",ios::binary);
getdata(t,5,fout);
fout.close();
cout<<"您要添加数据么?(y/n)"<<endl;
char log='n';
cin>>log;
while(log=='y')
{
fout.open("Teacher.txt",ios::binary|ios::app);
Teacher *t0;
t0=new Teacher[1];
t0->get(fout);
fout.close();
delete t0;
cout<<"您要添加数据么?(y/n)"<<endl;
cin>>log;
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |