代码大全2——第11章学习记录

代码大全2——第11章学习记录


命名注意事项

  1. 名字要完全、准确地描述出该变量所代表的事物
  2. 不包含晦涩的缩写,同时也没有歧义
  3. 名字应当反映问题,而不是解决方案

最适当的名字长度

平均名字长度控制在合理范围中,建议为(8到20之间)

变量名对作用域的影响

较长的名字适用于很少用到的变量或者全局变量

较短的名字则是用于局部变量或循环变量

对位于全局命名空间中的名字加以限定词

变量名中的计算值限定词

在表示计算结果的变量:总额、平均值、最大值,等等。将MAX之类的限定词加在变量名的最后修饰它,例如:grademax

将计算结果的修饰词统一放在变量名之后,保证一致性

例外

NUM放在变量名的开始位置代表一个总数:numCustomers表示员工的总数

NUM放在变量名的结束位置代表一个下标:customerNum表示当前员工的序号

变量名中的常用对仗词

为循环下标命名

一般约定俗称的循环变量名为i,j,k,在较简单的循环变量中可以使用,其他情况禁止使用

当一个变量在循环之外使用,就需要取一个更有意义的名字

在复杂的循环之中(例如嵌套的循环),应当给循环变量富裕更长得到名字以提高可读性

为状态变量命名

状态变量用于描述程序的状态

状态变量不要标记为flag

应用枚举类型、具名常量或用作具名常量的全局变量来对其赋值,而且其值应该与上面这些量做比较。

为临时变量命名

用于存储计算的中间结果,作为临时占位符,以及存储内务管理值 

不要使用temp之类语义不明的名字

为布尔变量命名

  • done 表示某件事情已经完成,事情完成之前为false,完成之后为true
  • error 表示有错误发生,在错误发生之前设置为false,发生时设为true
  • found 表示某个值已经找到,未找到的设为false,找到的设为true
  • success或ok 表明一项操作是否成功。操作失败为false,成功为true(推荐使用更具体的名字代替success)
  • status表示布尔变量是糟糕的,应根据具体情况命名为例如(statusOK)之类的
  • 不要在布尔变量名前加上is,会导致可读性下降
  • 不要在布尔变量名前加上not,用肯定的语气而非否定,否定降低可读性

为枚举类型命名

枚举类型成员不必冠以枚举名前缀,调用时使用前缀.成员名

为常量命名

根据该常量所表示的含义而不是该常量所具有的数值为该抽象事物命名

标准前缀

用户自定义(UDT)类型缩写

被用于表示像窗体、屏幕区域以及字体一类的实体

语义前缀

具体根据项目的不同而不同

一般缩写的指导规则

  • 使用标准的缩写(列在字典中的那些常见缩写)
  • 去掉所有非前置元音(computer变成cmptr,screen变成scrn。。。)
  • 去掉虚词and,or,the等
  • 使用每个单词的第一个或前几个字母
  • 统一地在每个单词的第一、第二或者第三个(选择最合适的一个)字母后截断
  • 保留每个单词的第一个和最后一个字母
  • 使用名字中的每一个重要单词,最多不超过三个
  • 去除无用的后缀——ing,ed等
  • 保留每个音节中最引人注意的发音
  • 确保不要改变变量的含义
  • 反复使用上述技术,直到变量名的长度减到7到20个字符或者达到你所用的编程语言对变量名的限制字符数
  • 缩写要一致,例如number的缩写要么统一使用num要么统一使用no

应该避免的名称

  • 避免使用令人误解的名字或缩写
  • 避免使用具有相似含义的名字
  • 避免使用具有不同含义但却有相似名字的变量
  • 避免使用发音很相近的名字
  • 避免在名字中使用数字
  • 避免在名字中拼错单词
  • 避免在名字中拼错单词
  • 避免使用英语中常常拼错的单词
  • 不要仅靠大小写来区分变量名
  • 避免使用多种自然语言
  • 避免使用标准类型、变量和子程序的名字
  • 不要使用与变量含义完全无关的名字
  • 避免在名字中包含易混淆的字符

感悟

被负责人指出问题后开始静心学习编码规范,争取摘掉不合格代码的帽子,在之前编码中我喜欢把计算值限定词放在前面,喜欢使用flag表示状态变量,这些都是不符合规范的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 蓝桥杯是全国性的计算机大赛,旨在提高大学生的计算机技术水平和创新能力。嵌入式STM32G431是一款嵌入式芯片,具有高性能和低功耗的特点。第十二届第一场省赛停车计费系统是蓝桥杯的一道工程题目,要求参赛选手设计一个停车场计费系统。 停车计费系统是指通过嵌入式技术实现对车辆进入和离开停车场的自动检测、计时和计费的系统。对于这个题目,参赛选手可以根据题目要求,使用STM32G431芯片设计一个具有以下功能的系统: 1. 车辆进入检测:使用车辆传感器检测车辆的进入,触发计时。 2. 车辆离开检测:使用车辆传感器检测车辆的离开,停止计时。 3. 计时功能:使用内部时钟模块获取进入和离开的时间,并计算停车时间。 4. 计费功能:根据停车时间,按照一定的计费规则进行计费。 5. 显示功能:使用液晶显示屏显示当前的停车信息,如车牌号、停车时间、费用等。 6. 数据存储功能:使用闪存等储存介质将停车数据进行存储,以便后续的数据分析和查询。 设计一个停车计费系统涉及到硬件设计和软件编程两个方面。硬件方面,参赛选手需要选择合适的传感器、显示屏、存储介质等,以及设计电路和接口进行连接。软件方面,需要使用C语言或者汇编语言编写程序,对芯片进行编程,实现各项功能。 通过此次比赛,选手们可以锻炼嵌入式系统的设计能力和编程能力,了解实际应用中嵌入式系统的工作原理和应用场景。同时,也能提升对STM32G431芯片的理解和运用能力。这对于培养嵌入式技术人才,推动物联网技术的发展都具有积极意义。 ### 回答2: 蓝桥杯是面向计算机爱好者的智力竞赛,而嵌入式STM32G431是一款嵌入式系统开发板。第十二届第一场省赛的停车计费系统真题工程,则是要求参赛选手设计并实现一个能够进行停车计费的系统。 停车计费系统是一种用于自动计费和管理停车场的系统。这个系统可以通过识别车辆的进出以及停车的时间,自动计算并收费。在这个工程中,选手需要使用嵌入式STM32G431开发板以及相关的硬件和软件,来设计一个能够实现停车计费功能的系统。 首先,选手需要使用传感器或摄像头来实现车辆进出的检测。当车辆进入或离开停车场时,传感器会发出信号并通过STM32G431进行检测。接着,选手需要编程实现识别车辆的算法,以便能够识别不同的车辆。当车辆停放时,系统会通过计时器记录停车的时间。 然后,选手需要编写计费算法,根据停车的时间来计算费用。这个算法可以根据停车场的规则来确定费用的计算方式,例如按小时计费或按照不同的时间段采用不同的费率。 最后,选手还需要设计一个界面,使得系统能够与用户进行交互。用户可以通过该界面查询停车费用,并进行付款。同时,选手还需要保证系统的稳定性和安全性,确保数据的准确性和保密性。 总而言之,蓝桥杯嵌入式STM32G431第十二届第一场省赛停车计费系统真题工程要求选手使用硬件和软件开发能力,设计并实现一个完整的停车计费系统。这需要选手具备嵌入式系统开发、传感器技术、算法设计和界面设计等多方面的知识和技能。 ### 回答3: 蓝桥杯嵌入式stm32g431——第十二届第一场省赛停车计费系统真题工程是一个基于STM32G431开发板的停车计费系统设计题目。该系统的主要功能是实现停车场的车辆进入、出场的计费管理。 首先,该系统需要实现一个车辆进入检测的功能。当车辆进入停车场时,系统会通过传感器检测到车辆的到达,并记录下进入的时间。 然后,系统需要实现一个车辆出场的功能。当车辆准备离开停车场时,系统会通过传感器检测到车辆的离开,并记录下离开的时间。 接下来,系统需要计算车辆停留的时间。通过进入时间和离开时间的差值计算得出车辆停留的时长。 最后,系统需要计算停车费用。根据停车场的计费规则,根据车辆停留的时长计算出停车费用,并将费用显示在屏幕上。 在实现上述功能的过程中,需要运用STM32G431开发板的各种功能和模块,包括GPIO口、定时器、中断、串口通信等。通过编写相应的代码,实现按钮的控制、传感器检测、时间的计算以及屏幕的显示等功能。 该项目的设计需要考虑多种情况,比如车辆重复进入出场、车辆进入出场顺序错乱等,要充分考虑这些异常情况并进行相应的处理。在代码编写过程中,还需注意代码的优化和资源的合理利用,以提高系统的性能和效率。 通过完成这个项目的设计与实现,可以加深对STM32G431嵌入式系统的了解和应用,并提升嵌入式系统开发的能力。同时,也能锻炼自己的逻辑思维、问题解决能力和团队合作精神。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值