结对编程 测试

关于黄金点游戏,我负责测试部分

 

由于我的队友苏钰涵他用的是VC6.0我用的是Visual studio我们出现过代码在vc上能运行在我这运行错误的情况。

1.vs不支持scanf

2.黄金点输出错误

3.得分第一个恒为人数,最后一个恒为-2

4.在VS上没有输出最后一轮结果和总得分就退出了,没有显示

 

修改

1.VS支持scanf_S

2.调用求总数的函数时出错

3.添加#include<windows.h>库函数,用system("pause");z执行

一.输入函数,编码是未考虑到非有理数的输入,当输入字符时程序回自动结束。建议添加一个判单项,如果输入的是字符时判单下,自动报错,并返回上一项在重新输入,得到符合要求的有理数为止。玩家输入的有理数是以次给数组赋值,一旦输错或其中一个没输如,程序将指向错误运行。

void main()
{
    int i, j,  m, n;float s[50], sum = 0;
    //定义
    printf("游戏人数为:");
    scanf_s("%d", &n);
    printf("游戏轮数为:");
    scanf_s("%d", &m);
    //输入

    for (j = 0; j<m; j++)
    {
        printf("第%d轮的输入为\n", j + 1);
        for (i = 0; i<n; i++)
            scanf_s("%f", &s[i]);
       }
}

二.计算总和,平均数,G值。调用了一个求和函数,黄金点和平均数在主函数里。建议将求平均数和黄金点G也放入函数中或另重新构造一个函数。输出黄金点的时候printf("黄金G=%f\n",0.618*A);建议先求出黄金点在输出。

void main()
{
    int  c[50], n, ;
    double A;
    float s[50], sum = 0;
        sum = count(s, n);
        printf("和%f", sum);
        A = sum / n;
        printf("黄金点G=%f\n", 0.618*A);
}
float count(float a[], int size)
{
    int i;
    float sum = 0.0;
    for (i = 0; i<size; i++)
    {
        sum = sum + a[i];
    }
    return sum;
}//求和函数

三.j计算最大值,最小值和打分。这部分也在主函数中,求最大值,最小值和打分时有代码冗余。最好合并了。

void main()
{
             int i,c[50];
            double max,min,b[50];

                min = b[0];
        max = b[0];
        for (i = 0; i<n; i++)
        {
            if (b[i]<min)
                min = b[i];
        }
        for (i = 0; i<n; i++)
        {
            if (b[i] == min)
                c[i] = n;
            else
                c[i] = 0;
        }
        for (i = 0; i<n; i++)
        {
            if (b[i]>max)
                max = b[i];
        }
        for (i = 0; i<n; i++)
        {
            if (b[i] == max)
                c[i] = -2;
        }
}

四.得分和总分。得总得分输出在运行几次循环的外边,只能输出最后总得分。

void main()
{

                int i,c[50],n,num[50]={0};

		//将每个人的成绩累加
		printf("********************\n*得分为:          *\n");
		for (i = 0; i<n; i++)
			printf("*        %2d        *\n", c[i]);
		printf("********************\n");
		//输出每轮成绩
	}
	printf("********************\n*总得分为:        *\n");
	for (i = 0; i<n; i++)
		printf("*        %2d        *\n", mun[i]);
	printf("********************\n");
}

  

我俩认真编程的合影

程序的设计过程请见苏钰涵同学的博客

http://home.cnblogs.com/u/syh2013040101006/

代码已上传到coding

关于我上传的结对编程 开发项目不在这次作业范围

posted @ 2016-04-09 10:38  1班李帅伟  阅读(401)  评论(1编辑  收藏  举报