四则运算

班级博客 点击打开班级地址
作业要求 点击查看作业要求
这个作业的目标 写一个能自动生成小学四则运算题目的程序
学号 3190704121

一、代码如下:


#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#define IDNO_LENGTH 6
#define CALC_KIND 4

 

char getSignal();``
int getResult(int,int,char);

void  integer();
void  fraction();

 

//main函数

void main()
{
   
    int i,n,m;
  	 printf("**************\n");
	 printf(" 【出题类型】 \n");
	 printf("1.整数四则运算\n");
	 printf("2.分数四则运算\n");
	 printf("**************\n");
	 printf("请输入出题类型:");
	 scanf("%d",&i);  
     printf("请输入出题数目:");
    scanf("%d",&n);
    for(m=1;m<=n;m++)
    {
        if(i==1)
            integer();
        else
            fraction();
	
    }
	 
}
 

//获取随机运算符

char getSignal()

{

    char signal[CALC_KIND]={'+','-','*','/'};

    srand((unsigned)time(NULL));

    return signal[rand()%4];

}

 

//获取随机数

int random(double start, double end)

{

    return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));

}

 

//运算

int getResult(int num1,int num2,char signal)

{

    int res;

    switch(signal)

    {

    case '+':

        res=num1+num2;break;

    case '-':

        res=num1-num2;break;

    case '*':

        res=num1*num2;break;

    case '/':

        res=num1/num2;break;

    default:

        res=0;

        printf("运算符不符合规则\n");

    }

    return res;

}

 

//整数

void integer()
{

    int giveRes;

    int num1;

    int num2;

    static int count=0;

    char signal;

   
    srand((unsigned)time(NULL));

    signal=getSignal();

    num1=random(0,100);

    num2=random(1,100);

 

    if(signal=='-')

    {

        if(num1<num2)

        {

            int temp;

            temp=num1;

            num1=num2;

            num2=temp;

        }

    }

 

    if(signal=='/')

    {

        printf("\n(若该题计算结果含余数,请将结果只保留整数部分)\n");
    }

 

    printf("%d%c%d=",num1,signal,num2);

    scanf("%d",&giveRes);

    fflush(stdin);

 

    if(getResult(num1,num2,signal)==giveRes)

		{
          printf("\nYou're Correct!\n\n");
		  count++;
		}

	else

		{

			printf("\nSorry  you're wrong!\n");

			printf("The right answer is:%d\n\n",getResult(num1,num2,signal));

		}

	printf("你一共答对%d道题\n",count);
}
//分数
void fraction()
{
    int num1,num2,num3,num4;
	char signal;
    num1=rand()%100+1;
    num2=rand()%100+1;
    num3=rand()%100+1;
    num4=rand()%100+1;
    char op;
    while(num1<=num2||num3<=num4)
    {
        num1=rand()%100+1;
        num2=rand()%100+1;
        num3=rand()%100+1;
        num4=rand()%100+1;
    }
      signal=getSignal();
    if(signal=='-')
        while((num2*num3-num1*num4)<0)
        {
            num1=rand()%100+1;
            num2=rand()%100+1;
            num3=rand()%100+1;
            num4=rand()%100+1;
        }
   
	printf("%d/%d%c%d/%d=\n",num2,num1,signal,num4,num3);
}

二、运行截图:

三、心得体会:
这是我在博客上写的第一个代码,还有很多不完善的地方,比如
除法运算的问题,在今后的学习中我还会在博客园中发表更多的代码,
希望大家浏览改正,共同提高!

四、psp:

任务内容 计划 完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 10 5
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 12
Development 开发 100 80
Analysis 需求分析(包括学习新技术) 12 7
Design Spec 生成设计文档 5 9
Design Review 设计复审 5 8
Coding Standard 代码规范 3 7
Design 具体设计 10 20
Coding 具体编码 36 30
Code Review 代码复审 5 9
Test 测试(自我测试,修改代码,提交修改) 10 20
Reporting 报告 9 9
Test Report 测试报告 3 8
Size Measurement 计算工作量 2 5
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 3 5
posted @ 2020-10-27 23:11  粥粥alg  阅读(135)  评论(0)    收藏  举报