• 第一次个人作业-四则运算题目生成程序(计算机181 张博闻)


    一、作业规范要求

    这个作业属于哪个课程 AHPU-软件工程导论-计算机18级
    作业要求 个人作业一-四则运算题目生成程序
    学号 3180107121

    二、作业要求

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

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

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

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

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

    三、作业内容

    `
    #include<stdio.h>
    #include<math.h>
    #include<windows.h>

    int right=0;//答对的正确的题目个数
    int wrong=0;//答错的题目个数

    void add() //整数的加法
    {
    int a,b,c;
    a=rand()%100; //随机生成
    b=rand()%100;
    printf("请回答: %d + %d = ",a,b);
    scanf("%d",&c);
    if(a+b==c)
    {
    printf("回答正确! ");
    right++;
    }
    else
    {
    printf("回答错误! ");
    wrong++;
    }
    }

    void Add() //真分数的加法
    {
    int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
    int a,b,c;
    zhenfenshu1_m=0+rand()%100;
    zhenfenshu1_z=0+rand()%100;

    //判断产生的真分数正确性
    while(zhenfenshu1_m<zhenfenshu1_z)
    {
    	zhenfenshu1_m=0+rand()%100;
    	zhenfenshu1_z=0+rand()%100;	
    }
    
    zhenfenshu2_m=0+rand()%100;
    zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
    while(zhenfenshu2_m<zhenfenshu2_z)
    {
    	zhenfenshu2_m=0+rand()%100;
    	zhenfenshu2_z=0+rand()%100;	
    }
    printf("请回答:
    		 %d / %d + %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
    scanf("%d",&c);
    a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
    if(a+b==c)
    {
    	printf("回答正确!
    ");
    	right++;
    }
    else
    {
    	printf("回答错误!
    ");
    	wrong++;
    }
    

    }

    void minu() //整数减法
    {
    int a,b,c;
    a=rand()%100;
    b=rand()%100;
    printf("请回答: %d - %d = ",a,b);
    scanf("%d",&c);
    if(a-b==c)
    {
    printf("回答正确! ");
    right++;
    }
    else
    {
    printf("回答错误! ");
    wrong++;
    }
    }

    void Minu() //真分数的减法
    {
    int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
    int a,b,c;
    zhenfenshu1_m=0+rand()%100;
    zhenfenshu1_z=0+rand()%100;

    //判断产生的真分数正确性
    while(zhenfenshu1_m<zhenfenshu1_z)
    {
    	zhenfenshu1_m=0+rand()%100;
    	zhenfenshu1_z=0+rand()%100;	
    }
    
    zhenfenshu2_m=0+rand()%100;
    zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
    while(zhenfenshu2_m<zhenfenshu2_z)
    {
    	zhenfenshu2_m=0+rand()%100;
    	zhenfenshu2_z=0+rand()%100;	
    }
    printf("请回答:
    		 %d / %d - %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
    scanf("%d",&c);
    a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
    if(a-b==c)
    {
    	printf("回答正确!
    ");
    	right++;
    }
    else
    {
    	printf("回答错误!
    ");
    	wrong++;
    }
    

    }

    void mul() //整数乘法
    {
    int a,b,c;
    a=rand()%100;
    b=rand()%100;
    printf("请回答: %d * %d = ",a,b);
    scanf("%d",&c);
    if(a*b==c)
    {
    printf("回答正确! ");
    right++;
    }
    else
    {
    printf("回答错误! ");
    wrong++;
    }
    }

    void Mul() //真分数的乘法
    {
    int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
    int a,b,c;
    zhenfenshu1_m=0+rand()%100;
    zhenfenshu1_z=0+rand()%100;

    //判断产生的真分数正确性
    while(zhenfenshu1_m<zhenfenshu1_z)
    {
    	zhenfenshu1_m=0+rand()%100;
    	zhenfenshu1_z=0+rand()%100;	
    }
    
    zhenfenshu2_m=0+rand()%100;
    zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
    while(zhenfenshu2_m<zhenfenshu2_z)
    {
    	zhenfenshu2_m=0+rand()%100;
    	zhenfenshu2_z=0+rand()%100;	
    }
    printf("请回答:
    		 %d / %d * %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
    a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m; 	
    scanf("%d",&c);
    if(a*b==c)
    {
    	printf("回答正确!
    ");
    	right++;
    }
    else
    {
    	printf("回答错误!
    ");
    	wrong++;
    }
    

    }

    void di() //整数除法
    {
    int a,b,c;
    a=rand()%100;
    b=rand()%100;
    printf("请回答: %d / %d = ",a,b);
    scanf("%d",&c);
    if(a/b==c)
    {
    printf("回答正确! ");
    right++;
    }
    else
    {
    printf("回答错误! ");
    wrong++;
    }
    }

    void Di() //真分数的除法
    {
    int zhenfenshu1_m=0, zhenfenshu1_z=0, zhenfenshu2_m=0, zhenfenshu2_z=0;
    int a,b,c;
    zhenfenshu1_m=0+rand()%100;
    zhenfenshu1_z=0+rand()%100;

    //判断产生的真分数正确性
    while(zhenfenshu1_m<zhenfenshu1_z)
    {
    	zhenfenshu1_m=0+rand()%100;
    	zhenfenshu1_z=0+rand()%100;	
    }
    
    zhenfenshu2_m=0+rand()%100;
    zhenfenshu2_z=0+rand()%100;
    
    //判断产生的真分数正确性
    while(zhenfenshu2_m<zhenfenshu2_z)
    {
    	zhenfenshu2_m=0+rand()%100;
    	zhenfenshu2_z=0+rand()%100;	
    }
    printf("请回答:
    		 %d / %d ÷ %d / %d = ",zhenfenshu1_z,zhenfenshu1_m,zhenfenshu2_z,zhenfenshu2_m);
    scanf("%d",&c);
    a=zhenfenshu1_z/zhenfenshu1_m, b=zhenfenshu2_z/zhenfenshu2_m;
    if(a/b==c)
    {
    	printf("回答正确!
    ");
    	right++;
    }
    else
    {
    	printf("回答错误!
    ");
    	wrong++;
    }
    

    }
    int main(void)
    {
    int choise,bot;
    srand(time(NULL)); //随机数每次循环都不一样
    int con=0;
    printf(" 欢迎进入小学简易四则运算 ");
    while(1)
    {
    if(con==0)
    {
    printf("请选择: ");
    printf(" 整数计算(请输入1)or真分数计算(请输入2) ");
    scanf("%d",&choise);
    switch(choise)
    {
    case 1:
    printf(" 加法运算(请输入1) ");
    printf(" 减法运算(请输入2) ");
    printf(" 乘法运算(请输入3) ");
    printf(" 除法运算(请输入4) ");
    printf(" 退出运算(请输入5) ");
    scanf("%d", &bot);
    switch(bot)
    {
    case 1:
    add();
    break;
    case 2:
    minu();
    break;
    case 3:
    mul();
    break;
    case 4:
    di();
    break;
    case 5:
    return;
    }
    break;
    case 2:
    printf(" 加法运算(请输入1) ");
    printf(" 减法运算(请输入2) ");
    printf(" 乘法运算(请输入3) ");
    printf(" 除法运算(请输入4) ");
    printf(" 退出运算(请输入5) ");
    scanf("%d", &bot);
    switch(bot)
    {
    case 1:
    Add();
    break;
    case 2:
    Minu();
    break;
    case 3:
    Mul();
    break;
    case 4:
    Di();
    break;
    case 5:
    return;
    }
    break;

      		}
      	}
      	if(con==1)
    	{
    		switch(choise)
      		{
      			case 1:
      				printf("			  加法运算(请输入1)
    ");
    		  		printf("			  减法运算(请输入2)
    ");
    		  		printf("			  乘法运算(请输入3)
    ");
    		  		printf("			  除法运算(请输入4)
    ");
    		  		printf("			  退出运算(请输入5)
    ");
    		  		scanf("%d", &bot);
    		  		switch(bot)
    		  		{
    		  			case 1:
    		  				add();
       						break;
      					case 2:
       						minu();
      						break;
      					case 3:
       						mul();
       						break;
      					case 4:
       						di();
       						break;
      					case 5:
       						return;	
    				}
    				break;
    			case 2:
    		  		switch(bot)
    		  		{
    		  			case 1:
    		  				Add();
       						break;
      					case 2:
       						Minu();
      						break;
      					case 3:
       						Mul();
       						break;
       					case 4:
       						Di();
       						break;
      					case 5:
       						return;	
    				}
    				break;
    
      		}
    	}
      	printf("
    			继续运算?(请输入1)
    ");
      	printf("
    			重新选择?(请输入2)
    ");
      	printf("
    			退出运算?(请输入3)
    ");
      	scanf("%d",&con);
      	if(con==1)
       		con=1;
      	else if(con==2)
       		con=0;
      	else if(con==3)
       		break;
      	else
       		printf("抱歉!,你输入的指令有误!请重新输入!
    ");
    }
    fflush(stdin);   //清空输入缓冲区
    printf("您总共完成了 %d 道题
    正确 %d 道
    错误 %d 道
    ",right+wrong,right,wrong);
    

    }`



    二、个人小结:

  • 相关阅读:
    jstack 分析程序性能
    网关-zuul介绍 第一篇 网关解决的问题
    通过Fegin远程调用 ,返回JPA Page 对象报错
    css自定义字体
    CSS3选择器
    表格操作
    商品筛选条件
    多级菜单
    一排元素往下掉
    控制提示框不溢出父级盒子
  • 原文地址:https://www.cnblogs.com/zbw7067/p/13888754.html
Copyright © 2020-2023  润新知