C++实验20
来源:互联网 发布:淘宝店铺音乐怎么添加 编辑:程序博客网 时间:2024/06/05 13:19
一、从坐标到圆柱虚函数
#include<iostream>using namespace std;class points{ float x; float y;public: points(float a=0, float b=0) { x=a; y=b; } virtual void show() { cout<<"points:"<<endl; cout<<"x="<<x<<'\t'<<"y="<<y<<endl<<endl; } void center() { cout<<"("<<x<<","<<y<<")"<<endl; } ~points(){}};class circle:public points{ float r;public: circle(float a=0, float b=0, float c=0):points(a,b) { r=c; } void show() { cout<<"circle:\n"; cout<<"center:"; center(); cout<<"r="<<r<<endl; cout<<endl; } void show_circle() { cout<<"center:"; center(); cout<<"r="<<r<<endl; } float area() { return 3.14*r*r; }};class cylinder:public circle{ float hight;public: cylinder(float a=0,float b=0,float c=0,float d=0):circle(a,b,c) { hight=d; } void show() { cout<<"cylinder\n"; show_circle(); cout<<"hight="<<hight<<endl; } float volume() { return area()*hight; }};void main(){ points a(2,3); circle b(4,5,1); cylinder c(6,8,2,1); points *d; d=&a; d->show(); d=&b; d->show(); d=&c; d->show();}
二、从坐标到圆柱虚基类
#include<iostream>using namespace std;class shape{public: virtual void show()=0;};class points:public shape{ float x; float y;public: points(float a=0, float b=0) { x=a; y=b; } void show() { cout<<"points:"<<endl; center(); cout<<endl; } void center() { cout<<"("<<x<<","<<y<<")"<<endl; } ~points(){}};class circle:public points{ float r;public: circle(float a=0, float b=0, float c=0):points(a,b) { r=c; } void show() { cout<<"circle:\n"; cout<<"center:"; center(); cout<<"r="<<r<<endl; cout<<endl; } void show_circle() { cout<<"center:"; center(); cout<<"r="<<r<<endl; } float area() { return 3.14*r*r; }};class cylinder:public circle{ float hight;public: cylinder(float a=0,float b=0,float c=0,float d=0):circle(a,b,c) { hight=d; } void show() { cout<<"cylinder\n"; show_circle(); cout<<"hight="<<hight<<endl; } float volume() { return area()*hight; }};void main(){ shape *p; points a(2,3); circle b(4,5,1); cylinder c(6,8,2,1); p=&a; p->show(); p=&b; p->show(); p=&c; p->show();}
三、从学生类到扩展虚函数虚基类
#include<iostream>#include<string.h>class student{ int id; char name[20]; char sex[6]; int age;public: student(int a,char *b, char *c, int d) { id=a;strcpy(name,b);strcpy(sex,c);age=d; std::cout<<"student constructor\n"; } ~student(){std::cout<<"student destructor\n";} void print_student(); virtual void show(); //virtual void show()=0定义为纯虚函数也可,main中未定义student对象};class phd: public student{ int papernum; float workhour;public: phd(int a, char *b, char *c, int d,int e, float f):student(a,b,c,d) { papernum=e; workhour=f; std::cout<<"phd constructor\n"; } ~phd(){std::cout<<"phd destructor\n";} void print_phd(); void show();};class master: public student{ float grade; int flag;public: master(int a, char *b, char *c, int d, float e, int f):student(a,b,c,d) { grade=e; flag=f; std::cout<<"master constructor\n"; } ~master(){std::cout<<"master destructor\n";} void print_master(); void show();};class undergraduate: public student{ float gradein; float gradeout;public: undergraduate(int a, char *b, char *c, int d, float e, float f):student(a,b,c,d) { gradein=e; gradeout=f; std::cout<<"undergraduate destructor\n"; } ~undergraduate(){std::cout<<"undergraduate destructor\n";} void print_undergraduate(); void show();};void student::print_student(){ std::cout<<"idnumber: "<<id<<"\nname: "<<name<<"\nsex: "<<sex<<"\nage: "<<age<<'\n';}void student::show() {print_student();}void phd::print_phd(){ print_student(); std::cout<<"paper number: "<<papernum<<"\nworking hours: "<<workhour<<'\n';}void phd::show() {print_phd();}void master::print_master(){ print_student(); std::cout<<"grade: "<<grade<<"\nattending? "; if(flag) std::cout<<"yes\n"; else std::cout<<"no\n";}void master::show() {print_master();}void undergraduate::print_undergraduate(){ print_student(); std::cout<<"incourse grade: "<<gradein<<"\noutcourse grade: "<<gradeout<<'\n';}void undergraduate::show() {print_undergraduate();}void main(){ phd a(12345678,"张三","男",25,3,20); master b(2234567,"李四","女",24,98,0); undergraduate c(32345678,"赵五","男",23,100,100); student *p; p=&a; p->show(); std::cout<<'\n'; p=&b; p->show(); std::cout<<'\n'; p=&c; p->show();}
阅读全文
0 0
- [C++]实验三
- c语言实验
- 哈希表实验C语言版
- C语言 枚举实验
- C-S通信实验
- C#-实验3
- C 实验总结
- C程序设计实验1
- C程序设计实验2
- c语言实验
- C++-实验-项目五
- C#—实验10.4
- C++---第七次实验。
- c++--补第二次实验
- C语言递归实验
- C语言实验-素数
- C+实验2
- C++STL 第二次实验
- Eddy's AC难题 HDU
- LeetCode
- Ubuntu13下调试USB AUDIO的一些记录
- 我的第一个JAVA程序——计算正方形面积
- 习题6.4
- C++实验20
- LeetCode
- 计算1到10 20到30 35到45的和
- java中的修饰符
- lnmp一键安装环境上laravel报500错误记录
- C#中Socket 和 Tcp 连接的区别
- jq,得到 相同 calss 属性的 标签,个数,值,
- LeetCode
- Next主题个性化之自动更换背景图片