模拟测试题软件-用C语言解决自己问题!
考试将近,班上找不许多的资料题,资料题是有答案的,于是就想做个象考试软件的测试软件,来看看自己把资料题背得怎么样了,那些还没有记到!先前发帖求助大概该怎么做,没有得到满意的答复,我就记起论坛一人说的话,求人不如求己,
就这样探索的写了这个小程序,想与大家分享!
功能:测试背题的情况,并查漏补缺!

由于多方面考虑!只有填空题和选择题,应为有些其他题是需要用图片的,黑白界面输出图片,这....还没看到过!
程序代码:#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 编辑 ]









