找回密码
 注册
快捷导航
12
返回列表 发新帖
楼主: _1234

【原创】专门网笔记本知识大奖赛算分软件

[复制链接] |自动提醒
阅读字号:

1221

回帖

40

积分

4385

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-5-30
 楼主| 发表于 2006-11-18 12:42:31| 字数 9| - 中国–四川–绵阳 联通/广电网 | 显示全部楼层
等标准答案中...
http://chris.wu.yale.googlepages.com/home
回复 支持 反对

使用道具 举报

1万

回帖

99

积分

4万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-1-27
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2006-11-18 12:53:39| 字数 8| - 中国–山东–青岛 联通 | 显示全部楼层
好东西,楼主厉害
你先让我睡一下好不好?
回复 支持 反对

使用道具 举报

5518

回帖

122

积分

2268

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2005-9-2
月全勤勋章银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)
发表于 2006-11-23 13:31:23| 字数 20| - 中国–江苏–南京–浦口区 电信 | 显示全部楼层
本想查下多少分,是exe文件,还是算了。
Note 9
sfp6
回复 支持 反对

使用道具 举报

1221

回帖

40

积分

4385

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-5-30
 楼主| 发表于 2006-11-23 14:21:28| 字数 3,429| - 中国–四川–绵阳 联通/广电网 | 显示全部楼层
公布源代码了...


  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include "resource.h"

  4. #define STANDARD_ANSWER                "!Standard Answer.txt"
  5. #define NUMQUES                        100
  6. #define LENANS                                5

  7. int WINAPI WinMain(HINSTANCE hInstance,
  8.                                    HINSTANCE hPreInstance,
  9.                                    LPSTR         strCmdLine,
  10.                                    int                 nShowMode)
  11. {
  12.         char c;
  13.         FILE *pFileAns;

  14.         int iAns=0;
  15.         int index=0;
  16.         int score=0;
  17.         char StdAns[NUMQUES+1][LENANS];
  18.         char ExcAns[NUMQUES+1][LENANS];

  19.         for(int i=1;i<=NUMQUES;i++)
  20.                 for(int j=0;j<LENANS;j++)
  21.                 {
  22.                         ExcAns[i][j]='\0';
  23.                         StdAns[i][j]='\0';
  24.                 }

  25.         char SamAns[LENANS]="\0";

  26.         char szScoreReport[MAX_PATH*5]="\0";
  27.         char szScoreDetail[MAX_PATH*5]="\0";

  28.         BOOL bIsStdAns=TRUE;
  29.         BOOL bException=FALSE;

  30.         WIN32_FIND_DATA FindFileData;
  31.         HANDLE hFind=FindFirstFile("*.txt",&FindFileData);

  32.         if(lstrcmpi(FindFileData.cFileName,STANDARD_ANSWER))
  33.         {
  34.                 MessageBox(NULL,"Cannot find !Standard Answer.txt or one or more file names are improper. Rename these files \nand ensure that !Standard Answer.txt is the first file(arranged by name) in that directory.",
  35.                         "Error",MB_OK|MB_ICONERROR);
  36.                 return FALSE;
  37.         }

  38.         do
  39.         {
  40.                 if(FindFileData.cFileName[0])
  41.                 pFileAns=fopen(FindFileData.cFileName,"r");

  42.                 do
  43.                 {
  44.                         c=fgetc(pFileAns);
  45.                 }
  46.                 while(!(c>='0' && c<='9') && !feof(pFileAns));

  47.                 while(!feof(pFileAns))
  48.                 {
  49.                         if(c>='0' && c<='9')
  50.                         {
  51.                                 if(index && !bIsStdAns)
  52.                                 {
  53.                                         if(!lstrcmpi(SamAns,StdAns[index]))
  54.                                                 score++;
  55.                                         else if(!lstrcmpi(SamAns,ExcAns[index]) && SamAns[0]!='\0')
  56.                                                 score++;

  57.                                         else
  58.                                         {
  59.                                                 char szBuffer[MAX_PATH];
  60.                                                 (ExcAns[index][0]=='\0')? wsprintf(szBuffer,"%d\t%s\t%s\n",index,SamAns,StdAns[index]):
  61.                                                                                                   wsprintf(szBuffer,"%d\t%s\t%s/%s\n",index,SamAns,StdAns[index],ExcAns[index]);
  62.                                                 lstrcat(szScoreDetail,szBuffer);
  63.                                         }
  64.                                         for(int i=0;i<iAns;i++) SamAns[i]='\0';
  65.                                 }
  66.                                 iAns=0;
  67.                                 bException=FALSE;

  68.                                 char c1=fgetc(pFileAns);
  69.                                 if(c1>='0' && c1<='9')
  70.                                 {
  71.                                         char c2=fgetc(pFileAns);
  72.                                         if(c2>='0' && c2<='9')
  73.                                         {
  74.                                                 index=(c-'0')*100+(c1-'0')*10+c2-'0';
  75.                                                 do
  76.                                                 {
  77.                                                         c=fgetc(pFileAns);
  78.                                                 }
  79.                                                 while(c>='0' && c<='9' && !feof(pFileAns));
  80.                                         }
  81.                                         else
  82.                                         {
  83.                                                 index=(c-'0')*10+c1-'0';
  84.                                                 c=c2;
  85.                                         }
  86.                                 }
  87.                                 else
  88.                                 {
  89.                                         index=c-'0';
  90.                                         c=c1;
  91.                                 }
  92.                         }

  93.                         if(c>='A' && c<='Z' || c>='a' && c<='z')
  94.                         {
  95.                                 if(bIsStdAns)
  96.                                 {
  97.                                         if(bException)
  98.                                                 ExcAns[index][iAns++]=c;
  99.                                         else
  100.                                                 StdAns[index][iAns++]=c;
  101.                                 }
  102.                                 else
  103.                                         SamAns[iAns++]=c;
  104.                         }

  105.                         if(c=='/' && bIsStdAns)
  106.                         {
  107.                                 iAns=0;
  108.                                 bException=TRUE;
  109.                         }

  110.                         c=fgetc(pFileAns);
  111.                 }
  112.                 // For the last entry
  113.                 if(!bIsStdAns)
  114.                 {
  115.                         if(!lstrcmpi(SamAns,StdAns[index]))
  116.                                 score++;
  117.                         else
  118.                         {
  119.                                 char szBuffer[MAX_PATH];
  120.                                 wsprintf(szBuffer,"%d\t%s\t%s\n",index,SamAns,StdAns[index]);
  121.                                 lstrcat(szScoreDetail,szBuffer);
  122.                         }
  123.                         for(int i=0;i<iAns;i++) SamAns[i]='\0';
  124.                         iAns=0;

  125.                         // Write Report
  126.                         wsprintf(szScoreReport,
  127.                                 "Score Report for %s \n\nScore: %d\n\nQuestions answered incorrectly:\n\nNum \tAns \tStd \n===================\n%s",
  128.                                 FindFileData.cFileName,score,szScoreDetail);

  129.                         char RepName[MAX_PATH]="ScoreReport_";
  130.                         //Change .txt to .log
  131.                         char *pch=strrchr(FindFileData.cFileName,'.');
  132.                         FindFileData.cFileName[pch-FindFileData.cFileName]='\0';
  133.                         lstrcat(FindFileData.cFileName,".log");

  134.                         FILE *pFileRep=fopen(lstrcat(RepName,FindFileData.cFileName),"w");
  135.                         fprintf(pFileRep,"%s",szScoreReport);
  136.                         fclose(pFileRep);
  137.                        
  138.                         wsprintf(szScoreReport,
  139.                                 "Score of %s: %d\n\n See ScoreReport_%s for details.",
  140.                                 FindFileData.cFileName,score,FindFileData.cFileName);
  141.                         MessageBox(NULL,szScoreReport,"Score Report",MB_OK);
  142.                 }
  143.                 // Clean-up for the next sample file
  144.                 index=0;
  145.                 score=0;
  146.                 szScoreDetail[0]='\0';
  147.                 szScoreReport[0]='\0';
  148.                 bIsStdAns=FALSE;
  149.                 fclose(pFileAns);

  150.         }while (FindNextFile(hFind, &FindFileData) != 0);

  151.         FindClose(hFind);

  152.         return 0;
  153. }
复制代码
http://chris.wu.yale.googlepages.com/home
回复 支持 反对

使用道具 举报

1009

回帖

12

积分

2048

资产值

禁止发言

注册时间
2006-1-12
发表于 2006-11-23 14:34:56| 字数 48| - 中国–浙江–杭州 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

3918

回帖

84

积分

4万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2005-10-28
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)月全勤勋章
发表于 2006-11-24 16:31:26| 字数 18| - 中国–上海–上海–静安区 电信 | 显示全部楼层
有了这个工具,算自己得分简单很多哦!
X62 SXGA+ SSD128G+HDD1T 8G*2
T61P T8100 OC 2.8 UXGA SSD128G+HDD1T 4G*2
X31P PM725 OC 2.13G ATI750
回复 支持 反对

使用道具 举报

6246

回帖

60

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2005-8-23
银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)
发表于 2006-11-24 22:30:32| 字数 22| - 中国–河北–唐山 中移铁通 | 显示全部楼层
不错的人啊,这样我们的专门网一定会越来越好的
T42换43主板,高分x300,x200,x395,x13锐龙gen1
回复 支持 反对

使用道具 举报

4204

回帖

1

积分

7286

资产值

入门会员 Rank: 1

注册时间
2003-12-11
发表于 2006-12-13 03:05:12| 字数 3| - 中国–北京–北京 宽捷网通信技术有限公司 | 显示全部楼层
手真快
T23-8nu,P3 1.13G,pc133 256M,5400 48G, S3 16M,无线,8.25k asus m2ne pm1.5G 9.7k
回复 支持 反对

使用道具 举报

613

回帖

0

积分

3352

资产值

入门会员 Rank: 1

注册时间
2004-12-26
发表于 2006-12-13 03:11:08| 字数 43| - 中国–香港 电讯盈科有限公司 | 显示全部楼层
大牛,不是因为用C++,而是因为用windows api直接写
一般的小牛都是用mfc的。
T400s@win7/x31(退休)
在10进制的世界里,只有10个数字:0和1。
回复 支持 反对

使用道具 举报

428

回帖

11

积分

2587

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-5-6
发表于 2006-12-15 21:54:24| 字数 16| - 中国–江西–赣州 电信 | 显示全部楼层
楼主是个光照派,哈哈,共济会员。
2006年7月,我从IT民工成为了真正的民工......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-26 07:21 , Processed in 0.134485 second(s), 42 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部