第一阶段结对作业验收小学生四则运算

提交内容包括可以运行的程序或安装包;

源程序代码;

软件使用说明书;

结对成员简介和分工说明;

结对成员简介:组长任毫:编程等主要任务

                 组员言宇:检校

源代码:

#include<iostream>

#include<time.h>

#include<stdlib.h>

#include<stdio.h>

#include<string>

#include<fstream>

#include<iomanip>

#include<cmath>

#define random(x) (rand()%x)

using namespace std;

 

 

 

 

void main()

{

       char diaoyongyunsuan();                                 

    int jieguo(int,int,char);

       int Istrue_input(int mnu01) ;

       void Output(int sf)     ;  

    int takeTest();

       int n,a,SF,right=0;

       string question;

       ofstream outfile("formula.txt", ios::out);

    if (!outfile)

    {

        cout << "open error!" << endl;

        exit(1);

    }

    outfile << "运算的题目数为:(错误的返回)" << endl;

 

       cout << "您是否需要保存文档?0不需要1需要" << endl;

    cin >> SF;

    SF=Istrue_input(SF);//是否输入合法

    Output(SF);

         double percent;

         printf("请输入你要运算的个数:");

         scanf("%d",&n);

                if (SF == 1)//文件输出

        {

            outfile << n << "道题目如下:" << endl;

        }

 

         for(int i=0;i<n;i++)

         {

                  a= takeTest();

                   right=right+a;

                               if(a==0)

                               outfile <<a<<endl;

 

         }

        

         printf("正确的数目:%d\n",right);

         percent=((double)right*100.00)/(double)n;

         printf("The percent of right:%0.2f %%\n",percent);

 

outfile.close();

 

 

}

int Istrue_input(int mnu01)

{

    while (1)

    {

        if (mnu01 != 0 && mnu01 != 1)

        {

            cout << "输入有误,请重新输入(请输入0或1):" << endl;

            cin >> mnu01;

        }

        else

            break;

    }

    return mnu01;

}

char diaoyongyunsuan()

{

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

    srand((unsigned)time(NULL));

    return signal[rand()%4];

}

int jieguo(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:

        printf("运算符错误!\n");

    }

    return res;

}

int takeTest( )

{

    int get;

    int num1,num2,a;

    char signal;

      

 

    srand((unsigned)time(NULL));

    signal=diaoyongyunsuan();

    num1=rand()%50+1;

    num2=rand()%50;

if(signal=='-')

    {

        if(num1<num2)

        {

            int temp;

            temp=num1;

            num1=num2;

            num2=temp;

        }

    }

    if(signal=='/')

    {

        if(num2==0)

        {

            int temp;

            temp=num1;

            num1=num2;

            num2=temp;

        }

    }

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

 

 

    scanf("%d",&get);

    fflush(stdin);  

    if(jieguo(num1,num2,signal)==get)

        {

        printf("正确!\n");

        a=1;

        }

    else

    {

        printf("错误!\n");

        printf("正确的答案: %d\n",jieguo(num1,num2,signal));

        a=0;

    }

       return a;

 

}

void Output(int sf)

{

    if (sf == 1)

    {

        ofstream outfile("formula.txt", ios::out);

        if (!outfile)

        {

            cout << "Open error!!" << endl;

            exit(1);

        }

        outfile << "错误的题目数" << endl;

        outfile.close();

    }

}

软件使用说明书

一.开发条件

vc++6.0

 

 

二.运行步骤

1.先打开文件

 

2.运行程序会出现

 

选择是否需要保存文件

3.进行运算

输入你所需要运算的个数

 

4.开始计算

 

结果会(1)判断对错

(2)给出正确答案

(3)得出正确的数目

(4)会保存到一个文件中

一直没有解决这个问题返回到文件的一直是错误时a所对应一个0

尽了最大的努力也没有在最后解决错题一代数式的形式导出。

 

 

 

感想:这次变成难度还是有的,耗费了很长时间,但也有了提升。

posted @ 2019-01-10 00:10  哈哈哇小程序  阅读(155)  评论(0编辑  收藏  举报