Triangle(double w,double h):width(w),height(h){}
virtual double area() const {return 0.5*width*height;} protected:
double width,height; }; int main()
{Circle circle(12.6); Square square(3.5);
Rectangle rectangle(4.5,8.4); Trapezoid trapezoid(2.0,4.5,3.2); Triangle triangle(4.5,8.4);
Shape *pt[5]={&circle,&square,&rectangle,&trapezoid,&triangle}; double areas=0.0; for(int i=0;i<5;i++)
{areas=areas+pt[i]->area();}
cout<<\输出总面积 return 0;}
9.编程序实现以下功能:
(1)按职工号由小到大的顺序将5个员工的数据(包括号码,姓名,年龄,工资)输出到磁盘文件中保存
(2)从键盘输入两个员工的数据(职工号大于已有的职工号),增加到文件的末尾。 (3)输入文件中全部职工的数据
(4)从键盘输入一个号码,从文件中查找有无此职工号,如有则显示此职工是第几个职工,以及此职工的全部数据。如没有,就输出“无此人”。可以反复多次查询,如果输入查找的职工号是0,就结束查询。 #include
char name[20]; int age;
double pay;}; int main()
{staff staf[7]={2101,\ 3006,\ fstream iofile(\ if(!iofile)
{cerr<<\ abort(); } int i,m,num;
cout<<\ for(i=0;i<5;i++)
{cout< iofile.write((char *)&staf[i],sizeof(staf[i]));} cout<<\ 【第 46 页 共 48 页】 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< cout<<\ 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< cout< cout<<\ cout<<\ cin>>num; } iofile.close(); return 0;} 10.给出三角形的三边 a,b,c求三角形的面积。只有a+b>c,B+c>a,a+c>b时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。 #include void input(double a,double b,double c) {cout<<\ cin>>a>>b>>c;} void area(double a,double b,double c) {double s,area; if (a+b<=c) cerr<<\ else if(b+c<=a) cerr<<\ else if (c+a<=b) cerr<<\ 【第 47 页 共 48 页】 else {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); cout<<\int main() {double a=2,b=3,c=5; input(a,b,c); area(a,b,c); return 0;} 【第 48 页 共 48 页】