| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1350 人关注过本帖
标题:[原创]程序测试程序(配合游戏及学习控制管理器使用)
只看楼主 加入收藏
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
结帖率:100%
收藏
 问题点数:0 回复次数:4 
[原创]程序测试程序(配合游戏及学习控制管理器使用)

创作背景是同学习控制管理器(http://bbs.bc-cn.net/viewthread.php?tid=160281&extra=&page=10#268427)一样的,为了家中的一个表弟做的,在家中实施得到了很好的效果.

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

/*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;
}

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

编译后的程序以及完整代码下载:

h7jaQJtU.rar (26.99 KB) [原创]程序测试程序(配合游戏及学习控制管理器使用)




WHIwYNiX.rar (7.45 KB) [原创]程序测试程序(配合游戏及学习控制管理器使用)

搜索更多相关主题的帖子: 管理器 学习控制 游戏 
2007-08-06 16:46
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
DEV-CPP4.9.9.2下编译测试通过,请尽量不要使用TC编译,因为那样才Windows下中文将显示为乱码

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-06 16:48
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
这个没有我的JudgeSystemV1.0版写的好,我那个版本也类似,
不过你要复制你要测试全部的代码放到里面(包括main函数),测试结果直接得到AC或者TLE之类
还有内存占用和运行时间等
版主加油改进一下吧

[此贴子已经被作者于2007-8-10 14:55:47编辑过]

2007-08-10 14:46
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用雨中飞燕在2007-8-10 14:46:53的发言:
这个没有我的JudgeSystemV1.0版写的好,我那个版本也类似,
不过你要复制你要测试全部的代码放到里面(包括main函数),测试结果直接得到AC或者TLE之类
还有内存占用和运行时间等
版主加油改进一下吧


本来就是一个偶然写出来的雏形,当然不能与阁下写的正规的测试程序相比
不过确实可以简单的改进:比如测试前先进行编译,程序测试时控制并计算程序运行时间,对程序的恶意操作进行阻止(比如调用API,使用system和spawnl类函数)等等,感谢你的鼓励!


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-10 15:05
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
我的V1.0源码是公开的呀,不过我那个版本写的也不怎么样而已,
以前在自己论坛简单给网友的代码测试用的。
现在已经改进到V2.4版成OnlineJudge了。
2007-08-10 15:25
快速回复:[原创]程序测试程序(配合游戏及学习控制管理器使用)
数据加载中...
 
   



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

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