结对编程 开发项目

   一.项目内容

      黄金点游戏是供多人玩乐的多伦循环游戏,游戏要求需要每人输入一个有理数,求出黄金点,得出每个有理数与黄金点的差值,差值最大的得-2分,追小的的num分。

  二.项目开发

      我与苏钰涵我俩因为喜爱和学习的方向不同,我俩决定用C语言写,不然测试的时候没法进行。我俩先分析了一下项目要求。应为这只是一个简单的游戏程序,作为他的使用者希望他简单易懂,一看就明白了。

      黄金点游戏需要实现计算总和,平均数,黄金点,黄金点与有理数的差值,得分,记录总分等功能。

      1.主函数需要实现游戏次数,游戏人数的输入和每人输入的有理数,以及调用函数的作用。游戏次数(n)和游戏人数(num)定义为整型。每人输入的有理数建立数组一循环的方式输入。

for (int j = 0; j < num; j++)
{
scanf_s("%d", &S[j]);
printf("第%3d人的数%5d ", j + 1, S[j]);
}

      2.构造run()函数,实现计算总和sum,平均数ave,黄金点G和返回黄金点G的功能。

      3.构造result(double a, int b, int *str1,int *cent)函数,实现黄金点与有理数的差值的计算,并存入数值中。

S1[i] = fabs(a - str1[i]);

求出数组中的最大值(max)和最小值(min)。

if (min > S1[i])
            min = S1[i];
if (max < S1[i])
            max = S1[i];

最大值和最小值得分及输出总分。

{

if (S1[i] == min)
          S2[i] = b;
if (S1[i] == max)
          S2[i] = -2;

}

cent[i] = cent[i] + S2[i];

    三.功能展示

心得体会:

本程序是我在完成了结对编程后自己有些的一个,因为想多敲点代码。通过这次结对编程,我收获了很多,我俩编程能力都可以,我俩交流时都很明白,这对我们合作非常有利。

源代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
double run(int a, int *str);
void result(double a, int b, int *str1,int *cent);
void main()
{
int n, num;
double G;
printf(" 欢迎进入黄金点游戏 ");
int S[100], cent[100] = { 0 };
printf("输入局数: ");
scanf_s("%d", &n);
printf("输入游戏人数: ");
scanf_s("%d", &num);
for (int i = 1; i <= n; i++)
{
printf("请输入每个人的数字 ");

for (int j = 0; j < num; j++)
{
scanf_s("%d", &S[j]);
printf("第%3d人的数%5d ", j + 1, S[j]);
}

G = run(num, S);
printf("黄金点是G=%f ", G);
result(G, num, S,cent);
}
getchar();
getchar();
}
double run(int a, int *str)
{
double sum, ave, g;
sum = 0.0;
for (int i = 0; i < a; i++)
{
sum = str[i] + sum;
}
ave = sum / a;
g = ave*0.618;
return g;
}
void result(double a, int b, int *str1,int *cent)
{
double S1[100];
int S2[100] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int i;
double min, max;
for (i = 0; i < b; i++)
{
S1[i] = fabs(a - str1[i]);
}
min = max = S1[0];
for (i = 0; i < b; i++)
{
if (min > S1[i])

min = S1[i];
if (max < S1[i])
max = S1[i];
}
for (i = 0; i < b; i++)
{
if (S1[i] == min)
S2[i] = b;
if (S1[i] == max)
S2[i] = -2;

}
printf("******************************* ");
for (i = 0; i < b; i++)
{
printf("第%3d个人得%3d分 ", i + 1, S2[i]);

}
printf("******************************* ");
for (i = 0; i < b; i++)
{
cent[i] = cent[i] + S2[i];
printf("第%3d个人总得分%3d ", i + 1, cent[i]);

}
printf("******************************* ");
}

原文地址:https://www.cnblogs.com/shuaiwl/p/5370045.html