【数独个人项目】ConsolePatameter类的编码

github地址:https://github.com/Duuang/Project-Sudoku

日期:2018-12-16

代码规范

编码之前,代码规范:Google C++ 代码规范(有个pdf文件,一搜就有),尽量按照里面的代码规范来

4. 实现阶段

(ConsolePatameter类的函数流程图:)

ExtractCommand()函数流程图

ExtractOperationCode()函数流程图

ConsolePatameter类的编码

因为最初的设计不太合理,也没有考虑到编码上的细节,所以在编码过程中,根据遇到的几个问题,我又修改了类的具体定义。

1. 编码过程中遇到了几个问题:

1. 没有默认构造函数,导致别的类如果包含这个对象,还要写初始化列表。。(即使加个空的默认构造函数,那如果是用默认构造函数新建的对象,也没有函数能初始化成员变量)

2. 因为存在错误输入的问题,用户获取命令参数时,没法方便的判断到底是不是合法的参数。

3. string operationcode无法同时方便的表示-c或-s后面的参数

4. public中的函数只是作为接口函数即可,不应该把不会被用户调用的函数放在public

解决方法

1. 去掉了带参数的构造函数,只使用默认构造函数,然后加了个void Init(int argc, char *argv[])函数来做相关初始化

2. 加了一个bool islegal成员变量,初始化为false,当参数合法时才被改为true,方便获取参数时来判断参数是不是合法

3. 把-c/-s后面的参数分为了int operationcode_c和string operationcode_s,分别存储,在获取的时候也分别获取(因为知道了command参数,所以也知道了应该获取_c还是_s)

4. public中的函数改为重新定义的接口函数

 void Init(int argc, char *argv[]);

  char GetCommand();

  int GetOperationcode_c();

  string GetOperationcode_s();

  private中的函数改为被其他函数调用的函数 

int ExtractCommand();

int ExtractOperationCode();

 

2. 类的设计上的修改为:

 

3. 代码分析(使用pdf中的Code Quality Analysis代码质量分析工具)

运行代码分析之后提示

源代码为 char s_tmp[1005];

没有初始化,改为了 char s_tmp[1005] = "";  之后,消除了所有warning

 

至此ConsoleParameter类的编码阶段结束

猜你喜欢

转载自blog.csdn.net/qq_37571192/article/details/85265187
今日推荐