• 第五次作业(结对第2次)


    结对编程第二次作业

    小学四则运算自动生成程序

    一、题目要求

    本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。

    我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
    能够自动生成四则运算练习题
    可以定制题目数量
    用户可以选择运算符
    用户设置最大数(如十以内、百以内等)
    用户选择是否有括号、是否有小数
    用户选择输出方式(如输出到文件、打印机等)
    最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
    这是代码地址:单击此处

    二、代码实现

    首先要随机实现加减乘除,利用rand()函数, srand()函数,和time()函数实现置随机数种子

    #include <stdlib.h> 
    #include <stdio.h> 
    #include <time.h> 
    int main()
    {
    	srand((unsigned)time(NULL));
    	{
    		printf("%d
    ", rand() % 4);
             	return 0;
    	}
    }
    

    利用系统时间作为随机数的种子,然后用 rand() 函数除以4取余,所得的值作为四则运算符号

    随机生成10组,运行成功,结果如下

    利用系统时间作为随机数的种子,然后用 rand() 函数除以100取余,生成的数作为算式里的数

    srand((unsigned)time(NULL));
                    a = rand() % 100;
    		b = rand() % 100;
    		t = rand() % 4;
    		switch (t)
    		{
    		case 0:
    			m = a + b;
    			printf("%d + %d =", a, b);
    			break;
    		case 1:
    			m = a - b;
    			printf("%d - %d =", a, b);
    			break;
    		case 2:
    			m = a*b;
    			printf("%d * %d =", a, b);
    			break;
    		case 3:
    			m = a / b;
    			printf("%d / %d =", a, b);
    			break;
    		}
    
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    
    
    void main()
    {
        int A[30],B[30],i,k,t,T,a[30],b[30],c[30];
        char C;
        srand((unsigned)time(NULL));    
        t=0;T=0;
    
        for(i = 0;i<30;i++)
        {
    //产生随机符号
        k = rand()%4;
        if(k == 0)
            C = '+';
        else if(k == 1)
            C = '-';
        else if(k == 2)
            C = '*';
        else if(k == 3)
            C = '/';
        A[i] = rand()%100;
        B[i] = rand()%100;
    //输出题目
        if(C == '+')
        {cout<<A[i]<<"+"<<B[i]<<"=?"<<endl;a[i] = A[i]+B[i];}
        else if(C == '-')
        {cout<<A[i]<<"-"<<B[i]<<"=?"<<endl;a[i] = A[i]-B[i];}
        else if(C == '*')
        {cout<<A[i]<<"*"<<B[i]<<"=?"<<endl;a[i] = A[i]*B[i];}
        else if(C == '/')
        {cout<<A[i]<<"/"<<B[i]<<"=?"<<endl;a[i] = A[i]/B[i];}
        }
    //输出结果
        cout<<"结果为:";
        for(i=0;i<30;i++)
        {
            cin>>b[i];
            if(a[i] == b[i])
                t++;
            else
            {
                c[T] = i;
                T++;
            }
        }
    
        if(t==29)
            cout<<"恭喜你都答对了!"<<endl;
        else
        {
            cout<<"第";
            for(i=0;i<T;i++)
                cout<<c[i]+1<<"题错了!"<<endl;
        }
    }
    

    ctrl+F5运行

    三、用户界面设计

    (1)此程序是针对小学生的四则运算程序,故选择喜羊羊与灰太狼作为程序背景

    (2)点击进入,单击“设置”按钮设置题目数量、难度,单击“开始”按钮开始答题,单击“退出”以退出程序

    (3)进入答题界面,系统自动出题,如果答对则获得对号,答错则获得错号提示同学做错了

    (4)答完所有题目,系统会给出答题所用时间,用户可以选择退出或者再做一次

    四、总结心得

    通过本次编程作业让我对编程有了更深刻地理解了C语言还有C++等各种语法的应用,刚开始做有些不熟悉,上网百度谷歌了一些前人的代码,之后进行理解。写出了自己的东西

    最后放一张我和搭档的合影


    (室友组队的好处:可以挑灯夜战!)

  • 相关阅读:
    C语言中字符串常用函数--strcat,strcpy
    linux下core dump【总结】
    C语言memset()函数:将内存的前n个字节设置为特定的值
    const的理解、const指针、指向const的指针
    C99标准的新特性
    ISO C语言新标准(C11)
    哪个版本的gcc才支持c11
    不使用session,借助redis实现验证码
    google浏览器截图工具 Open Screenshot(代码截图)
    springmvc+jpa实现分页的两种方式
  • 原文地址:https://www.cnblogs.com/cuibao123/p/8858193.html
Copyright © 2020-2023  润新知