第七章

来源:互联网 发布:有没有连环画软件 编辑:程序博客网 时间:2024/05/01 08:40

第一题

#include <iostream> 

#include <cmath> 

using namespace std; 

int main() 

   double a,b,c,s,area; 

   cout<<"please input a,b,c:"; 

   cin>>a>>b>>c; 

   if (a+b<=c) 

   cerr<<"a+b<=c,error!"<<endl; 

   else if(b+c<=a) 

   cerr<<"b+c<=a,error!"<<endl; 

   else if (c+a<=b) 

   cerr<<"c+a<=b,error!"<<endl; 

   else 

   { 

        s=(a+b+c)/2; 

        area=sqrt(s*(s-a)*(s-b)*(s-c)); 

        cout<<"area="<<area<<endl; 

   } 

   return 0; 

}

 

第二题

#include <iostream> 

#include <iomanip> 

using namespace std;   

int main() 

 float a[5]; 

 cout<<"input data:"; 

 int i=0; 

 for( i=0;i<5;i++) 

  cin>>a[i]; 

  cout<<setiosflags(ios::fixed)<<setprecision(2); 

 for(i=0;i<5;i++) 

  cout<<setw(10)<<a[i]<<endl; 

 return 0; 

}

 

第三题

#include <iostream> 

#include <iomanip> 

using namespace std; 

int main() 

 for(int n=1;n<8;n++) 

 cout<<setw(20-n)<<setfill(' ')<<" "        

 <<setw(2*n-1)<<setfill('B')<<"B"<<endl; 

 return 0; 

}

 

第四题

#include <iostream> 

#include <fstream> 

using namespace std;                   

void fun1() 

{int a[10]; 

 ofstream outfile1("f1.dat"),outfile2("f2.dat");  

 if(!outfile1)                        

  {cerr<<"open f1.dat error!"<<endl; 

   exit(1); 

  } 

 if(!outfile2)                       

  {cerr<<"open f2.dat error!"<<endl; 

   exit(1); 

  }  

 cout<<"enter 10 integer numbers:"<<endl; 

 for(int i=0;i<10;i++)        

  {cin>>a[i]; 

   outfile1<<a[i]<<" ";} 

  cout<<"enter 10 integer numbers:"<<endl; 

 for(int i=0;i<10;i++)    

  {cin>>a[i]; 

   outfile2<<a[i]<<" ";} 

 outfile1.close();               

 outfile2.close();         

void fun2() 

{ifstream infile("f1.dat");    

 if(!infile) 

  {cerr<<"open f1.dat error!"<<endl; 

   exit(1); 

  } 

  ofstream outfile("f2.dat",ios::app);  

  if(!outfile) 

   {cerr<<"open f2.dat error!"<<endl; 

     exit(1); 

   } 

  int a; 

  for(int i=0;i<10;i++) 

   {infile>>a;        

    outfile<<a<<" ";  

   } 

  infile.close(); 

  outfile.close(); 

 } 

void fun3() 

{ifstream infile("f2.dat"); 

 if(!infile) 

  {cerr<<"open f2.dat error!"<<endl; 

   exit(1); 

  } 

 int a[20]; 

 int i,j,t; 

 for(i=0;i<20;i++)       

  infile>>a[i];       

 for(i=0;i<19;i++)     

  for(j=0;j<19-i;j++) 

      if(a[j]>a[j+1]) 

        {t=a[j];a[j]=a[j+1];a[j+1]=t;} 

  infile.close();            

  ofstream outfile("f2.dat",ios::out); 

  if(!outfile) 

   {cerr<<"open f2.dat error!"<<endl; 

    exit(1);

       } 

cout<<"data in f2.dat:"<<endl; 

  for( i=0;i<20;i++) 

    {outfile<<a[i]<<" ";    

     cout<<a[i]<<" ";}    

  cout<<endl; 

  outfile.close(); 

}   

int main() 

{fun1();                    

 fun2(); 

 fun3(); 

 return 0; 

}

 

第五题

#include <iostream> 

#include <fstream> 

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; 

}

 

第六题

#include <iostream> 

#include <strstream> 

using namespace std; 

struct student 

{int num; 

 char name[20]; 

 double score; 

}; 

int main() 

 student stud[3]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90},stud1[3]; 

 char c[50]; 

 int i; 

 ostrstream strout(c,50); 

 for(i=0;i<3;i++) 

  strout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<" "; 

 strout<<ends; 

 cout<<"array c:"<<endl<<c<<endl<<endl; 

 istrstream strin(c,50); 

 for(i=0;i<3;i++) 

  strin>>stud1[i].num>>stud1[i].name>>stud1[i].score; 

 cout<<"data from array c to array stud1:"<<endl; 

 for(i=0;i<3;i++) 

  cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].score<<endl; 

 cout<<endl; 

 return 0; 

}

0 0