以Shape为抽象基类,从Shape类派生出Point,Line,Circle,Cylinder,Cone,Triangle,Rectangle,Polygon等类。
编程语言的种类繁多,总的来说分为机器语言、汇编语言以及高级语言三大类。
机械语言(machine language):计算机可直接识别、运行的二进制代码,执行速度快,资源占用少,但可读性不强,编程复杂;
汇编语言(assembly language):一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。目标代码简短,占用内存少,执行速度快,但缺乏可移植性,编程复杂;
高级语言(High-level programming language):相对于机器语言以及汇编语言,高级语言的可读性强,可移植性高,一般通过事先编好的一个叫做编译程序的机器语言程序编译成用机器指令表示的目标程序。现在流行的高级语言有Java、C语言、C++、C#、Pascal、Basic等等。
下面是游戏开发十大编程语言的列表。
1、C类#
C语言现在被广泛应用于许多游戏引擎中,是最流行的游戏开发语言之一。它有一个XNA框架、一套微软工具和运行时环境,使它特别适合Xbox或windows上的游戏。如果你想使用monogame在几乎任何平台上发布游戏,这是一种很好的语言。
2、C类++
C++是一种面向对象的语言,被认为是最难学习的语言之一,但它是游戏开发人员的重要语言。它允许对硬件和图形进程进行更直接的控制,这对行业很重要,是一些流行游戏引擎的流行语言。它还提供了对参数和内存管理的大量控制,从而提高了游戏的性能和用户体验。
3、Java
Java使用与C++相同的面向对象原则,但提供了更广泛的系统。Java代码通常在Java虚拟机(JVM)上运行,并转换为可在任何系统上执行的通用字节码。因此,Java是为数不多的能够让开发人员为任何给定系统开发游戏的游戏编程语言之一。它是最好的游戏编程语言之一。
4、JavaScript
JavaScript是最流行的游戏编程语言之一,尤其是作为一种在线交互语言。使用JavaScript,可以更容易地将代码与传统的网络技术(如HTML和CSS)集成,从而导致越来越多的跨平台移动游戏。
5、HTML5
HTML5已经成为互联网上最常见的游戏编程语言之一。你今天玩的大多数手机游戏都使用这种标记语言。使用JavaScript很容易创建复杂的基于web的游戏。该语言简单易学,不一定需要学习复杂的算法编程知识,因此成为游戏开发者的热门选择。
6、SQL语言
SQL被玩家用来访问后端帐户并在服务器上执行其他操作。有新的语言,库,框架,特别是AR,VR,图形,物理和游戏。
7、Python
Python是另一种提供OOP方法的语言,是游戏开发人员使用的最易于使用的通用编程语言之一。它有一个pyGame框架,允许程序员快速开发游戏原型。
8、Rust
铁锈被吹捧为C的继承者之一。它主要被Mozilla基金会用作系统编程语言。它具有面向对象到面向数据的方法,有助于游戏开发。
9、UnrealScript
Unrealscript是unreal引擎的本机脚本语言。它结合了面向对象、多重继承和功能丰富的游戏等复杂功能。该语言支持所有主要的游戏平台,如微软Windows、MacOS、Linux、steamos、Android和PlaystationVR。
10、Lua
由于语言结构和语法简单,Lua正成为游戏界最流行的语言之一。它是一种多平台脚本语言,许多现代游戏引擎都使用Lua作为主要的游戏设计编程语言。
#include<iostream>
#include<cmath>
#include<iomanip>
#ifndef CSHAPE_H
#define CSHAPE_h
usingnamespace std;
constfloat PI=3.1;
class CShape//CShape抽象类定义
{
public:
virtualfloat length()//图形长度
{
return 0.0;
}
virtualfloat area()//图形面积
{
return 0.0;
}
virtualfloat valum()//图形体积
{
return 0.0;
}
virtualfloat zc()//图形周长
{
return 0.0;
}
virtualvoid draw()=0;//描绘图形
};
class CPoint:virtualpublic CShape//CPoint类定义
{
protected:
float x,y;
public:
CPoint(float a,float b)
{
x=a;
y=b;
}
void setpoint(float a,float b)
{
x=a;
y=b;
}
void draw()
{
cout<<"点的坐标为:"<<"("<<x<<","<<y<<")"<<endl;
}
};
class CLine:virtualpublic CShape//线类定义
{
protected:
float x,y,z,k;
public:
CLine(float a,float b,float c,float d)
{
x=a;
y=b;
z=c;
k=d;
}
void setline(float a,float b,float c,float d)
{
x=a;
y=b;
z=c;
k=d;
}
float length()
{
return(sqrt((x-z)*(z-z)+(y-k)*(y-k)));
}
void draw()
{
cout<<"两坐标分别为:"<<"("<<x<<","<<y<<")"<<",("<<z<<","<<k<<")"<<endl;
}
};
class CRectangle:virtualpublic CShape//长方形类定义
{
protected:
float length,width;
public:
CRectangle(float l,float w)
{
length=l;
width=w;
}
void setrectangle(float l,float w)
{
length=l;
width=w;
}
float area()
{
return(length*width);
}
float zc()
{
return(2*(length+width));
}
void draw()
{
cout<<"长方形的长为:"<<length<<setw(10)<<"宽为:"<<width<<endl;
}
};
class CCircle:virtualpublic CShape//圆类定义
{
protected:
float radius;
public:
CCircle(float r)
{
radius=r;
}
void setcircle(float r)
{
radius=r;
}
float area()
{
return(PI*radius*radius);
}
float zc()
{
return(2*PI*radius);
}
void draw()
{
cout<<"圆的半径为:"<<radius<<endl;
}
};
class CCylinder:virtualpublic CShape//圆柱类定义
{
protected:
float heigth,radius;
public:
CCylinder(float r,float h)
{
heigth=h;
radius=r;
}
void setcylinder(float r,float h)
{
heigth=h;
radius=r;
}
float area()
{
return(PI*radius*radius+2*PI*radius);
}
float valum()
{
return(PI*radius*radius*heigth);
}
void draw()
{
cout<<"圆柱高度为:"<<heigth<<setw(10)<<"半径为:"<<radius<<endl;
}
};
class CCone:virtualpublic CShape//定义一个圆锥类
{
protected:
float mx,radius;
public:
CCone(float a,float b)
{
mx=a;
radius=b;
}
void setcone(float a,float b)
{
mx=a;
radius=b;
}
float valum()
{
return(PI*radius*radius*sqrt(mx*mx-radius*radius));
}
void draw()
{
cout<<"母线长为:"<<mx<<setw(10)<<"半径长为:"<<radius<<endl;
}
};
class CTriangle:virtualpublic CShape//三角形类定义
{
protected:
float x,y,z;
public:
CTriangle(float a,float b,float c)
{
x=a;y=b;z=c;
}
void settriangle(float a,float b,float c)
{
x=a;y=b;z=c;
}
float zc()
{
return(x+y+z);
}
float area()
{
float t=(x+y+z)/2;
return(sqrt((t-x)*(t-y)*(t-z)));
}
void draw()
{
cout<<"三角形三边长分别为:"<<x<<","<<y<<","<<z<<endl;
}
};
class CPolygon:virtualpublic CShape//多边形类定义
{
protected:
float x;
int y;
public:
CPolygon(float a,int b)
{
x=a;
y=b;
}
void setpolygon(float a,int b)
{
x=a;
y=b;
}
float area()
{
return(sqrt(3.0)*x*x*y/4);
}
float zc()
{
return(x*y);
}
void draw()
{
cout<<"多边形的一边长为:"<<x<<setw(10)<<"边数为:"<<y<<endl;
}
};
#endif
#include"CShape.h"
#include<iostream>
#include<iomanip>
usingnamespace std;
void main()
{
char d='y';
int i(0);
cout<<"欢迎进入本系统!";
cout<<"请选择服务:"<<endl;
cout<<" 1.点的计算。"<<endl;
cout<<" 2.线的计算。"<<endl;
cout<<" 3.圆的计算。"<<endl;
cout<<" 4.圆柱的计算。"<<endl;
cout<<" 5.圆锥的计算。"<<endl;
cout<<" 6.长方形的计算。"<<endl;
cout<<" 7.多边形的计算。"<<endl;
cout<<" 8.三角形的计算。"<<endl;
cout<<" 9.退出。"<<endl;
while(d=='Y'||d=='y')
{
cout<<"请输入你的选择:"<<endl;
cin>>i;
if(i==1)
{
CShape *pshape;
CPoint point(2.0,3.0);
float a,b;
cout<<"请输入点的坐标:";
cin>>a>>b;
point.setpoint(a,b);
pshape=&point;
pshape->draw();
}
elseif(i==2)
{
CShape *pshape;
CLine line(1.0,2.0,3.0,4.0);
float a,b,c,d;
cout<<"请依次输入两端点的坐标:";
cin>>a>>b>>c>>d;
line.setline(a,b,c,d);
pshape=&line;
pshape->draw();
cout<<"线的长度为:"<<pshape->length()<<endl;
}
elseif(i==3)
{
CShape *pshape;
CCircle circle(2.0);
float a;
cout<<"请输入圆的半径:";
cin>>a;
circle.setcircle(a);
pshape=&circle;
pshape->draw();
cout<<"圆的面积为;"<<pshape->area()<<setw(10)<<"圆的周长为;"<<pshape->zc()<<endl;
}
elseif(i==4)
{
CShape *pshape;
CCylinder yz(2.0,3.0);
float a,b;
cout<<"请输入圆柱的底面半径和高:";
cin>>a>>b;
yz.setcylinder(a,b);
pshape=&yz;
pshape->draw();
cout<<"圆柱的面积为:"<<pshape->area()<<setw(10)<<"圆柱的体积为:"<<pshape->valum()<<endl;
}
elseif(i==5)
{
CShape *pshape;
CCone cone(5.0,4.0);
float a,b;
cout<<"请输入母线长和底面半径:";
cin>>a>>b;
cone.setcone(a,b);
pshape=&cone;
pshape->draw();
cout<<"圆锥的体积为:"<<pshape->valum()<<endl;
}
elseif(i==6)
{
CShape *pshape;
CRectangle rectangle(3.0,2.0);
float a,b;
cout<<"请输入长方形的长和宽:";
cin>>a>>b;
rectangle.setrectangle(a,b);
pshape=&rectangle;
pshape->draw();
cout<<"长方形的面积为:"<<pshape->area()<<setw(10)<<"长方形的周长为:"<<pshape->zc()<<endl;
}
elseif(i==7)
{
CShape *pshape;
CPolygon polygon(2.0,4);
float a;
int b;
cout<<"请输入多边形的边长和边数:";
cin>>a>>b;
polygon.setpolygon(a,b);
pshape=&polygon;
pshape->draw();
cout<<"多边形的面积为:"<<pshape->area()<<setw(10)<<"周长为:"<<pshape->zc()<<endl;
}
elseif(i==8)
{
CShape *pshape;
CTriangle triangle(3.0,4.0,5.0);
float a,b,c;
cout<<"请输入三角形三边长:";
cin>>a>>b>>c;
triangle.settriangle(a,b,c);
pshape=▵
pshape->draw();
cout<<"三角形的周长为:"<<pshape->zc()<<"面积为:"<<pshape->area()<<endl;
}
elseif(i==9)
{
return;
}
else
{
cout<<"输入错误,请重新输入!";
}
cout<<"是否继续其他操作(Y/N)?"<<endl;
cin>>d;
}
}
欢迎进入本系统!请选择服务:
1.点的计算。
2.线的计算。
3.圆的计算。
4.圆柱的计算。
5.圆锥的计算。
6.长方形的计算。
7.多边形的计算。
8.三角形的计算。
9.退出。
请输入你的选择:
1
请输入点的坐标:2
点的坐标为:(1,2)
是否继续其他操作(Y/N)?
y
请输入你的选择:
2
请依次输入两端点的坐标:1 2 3 4
两坐标分别为:(1,2),(3,4)
线的长度为:2
是否继续其他操作(Y/N)?
y
请输入你的选择:
3
请输入圆的半径:
圆的半径为:1
圆的面积为;3.1圆的周长为;6.2
是否继续其他操作(Y/N)?
y
请输入你的选择:
4
请输入圆柱的底面半径和高:1
圆柱高度为:1半径为:1
圆柱的面积为:9.3圆柱的体积为:3.1
是否继续其他操作(Y/N)?
y
请输入你的选择:
5
请输入母线长和底面半径:3
母线长为:5半径长为:3
圆锥的体积为1:111.6
是否继续其他操作(Y/N)?
y
请输入你的选择:
6
请输入长方形的长和宽:1 4
长方形的长为:1 宽为:4
长方形的面积为:4长方形的周长为:10
是否继续其他操作(Y/N)?
y
请输入你的选择:
7
请输入多边形的边长和边数:1 7
多边形的一边长为:1 边数为:
多边形的面积为:3.03109 周长为:7
是否继续其他操作(Y/N)?
y
请输入你的选择:
8
请输入三角形三边长:3 4 5
三角形三边长分别为:3,4,5
三角形的周长为:12面积为:2.44949
是否继续其他操作(Y/N)?
y
请输入你的选择:
9
请按任意键继续. . .
abstract class Shape{
}
class Point extends Shape{
}
以下同...
以Shape为抽象基类,从Shape类派生出Point,Line,Circle,Cylinder,Con...
建立如下类的层次结构:以Shape 为抽象基类,从Shape类派生出Point、Line、Circle、Cylinder、Cone、Triangle、Rectangle和Polygon等类。请为各个类设计比较实用的成员,并编写合适的应用程序来测试该类的层次结构。#include<iostream>#include<cmath>#include<iomanip>#ifndef CSHAPE_H#define CSHAPE_husingnamespace std;...
c++编程题(实现一个 Shape 类层次, Shape 为抽象基类, 以 Shape 带有...
class Shape { public:Shape();virtual ~Shape();virtual void draw() = 0;virtual void resize() = 0;private:};Shape::Shape(){ } Shape::~Shape(){ } class Point : public Shape { public:Point();virtual ~Point();virtual void draw();virtual void resize();private:};Point::P...
如何编写程序,实现由定义抽象基类Shape(形状)派生出三个派生类?_百度...
定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。include<iostream> using namespace std; class Shape { public:virtual float printArea() const {return 0.0;}; ...
写一个程序,定义抽象基类Shape由它派出2个派生类:Circle (圆形),Rec...
include <iostream>using namespace std;#define PI 3.14159class Shape {public:virtual void printArea() = 0;};class Circle : public Shape {public:Circle(float Radius) {mRadius = Radius;}void printArea() {cout<<"The Circle's Area is "<<PI*mRadius*mRadius<<endl;}private:float...
定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出R...
class Circle extends Shape{ private double r;public Circle(double radius){ this.r = radius;} public double getArea() {\/\/圆 = 圆周率 * r *r return Math.PI * r * r;} } --- Area for Circle with width = 3 and height = 5 is: 15.0 Area for Circle with r = 2 is...
VC++中为什么要用类?包括派生类,为什么要派生?
类SHAPE里,含有几个纯虚函数,例如Draw()用来绘制图形,故类SHAPE称为“抽象基类”,因为它不能创建任何对象,类SHAPE实在太过笼统,什么叫“图形”?这可太多啦!既然SHAPE不能用来声明对象,所以他的成员函数,也是纯虚函数的Draw()亦没有定义!但是,我们可以从SHAPE派生出类Circle、类Rectangle……...
定义抽象基类Shape
class Trapezoid : public Shape { public:Trapezoid(double _d, double _l, double _h):d(_d), l(_l), h(_h) {} void printName(){ cout << "梯形:上底=" << d << ",下底=" << l << ",高=" << h << ",";} double printArea(){ cout << "面积:" << (d+l)...
JAVA抽象类和接口的区别,使用场景
抽象类代表一个类实体,只是这类实体无法被实例化。而接口则一般不能够代表实体,只能够代表一个功能,或是一个属性。举个例子来说,图形类,Shape,能够派生为三角形,正方形等等。Shape就是一个抽象类,代表图形这个实体,但是确实无法实例化。它有一个接口,Drawable,这个接口说明它可以被画出来。从...
程序题.写一个C++程序,定义抽象基类Shape,由它派生出一个基类Point,再...
class Shape\/\/抽象基类 { public:virtual void display()=0;};class Point:public Shape { public:void display(){};};class Circle:public Point { private:double r;public:void set(double r){ r=r;} double area(double r){ return pi*r*r;} void display(){ cout<<"圆的面积是:...
何为virtual 虚函数啊?
建立一个基类SHAPE,即图形类。它有一个公有成员函数draw(),声明为纯虚函数,因此SHAPE是抽象基类,它不能用来声明任何对象。这是由于类SHAPE实在太过笼统!你没法描述一个任意可以称的上是“图形”的东西吧。我们由类SHAPE派生出两个稍微具体的类:Circle和Rectangle。他们俩是具体的类,前者声明“圆...
芝贤夏枯: #include<iostream.h> #include<cmath> const double pi=3.14; class Shape//抽象基类 { public:virtual void display()=0; };class Point:public Shape { public:void display(){}; };class Circle:public Point { private:double r; public:void set(double r){ r=r;...
同心县15531831140: 以Shape为抽象基类,从Shape类派生出Point,Line,Circle,Cylinder,Cone,Triangle,Rectangle,Polygon等类. - ?
芝贤夏枯: 建立如下类的层次结构:以Shape 为抽象基类,从Shape类派生出Point、Line、Circle、Cylinder、Cone、Triangle、Rectangle和Polygon等类.请为各个类设计比较实用的成员,并编写合适的应用程序来测试该类的层次结构. #include<...
同心县15531831140: 写一个程序,定义抽象基类Shape由它派出2个派生类:Circle (圆形),Rectangle(矩形),用一个函数printA - ?
芝贤夏枯: //下面是C++版,因为比较简单,所以成员函数直接就在类内定义了 #include<iostream> using namespace std; #define pi 3.14 class Shape//定义抽象基类,仅供继承用 {virtual void printArea()=0;//纯虚函数 };class Circle:Shape { private:...
同心县15531831140: c++编程题(实现一个 Shape 类层次, Shape 为抽象基类, 以 Shape 带有纯虚成员函数 draw 和 resize) - ?
芝贤夏枯: class Shape { public:Shape(); virtual ~Shape(); virtual void draw() = 0; virtual void resize() = 0; private:}; Shape::Shape() { } Shape::~Shape() { } class Point : public Shape { public:Point(); virtual ~Point(); virtual void draw(); virtual void resize(); private:}; ...
同心县15531831140: 写一个程序,声明基类shape,由他派生3个派生类:circle rectangle triangle,用虚函数计算以上三者面积. - ?
芝贤夏枯: 刚好有空,就帮你敲了下.用的是控制台实现 基类shape: public class Shape { public virtual void GetResults() { Console.WriteLine(""); } } Circle类: public class Circle:Shape { private readonly double PI = 3.14; public override void GetResults() ...
同心县15531831140: 编写一个程序,由下面的抽象基类Shape派生出3个公用派生类: - ?
芝贤夏枯: #include using namespace std; class shape { public: virtual double area() const=0; }; class circle:public shape { private: double r; public:circle(double a):r(a){} virtual double area() const{return 3.14*r*r;} }; class rectangle:public shape { private: double l...
同心县15531831140: 定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都 - ?
芝贤夏枯: #include<iostream.h> class shape { public:void getarea();void getperi(); }; class circle:public shape { public:void getarea(double r){cout<<"圆的面积为:";cout<<r*r*3.14<<endl;}void getperi(double r){cout<<"圆的周长为:";cout<...
同心县15531831140: 写一个程序,声明抽象基类Shape,由它派生出两个子类:circle(圆形),rectangle(矩形),用一个函数printArea分别求他们的面积. - ?
芝贤夏枯: class Shape { public: virtual double printArea()=0; }; class Rectangle : public Shape { public: Rectangle(double h, double w) : height(h), width(w){} double printArea(){ return height * width; } private: double height; double width; }; class Circle : public ...
同心县15531831140: 定义一个抽象基类Shape,它包含一个属性Color、一个非抽象方法getColor( ),一个抽象方法getArea( ),从Shape类派生出Rectangle和Circle类,这两个类都用getArea( )方法计算对象的面积.编写应用程序使用Rectangle类和Circ - ?
芝贤夏枯: #include <iostream> using namespace std; class shape { public: int getColor() { return color; } protected: virtual float getArea() {return 0;}//面积还是返回浮点数比较合适 virtual void shapename() = 0; public: int color; }; class circle:public shape { ...
同心县15531831140: 一道C++关于类的派生问题~ - ?
芝贤夏枯: void printArea() {cout << "The area of circle is: " << c.area() << endl;cout << "The area of rectangle is: " << r.area() << endl;cout << "The area of triangle is: " << t.area() << endl; } 改成void printArea(Circle &a,Rectangle&r,Triangle&t) {...