您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  程序测试程序(配合游戏及学习控制管理器使用) 【注册男护士专用博客】          

程序测试程序(配合游戏及学习控制管理器使用)

www.nanhushi.com     佚名   不详 

  配合游戏控制,学习控制,通过测试可以获得游戏点数

  /*test.ini(可自行添加修改试题,根据注释中的格式增加即可)*/


;==================================================================
;==================================================================
  记录方式:注释→ “;”后
  测试文件夹
  D:\TEST\
  总测试数
  2
  ;测试记录
  ;格式:
  ;原题
  ;标准输出数据
  请计算:已知:Q=1*2*3*4*5*6*7*8*9*10,P=1+2+3+4+5+6+7+8+9+10,M=Q/P,SUM=Q+P+M,请输出SUM.
  3694833
  请计算:(90+91+92....+99+100)*52.8+PI+MAX,并输出结果.
  10055179.140000
;==================================================================

  /*test 记录试题是否通过的情况*/

  1 1

  /*test.c 主程序,请用gcc编译(例如DEV-CPP环境下)*/
  #include<stdio.h>
  #include<string.h>
  typedef struct
  {
          char describe[1000];
          char answer[100];
  } DATA;
  DATA s[20];
  char path[100];
  int testnum;
  char s_p[20];
  char password[20];
  int points;
  int copy(char *infile,char *outfile)
  {
      FILE *input,*output;
      char temp;
      if(strcmp(infile,outfile)!=0 && ((input=fopen(infile,"rb"))!=NULL) && ((output=fopen(outfile,"wb"))!=NULL))
      {
        while(!feof(input))
        {
          fread(&temp,1,1,input);
          fwrite(&temp,1,1,output);
        }
        fclose(input);
        fclose(output);
        return 0;
      }
      else return 1;
  }
  int inittest()
  {
      FILE *input,*output;
      int i;
      char temp[80];
      input=fopen("test.ini","r");
      output=fopen("test.tmp","w");
      while(!feof(input))
      {
        fgets(temp,80,input);
        if(temp[0]!=';') fputs(temp,output);
      }
      fclose(input);
      fclose(output);
      input=fopen("test.tmp","r");      
      fscanf(input,"%s",path);
      fscanf(input,"%d",&testnum);
      for(i=0;i<testnum;i++) fscanf(input,"%s%s",s[i].describe,s[i].answer);
      fclose(input);
      input=fopen("test","r");
      for(i=0;i<testnum;i++) fscanf(input,"%d",&s_p[i]);
      fclose(input);
  }


  int main(void)
  {
    int n;
    int x,i;
    FILE *input,*output;
    char temp[100];
    inittest();
    printf("程序测试 SK-CHINA 2007-2008\n");
    re:
    printf("目前有%d道测试题,请输入希望做的题:",testnum);
    scanf("%d",&n);
    if(n<=testnum && n>0)
    {
      n--;
      if(s_p[n])
      {
        printf("\n题目叙述:%s\n\n",s[n].describe);
        printf("\n请进入test文件夹,对test.c文件进行添加修改\n");
        printf("\n如果你已经写完,那么请输入1,本程序将进行测试;否则输入0,本程序将退出并新建一个新的程序文件;或输入2,本程序将直接退出,不建立新的程序文件。\n");
      scanf("%d",&x);
      if(x==1)
      {
           sprintf(temp,"%sout.txt",path);
           input=fopen(temp,"r");
           fgets(temp,100,input);
           fclose(input);
           if(strcmp(temp,s[n].answer)==0)
           {
             input=fopen("control","r");
             fscanf(input,"%d%s",&points,password);
             points=points+50;
             fclose(input);
             output=fopen("control","w");
             fprintf(output,"%d\n%s",points,password);
             fclose(output);
             s_p[n]=0;
             output=fopen("test","w");
             for(i=0;i<testnum;i++) fprintf(output,"%d ",s_p[i]);
             fclose(output);
             printf("恭喜你,测试正确 !你的游戏点数已增加50");
             getch();
             return 0;
           }
           else printf("测试错误,不要气馁,检查一下重新提交!");
      }
      else
        if(x==0)
        {
          sprintf(temp,"%stest.c",path);
          copy("Normal.c",temp);
          return 0;
        }
        else return 0;
    }
    else
    {
      printf("本题你已经通过!请重新选择");
      goto re;
    }
  }
  else
  {
    printf("题号输入错误,请重新输入");
    goto re;
  }
  return 0;
}

  /*标准文件 normal.c 不用编译,放于同一目录即可*/
  #include<stdio.h>
  #include<conio.h>
  #define PI  3.14
  #define MAX 10000000
  int test_int;
  long test_long;
  float test_float;
  double test_double;
  int my()
  {
      /*这里写你的代码*/
  }
  int main(void)
  {
    my();
    freopen("out.txt","w",stdout);
    my();
    getch();
    return 0;
  }

  本程序完成了一个基本的程序测试程序,不过其中的答案没有加密,测试程序过于简单等还待改进

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目