zoukankan      html  css  js  c++  java
  • 结对编程 开发项目

       一.项目内容

          黄金点游戏是供多人玩乐的多伦循环游戏,游戏要求需要每人输入一个有理数,求出黄金点,得出每个有理数与黄金点的差值,差值最大的得-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("******************************* ");
    }

  • 相关阅读:
    【CF732D】Exams(线性扫描,贪心,二分)
    【CF652C】Foe Pairs(线性扫描)
    【CF645D】 Robot Rapping Results Report(拓扑排序,二分)
    【BZOJ入门3189】 猜数字(数学,搜索)
    【CF559C】 Gerald and Giant Chess(计数,方案数DP,数论)
    【NOIP2016练习&BZOJ2125】T3 sp (树上倍增,最短路)
    【NOIP2016练习】T2 forest (树形DP,数论)
    【NOIP2016练习】T2 花花的聚会 (树形DP,倍增)
    【CF713C】Sonya and Problem Wihtout a Legend(离散化,DP)
    js函数知识点
  • 原文地址:https://www.cnblogs.com/shuaiwl/p/5370045.html
Copyright © 2011-2022 走看看