第七章



1.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a,b,c,s,area;
cout<<"Please input the length of 3 sides:"<<endl;
cout<<"a = ";
cin>>a;
cout<<"b = ";
cin>>b;
cout<<"c = ";
cin>>c;
if(a+b>c && b+c>a && a+c>b)
s = (a+b+c)/2.0;
else
{
cerr<<"The 3 sides can not form a triangle!"<<endl;
exit(1);
}
area = sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"The area of the triangle is: "<<area<<endl;
return 0;
}

2.
#include <iostream>
#include <iomanip>
using namespace std;
struct Double_number
{
double d;
Double_number* next;
};
void input_node(Double_number* p)
{
cout<<"Please input a number(0 for end): ";
cin>>p->d;
}
int main()
{
Double_number *head,*p1,*p2;
head=p1=p2=new Double_number;
input_node(head);
while(p2->d!=0)
{
p1=new Double_number;
input_node(p1);
p2->next=p1;
p2=p1;
}
p2->next=NULL;
p1=head;
while(p1->d!=0)
{
cout<<setw(10)<<setiosflags(ios::fixed)<<setprecision(3)<<p1->d<<endl;
p1=p1->next;
}
return 0;
}

3.

#include <iostream>
using namespace std;
int main()
{
int i,j,k;//will be used all over the function, so declared here
for(i=0;i<8;i++)//number of rows
{
for(j=0;j<7-i;j++)//number of whitespaces
cout<<' ';
for(k=0;k<2*(8-j)-1;k++)//number of Bs
cout<<'B';
cout<<endl;
}
return 0;
}
4.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
const int Len=20;
int a[Len],i,j,temp;//to store Len integers
fstream file1("f1.dat",ios::out),file2("f2.dat",ios::out);
if(file1==0 || file2==0)//if fail to open, the object==0
{
cout<<"Error while opening f1.dat or f2.dat!";
exit(1);
}
cout<<"Please input Len integers: "<<endl;
for(i=0;i<Len;i++)
{
cout<<"No."<<i+1<<": ";
cin>>a[i];
if(i<10)
file1<<a[i]<<' ';
else
file2<<a[i]<<' ';
}
file1.close();
file2.close();
//Question No.2
file1.open("f1.dat",ios::in);
file2.open("f2.dat",ios::out|ios::app);
if(file1==0 || file2==0)//if fail to open, the object==0
{
cout<<"Error while opening f1.dat or f2.dat!";
exit(1);
}
for(i=0;i<10;i++)
{
file1>>a[i];
file2<<a[i]<<' ';
}
file1.close();
file2.close();
//Question No.3
file2.open("f2.dat",ios::in);
if(file2==0)
{
cout<<"Error while opening f2.dat!";
exit(1);
}
for(i=0;i<Len;i++)
file2>>a[i];
file2.close();
//sort numbers
for(i=0;i<Len-1;i++)
for(j=0;j<Len-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
file2.open("f2.dat",ios::out);
for(i=0;i<Len;i++)
file2<<a[i]<<' ';
return 0;
}

5.

 #include <iostream>
#include <fstream>
using namespace std;
struct staff
int num; 
char name[20];
int age; 
double pay;
}; 
int main() 
{staff staf[7]={2101,"Li",34,1203,2104,"Wang",23,674.5,2108,"Fun",54,778,3006,"Xue",45,476.5,5101,"Ling",39,656.6}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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值