您的位置:首页 > 其它

第7章 第5题

2015-06-08 23:23 134 查看
#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;

struct staff
{
int num;
char name[20];
int age;
double pay;
};

int main()
{
staff staf[7]={3898,"Fan",34,1200,3899,"Wang",23,6740,2448,"Chen",54,778,
3000,"Du",45,4763,3301,"Ling",39,6555},staf1;
fstream iofile("staff.dat",ios::in|ios::out|ios::binary);
if(!iofile)
{
cerr<<"open error!"<<endl;
abort();
}
int i,m,num;
cout<<"Five staff :"<<endl;
for(i=0;i<5;i++)
{
cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;
iofile.write((char *)&staf[i],sizeof(staf[i]));
}
cout<<"please input data you want insert:"<<endl;
for(i=0;i<2;i++)
{
cin>>staf1.num>>staf1.name>>staf1.age>>staf1.pay;
iofile.seekp(0,ios::end);
iofile.write((char *)&staf1,sizeof(staf1));
}
iofile.seekg(0,ios::beg);
for(i=0;i<7;i++)
{
iofile.read((char *)&staf[i],sizeof(staf[i]));
cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;
}
bool find;
cout<<"enter number you want search,enter 0 to stop.";
cin>>num;
while(num)
{
find=false;
iofile.seekg(0,ios::beg);
for(i=0;i<7;i++)
{
iofile.read((char *)&staf[i],sizeof(staf[i]));
if(num==staf[i].num)
{
m=iofile.tellg();
cout<<num<<" is No."<<m/sizeof(staf1)<<endl;
cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl;
find=true;
break;
}
}
if(!find)
cout<<"can't find "<<num<<endl;
cout<<"enter number you want search,enter 0 to stop.";
cin>>num;
}
iofile.close();
return 0;
}
<img src="https://img-blog.csdn.net/20150608232426092" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" alt="" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: