作业内容:
1、请上网了解编码规范,说明你本学期的编码遵循哪个规范及该规范的链接。
2、请阅读《数学之美》,结合网上其他文章,谈谈算法在软件开发中的作用,本学期计划用算法实现一个什么软件。
个人c++代码规
1、排版方面:
编写代码要有缩进,这样才可以方便自己或者他人阅读。
• 在一行内只写一条语句,并采用空格、空行和移行保证清楚的视觉效果。
• 每一个嵌套的函数块,使用一个TAB缩进(可以设定为4个空格),大括号必须放在条件语句的下一行,单独成一行,便于匹对:
• 文件之中不得存在无规则的空行,比如说连续十个空行。
• 字体选择consolas的等宽字体,方便阅读,让程序看上去更清晰。
2、注释方面:
• 软件名字、作者、日期、版本号
• 关键函数必须写上注释,说明函数的用途。
• 关键代码注释,包括但不限于:赋值,函数调用,表达式,分支等等
3、命名方面:
• 循环变量和简单变量采用简单小写字符串即可。例如,int i;
• 指针变量用p打头,方便阅读。例如void* pBuffer;
• 变量命名尽量有实际意义,方便个人查看 例如定义美元 USD
• 复合词可以用下划线隔开每个词。例如 USD_value
• 函数的命名也是以能表达函数的动作意义为原则
4、表达式:
• 避免在表达式中用赋值语句。
• 不能将枚举类型进行运算后再赋给枚举变量。
• 在循环过程中不要修改循环计数器。
• 检测空指针,用 if( p )
• 检测非空指针,用 if( ! p )
5、类型:
• 定义指针和引用时*和&紧跟类型。
• 尽量避免使用浮点数,除非必须。
• 用typedef简化程序中的复杂语法。
• 避免定义无名称的类型。例如:typedef enum { EIdle, EActive } TState;
• 定义变量完成后立即初始化,勿等到使用时才进行。
• 如果有更优雅的解决方案,不要使用强制类型转换。
参考链接:
https://blog.csdn.net/p942005405/article/details/80282572
https://www.cnblogs.com/tianqizhi/p/10448957.html
阅读《数学之美》有感
在阅读《数学之美》之后首先感觉到的是数学的奇妙。许多听上去及其复杂的问题诸如机器翻译、语音识别、搜索引擎等问题,竟可以由简单的数学统计模型来表示。虽然自己也有许多看不懂的地方,但通过书中通过公式来表达的这一点,也可以看出数学把这些问题简化了许多。在看作者介绍各种应用实例的同时,也对某些提出数学公式的学者们感到惋惜,感叹他们的生不逢时,受限于当时的科技技术,公式没用实际应用场景。而在经历几十年的技术发展之后,他们的公式反倒被后世所称赞。死后才能闻名于世间,不禁让人感到惋惜。
话题有些扯远,回到数学本身。在看到《数学之美》,感叹数学的美妙与神奇之处时,自然就联想到自己学习的算法设计课程。数学家用简洁严谨的语言解释自然界的纷繁复杂,从数据统计,到人脸识别等抽象问题都可以用数学来描述。好比功力深厚的画家们,仅用寥寥数笔就画出震撼人心的画面。那么我们作为程序员,可不可以通过优秀的算法,让程序更加简洁易懂呢?答案当然是肯定的。我个人认为算法在软件开发中占据了相当重要的地位,设计出好的算法,不仅可以提高解决问题的效率,加快软件开发的进程。同时对于日后的查错、维护、升级等各项工作都有着莫大的帮助。由此可见将好的算法放入软件当中,无论是对用户还是开发者来说都是一件好事,用户可以由此使用更方便的软件,开发者可以更好的提升软件的性能。本学期计划用算法设计出一个可以看漫画的软件,能一键搜寻各网站与下载作品,还能筛选出最优画质,并且自动检测下载的内容是否有残缺,如果有破损还能重新下载。