用C语言写一个 小学生口算出题系统

用C语言写一个小学生口算出题系统,找到的话我追加悬赏30分,谢谢!必须得能运行的啊!... 用C语言写一个 小学生口算出题系统,找到的话我追加悬赏30分,谢谢! 必须得能运行 的啊! 展开
 我来答
tattackor
推荐于2018-03-30 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:852万
展开全部

一、设计的流程:

1. 主界面设计,选择练习或测试,按ESC结束程序。
2. 题型选择界面设计,选择加、减、乘、除或混合运算,按ESC返回主界面。
3. 系统随机出题,运算数及结果均在100以内,乘、除法应能整除,显示算式。
4. 练习时,系统随机出题,键入结果,正确和错误均有提示,出错时允许再输入,最多三次机会,若还不正确,给出答案。继续出题,按ESC,显示总题数,正确数和正确率。
5. 测试时,系统自动出10道题,每题只给一次机会,每题10分,统计得分。结束后,给出总分,显示各题的对错信息,错误的给出答案。中间按ESC键结束。显示已作题的对错信息,错误的给出答案,不显示得分,按任意键返回题型选择界面。
相关知识:按键操作、数组、指针、结构体

二、例程:

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
void main()
{
  int a[10],b[10],d[10],c[10],num=0,result,add=0;
  float val;
  char fa[5]={'+','-','*','/'};
  
  /* 出10道题 */
  while(1)
  {
   srand((unsigned)time(NULL));
   d[num]=abs(rand())%4;/* 保证出题算法的随机性 */
   while(1)   /* 保证出题成功 */
   {
   c[num]=-1;
   a[num]=abs(rand())%100;
   b[num]=abs(rand())%100;
   if(d[num]==0) c[num]=a[num]+b[num];
   else if(d[num]==1) c[num]=a[num]-b[num];
   else if(d[num]==2) c[num]=a[num]*b[num];
   else if(d[num]==3) 
     {
       if(b[num]>0)val=1.0*a[num]/b[num];
       else val=-1;
     }
   if(d[num]<=2)
      { 
       if(c[num]>=0 && c[num]<=100) break;
       }
   else
      { 
    if(a[num]==int(val)*b[num] && val>=0)
       {c[num]=val; break;}
       }
   }
   num++;
   if(num==10) break;
  }
  /* 回答 */
  num=0;
  while(1)
  {
   printf("%d %c %d= ",a[num],fa[d[num]],b[num]);
   scanf("%d",&result);
   if(result==c[num])
   {
    printf("回答正确!\n");
    add+=10;
   }
   else
    printf("错误,正确答案: %d\n",c[num]);
      num++;
      if(num==10) break;
    }
  printf("\n得分:%d\n",add);
  getch();
}
上海勤革
2024-10-18 广告
这里小编推荐一款新的IT在线编程与面试题库平台:“超级码客”,超级码客是聚焦于各级别软件开发工程师,运维,测试等技术人员,更加侧重于实战面试考题与在线测试,提供海量面试题八股理论分析,辅助机考笔试,可以说是更加适合于面试求职路上的所有IT技... 点击进入详情页
本回答由上海勤革提供
匿名用户
推荐于2016-12-01
展开全部
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>

void main()
{
int a[10],b[10],d[10],c[10],num=0,result,add=0;
float val;
char fa[5]={'+','-','*','/'};

/* 出10道题 */
while(1)
{
srand((unsigned)time(NULL));
d[num]=abs(rand())%4;/* 保证出题算法的随机性 */
while(1) /* 保证出题成功 */
{
c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0) c[num]=a[num]+b[num];
else if(d[num]==1) c[num]=a[num]-b[num];
else if(d[num]==2) c[num]=a[num]*b[num];
else if(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num];
else val=-1;
}
if(d[num]<=2)
{
if(c[num]>=0 && c[num]<=100) break;
}
else
{
if(a[num]==int(val)*b[num] && val>=0)
{c[num]=val; break;}
}
}
num++;
if(num==10) break;
}
/* 回答 */
num=0;
while(1)
{
printf("%d %c %d= ",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])
{
printf("回答正确!\n");
add+=10;
}
else
printf("错误,正确答案: %d\n",c[num]);
num++;
if(num==10) break;
}
printf("\n得分:%d\n",add);
getch();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wyrqwert
2012-01-21 · TA获得超过116个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:99.4万
展开全部
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main (void )
{
int n,x,y,,s,i;
printf("Please input the number of problems: ");
scanf("%d",&n);
for(i=0;i<n;i++){

x = rand()%10;
y = rand()%10;
printf("%d+%d=",x,y);
scanf("%d",&s);
if(s == x+y)
printf("well Done!!\n");
else
printf("You are wrong!!\n");

}
return 0;
}

注:由于没有种子,所以每次结果都一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友42e02c5
2012-01-20 · TA获得超过1231个赞
知道小有建树答主
回答量:506
采纳率:0%
帮助的人:532万
展开全部
我帮你试着写写?
可能过几天才能给你,要不你留个联系方式,到时候传给你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式