| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 630 人关注过本帖, 1 人收藏
标题:模拟测试题软件-用C语言解决自己问题!
取消只看楼主 加入收藏
啊C
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:177
注 册:2010-6-24
结帖率:91.67%
收藏(1)
 问题点数:0 回复次数:1 
模拟测试题软件-用C语言解决自己问题!
考试将近,班上找不许多的资料题,资料题是有答案的,于是就想做个象考试软件的测试软件,来看看自己把资料题背得怎么样了,那些还没有记到!
   先前发帖求助大概该怎么做,没有得到满意的答复,我就记起论坛一人说的话,求人不如求己,
就这样探索的写了这个小程序,想与大家分享!
功能:测试背题的情况,并查漏补缺!
由于多方面考虑!只有填空题和选择题,应为有些其他题是需要用图片的,黑白界面输出图片,这....还没看到过!
Release.zip (4.8 KB)
配套试题放在软件同目录下
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
#include<stdio.h>
#include<string.h>
#include <conio.h>
void tk(char *wj);
void xz(char *wj);
void main(int argc,char *argv[])
{
    char c,name[10][200],tkt[10][200],xzt[10][200],temp[200],index[125];
    int k,x;
    FILE *fp;
    for(int ii=strlen(argv[0]);ii>=0;ii--)//修改文件全地址
    {  
      c=argv[0][ii];
      if(c=='\\')//查找“\”字符在数据组的位置
      {
          argv[0][ii+1]='\0';//删除最后字符“\”后面的字符
          break;
      }
    }
    strcpy(index,"\0");
    strcat(index,argv[0]);
    strcat(index,"index.txt");

    if((fp=fopen(index,"rb+"))==NULL)
    {
        printf("打开index.txt失败");
    }
   
    for(int i=0;!feof(fp);i++)
    {
        fgets(name[i],100,fp);
        k=strlen(name[i]);
        name[i][k-2]='\0';
        fgets(tkt[i],100,fp);
        k=strlen(tkt[i]);
        tkt[i][k-2]='\0';
        strcpy(temp,"\0");
        strcat(temp,argv[0]);
        strcat(temp,tkt[i]);
        strcpy(tkt[i],"\0");
        strcat(tkt[i],temp);
        fgets(xzt[i],100,fp);
        k=strlen(tkt[i]);
        xzt[i][k-2]='\0';
        strcpy(temp,"\0");
        strcat(temp,argv[0]);
        strcat(temp,xzt[i]);
        strcpy(xzt[i],"\0");
        strcat(xzt[i],temp);
        printf("\t第%d套:%s\n",i+1,name[i]);

    }
    printf("\t\t输入数字,选择测试题");
    scanf("%d",&x);
    if(0<x&&x<=i)
    {
        tk(tkt[x-1]);
        xz(xzt[x-1]);

    }


 
   
}
void tk(char *wj)
{
    FILE *fp;
    int k,n,j;
    char bh[5],tm[200],tk[5][100],cda[100];
    if((fp=fopen(wj,"rb+"))==NULL)
    {
        printf("打开失败!\n");
    }
    printf("\n\t填空题:\n");
    for(int i=0;!feof(fp);i++)
    {   
       
        fgets(bh,200,fp);
        k=strlen(bh);
        bh[k-2]='\0';
        fgets(tm,200,fp);
        k=strlen(tm);
        tm[k-2]='\0';
        printf("\n第%s题:%s\n",bh,tm);
        j=0;
        fgets(tk[j],200,fp);
        k=strlen(tk[j]);
        tk[j][k-2]='\0';
        do
        {

            printf("\t第%d个空:",j+1);
            scanf("%s",cda);
            fflush(stdin);
            if(strcmp(tk[j],cda))
            {
                printf("回答错误:正确答案:%s   (按回车键继续测试..)\n",tk[j]);
                getchar();
                fflush(stdin);
            }
            j++;
            fgets(tk[j],100,fp);
            k=strlen(tk[j]);
            tk[j][k-2]='\0';
        }while(tk[j][0]!='@');
           
    }
    fclose(fp);

}
void xz(char *wj)
{
    FILE *fp;
    int k;
    char bh[5],tm[200],xa[100],xb[100],xc[100],xd[100],cda0[100],cda;
    if((fp=fopen(wj,"rb+"))==NULL)
    {
        printf("打开失败!\n");
    }
    fgets(cda0,100,fp);
    printf("\n\t选择题:\n\n");
    for(int i=0;!feof(fp);i++)
    {       
            fgets(bh,200,fp);
            k=strlen(bh);
            bh[k-2]='\0';
            fgets(tm,200,fp);
            k=strlen(tm);
            tm[k-2]='\0';
            fgets(xa,200,fp);
            k=strlen(xa);
            xa[k-2]='\0';
            fgets(xb,200,fp);
            k=strlen(xb);
            xb[k-2]='\0';
            fgets(xc,100,fp);
            k=strlen(xc);
            xc[k-2]='\0';
            fgets(xd,200,fp);
            k=strlen(xd);
            xd[k-2]='\0';
            printf("第%s题:%s\n\tA:%s  B:%s  C:%s  D:%s\n",bh,tm,xa,xb,xc,xd);
            printf("填写答案:");
            scanf("%c",&cda);
            fflush(stdin);
            while(68<cda||cda<65)
            {
                printf("\t请输入A—D(大写):");
                scanf("%c",&cda);
                fflush(stdin);
            }
           
            if(cda0[i]!=cda)
            {
                printf("回答错误,正确答案是:%c  (按回车继续测试..)\n",cda0[i]);
                getchar();
            }
            printf("\n");
    }
    fclose(fp);
}


[ 本帖最后由 啊C 于 2011-6-10 21:17 编辑 ]
收到的鲜花
  • waterstar2011-06-11 00:29 送鲜花  10朵   附言:支持原创
搜索更多相关主题的帖子: 选择题 测试题 填空题 C语言 图片 
2011-06-10 21:13
啊C
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:177
注 册:2010-6-24
收藏
得分:0 
以下是引用thlgood在2011-6-11 00:21:46的发言:

如果是填空题,难度不是很大,不过,会不会工作量很大?
填空题是先把题给出来,再让按顺序添,因为C语言是过程语言,
有的填空需要不按顺序填写,这没有做到,但因该可以实现,但着为我用来测试我背题的情况,意义不大,

亲爱的朋友们动起手来吧,让我们一起迈向C语言的世界!
2011-06-11 10:08
快速回复:模拟测试题软件-用C语言解决自己问题!
数据加载中...
 
   



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

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