1. 程式人生 > >第五次作業(結對第2次)

第五次作業(結對第2次)

應用 退出程序 info 代碼實現 pri 用戶界面設計 ctrl har 最大數

結對編程第二次作業

小學四則運算自動生成程序

一、題目要求

本次作業要求兩個人合作完成,駕駛員和導航員角色自定,鼓勵大家在工作期間角色隨時互換,這裏會布置兩個題目,請各組成員根據自己的愛好任選一題。

我們在剛開始上課的時候介紹過一個小學四則運算自動生成程序的例子,請實現它,要求:
能夠自動生成四則運算練習題
可以定制題目數量
用戶可以選擇運算符
用戶設置最大數(如十以內、百以內等)
用戶選擇是否有括號、是否有小數
用戶選擇輸出方式(如輸出到文件、打印機等)
最好能提供圖形用戶界面(根據自己能力選做,以完成上述功能為主)
這是代碼地址:單擊此處

二、代碼實現

首先要隨機實現加減乘除,利用rand()函數, srand()函數,和time()函數實現置隨機數種子

#include <stdlib.h> 
#include <stdio.h> 
#include <time.h> 
int main()
{
    srand((unsigned)time(NULL));
    {
        printf("%d\n", 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++等各種語法的應用,剛開始做有些不熟悉,上網百度谷歌了一些前人的代碼,之後進行理解。寫出了自己的東西

最後放一張我和搭檔的合影

技術分享圖片
(室友組隊的好處:可以挑燈夜戰!)

第五次作業(結對第2次)