利用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
楼上的代码满足你的需求吗?如果不行的话 我按照你的题目要求写一个

...四则算术运算答题系统”,随机为用户出指定数量的100以内的算术...
int)

用C语言设计一个100以内的整数四则运算测试程序
b=rand()%100; printf("第%d题:%d+%d=\\n",i,a,b); scanf("%d",&m); if(

用简单的c语言编写四则运算题
char ch;printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!\\n");srand((unsigned int)time(NULL));while(1){ printf("请选择运算类型:1.加法 2.减法 3.乘法 4.除法(保留两位小数)\\n");scanf("%d",&choice);printf("请选择位数:1.一位数 2.两位数\\n");scanf("%d",&d...

用C语言编写可以进行加减乘除整数运算混合运算的计算器,要求写思路,越...
else if(c=='+'||c=='-'||c=='*'||c=='\/'||c=='^') { if(OpStack.empty()) OpStack.push(c); else if(OpStack.top()=='(') OpStack.push(c); else if(TakesPrecedence(c,OpStack.top())) OpStack.push(c); else { while(!OpStack.empty()&&(TakesPrecedence(...

四则运算(C语言),
int check(char *c)输入参数:char *c: 输入的字符串 返回参数:0:字符串中有不符合规定的字符 1: 字符串字符符合规定,没有不符合规定的字符.功能:检查字符串中有否除了 0-9, +,-,*,\/,(,),之外的其他字符,如果有,则返回0, 表示出现错误。若没有,则返回1,表式字符串符合规定。\/ i...

请用C语言帮我做一个使用于小学生用的小课件
int i;char c[2];bb:printf("please input your answer\\n");for(i=0;i<10;i++){ printf("%d: ",i+1);scanf("%ld",&answer1[i]);} printf("are you sure,Y or N\\n");scanf("%s",c);if(c[0]=='n'||c[0]=='N')goto bb;} void show(long answer[]){ int i;f...

用C语言程序编辑对于一次考试成绩进行统计,考M科,有N人(如10人)参加...
int main(){ int n,m;while(scanf("%d%d",&n,&m)!=EOF){ double N[50][5],M[5]={0},R[50]={0};int i,j,p;for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%lf",&N[i][j]);for(i=0;i<n;i++){ for(j=0;j<m;j++)R[i]=R[i]+N[i][j];R[i]=(...

C语言基础知识
算术表达式是用算术运算符和括号将运算量(也称操作数)连接起来的、符合C语言语法规则的表达式。运算对象包括函数、常量和变量等。 在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求如下。 (1)在算术表达式中,可使用多层圆括号,但括号必须配对。运算时从内层圆括号开始,由内向外依次...

利用定时器计数器设计一个电路,其功能是每输入1个脉冲,发光二极管状态...
对计数值NA,NB的处理运算要用到除法和乘法,为了提高运算精度,应当采用浮点运算。显然,采用C语言来编写这些运算程序可大大提高编程效率。计数式测频的原理方框图:四、结论 本系统采用大规模集成电路设计,用C51语言编程,实现了对不同波形、不同频率信号的测量。

相似回答