第一次作业-四则运算生成程序

------------恢复内容开始------------
一、题目信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11377
这个作业的目标 学会markdown使用方法;能对需求进行分析并实现
学号 3180701306

二、题目要求
写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

2)程序要求能处理用户的输入,判断对错,累积分数

3)程序支持可以由用户自行选择加、减、乘、除运算

4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目

三、代码提交与运行截图
1、源代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int i=0,j=0;
 
void jia()
{
    int a,b,m;
    srand(time(NULL));
    a=1+rand()%100;
    b=1+rand()%100;
    printf("%d\n",a);
    printf("%d\n",b);
    printf("a+b=?\n");
    printf("请输入结果\n");
    scanf("%d",&m);
    if(m==a+b)
    {
        printf("你答对了\n");
        i++;
    }
    else
    {
        printf("你答案有错误请改正\n");
        j++;
    }
     
}
 
void jian()
{
    int a,b,m;
    srand(time(NULL));
    a=1+rand()%100;
    b=1+rand()%100;
    if(a<b)
    {
        int t=0;
        t=a;a=b;b=t;
    }
    printf("%d\n",a);
    printf("%d\n",b);
    printf("a-b=?\n");
    printf("请输入运算结果\n");
    scanf("%d",&m);
    if(m==a-b)
    {
        printf("你答对了\n");
        i++;
    }
    else
    {
        printf("你答案有错误请改正\n");
        j++;
    }
     
}
void cheng()
{
    int a,b,m;
    srand(time(NULL));
    a=1+rand()%20;
    b=1+rand()%20;
    printf("%d\n",a);
    printf("%d\n",b);
    printf("a*b=?\n");
    printf("请输入运算结果\n");
    scanf("%d",&m);
    if(m==a*b)
    {
        printf("你答对了\n");
        i++;
    }
    else
    {
        printf("你答案有错误请改正\n");
        j++;
    }
     
}
void chu()
{
    int a,b,m;
    srand(time(NULL));
    a=1+rand()%100;
    b=1+rand()%100;
    if(b==0)
    {
        b=1+rand()%100;
    }
    if(a<b)
    {
        int t=0;
        t=a;a=b;b=t;
    }
    while(a%b!=0)
    {
        a=1+rand()%100;
        b=1+rand()%100;
    }
    printf("%d\n",a);
    printf("%d\n",b);
    printf("a/b=?\n");
    printf("请输入运算结果\n");
    scanf("%d",&m);
    if(m==a/b)
    {
        printf("你答对了\n");
        i++;
    }
    else
    {
        printf("你答案有错误请改正\n");
        j++;
    }
     
}

int main()
{
    int m,n=0;
    while(1)
    {
        printf("1.加法运算\n");
        printf("2.减法运算\n");
        printf("3.乘法运算\n");
        printf("4.除法运算\n");
        printf("请选择");
        scanf("%d", &m);
        switch(m)
        {
        case 1:jia();break;
        case 2:jian();break;
        case 3:cheng();break;
        case 4:chu();break;
        }
        printf("5.请重新选择\n");
        printf("6.结束\n");
        scanf("%d", &n);
        if(n==6) break;
    }
    printf("你回答题的总数%d和正确的个数%d\n",i+j,i);
    return 0;
}

2、运行截图
(1)、加法

(2)、减法

(3)、乘法

(4)、除法

四、个人小结
在做作业的时候,体会到了逻辑清晰是有多重要,不管编程能力怎么样,首先看见一道题目时不要急着就去做,想想如何做怎么做才是最重要的,如果逻辑清晰知道需要建几个类,每个类包含什么,每个类之间的关系是什么,就算个别方法不会写,大体的模子也能画出来,最后要就个别函数即可。下次我做作业的时候应该会多花时间在逻辑分析,流程图上。

(psp表格)

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 120 150
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 30 35
Development 开发 120 160
Analysis 需求分析(包括学习新技术) 20 17
Design Spec 生成设计文档 20 23
Design Review 设计复审 15 12
Coding Standard 代码规范 10 12
Design 具体设计 20 20
Coding 具体编码 40 59
Code Review 代码复审 9 10
Test 测试(自我测试,修改代码,提交修改) 40 45
Reporting 报告 10 20
Test Report 测试报告 5 5
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10 10
------------恢复内容结束------------
posted @ 2020-11-07 22:49  WM!  阅读(63)  评论(0编辑  收藏  举报