概述
- 程序开发入门
- 编程习惯培养
编程语言
- C++ MFC
- C# wpf
- python
- QT
- VB
- java
- …
学习过程
- 基本语法
- 例题
- 兴趣编程
- 项目开发
- 补充基础(数据结构、高级用法)
- 外延
- 开源库、不重复造轮子 CGridCtrl CChartCtrl
参考资料
C/C++语言基础
数据类型
- int
- BOOL/bool
- float/double
- char
- string
判断
- if else
- switch
循环
- for
int sum = 0;
for (int i=1; i<=100; ++i)
{
sum = sum + i;
}
- while
while (bFlag)
{
}
数组
int arr1[10];
int arr2[3][4]
字符串
- string
- CString
函数
int GetNum(int iType)
{
}
结构体
//申明一个结构体
struct book
{
char title[MAXTITL];//一个字符串表示的titile 题目 ;
char author[MAXAUTL];//一个字符串表示的author作者 ;
float value;//一个浮点型表示的value价格;
};//注意分号不能少,这也相当于一条语句;
※类
class Point
{
public:
void setPoint(int x, int y);
void printPoint();
private:
int xPos;
int yPos;
}
- 类和对象
- 继承
- 构造函数
- 析构函数
- 成员函数
- 成员变量
- 重载运算符
- 公有
- 私有
※指针
p, *p, &p;
※动态数组
new
delete
delete[]
int N=10;
int* Num1 = new int[N]();
memset(Num1, 0, N * sizeof(int)); //初始化函数
delete[] Num1;
STL标准模板库
- 容器、算法、迭代器
- vector
- list
- CArray
#include <vector>
using namespace std;
//STL 容器不单单可以存储基础数据类型,也可以存储类对象
class Teacher
{
public:
Teacher(int age) :age(age){};
~Teacher(){};
public:
int age;
};
void test02()
{
vector<Teacher> v; //存储 Teacher 类型数据的容器
Teacher t1(10), t2(20), t3(30);
v.push_back(t1);
v.push_back(t2);
v.push_back(t3);
vector<Teacher>::iterator pStart = v.begin();
vector<Teacher>::iterator pEnd = v.end();
//通过迭代器遍历
while (pStart != pEnd){
cout << pStart->age << " ";
pStart++;
}
cout << endl;
}
编程习惯
命名
- 匈牙利命名法:在变量和函数名中加入前缀以增进人们对程序的理解
- 驼峰命令法:混合使用大小写字母来构成变量和函数的名 printEmployeePaychecks();
- 下划线命令法:函数名中的每一个逻辑断点都有一个下划线来标记 print_employee_paychecks();
大驼峰式命名规则:FirstName, CamelCase 小驼峰式命名规则:firstName, camelCase 帕斯卡(Pascal)命名法
- 见名知意
- 类型+含义 例如:fNodeDispX-float类型X向节点位移
函数名
- 首字母大写,之后每个单词首字母大写
- GetXXX() 获取数据
- SetXXX() 定义数据
- IsSame(); IsExist();
- Clear() 清空数据
变量
- 首字母小写,之后每个单词首字母大写
- float fValue
- int iNum nNum
- bool/BOOL bFlag
- char chDegree
- string/CString sName
- 指针 pData
- 数组 vData arrData aData
- 成员变量 m_
- 临时变量 tmp_
类
- 类(class) CBeam 对应cpp和h文件一般不加C,例如Beam.cpp/Beam.h
- 对象 cBeam
- 成员变量
- 指针 pBeam
- 数组 vBeam arrBeam aBeam
对话框控件
- 类名加C,文件名一般不加C
- 资源用大写字母表示
- 对话(Dialog) CDlgDefineBeam DlgDefineBeam.cpp DlgDefineBeam.h IDD_DIALOG_DEFINE_BEAM
- 按钮控件 Button IDC_BUTTON_DEFINE cButtonDefine cBtnDefine
- 静态文本 Static IDC_STATIC_SEC cStaticSec
- 文本框 EditCtrl cEditTxt
- 下拉框 IDC_COMBO1 cCombox cComb
- 复选框 IDC_CHECK_RD cCheck
- 单选框 IDC_RADIO1 cRadio
- 类成员一般加m_cComb
注释
- 尽可能详细
- 变量名称
- 运行逻辑
- 参数
代码
- 少用特别复杂的逻辑,除非有特殊要求
- 每个函数不要过长
- {}不宜超过3层
- 每行代码不要过长
- 创建对象要记得删除,可在写new代码的时候,就在相应的位置写delete,避免忘记。删除对象,同时对对象指针赋 NULL,除非能确定删除后指针马上就不用(例如析构函数里面),这是因为一个NULL的指针被非法访问总是能够方便地查找,一个非NULL的失效指针难以查找错误.
- 循环变量一般定义为 int i , j , k
案例
- 初始缺陷工况
- 缺陷工况类
- 对话框类
- .h .cpp .rc
版本管理
- 编程爱好者 → 程序员
- tfs
- git
git
- 外网
- 内网
- 项目创建
- 提交
- 撤销
- 还原
- 对比
对于非研发人员
- 了解程序运行逻辑
- 测试
任务
- 提交代码到github或gitee
- 根据匈牙利命名法修改代码
- 申请云桌面账号,尝试跟踪一个bug,解释bug产生原因