利用C语言开发一个“四则算术运算答题系统”,随机为用户出指定数量的100以内的算术

1) 要求用户输入用户名,并输入要测试的试题的数目:
如:请输入你的用户名:
请输入试题数目:
2) 要求首先提示用户选择要进行的运算,如:
请选择要进行的运算操作:1 加法
2 减法
3 乘法
4 除法
3) 由系统随机生成100以内的两个数,并显示他们参与的运算题目,若选择“1”,则显示:
75+87=?
4) 提供学生输入答案,做题后,进行评阅;学生每做一题后,判断答案是否正确,评阅时给出“答题正确,很好”或“答题错误,重做”等字样;
5) 继续选择运算,并出题,直到题目数量达到用户输入的试题数目,统计正确的题目数量和总分(每答对一题2分)。如:
某某,你好,你一共答对了N道题,总分为X分。
6) 显示用户选择是否继续出题的提示,若选择继续则返回第1步。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int number_jia(int a,int b);
int number_jian(int a,int b);
int number_cheng(int a,int b);
int number_chu(int a,int b);
 int suijishu();

int main()
{
   char username[10];//用户名
   
   int que_count;//题目数量
    
   int yunsuan=1;//接受用户想进行什么运算
   
int i;//循环变量
   
   char yunsuanfu[4]={'+','-','*','/'};//存储运算符
   
   int current_num1=1,current_num2=1;//当前进行运算的数字

   int input_result;//用户输入的结果

   int score=0;//总分

   int (*pfun[4])(int,int)={number_jia,number_jian,number_cheng,number_chu};//函数指针数组
  
   char jixu='y';

     
   while(1)
   {
     if(tolower(jixu)!='y')
 break;


     printf("输入用户名\n\t");
   scanf("%s",username);

   printf("输入题目数量\n\t");
   scanf("%d",&que_count);

   printf("选择运要进行的运算\t1:加法\t2:减法\t3:乘法\t4:除法\n");
   scanf("%d",&yunsuan);

   yunsuan<=4?yunsuan:1;

   for(i=0;i<que_count;i++)
   {
 

    current_num1=suijishu();

    current_num2=suijishu();

        printf("\n%d%c%d=",current_num1,yunsuanfu[yunsuan-1],current_num2);
   
scanf("%d",&input_result);


      if(input_result==(pfun[yunsuan-1])(current_num1,current_num2))
   score+=2;
   }

   printf("%s你好你一共得分%d\n",username,score);
   
   printf("是否继续\ty:继续");
   scanf(" %c",&jixu);
   }

 return 0;
}

//100内随机数
 int suijishu()
 {
   srand(time(NULL)-1);
   return rand()%100;
 
 
 }

//下面是四则运算
int number_jia(int a,int b)
{

 return a+b;
}

int number_jian(int a,int b)
{

 return a-b;
}
int number_cheng(int a,int b)
{

 return a*b;
}
int number_chu(int a,int b)
{

if(b!=0)
 return a+b;
else
return 0;
}

追问

只能出现如加法2+2 89+89 减法34-34这样的算术

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-06
楼上的代码满足你的需求吗?如果不行的话 我按照你的题目要求写一个
相似回答