【软件工程】第一次结对编程_作业
题目要求
(1). 首先在同学中找一个同伴,范围不限,可以在1~5班中随意组合,建议尽量不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求;
(2). 从以往个人完成的项目中选择一个作品,例如:以往的数据结构课程设计或者其它具有比较完整功能的小系统,代码至少要大于100行;
(3). 将代码上传至个人GitHub或Coding.net系统中,并将代码地址交给对方;
(4). 对同伴的作品进行代码复审,并参照C/C++代码审查表和 Java代码审查表 这两篇博文的内容自行设计代码审查表并填写内容;
(5). 将对伙伴审查的结果以表格的形式写到自己的博客作业里,博客中应该附有伙伴作业的GitHub或Coding.net的代码地址;
(6). 对同伴的代码写一篇500字以上的评论,介绍同伴的优缺点。
审查代码
此审查代码已上传至GitHub,点此查看
审查表
|
详细分析
本次审查的代码是由结伴对象吕政国*所编写的单片机课设—模拟电风扇的代码,经过课程设计的审查此代码在已保证正确性基础上,加以优化和处理,所以对一此次代码审查的任务,主要是针对以下代码书写格式、常量的定义以及函数的使用效率等方面进行审查。
优势部分:
采用了部分#define宏定义,提高了代码的提高程序的运行效率,使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。是程序更加模块化,方便调度和后续使用;提高了代码的可维护性;
#define uint unsigned int
#define uchar unsigned char#define duanma XBYTE[0X8004]
#define weima XBYTE[0x8002]
#define keyport XBYTE[0x8001]
在函数内加入了部分注释,增加了代码的可读性,但注释缩进不规范;
uchar read() // 得到的是哪个按键
{uchar Pos;uchar i;uchar k;i = 6;Pos = 0x20; // 找出按键所在列do{XBYTE[0x8002] = ~ Pos; //把某一列置低电平Pos>>= 1;k = ~XBYTE[0x8001] & 0x0f; //读取行线状态} while ((--i != 0) && (k == 0));// 键值 = 列 x 4 + 行if (k != 0){i *= 4;if (k & 2)i += 1;else if (k & 4)i += 2;else if (k & 8)i += 3;XBYTE[0x8002] = 0; //将所有列再置0return(KeyTable[i]); // 取出键码} else return(0xff);
}
数组的较长初始化分行处理,方便阅读;
code unsigned char KeyTable[] = { // 键码定义0x16, 0x15, 0x14, 0xff,0x13, 0x12, 0x11, 0x10,0x0d, 0x0c, 0x0b, 0x0a,0x0e, 0x03, 0x06, 0x09,0x0f, 0x02, 0x05, 0x08,0x00, 0x01, 0x04, 0x07
};
还需加强:
对于常量的命名,未使用英语的驼峰命名法、帕斯卡命名法等规范命名,而使用了大量的拼音以及单个不明意义字母等,不规范;
#define duanma XBYTE[0X8004]
#define weima XBYTE[0x8002]
#define keyport XBYTE[0x8001]
uchar xianshi[8]; uint a,b,z;
循环体内应规范书写,不能多加空格或少加空格,无论多少行代码都应加‘{’‘}’符号;
void delay(uint z)
{uint a,b;for(a=z;a>0;a--)for(b=122;b>0;b--);
}
文件结构上,应包含文件头注释和内容,函数调用时,循环结束时都应该标注注释,注释不够全面;
行首缩进应尽量使用TAB键而不是空格;"if"、"for"、"while"、"do"、"try"、"catch" 等语句自占一行,执行语句不得紧跟其后。for循环和if语句无论其后执行语句有多少都要加 “{ }” ;
do{XBYTE[0x8002] = ~ Pos; //把某一列置低电平Pos>>= 1;k = ~XBYTE[0x8001] & 0x0f; //读取行线状态} while ((--i != 0) && (k == 0));// 键值 = 列 x 4 + 行
if语句如果有else语句,用 } else { 编写为一行,不推荐用 3 行代码的方式。
if (k != 0){i *= 4;if (k & 2)i += 1;else if (k & 4)i += 2;else if (k & 8)i += 3;XBYTE[0x8002] = 0; //将所有列再置0return(KeyTable[i]); // 取出键码} else return(0xff);
部分子函数可以在工程内另起.c文件,以增加程序的规范性和可读性;
有部分冗杂代码可以用循环处理,简单化;
xianshi[0]=0;
xianshi[1]=0;
xianshi[2]=0;
xianshi[3]=0;
xianshi[4]=0;
xianshi[5]=0;
xianshi[6]=0;
xianshi[7]=0;
自我总结
通过本次对结伴对象的审查,我也对自己过去的代码进行了反思和自我审查,也发现类似的通病,这些在书写中不好的习惯和欠缺考虑的的步骤在不经意中埋藏起来,如果不进行这样的审查过程,就会忽略编写程序中这些质量上的问题,在以后的代码中,一定会多加注意类似的问题,做到知己知彼,提前预防。
转载于:https://www.cnblogs.com/cocoaman/p/10758913.html
【软件工程】第一次结对编程_作业相关推荐
- 2022秋软件工程第一次结对编程时作业
软件工程 FZUSDN社区 作业要求 2022秋软件工程第一次结对编程作业 作业目标 使用NABCD进行需求分析并进行原型设计 成员学号 032002217 成员学号 072003403 墨刀链接 墨 ...
- 软件工程第一次结对编程
10/11-10/16日短短五天,我和队友通过结对编程的方式完成了一个用来做"黄金点游戏"的小程序,项目地址: https://github.com/ycWang9725/gold ...
- 软件工程-第一次结对编程
1.代码地址 本次和我结对的是王肖男 他的代码地址是GitHub 2.代码审查表 计算器算法审查表 重要性 激活 级别 检查项 Y 20 命名规则是否与所采用的规范保持一致? 注释 重要 Y 10 注 ...
- 2021秋软工实践第一次结对编程作业
这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 这个作业要求在哪里 2021秋软工实践第一次结对编程作业 这个作业的目标 实现博饼软件原型并进行博客写作 学号 031902139 队友学 ...
- 2021软工第一次结对编程作业
这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 这个作业要求在哪里 2021秋软工实践第一次结对编程作业 这个作业的目标 结对完成任务并学会原型设计 学号 031902414 队友学号 ...
- 2022秋软工实践 第一次结对编程作业
2022秋软工实践 第一次结对编程作业 需求分析 (1)Need,需求 (2)Approach,做法 (3)Benfit,好处 (4)Competitors,竞争 (5)Delivery,推广 UML ...
- 现代软件工程系列 结对编程 (II) 电梯调度程序
[很多同学完成了上一个结对编程项目后, 很想知道下一个项目是什么, 我们这次要练习如何设计 接口, 测试框架, 和算法] 现代软件工程系列 结对编程 (II) 电梯调度程序 ------- Pai ...
- java周志第二周_20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算
20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 1.Git提交日志已经实现一个功能/一个bug修复的注释说明,如图所示: 2.测试代 ...
- 软件工程课程-结对编程项目
结对编程项目 评分标准 结对编程项目总共8个周时,总分数55分 作业期限每一周算一周时 未按时完成作业,但在作业截止后的3天时间内提交作业的,得作业得分x0.6 作业截止3天后未完成作业,扣该作业总分 ...
最新文章
- laravel中Crypt加密方法
- 当前最佳的YOLOv4是如何炼成的?细数那些Tricks
- externalreferences 命令在 sdi 模式下不可用_一个适合新手交互式Git命令学习项目
- 数据挖掘-分类与预测-神经网络算法
- [Android学习笔记四] 自定义Android组件之组合方式创建密码框组件
- linux强制获得锁,Linux中的两种文件锁——协同锁与强制锁
- 天气预报查询python_天气预报查询示例代码
- php 3.2 下载,PHPWind
- Jenkins插件安装
- Nmap小技巧——探测大网络空间、局域网中的存活主机
- struct termios结构体详解【转】
- IP地址规划设计技术
- html抓取cpu温度,一种获取CPU温度的测试方法、系统及计算机存储介质与流程
- java开发手机app_java 怎么开发手机app接口?
- 一起来DIY一个人工智能实验室吧
- QCon 北京|Apache Pulsar:云原生时代的消息服务
- 【英雄九日集训】(七月第一轮)第一天——数组
- 华为机试C语言-找到比自己强的人数
- 安卓系统怎么模拟java_电脑上安装安卓系统模拟器的方法(直接用JAVA虚拟成手机)...
- 二维数组的传参调用写法