#include<iostream>
using namespace std
class base
{
public:
virtual void disp()
}
class triangle:public base
{
private:
double bottom
double height
public:
triangle(double b,double h)
{
bottom = b
height = h
}
void disp()
{
cout<<"三角形面积:"<<bottom * height / 2<<endl
}
}
class square:public base
{
private :
double a
public:
square(double a1)
{
a = a1
}
void disp()
{
cout<<"正方形面积:"<<a * a<<endl
}
}
#define pi 3.1415
class circle:public base
{
private:
double r
public:
circle(double r1)
{
r = r1
}
void disp()
{
cout<<"圆形面积:"<<pi * r * r<<endl
}
}
int main() {
base *p
triangle t(20, 20) //第一个参数为三角形底边,第二个参数为底边上的高
square s(20)
circle c(20)
p = &t
p->disp()
p = &s
p->disp()
p = &c
p->disp()
return 0
}
扩展资料:
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序。
然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
参考资料来源:百度百科-编程
#include<stdio.h>void menu()
{
printf(" |++++++++++++++ 1圆形面积 +++++++++++++|\n")
printf(" |++++++++++++++ 2长方形面积 +++++++++++++|\n")
printf(" |++++++++++++++ 3正方型面积 +++++++++++++|\n")
printf(" |++++++++++++++ 4结束 +++++++++++++|\n")
}
main()
{
double r,a,b,pai=3.14,mianji
int choice=0
while(1)
{
if(choice==4)
break
menu()
printf("请选择1,2,3,4:")
scanf("%d",&choice)
switch(choice)
{
case 1:
{
printf("请输入半径r:")
scanf("%lf",&r)
mianji=pai*r*r
printf("面积是%lf\n",mianji)
}break
case 2:
{
printf("请输入长a:")
scanf("%lf",&a)
printf("请输入宽b:")
scanf("%lf",&b)
mianji=a*b
printf("面积是%lf\n",mianji)
}break
case 3:
{
printf("请输入边长a:")
scanf("%lf",&a)
mianji=a*a
printf("面积是%lf\n",mianji)
}break
}
}
}
代码如下:
abstract class Shape {
public abstract double getArea()
public abstract double getPerimeter()
}
class Circle extends Shape {
private double radius
public Circle(double radius) {
this.radius = radius
}
@Override
public double getArea() {
return Math.PI * radius * radius
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius
}
}
class Rectangle extends Shape {
private double width
private double height
public Rectangle(double width, double height) {
this.width = width
this.height = height
}
@Override
public double getArea() {
return width * height
}
@Override
public double getPerimeter() {
return (width + height) * 2
}
}
public class ShapeTest {
public static void main(String[] args) {
Circle circle = new Circle(5)
System.out.println("圆面积:" + circle.getArea() + ",圆周长:" + circle.getPerimeter())
Rectangle rect = new Rectangle(6, 9)
System.out.println("矩形面积:" + rect.getArea() + ",矩形周长:" + rect.getPerimeter())
}
}
运行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)