啊哟,我对你们可好啦。不知道在那找到中文编程。易懂啊!!!!
//在c++中用中文编码一些介绍#pragma once
#include <vector>
#include <string>
#include "math.h"
/*
使用中文编码:
中文编码的有益之处
1. 可以提高代码的易读性,即使是没有学过程序的人看了之后也能看懂一部分代码的含义.
2. 可以减少注释的编写量,中文本身的解释性很强,在函数和编写过程中就能完全体现出其含义来,从而减少注释的编写量.
3. 对于英文知识不够深的程序员来说,避免了取一个变量名或者函数名之类的而苦恼的问题
*/
//定义中文支持的宏,在vs2003 和vs2005中都可以编译通过
#define 如果 if
#define 或者 else if
#define 否则 else
#define 类定义 class
#define 函数 void
#define 指针 *
#define 的 ->
#define 返回 return
#define 新的 new
#define 为 =
#define 设置为 =
#define 大于 >
#define 小于 <
#define 等于 ==
#define 大于等于 >=
#define 小于等于 <=
#define 减 -
#define 加 +
#define 乘 *
#define 除 /
#define 没有 !
#define 或 ||
#define 并且 &&
#define 和 &&
#define 循环 for
#define 数据定义 struct
#define 基于 :public
#define 公共的 public
#define 私有的 private
#define 保护的 protected
#define 必须重写 =0
#define 整数循环(变量名,_从,_到) for(int 变量名 = _从;变量名 <= _到;变量名 ++)
#define 可重写 virtual
#define 绿色 0x0000ff00
#define 蓝色 0x00ff0000
#define 红色 0x000000ff
#define 白色 0x00ffffff
#define 黑色 0x00000000
#define 布尔 bool
#define 字节 char
#define 短整数 short
#define 整数 int
#define 浮点数 float
#define 双精度 double
#define 字符串 const char*
#define 真 true
#define 假 false
#define 行 true
#define 不行 false
#define 是 true
#define 否 false
#define 不 false
#define 可以 true
#define 不可以 false
#define 平方根 sqrt
#define 公里 * 1000.0
template <typename Ts>
class 数组
{
public:
int 数量(){return (int)list.size();}
void 删除(int index){list.erase(list.begin() + index);}
Ts& 元素(int index){return (Ts&)list.at(index);}
void 追加(Ts t){list.push_back(t);}
public:
std::vector<Ts> list;
};
//下面用中文编码写一个类和一个继承类只见的简单关系
数据定义 坐标
{
双精度 x,y;
坐标()
{
}
坐标(双精度 _x , 双精度 _y)
{
x = _x;
y = _y;
}
函数 设置为单位矢量()
{
双精度 _长度 = 平方根(x*x + y*y);
如果(_长度 等于 0)
返回;
x = x / _长度;
y = y / _长度;
}
};
类定义 基础发射器
{
公共的:
可重写 布尔 满足发射距离至(坐标& _目标点) 必须重写;
可重写 布尔 是否整装待发() 必须重写;
可重写 布尔 发射(坐标& _目标点) 必须重写;
保护的:
可重写 布尔 计算发射路径(双精度 _时间差) 必须重写;//如果返回真则表示正在飞行,否则为已经停止飞行或者到达目标点
保护的:
坐标 当前坐标;
坐标 目标坐标;
坐标 发射方向;
双精度 飞行速度每秒;
基础发射器()
{
当前坐标 = 坐标(0.0, 0.0);
目标坐标 = 坐标(0.0, 0.0);
飞行速度每秒 = 1.0 公里;
}
};
类定义 基础导弹 基于 基础发射器
{
公共的:
保护的:
可重写 布尔 满足发射距离至(坐标& _目标点)
{
双精度 _差x = _目标点.x - 当前坐标.x;//或者按照个人喜好可以写成(双精度 _差x 为 _目标点.x 减 当前坐标.x;)
双精度 _差y = _目标点.y - 当前坐标.y;
双精度 _距离 = 平方根(_差x * _差x + _差y * _差y);
//
如果(_距离 大于 最大距离)
返回 否;
或者(_距离 小于 最小距离)
返回 否;
否则
返回 是;
//
返回 否;
}
可重写 布尔 是否整装待发()
{
返回 准备完毕;
}
可重写 布尔 发射(坐标& _目标点)
{
如果( 没有 准备完毕 或 没有 满足发射距离至(_目标点) )
返回 不可以;
//
目标坐标 设置为 _目标点;
//
发射方向.x = 目标坐标.x - 当前坐标.x;
发射方向.y = 目标坐标.y - 当前坐标.y;
发射方向.设置为单位矢量();
//
返回 可以;
}
保护的:
可重写 布尔 计算发射路径(双精度 _时间差)//如果返回真则表示正在飞行,否则为已经停止飞行或者到达目标点
{
双精度 _顺差飞行距离 = 飞行速度每秒 * _时间差;
当前坐标.x = 当前坐标.x + 发射方向.x * _顺差飞行距离;
当前坐标.y = 当前坐标.y + 发射方向.y * _顺差飞行距离;
//
坐标 _当前方向(目标坐标.x - 当前坐标.x, 目标坐标.y - 当前坐标.y);
//
双精度 _参数 = _当前方向.x * 发射方向.x + _当前方向.y * 发射方向.y;
如果(_参数 小于 0)
{
到达目标点();
返回 否;
}
返回 是;
}
可重写 函数 到达目标点() 必须重写;
保护的:
双精度 最小距离;
双精度 最大距离;
布尔 准备完毕;
基础导弹()
{
最小距离 = 0 公里;
最大距离 = 1 公里;
准备完毕 为 否;
}
};
类定义 东风 基于 基础导弹
{
公共的:
保护的:
可重写 函数 到达目标点()
{
//按照每个导弹的杀伤力进行对目标点裁决,...这里不继续
}
};
################顶我哦!!!!!!!!!!!!!!