| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1948 人关注过本帖
标题:心算抢答系统
只看楼主 加入收藏
虾饺
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-2-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
心算抢答系统
题目48:心算抢答系统
一、问题描述:
适用于小学生数学心算抢答赛。比赛题型分为两种:“四则简单运算”和“四则混合运算”,计算机随机出题,选手抢答。要求进入每种题型比赛时,计算机均有提示,每队的记分窗口随得分情况而更新。
二、功能描述:
1、显示如下画面:
                                        欢迎参加小学生心算抢答赛
                                            按任意键开始比赛

2、举办单位确定参赛的队数,每队分配一个记分窗口,底分均为100分。
1、    比赛题型分为两种:“四则简单运算”(N道题)和“四则混合运算”(M道题),N、M由举办单位确定,计算机随机出题,先出“四则简单运算”题,每出一道 ,选手抢答,做对一题加5分,做错一题减5分。后出“四则混合运算”,做对一题加10分,做错一题减10分。要求进入每种题型比赛时,计算机均有提示,每队的记分窗口随得分情况而更新。
2、    根据最后总分,由高到低宣布比赛名次,按任意键退出比赛系统。
3、    要求整个设计以人为本,用户界面友好。
三、算法提示:
1、    用简单的程序设计方法
2、    一定的窗口设计技巧
3、    简单的数据类型
四、测试数据:
利用随机函数产生
五、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。如底分的设置、每种类型题目的加、减分的多少均可由举办方设定。
求C语言代码
搜索更多相关主题的帖子: 计算机 小学生 数学 
2017-03-05 20:06
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:10 
每队分配一个记分窗口……感觉这题的抢答控制是个难点~

这条题目其实可以很复杂耶~真正的抢答应该是涉及到多个端口链接而非一台计算机的键盘~那样可以做服务器了~

不过感觉题意应该是不同抢答者按不同的键来分别表示不同的成员~但如果队数一多的时候就麻烦了~不会七八个人在同一个显示器上按按键吧~万一按错了就尴尬了~

所以这题没有给出具体抢答流程以及没有给出有几个队同时抢答就靠自己发挥吧~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-05 22:06
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
收藏
得分:0 
这题算是的小项目了,还是要用一点时间才能完成,再说你给的分不太高啊,呵呵
2017-03-05 22:23
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
收藏
得分:10 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 3
int main()
{
    int sim();
    int mix();
    struct Team
    {
        char name;
        int score;
    }
    team[N];
    struct Team temp;
    int i,j,p,t,k,n,m;
    int result1,answer1,result2,answer2;
    char ch1,ch2;
    printf("      *********************************\n");
    printf("      *                               *\n");
    printf("      *                               *\n");
    printf("      *welcome join in this competiton*\n");
    printf("      *                               *\n");
    printf("      *                               *\n");
    printf("      *********************************\n");
    for(i=0,j=65;i<N;i++,j++)
    {
        team[i].name = j;
        team[i].score = 100;
    }
    printf("\n\n\n\n");
    printf("input simple count number n:");
    scanf("%d",&n);
    printf("input mix count number m:");
    scanf("%d",&m);
    printf("\n");
    system("pause");
    printf("The first turen.\n");
    printf("This is simple count.\n");
    printf("Please look at the question:");
    for(p=0;p<n;p++)
    {
        result1=sim();
        printf("Please input one team name(A,B,C...):");
        getchar();
        scanf("%c",&ch1);
        printf("\ninput your answer:");
        scanf("%d",&answer1);
        for(k=0;k<N;k++)
        {
            t=k;
            if(ch1 == team[k].name)
                if(result1 == answer1)
                {
                    printf("The answer is right.\n");
                    team[t].score +=5;
                }
                else
                {
                    printf("This answer is wrong.\n");
                    printf("The right answer is %d\n\n",result1);
                    team[t].score -=5;
                }
        }
        for(i=0;i<N;i++)
        {
            printf("************\n");
            printf("*%c     %4d*\n",team[i].name,team[i].score);
            printf("***********\n");
        }
        printf("\n");
    }
    printf("The first turn is end.\n\n\n\n\n");
    printf("The second turn begain!\n");
    printf("This is mix count!\n");
    printf("Please look at the question:\n");
    for(p=0;p<m;p++)
    {
        result2 =mix();
        printf("please input one team(A,B,C...):");
        getchar();
        scanf("%c",&ch2);
        printf("\ninput your answer.");
        scanf("%d",&answer2);
        for(k=0;k<N;k++)
        {
            t=k;
            if(ch2 == team[k].name)
                if(result2 == answer2)
                {
                    printf("The answer is right.\n");
                    team[k].score +=10;
                }
                else
                {
                    printf("\nyour answer is wrong.\n");
                    printf("The right answer is %d\n",result2);
                    team[k].score -=10;
                }
        }
        for(i=0;i<N;i++)
        {
            printf("*********\n");
            printf("*%c%4d*",team[i].name,team[i].score);
            printf("*********\n");
        }
        printf("\n");
    }
    printf("The second turn is end.\n\n");
    printf("\nThe last result:\n");
    for(i=0;i<N-1;i++)
        for(j=0;j<N-1;j++)
            if(team[j].score < team[j+1].score)
            {
                temp = team[j];
                team[j] = team[j+1];
                team[j+1]=temp;
            }
            for(i=0;i<N;i++)
            {
                printf("*******\n");
                printf("%c%4d*",team[i].name,team[i].score);
                printf("******\n");
            }
            printf("\n\n\n\n");
            printf("          ******************************\n");
            printf("          *                             *\n");
            printf("          *                             *\n");
            printf("          *      Thanks for using!      *\n");
            printf("          *                             *\n");
            printf("          *                             *\n");
            printf("          ******************************\n");
            return 0;
}
int sim()
{
    int s,num1,num2,stpy;
    srand((unsigned)time(NULL));
    num1= rand()%10;
    num2 = rand()%10;
    stpy= rand()%4+1;
    switch(stpy)
    {
    case 1:
        s=num1+num2;
        printf("%d+%d=?\n",num1,num2);
        break;
    case 2:
        if(num1>=num2)
        {
            s=num1-num2;
            printf("%d-%d=?\n",num1,num2);
            break;
        }
        else
        {
            s=num2-num1;
            printf("%d-%d=?\n",num2,num1);
            break;
        }
    case 3:
        s=num1*num2;
        printf("%d*%d=?\n",num2,num1);
        break;
    case 4:
        s=num1/num2;
        printf("%d/%d=?(仅取商)\n",num2,num1);
        break;
    }
    return(s);
}
int mix()
{
    int t,num1,num2,num3,num4,stpy;
    srand((unsigned)time(NULL));
    num1= rand()%10;
    num2 = rand()%10;
    num3= rand()%10;
    num4 = rand()%10;
    switch(stpy)
        {
    case 1:
        t=(num1+num2)*(num3+num4);
        printf("(%d+%d)*(%d+%d)=?\n",num1,num2,num3,num4);
        break;
    case 2:
        if(num1>=num2)
        {
            t=(num1-num2)*(num3+num4);
            printf("(%d-%d)*(%d+%d)=?\n",num1,num2,num3,num4);
            break;
        }
        else
        {
            t=(num2-num1)*(num3+num4);
            printf("(%d-%d)*(%d+%d)=?\n",num1,num2,num3,num4);
            break;
        }
    case 3:
        t=num1*num2-num3*num4;
        printf("%d*%d-%d*%d=?\n",num1,num2,num3,num4);
        break;
    case 4:
        t=(num1+num2-num3)*num4;
        printf("(%d+%d-%d)*%d=?\n",num1,num2,num3,num4);
        break;
    }
    return(t);
}
2017-03-06 12:18
虾饺
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-2-27
收藏
得分:0 
回复 4楼 mnmn4429
有bug
2017-03-06 19:24
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
收藏
得分:0 
回复 5楼 虾饺
有就有,不想改
2017-03-07 15:22
快速回复:心算抢答系统
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078951 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved