代码复审
一、这次复审的是李成帅(130201127)同学的四则运算代码,源代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 四则运算作业
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Random shu = new Random();//用于产生计算的数
Random fuhao = new Random();//用于产生运算符
int suijishu1 = shu.Next(1, 101);//取0-100的随机数
label1.Text = suijishu1.ToString();//随机产生第一个数
int yunsuanfu1 = fuhao.Next(1, 5);//取1-4的随机数用来匹配运算符
string jsysf1 = "";//用于接受+-*/
switch (yunsuanfu1)//判断运算符
{
case 1:
jsysf1 = "+";
break;
case 2:
jsysf1 = "-";
break;
case 3:
jsysf1 = "*";
break;
case 4:
jsysf1 = "/";
break;
}
label2.Text = jsysf1;//第一个符号
int suijishu2 = shu.Next(1, 101);//取0-100的随机数
label3.Text = suijishu2.ToString();//随机产生第二个数
if (jsysf1 == "/" && suijishu2 == 0)//除数为零的操作
{
jsysf1 = "+";
}
if (jsysf1 == "/" && suijishu1 % suijishu2 != 0)//不能整除的操作
{
jsysf1 = "-";
}
int yunsuanfu2 = fuhao.Next(1, 5);//取1-4的随机数用来匹配运算符
string jsysf2 = "";//用于接受+-*/
switch (yunsuanfu2)//判断运算符
{
case 1:
jsysf2 = "+";
break;
case 2:
jsysf2 = "-";
break;
case 3:
jsysf2 = "*";
break;
case 4:
jsysf2 = "/";
break;
}
label4.Text = jsysf2;//第二个符号
int suijishu3 = shu.Next(1, 101);//取0-100的随机数
label5.Text = suijishu3.ToString();//随机产生第三个数
if (jsysf2 == "/" && suijishu3 == 0)//除数为零的操作
{
jsysf2 = "+";
}
}
}
}
二、代码复审检查表
1、概要部分
(1)代码符合需求和规格说明么?
符合。
(2)代码设计是否考虑周全?
缺少结果等于负数的情况。
(3)代码可读性如何?
简单易懂。
(4)有冗余的或重复的代码吗?
没有冗余,有重复。
(5)代码的每一行都执行并检查过了吗?
执行并逐行检查过。
2、设计规范部分
(1)设计是否遵从已知的设计模式或项目中常用的模式?
遵守。
(2)有没有硬编码或字符串存在?
所有的int都改成了string。
(3)代码有没有依赖于某一平台?
没有进行其他平台开发。
(4)有没有无用的代码可以清除?
没有。
3、代码规范部分
基本符合代码标准和风格,代码可读性高。
4、具体代码部分
(1)数据结构中有没有用不到的元素?
没有。
(2)对于调用的外部函数,是否检查了返回值?
全部检查了。
5、效能
(1)代码的效能如何?
效能很高。
(2)循环中是否有明显可优化的部分?
没有循环,每次显示一个式子。
6、可读性
可读性比较高,注释比较好。
7、可测试性
是否需要更新或创建新的单元测试?
在此基础上可以进一步进行功能添加。
三、代码复审感想
我欠缺的太多了,这次代码复审是在设有帮助下完成的,我有好多的地方不懂,希望这一学期可以学到更多的知识。