算法设计与分析第一章作业

软工2103张宇乐 2022-09-04 11:36:12

目录

一、代码总体原则

二、头文件

三、函数

四、标识符命名与定义

五、变量

六、排版与格式

七、《数学之美》读后感


一、代码总体原则

1、清晰第一

2、简洁为美

3、选择合适的风格,与代码原有风格保持一致

二、头文件

1、禁止在头文件中定义变量

2、只能通过包含头文件的方式使用其他 .c 提供的接口,禁止在.c 中通过 extern 的方式使用外部函数接口、变量

3、禁止在 extern "C" 中包含头文件

4、一个模块通常包含多个 .c 文件,建议放在同一个目录下,目录名即为模块名。为方便外部使用者,建议每一个模块提供一个 .h ,文件名为目录名

5、 头文件不要使用非习惯用法的扩展名,如 .inc

6、 同一产品统一包含头文件排列方式

三、函数

函数设计的精髓:编写整洁函数,同时把代码有效组织起来。所以有一下要求:

1、一个函数仅完成一件功能

2、重复代码应该尽可能提炼成函数

3、避免函数过长,新增函数不超过 50 行 (非空非注释行)

4、避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层

5、检查函数所有非参数输入的有效性,如数据文件、公共变量等

6、废弃代码要及时清除

7、 函数的参数个数不超过5个

8、在源文件范围内声明和定义的所有函数,除非外部可见,否则应该增加static关键字

四、标识符命名与定义

1、标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解

2、除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音

正确示例:一些常见可以缩写的例子:

argument 可缩写为 arg

buffer 可缩写为 buff

clock 可缩写为 clk

command 可缩写为 cmd

compare 可缩写为 cmp

configuration 可缩写为 cfg

device 可缩写为 dev

error 可缩写为 err

hexadecimal 可缩写为 hex

increment 可缩写为 inc

initialize 可缩写为 init

maximum 可缩写为 max

message 可缩写为 msg

minimum 可缩写为 min

parameter 可缩写为 para

previous 可缩写为 prev

register 可缩写为 reg

semaphore 可缩写为 sem

statistic 可缩写为 stat

synchronize 可缩写为 sync

temp 可缩写为 tmp

3、产品/项目组内部应保持统一的命名风格

4、尽量避免名字中出现数字编号,除非逻辑上的确需要编号

错误示例:如下命名,使人产生疑惑。

#define EXAMPLE_0_TEST_

#define EXAMPLE_1_TEST_

正确示例:应改为有意义的单词命名。

#define EXAMPLE_UNIT_TEST_

#define EXAMPLE_ASSERT_TEST_

5、平台/ / 驱动等适配代码的标识符命名风格保持和平台

6.重构/修改部分代码时,应保持和原有代码的命名风格一致

7.函数命名应以函数要执行的动作命名,一般采用动词或者动词+名词的结构

8.首字母大写后面每个单词首字母大写(大驼峰式)首字母小写后面灭个单词首字母大写(小驼峰式)

五、变量

1、一个变量只有一个功能,不能把一个变量用作多种用途

2、结构功能单一,不要设计面面俱到的数据结构

3、不用或者少用全局变量

4、防止局部变量与全局变量同名

5、通讯过程中使用的结构,必须注意字节序

6、严禁使用未经初始化的变量作为右值

注:在首次使用前初始化变量,初始化的地方离使用的地方越近越好。

7.明确全局变量的初始化顺序,避免跨模块的初始化依赖

8.尽量减少没有必要的数据类型默认转换与强制转换

六、排版与格式

1、程序块采用缩进风格编写, 每级缩进为4个空格

2、相对独立的程序块之间、变量说明之后必须加空行

3、语句要换行,增加可读性

4、在长篇代码中要增加注释,方便理解

七、《数学之美》读后感

  

       《数学之美》是人民邮电出版社于2012年5月出版的图书,作者是吴军教授,2014年再版。书中将高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。通过具体实例教会读者在解决问题时如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新等。

        从文中开篇读者的赞誉中一段话让我对这本书起了浓浓的好奇心,他是如此说到:”这本书越早读越好,最好在中学阶段,中国教育最失败的地方就是学生从上课到考试结束那天,从小学到大的数学知识可以如何运用改造世界。“这段简朴却又深邃的话,直击了我的心底,是的,在学习压力的影响下,我多数时间都忙于刷卷子、新题目,这些本该有着深深疑惑的东西竟然无形间抛之脑后。对这本书产生好奇心,从此拉开了我和书之间的序幕。

       接下来的赞誉中,另一句让我记忆深刻,他说:”《数学之美》可以点亮某些东西,甚至让人境界提升一个层次。“夸张的言辞赞美,是我对这本书的第二个印象,我带着疑惑与稍许怀疑读起了这本书。

       书中第一节为“文字和语言vs数字和信息”,这一章科学地解说了通信的原理,告诉读者要科学、理智地从根本出发,去对问题进行分析。将问题原理弄明白,将问题归类。除此之外,书中多个例子,如记录信息等,又突出文字和数字出现的必然和重要性。这章节引用世界的历史变迁和众多学者的实例,文章凸显出真实性,且通俗易懂。并揭示文字和语言背后的数学,文章朴实但道理明了。

       接着则是讲语言处理,开始与机器智能接轨,通过上一章的阅读,也能较好的接受,这一章相比上一章更加吸引我,毕竟人工智能是时代的潮流。这篇文章也让我知道了一位伟人--阿兰 图灵,计算机科学之父,图灵测试更是让我大开眼界。语言处理的奥妙在文章中升腾着,打开了我的认知。我开始对开头的简评表示赞同,敬佩这位有才的教授。

       书中还有很多很多内容,在此也难以一一述说。简而言之,此书通过讲述文字、数学和语言的历史,目的就是帮助读者感受语言和数学天然的内在的联系。通过总结祖先在设计语言之初解决问题的方法中的法则等等,探究着数学的规律。

       此书,让我了解到数学模型巨大作用,数学模型推动技术的发展。技术应该依托于实践,满足现实需求。吴博士的《数学之美》,对我有着启迪的作用,让我初步体验到科学精英们卓越的才智与情怀。有幸读过此书,也更加坚定我成为一名软件工程师,让梦想启航。

...全文
93 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

434

社区成员

发帖
与我相关
我的任务
社区描述
广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧