结对-(first)
代码地址
https://github.com/CountZ3/bank.git
代码思想
允许进程动态地申请资源,
系统在每次实施资源分配之前,先计算资源分配的安全性,
若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),
便将资源分配给进程,否则不分配资源,让进程等待。
代码审查表
| 功能模块名称 | 银行家算法 | ||
| 审查人 | 刘丰 | 审查日期 | 2019/4/23 |
| 代码名称 | 银行家算法 | 代码作者 | 李晨曦 |
| 文件结构 | |||
| 重要性 | 审查项 | 结论 | |
| 头文件和定义文件的名称是否合理? | 合理 | ||
| 头文件和定义文件的目录结构是否合理? | 合理 | ||
| 版权和版本声明是否完整? | 否 | ||
| 重要 | 头文件是否使用了 ifndef/define/endif 预处理块? |
否 | |
| 头文件中是否只存放“声明”而不存放“定义” | 否 | ||
| 程序的版式 | |||
| 重要性 | 审查项 | 结论 | |
| 空行是否得体? | 是 | ||
| 代码行内的空格是否得体? | 是 | ||
| 长行拆分是否得体? | 是 | ||
| “{” 和 “}” 是否各占一行并且对齐于同一列? |
是 | ||
| 重要 | 一行代码是否只做一件事?如只定义一个变量,只写一条语句。 | 是 | |
| 重要 | If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。 |
是 | |
| 重要 | 注释是否有错误或者可能导致误解? | 否 | |
| 重要 | 类结构的public, protected, private顺序是否在所有的程序中保持一致? |
是 | |
| 命名规则 | |||
| 重要性 | 审查项 | 结论 | |
| 重要 | 命名规则是否与所采用的操作系统或开发工具的风格保持一致? | 是 | |
| 标识符是否直观且可以拼读? | 是 | ||
| 类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则? | 是 | ||
| 表达式与基本语句 | |||
| 重要性 | 审查项 | 结论 | |
| 重要 | 如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序? | 是 | |
| 是否编写太复杂或者多用途的复合表达式? | 否 | ||
| 重要 | 是否用隐含错误的方式写if语句? 例如 | 否 | |
| (1)将布尔变量直接与TRUE、FALSE或者1、0进行比较。 | 否 | ||
| 如果循环体内存在逻辑判断,并且循环次数很大,是否已经将逻辑判 | 是 | ||
| 常量 | |||
| 重要性 | 审查项 | 结论 | |
| 是否使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串? | 是 | ||
| 在C++ 程序中,是否用const常量取代宏常量? |
是 | ||
| 重要 | 如果某一常量与其它常量密切相关,是否在定义中包含了这种关系? | 是 | |
| 是否误解了类中的const数据成员?因为const数据成员只在某个对象 | 否 | ||
| 生存期内是常量,而对于整个类而言却是可变的。 | 否 | ||
| 函数设计 | |||
| 重要性 | 审查项 | 结论 | |
| 参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字。 | 否 | ||
| 参数命名、顺序是否合理? | 是 | ||
| 参数的个数是否太多? | 否 | ||
| 是否使用类型和数目不确定的参数? | 否 | ||
| 是否省略了函数返回值的类型? | 否 | ||
| 函数名字与返回值类型在语义上是否冲突? | 否 | ||
| 重要 | 是否将正常值和错误标志混在一起返回?正常值应当用输出参数获得,而错误标志用return语句返回。 | 否 | |
| 重要 | 在函数体的“入口处”,是否用assert对参数的有效性进行检查? | 否 | |
| 重要 | 使用滥用了assert? 例如混淆非法情况与错误情况,后者是必然存在的并且是一定要作出处理的。 |
否 | |
| 是否使用const提高函数的健壮性?const可以强制保护函数的参数、返回值,甚至函数的定义体。“Use const whenever you need” |
否 | ||
| 内存管理 | |||
| 重要性 | 审查项 | 结论 | |
| 重要 | 数组或指针的下标是否越界? | 否 | |
| 重要 | 动态内存的申请与释放是否配对?(防止内存泄漏) | 否 | |
| 重要 | 是否有效地处理了“内存耗尽”问题? | 是 | |
| C++ 函数的高级特性 | |||
| 重要性 | 审查项 | 结论 | |
| 重载函数是否有二义性? | 否 | ||
| 重要 | 是否混淆了成员函数的重载、覆盖与隐藏? | 否 | |
| 运算符的重载是否符合制定的编程规范? | 是 | ||
| 是否滥用内联函数?例如函数体内的代码比较长,函数体内出现循环。 | 否 | ||
| 重要 | 是否用内联函数取代了宏代码? | 无 | |
| 类的构造函数、析构函数和赋值函数 | |||
| 重要性 | 审查项 | 结论 | |
| 重要 | 是否违背编程规范而让C++ 编译器自动为类产生四个缺省的函数: |
||
| (1)缺省的无参数构造函数; | 否 | ||
| (2)缺省的拷贝构造函数; | 无 | ||
| (3)缺省的析构函数; | 无 | ||
| (4)缺省的赋值函数。 | 无 | ||
| 重要 | 构造函数中是否遗漏了某些初始化工作? | 否 | |
| 重要 | 是否正确地使用构造函数的初始化表? | 否 | |
| 重要 | 析构函数中是否遗漏了某些清除工作? | 否 | |
| 重要性 | 审查项 | 结论 | |
| 重要 | 数据类型问题: | ||
| (1)变量的数据类型有错误吗? | 否 | ||
| (2)存在不同数据类型的赋值吗? | 否 | ||
| (3)存在不同数据类型的比较吗? | 否 | ||
| 重要 | 变量值问题: | ||
| (1)变量的初始化或缺省值有错误吗? | 否 | ||
| (2)变量发生上溢或下溢吗? | 无 | ||
| (3)变量的精度够吗? | 不够 | ||
| 重要 | 逻辑判断问题: | ||
| (1)由于精度原因导致比较无效吗? | 否 | ||
| (2)表达式中的优先级有误吗? | 否 | ||
| (3)逻辑判断结果颠倒吗? | 否 | ||
| 重要 | 循环问题: | ||
| (1)循环终止条件不正确吗? | 否 | ||
| (2)无法正常终止(死循环)吗? | 否 | ||
| (4)存在误差累积吗? | 是 | ||
| 重要 | 错误处理问题: | ||
| (1)忘记进行错误处理吗? | 否 | ||
| (2)错误处理程序块一直没有机会被运行? | 否 | ||
| (3)错误处理程序块本身就有毛病吗?如报告的错误与实际错误不一致,处理方式不正确等等。 | 否 | ||
| (4)错误处理程序块是“马后炮”吗?如在被它被调用之前软件已经出错。 | 否 | ||
总结
优点:
整个代码,整体框架结构清晰明了
每个函数调用都做了解释说明
函数之间还做了空格
缺点:
代码注释过于冗余,参量名不详细
代码中没有版本以及版权申明
结对-(first)的更多相关文章
- 复利计算--结对项目<04-11-2016> 1.0.0 lastest 阶段性完工~
结对项目:Web复利计算 搭档博客地址:25江志彬 http://www.cnblogs.com/qazwsxedcrfv/ 个人摘要: (2016-04-09-12:00)补充:之前传送门没做好, ...
- 结对编程--基于android平台的黄金点游戏
游戏内容: 阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或1 ...
- 结对项目——高级四则运算检验器记录(168 & 187)
首先,上图(*+﹏+*)~@ 1.如何看待结对编程 结对编程优点: 1.两个人能够相互支持,相互监督,客服编程过程中可能出现的烦躁的情况0_0. 2.在开发功能的同时,伴随了UnitTest的进行,可 ...
- 结对编程-地铁续(有种上个学期OO的既视感)
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...
- 结对编程项目——四则运算vs版
结对编程项目--四则运算vs版 1)小伙伴信息: 学号:130201238 赵莹 博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...
- 关于软件工程结对编程作业 PairProject : Elevator Scheduler(电梯调度算法的实现与测试)的总结
1)结对编程队友 1106xxxx 张扬 1106xxxx 杨军 其中,此项目的编程实现主要由前者完成. 2)关于结对编程 结对编程的优点: 最直接的一点:在结对编程中,由于有另一个人在你身边和你配合 ...
- <构建之法> 第四章 结对 读后感
粗读 第四章主要讲的是关于结对合作的事项.大多数的软件开发都是团体性的,而合作的最小单位也就是两个人,这也是软件开发中的最佳实践.而结对中,我们能够更好的编写我们的代码,能够少一些担心,对自己的代码也 ...
- 结对编程—黄金点游戏WinForm单机版
本小游戏场景来自邹欣老师的<移山之道>一书: "阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫"黄金点"的游戏: ...
- (2015秋) 作业6:(电梯系统之结对编程 I 总分=2*50 分)
电梯系统 0. 背景 南通大学钟秀校区“主教学楼” 用 2 部电梯(连地下室共9层):每到下课.上课前都特别拥挤,大家希望改进已有的电梯调度算法,满足学生和老师快速乘坐电梯的需要.因此,需要重新设计一 ...
- 结对编程之Fault、Error、Failure
1.结对说明 结对对象:刘世麟 博客地址:http://www.cnblogs.com/liushilin/ 双方贡献:1:1 2.题目要求 构造程序,分别是: •不能触发Faul ...
随机推荐
- python中方法的总结
# 1.用函数实现过滤掉集合list1=[' ','hello',None,'python' ]中的空格和空值 # 2.用函数方法实现计算集合list1 = [1,2,3,4,5]中,所有元素的和 c ...
- 关于PWA ( Progressive web apps )
渐进式Web应用程序使用现代Web API以及传统的渐进式增强策略来创建跨平台Web应用程序.这些应用程序无处不在,并提供多种功能,使其具有与本机应用程序相同的用户体验优势.这套文档告诉您需要了解的所 ...
- Go中的iota
当时在学习Iota这个知识点的时候仅仅是一笔掠过,比如这种 const( a=iota b c ) 一眼看出他怎么使用的时候就觉得自己已经懂得了 再到后来看到这样的例子 const( a = 5*io ...
- Wireshark显示结果过滤基本语法
按IP地址过滤:1.仅显示源地址为192.168.1.95的项目: ip.src eq 192.168.1.95 2.仅显示目的地址为192.168.1.95的项目: ip.dst eq 192.16 ...
- 树莓派中QT实现串口通讯
树莓派中QT实现串口通讯 开发平台为QT 此博客QT使用的为WiringPi驱动 我使用的串口调试助手为 cutecom 先简单说一些开发过程中需要注意的问题 Linux 下设备为 tty ,对应在 ...
- python之路day12--装饰器的进阶
装饰器# 开发原则:开发封闭原则# 装饰器的作用:在不改变原函数的调用函数下,在函数的前后添加功能.# 装饰器的本质:闭包函数 import time def timmer(f): #func #ti ...
- mysql 在visual studio中的配置
视图-->其他窗口-->服务器资源管理器-->数据连接-->右键添加连接 servername:localhost username:root password:123456 ...
- Flash设置(各种版本浏览器包括低版本IE)
涉及到的各种版本flash百度下都能下到的,不再说明. Flash的安装比较麻烦,涉及多种浏览器.多种操作系统支持,安装.设置的地方比较多,以下说明基本涉及大部分安装过程中可能遇到的问题,如果安装或视 ...
- 深入了解SQL的四种连接&不然要命的!
1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...
- I2C(二) linux2.6
目录 I2C(二) linux2.6 总线驱动 关键结构 入口 i2c_add_adapter 硬件操作 设备驱动 入口 注册 attach_adapter eeprom_detect i2c_att ...