实验2-题目一
角色分配
本人驾驶员:郭靖怡 学号:223201062215
领航员:白若桐 学号:223201062208
500字总结以及评价
这次实验作业,我感受到了结对编程可以提供更好的设计质量和代码质量,互相帮助,互相教对方,可以得到能力上的互补。 增强代码和产品质量,并有效的减少BUG。一边编程,一边共享知识和经验,有效地在实践中进行学习。在编程中,相互讨论,可能更快更有效地解决问题。
我们两人合作,可以比较直接地看到自己代码的缺点,对自己也有很大程度的启发和激励。不断地进行交流、传递经验,可提升自己交流的能力,也对于提升自己各方面都非常有帮助。我们在结对编程的缺点是,在时间上可能会有些紧张;有些项目不适合进行结对编程,更适合一个人去做。
我的队友的优点有很多,比如测试用例结果出现问题,与我的交流很活跃,会很直截了当地提出自己的想法,使得我们在交流上没有什么摩擦,合作比较顺利。但可能是时间原因,出现了一些方法的小问题,对我的代码造成了一点点小问题。
个人的优点是对文档的要求细节注意得更多,考虑问题比较细致全面,代码的命名和规范上比较好,有利于合作,我的缺点是github的使用不是很熟练,希望有机会提升自己的动手能力,避免在结对编程中给结对伙伴带来代码上的困扰。
结对编程时,我们两个人共同完成一个功能,可以避免个人的误区存在,通常个人的想法难免有局限性,自己看自己写的代码总是觉得怎么都对。 每个人站在不同的角度能够看到彼此的误差。 还有通过结对,代码至少有一个程序员进行了审查,这样可以让设计、测试和编码更加友好,减少了缺陷,从而提高了产品质量。
以下是题目一代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
char ysf[4] = {'+','-','*','/'};//四种运算符
void xs(int nummax, int n)
{
int a, c,m;
float b;
m= pow(10.0,n);
a = rand() % (nummax + 1);
c = rand() % m;
b = a + c*1.0/pow(10.0, n);
if (n == 0)
{
int m;
m = b;
printf("%d", m);
}
else if (n == 1)
printf("%.1f", b);
else if (n == 2)
printf("%.2f", b);
else if (n == 3)
printf("%.3f", b);
else
printf("%f", b);
}
void sc(int nummax,int l,int fh,int e,int n)
{
char b;
int x=0;
int y=1,u=0;
int k1=0,k2=0;
for (int i=0;i<l;i++)
{
int a;
while(rand() % 2)
{
if(e>k1&&k1 >= k2)
if(x == 0 && y == 1)
{
printf("(");
k1++;
u = 0;
}
else continue;
}
xs(nummax, n);
x = 1, y = 0;
u++;
while (rand() % 2)
{
if (e > k1&&k1 > k2)
if (x == 1 && y == 0 && u>1)
{
printf(")");
k2++;
if (k1 == k2)
u = 0;
}
else continue;
}
if (i==l-1)
{
while(k1>k2)
{
printf(")");
k2++;
}
printf("=\n");
break;
}
if (fh==1)
b=ysf[0];
else if(fh == 2)
b=ysf[1];
else if(fh == 3)
b=ysf[2];
else if(fh == 4)
b=ysf[3];
else b=ysf[rand() % 4];
printf("%c",b);
y=1,x=0;
u++;
}
}
int main()
{
int a,i= 1,nummax,l,fh,e,n,num;
char b;
printf("请输入题目数量\n");
scanf("%d", &num);
printf("请输入最大数\n");
scanf("%d", &nummax);
printf("请输入多少个数相加\n");
scanf("%d", &l);
printf("请选择运算符号\n(1、2、3、4分别代表+、-、*、/,输入此范围外的数字代表四种符号随机)\n");
scanf("%d", &fh);
printf("请输入括号数量(不能超过题目长度,输入0代表无括号)\n");
scanf("%d", &e);
printf("请输入小数位数(输入0代表无小数位)\n");
scanf("%d", &n);
while(i <= num)
{
sc(nummax, l, fh, e, n);
i++;
}
return 0;
}