c语言课设-小学生四则运算

(一)要求:/*面向小学生随机选择两个整数形成四则运算算式要求学生解答,
最后生成作答试卷保存到文本文件。

1、电脑随机出10道题,每题10分,程序结束时显示学生得分;

2、每道题学生有三次机会输入答案,当学生输入错误答案时,
提醒学生重新输入,如果三次机会结束则给出正确答案;

3、对于每道题,学生第一次输入正确答案得10分,
第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;

4、总成绩90以上显示“SMART”,80-90显示“GOOD”,
70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
*/

(二)原理:

rand函数取随机数字;

for循环;

Switch选择;

#include <iostream>
#include <time.h>
#include <string.h>
#include <windows.h>
using namespace std;
int main(){
    int i,j=0,k=0,c[10],a[10],b[10],result[10],score=0; 
    FILE *fp;
    //char filename[200];
    //char str[200];
    //gets(filename);          //输入文件名字
    fp=fopen("1.txt","w");  //以文本模式按只写方式打开文件
    if (fp == NULL)                    //判断文件是否成功打开
    {
        printf("File open failed!\n");
        exit(0);
    }
    //fp=fopen("data.txt","w");
    char si;//运算符号 
    srand((int)time(0));//生成随机数字函数 
    cout<<"一共10道题,每题10分,第一次输入正确答案得10分""/n""第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;除法请取整数"<<endl;
    cout<<endl;
    for(i=0,k=0;i<10;i++){
    c[i]=rand()%10;//选择符号 
    a[i]=rand()%100;//选择数字 
    b[i]=rand()%100; //选择数字 
    if(b[i]==0)
    b[i]++;
        switch(c[i]){
    case 0:
    case 1:
    case 2:
        si='+';
    break;
    case 3:
    case 4:
    case 5:
        si='-';
    break;
    case 6:
    case 7:
        si='*';
    break;
    case 8:
    case 9:
        si='/';
    break;    
}
    
    cout<<"第"<<i+1<<"道题:"<<endl;//列算式 
    cout<<a[i]<<si<<b[i]<<"="<<"__"<<endl;
    fprintf(fp,"第%d道题\n",i+1);
    fprintf(fp,"%d%c%d=__\n",a[i],si,b[i]);
   // printf("%d%c%d=__\n",a[i],si,b[i]);//列算式 
    cout<<"请输入结果:"<<endl; 
    flag://重新输入 
    cin>>result[i];
    fprintf(fp,"第%d次结果:%d\n",k+1,result[i]);
        switch(si){
        case '+'://加法 
            if(result[i]==a[i]+b[i]){
                    score=score+10-j;
                }else {
                    cout<<"答案错误!请重新输入:"<<endl; 
                    k++; 
                    switch(k){
                    case 1:
                    j=3;
                    break;
                    case 2:
                    j=5;
                    break;
                    default:
                    j=10;
                    break;
                    }
                    goto flag;
            }break;
        case '-'://减法 
        if(result[i]==a[i]-b[i]){
               score=score+10-j;
              
                }else {
                    cout<<"答案错误!请重新输入:"<<endl; 
                    k++; 
                    switch(k){
                    case 1:
                    j=3;
                    break;
                    case 2:
                    j=5;
                    break;
                    default:
                    j=10;
                    break;
                    }
                    goto flag;
            }break;
        case '*'://乘法 
        if(result[i]==a[i]*b[i]){
                score=score+10-j;
                
                }else {
                    cout<<"答案错误!请重新输入:"<<endl; 
                    k++; 
                    switch(k){
                    case 1:
                    j=3;
                    break;
                    case 2:
                    j=5;
                    break;
                    default:
                    j=10;
                    break;
                    }
                    goto flag;
            }break;
        case '/'://除法 
        if(result[i]==a[i]/b[i]){
            score=score+10-j;
            
                }else {
                    cout<<"答案错误!请重新输入:"<<endl; 
                    k++; 
                    switch(k){
                    case 1:
                    j=3;
                    break;
                    case 2:
                    j=5;
                    break;
                    default:
                    j=10;
                    break;
                    }
                    goto flag;
            }break;
        } 
        
    }
    cout<<endl; 
    cout<<"你的分数是"<<score<<endl;
    score++;//计算分数 
    score/=10;
    switch(score){//评级 
        case 10:
        case 9:
        cout<<"SMART"<<endl;
        break;
        case 8:
        cout<<"GOOD"<<endl;
        break;
        case 7:
        cout<<"OK"<<endl;
        break;
        case 6:
        cout<<"PASS"<<endl;
        break;
        default:
        cout<<"TRY AGAIN"<<endl;
        break;
    }
}
 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偏正北海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值