算法第一次作业

倖福魔咒の 提交于 2019-11-29 01:45:27

1.代码规范:

参考链接:https://www.cnblogs.com/wangkangluo1/archive/2011/06/02/2068789.html

命名

命名,包括文件名、类名、结构名、类型名、函数名、变量名、参数名等都是程序设计中重要的一部分。一个好的名称,体现了一个深思熟虑的过程,同时也 能够帮助别人更好地理解开发者的思路。如果发现程序中,充满了a, b, c, x, y, z, tmp这种命名的变量,这时候就需要仔细的考虑自己的实现是否有问题。

类(结构)名

  • 类名必须是名词,类名必须明确表示这个类代表了什么。
  • 如果类名超过3个单词,说明这个类有可能需要拆分了。
  • 不要把父类的名字带到子类中。
  • 类名加上后缀也是一种选择。如下载代理类,可以写为DownloadProxy。
  • 类名首字母大写;用大写字母分隔单词,除单词的首字母外,全部小写;类名中不要出现下划线“_”。

类(结构)属性名

  • 属性由成员前缀”m_“属性,属性名采用匈牙利命名规范。

方法

  • 方法与函数执行一个任务,因此应当用动词来命名。比方说,DumpDataToFile()就要好于DataFile()。
  • 方法名首字母大写;用大写字母分隔单词,除单词的首字母外,全部小写,方法名中不要出现下划线。

函数

  • 方法与函数执行一个任务,因此应当用动词来命名。
  • 函数名全部小写,单词之间用下划线分隔。

方法与函数参数名

  • 首字母小写。
  • 除了第一个单词,所有单词的首字母大写。
  • 名称中不应出现”_”。

类库名

  • 如果使用C书写类库,或在C++不使用namespace书写类库,为了避免命名冲突,需要在类名,结构名,函数名前加上类库名前缀。类库名应当简洁、明确。 如:

变量名

  • 变量名使用匈牙利命名规则。
  • 全部小写字母。
  • 使用”_”作为分隔符。
  • 唯一能违反以上命名规则的,是一些循环中需要用到的自增变量。 如:

指针变量

  • 指针变量应在类型前加上p前缀,其后变量名命名规则不变。
  • *号永远靠近类型,一行声明中只出现一个指针变量。 如:

引用变量

  • 引用变量应在类型前加上r前缀,其后变量名命名规则不变。

全局变量

  • 全用变量应使用g_属性描述,其后变量名命名规则不变。 如:
  • ImLog4c* g_pLogger;

静态变量

  • 静态变量应使用s_属性描述,其后变量名命名规则不变。
  • ImLog4c* s_pLogger;

枚举类型

  • 枚举类型命名规则使用大写字母,用下划线分隔单词。

宏命名

  • 宏命名规则使用大写字母,用下划线分隔单词。
  • #define MAX_LENGTH 50
  • #define MAX(a, b) (a)>(b)?(a):(b)

集合名称

  • 集合名称使用复数,其它与变量名规范相同。
  • GList* edges = g_list_new();
  • vector<Edge> edges;
  • typedef vector<Edge> EdgeVector;
  • typedef map<string, EdgeVector> EdgeMap;
  • typedef list<EdgeMap> EdgeList;

格式

{}规则

  • “{“与”}”单独占一行。
  • “{“与”}”与上一行行首对齐。
  • If与while后哪怕只有一句话,也要加上“{“与”}”。
  •    while (*(buf+p++) != ' ')
  • printf("hello\n");

()规则

  • "("与前一个关键字之间留一个空格。
  • "("与前函数名之间不需要留一个空格。
  • Return语句尽可能不要用"()"
  • return (a*b^2>100)?(a):(b);

缩进规则

  • 缩进永远为4。
  • 用空格代替tab。
  • Tab永远用4。
  • 如果缩进超过5层,考虑代码优化。

列长度

  • 一列不应该超过80个英文字符。
  • 一个声明占一行
  • 一个声明占一行。

三元表达式

  • 条件表达式占一行
  • then与else应单独占一行。
  • (condition) ? funct1() : func2();   
  • Or
  •    (condition)
  •       ? long statement
  •       : another long statement;

头文件顺序

  • 头文件应当按照与功能的特点性从高到低排列。顺序为
  • 当前目录的头文件。
  • 自行开发库的头文件。
  • 第三方库的头文件。
  • 标准C++头文件。
  • 标准C头文件。

空格

  • 操作符需要加上空格。
  • 关键字前后要加上空格。
  • 逗号后要加上空格。
  • 冒号后要加上空格。
  • 在一行内的分号后要加上空格,行末的分号不要空格。
  • fun(a, b);
  • for (int I = 0; I < 50; i++);

类与结构

类文件与结构文件命名

  • 公有类,C中用以模拟类的结构,需要位于一个独立的文件中。
  • 文件名与公有类名,C中用以模拟类的结构名相同。

类与结构头文件布局

  • 文件描述,使用Doxygen语法。
  • 头文件保护宏。
  • 头文件。
  • 类或结构描述,使用Doxygen语法。
  • 类或结构名。
  • 属性描述,使用Doxygen语法。以下每个属性或方法都要求对应一个描述。
  • 属性声明。
  • C++与身命周期相关函数声明。C++中的构造方法,析构方法以及工厂方法。
  • C++操作符重载。
  • C++访问器,get与set方法。

2.读《数学之美》有感

    上次学到数学还是上学期的高数,期末考前,老师带来了他对数学和音乐的解读。数学是音乐的核心所在。经过阅读《数学之美》,我感受到数学的魅力所在。从大一开始打代码时,我们大的大多数是数学,还和函数有关系,计算机一定和数学有很大的关系。在读这本书的时候,总会看到许多计算机学科的专业术语。作者从自然语言处理、搜索引擎一些相关领域出发写作,对我们学软件工程学科上有很大的帮助。静下心来,会发现这本书挺有趣的,并不会太过于枯燥无味。他从数学角度用浅显易懂的语言让我们了解计算机怎样操作。他还会运用数学中的实例,与计算机里的代码实现进行了类比。代码是软件工程的基础,而算法在代码中。起了很大的作用 希望这一学年,自己能够独立的打出一个完整的具有功能性的代码,连连看。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!