《作业三》代码规范 代码复审
是否需要代码规范
1.这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。 (反对)
2.我是个艺术家,手艺人,我有自己的规范和原则。 (反对)
3.规范不能强求一律,应该允许很多例外。 (反对)
4.我擅长制定编码规范,你们听我的就好了。 (反对)
-
遵守编码风格使代码更容易维护
-
编码风格使形成代码集体所有制
-
编码风格能消除那些长久的纷争
代码复审也还有“教育”和“传播知识”的作用。更重要的是,不管多么厉害的开发者都会或多或少地犯一些错误,有欠考虑的地方,如果有问题的代码已签入到产品代码中,再要把所有的问题找出来就更困难了。大家学习软件工程都知道,越是项目后期发现的问题,修复的代价越大。代码复审正是要在早期发现并修复这些问题。
另外,在代码复审中的提问与回应能帮助团队成员互相了解,就像练武之人互相观摩点评一样。团队中有新成员加入时,代码复审能非常有效地帮助新成员了解团队的开发策略、编程风格及工作流程。
放行 — 代码可以不加新的改动,签入源码控制服务器。要注意避免不必要的繁文缛节,我们做代码复审的目的是为了减少错误的发生,而不是找一个人来对着你的代码点头。一些简单的修改不是非得要一个复审者来走一遍形式。在项目开发的早期斤斤计较于一些细枝末节(例如:帮助文件里的拼写错误,数据文件格式不够最优化等)也是于大局无补的,但是,这些问题并不是不用处理了,我们可以建立一些优先级较低的工作项来跟踪处理。
代码复审
我复审的是王硕朋的代码,因为我们当时是一起写的代码,代码没有任何问题
include<iostream.h>
include<stdlib.h>
include<conio.h>
void DealFenshu(int m, int a[][2])
{
for(int p=0;p<m;p++)
{
int i=(int)rand()%10;
int j=(int)rand()%10;
while(j0||i>=j)
{
i=(int)rand()%10;
j=(int)rand()%10;
}
int x=(int)rand()%10;
int y=(int)rand()%10;
while(y0||x>=y)
{
x=(int)rand()%10;
y=(int)rand()%10;
}
int k=(int)rand()%100/25;
switch(k)
{
case 0:
cout<<"("<<i<<"/"<<j<<")"<<"+"<<"("<<x<<"/"<<y<<")"<<"=";
a[p][0]=iy+xj;
a[p][1]=jy;
break;
case 1:
cout<<"("<<i<<"/"<<j<<")"<<"-"<<"("<<x<<"/"<<y<<")"<<"=";
a[p][0]=iy-xj;
a[p][1]=jy;
break;
case 2:
cout<<"("<<i<<"/"<<j<<")"<<""<<"("<<x<<"/"<<y<<")"<<"=";
a[p][0]=ix;
a[p][1]=jy;
break;
case 3:
a[p][0]=iy;
a[p][1]=j*x;
cout<<"("<<i<<"/"<<j<<")"<<"/"<<"("<<x<<"/"<<y<<")"<<"=";
}
if(p%5==4)
{
cout<<endl;
}
else
{
cout<<'\t';
}
}
}
void DisplayFenshu(int a[][2],int w,int m)
{
if(w1)
{
for(int q=0;q<m;q++)
{
if(a[q][0]0)
cout<<"0"<<'\t';
else
cout<<a[q][0]<<"/"<<a[q][1]<<'\t';
if(q%5==4)
{
cout<<endl;
}
}
}
else
{};
}
void DealInt(int m,int a[])
{
for(int p=0;p<m;p++)
{
int i=(int)rand()%10;
int j=(int)rand()%10;
int k=(int)rand()%100/25;
switch(k)
{
case 0:
cout<<i<<"+"<<j<<"=";
a[p]=i+j;
break;
case 1:
cout<<i<<"-"<<j<<"=";
a[p]=i-j;
break;
case 2:
cout<<i<<"*"<<j<<"=";
a[p]=i*j;
break;
case 3:
try
{
a[p]=i/j;
cout<<i<<"/"<<j<<"=";
}
catch(...)
{
p--;
}
}
if(p%5==4)
{
cout<<endl;
}
else
{
cout<<'\t';
}
}
}
void DisplayInt(int a[],int w,int m)
{
if(w1)
{
for(int q=0;q<m;q++)
{
cout<<a[q]<<'\t';
if(q%54)
{
cout<<endl;
}
}
}
else
{};
}
int main()
{
int p;
do
{
system("cls");
int a[1000],b[1000][2];
int m,n,w;
cout<<"请输入生成的四则运算题个数:";
cin>>m;
cout<<endl;
cout<<"请输入要生成的四则运算种类(输入1为整数,否则为真分数):";
cin>>n;
cout<<endl;
if(n1)
{
DealInt(m,a);
cout<<endl;
}
else
{
DealFenshu(m,b);
cout<<endl;
}
cout<<"是否输出答案(输入1则输出答案否则不输出答案)"<<endl;
cin>>w;
if(n1)
{
DisplayInt(a,w,m);
}
else
{
DisplayFenshu(b,w,m);
}
cout<<endl;
cout<<"是否继续生成运算题(输入1则生成否则不生成)"<<endl;
cin>>p;
cout<<endl;
}while(1==p);
}
我复审的是王硕朋的代码,因为我们当时是一起写的代码,代码没有任何问题