结对项目

这个作业属于哪个课程 软工2024(广工)
这个作业要求在哪里 结对项目
这个作业的目标 通过实践了解合作开发的流程

姓名:李健宇
学号:3122004870

姓名:陈彦煤
学号:3122004859

GitHub项目地址

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 40
Estimate 估计这个任务需要多少时间 400 420
Development 开发 250 330
Analysis 需求分析 (包括学习新技术) 60 60
Design Spec 生成设计文档 30 30
Design Review 设计复审 10 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 10 30
Design 具体设计 60 50
Coding 具体编码 300 350
Code Review 代码复审 60 90
Test 测试(自我测试,修改代码,提交修改) 40 50
Reporting 报告 30 30
Test Repor 测试报告 60 60
Size Measurement 计算工作量 20 20
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 50
合计 1340 1620

性能分析


设计实现过程


代码说明

  • main:读写文件、总结答题情况:
点击查看代码
int main()
{
    FILE* fp1=NULL;
    int n, a, right = 0,wrong=0;
    double percent;
    printf("Please enter the number of the test:");
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
    {
        a = takeTest();
        right = right + a;
    }
    printf("Powerful!\n");
    printf("The number of right:%d\n", right);
    fp1 = fopen("D:\Grate.txt", "w");
    if (fp1)
    {
        fprintf(fp1,"Correct:%d\n",right);
    }
    fclose(fp1);
    wrong = n - right;
    fp1 = fopen("D:\Grate.txt", "a");
    if(fp1)
    {
        fprintf(fp1, "Wrong:%d\n", wrong);
    }
    percent = ((double)right * 100.00) / (double)n;
    printf("The percent of right:%0.2f %%\n", percent);
}
  • takeTest:生成题目、判断正误:
点击查看代码
int takeTest()
{
    int get;
    int num1, num2, a;
    char signal;
    srand((unsigned)time(NULL));
    signal = getSignal();
    num1 = random(0, 1000);
    num2 = random(1, 1000);
    if (signal == '-')
    {
        if (num1 < num2)
        {
            int temp;
            temp = num1;
            num1 = num2;
            num2 = temp;
        }
    }
    if (signal == '/')
    {
        if (num2 == 0)
        {
            int temp;
            temp = num1;
            num1 = num2;
            num2 = temp;
        }
    }
    printf("%d%c%d=", num1, signal, num2);
    scanf_s("%d", &get);
    fflush(stdin);   //清空输入缓冲区
    if (getResult(num1, num2, signal) == get)
    {
        printf("You're right!\n");
        a = 1;
    }
    else
    {
        printf("It's wrong!\n");
        printf("The right answer is: %d\n", getResult(num1, num2, signal));
        a = 0;
    }
    return a;
}
  • random:生成随机数:
点击查看代码
int random(double start, double end)
{
    return (int)(start + (end - start) * rand() / (RAND_MAX + 1.0));
}
  • getSignal:随机生成运算符:
点击查看代码
char getSignal()
{
    char signal[4] = { '+','-','*','/' };
    srand((unsigned)time(NULL));
    return signal[rand() % 4];
}
  • getResult:给出正确答案:
点击查看代码
int getResult(int num1, int num2, char signal)
{
    int res=0;
    switch (signal)
    {
    case '+':
        res = num1 + num2; break;
    case '-':
        res = num1 - num2; break;
    case '*':
        res = num1 * num2; break;
    case '/':
        res = num1 / num2; break;
    default:
        printf("运算符错误!\n");
    }
    return res;
}

测试运行

随机生成十个题目并答题进行测试,结果如下:

项目小结

第一次结对开发项目,由于对合作开发的流程和方法不熟悉,出现了很多问题,如效率低、代码质量较低、部分功能实现效果差等。应考虑加强沟通、在开发过程中也要考虑整体效率、做好代码注释等。

posted @ 2024-03-25 17:31  Rainfall-  阅读(22)  评论(0编辑  收藏  举报