inu goya - 一覧 - wncomr ( 紹介 - 履歴 - その他 ) , wncsf5 , wncsf9

wncomrその他のこと

■隠しコマンド?(2015年5月追加)

wncomrにはデバッグ用に起動オプションがあります。
t_dat_onを使用するときにバッチファイルから自動でデバッグできるように使用しているもので、通常使用することはないと思いますが、コンソール版とGUI版で結果を比較するときに使用できます。
wncomr [/s /e /r:ファイル名 /w:ファイル名 /x:ファイル名 /1 /2 /3 /4 /5 /6 /7 /8 /9]
/s 起動後採点開始
/e 採点後終了
/r:  読み込むファイル(ScanToolsが出力するDAT)
/w: 書き込むファイル1(○×まで入っているファイル)
/x: 書き込むファイル2(点数と名前だけが入るファイル)
/1 1番めの解答
/2 2番めの解答
(中略)
/9 9番目の解答
気になる人は使ってみてください。
----以下はデバッグで使用していたバッチファイルの中身----
@echo off
setlocal
rem OPT1にtdat_onに渡すパラメータ
set OPT1=5A
rem ■■■■rndテスト1
tdat_on %OPT1% > 0000001.dat
tdat_rnd 0000001.dat > 0000001.txt
tdat_cfg r1
copy wncomr.$$$ wncomr.cfg
copy wncomr.$$$ womrcon.cfg
timeout /s
wncomr /r:0000001.dat /w:0000001.csv /x:0000001.asc /1 /s /e
timeout /e
womrcon /1 0000001.dat > 0000001.con
timeout /s
womrcon /1 /c 0000001.dat > 0000001.cov
timeout /e
fc /b 0000001.txt 0000001.asc
if not errorlevel 1 goto ok_1
echo rndテスト1が一致しませんでした。
pause
goto end
:ok_1
fc /b 0000001.asc 0000001.con
if not errorlevel 1 goto ok_2
echo rndテスト1 conが一致しませんでした。
pause
goto end
:ok_2
fc /b 0000001.csv 0000001.cov
if not errorlevel 1 goto test2
echo rndテスト1 covが一致しない.
pause
goto end
rem ■■■■rndテスト2
:test2
tdat_on %OPT1% > 0000001.dat
tdat_rnd 0000001.dat > 0000001.txt
tdat_cfg r2
copy wncomr.$$$ wncomr.cfg
copy wncomr.$$$ womrcon.cfg
wncomr /r:0000001.dat /w:0000001.csv /x:0000001.asc /2 /s /e
womrcon /2 0000001.dat > 0000001.con
fc /b 0000001.txt 0000001.asc
if not errorlevel 1 goto ok_2
echo rndテスト2が一致しませんでした。
pause
goto end
:ok_2
fc /b 0000001.asc 0000001.con
if not errorlevel 1 goto test3
echo rndテスト2 conが一致しませんでした。
pause
goto end
rem ■■■■rndテスト3
:test3
tdat_on %OPT1% > 0000001.dat
tdat_rnd 0000001.dat > 0000001.txt
tdat_cfg r9
copy wncomr.$$$ wncomr.cfg
copy wncomr.$$$ womrcon.cfg
wncomr /r:0000001.dat /w:0000001.csv /x:0000001.asc /9 /s /e
womrcon /9 0000001.dat > 0000001.con
fc /b 0000001.txt 0000001.asc
if not errorlevel 1 goto ok_3
echo rndテスト3が一致しませんでした。
pause
goto end
:ok_3
fc /b 0000001.asc 0000001.con
if not errorlevel 1 goto end
echo rndテスト3 conが一致しませんでした。
pause
rem ■■■■■■■■end
:end
endlocal
----ここまで---------
当時、自動でデータ検証するツールを作っていたようで最近資料が見つかったので掲載します。
おそらく、
tdat_onがScanToolsが出力するデータを模倣してランダムに作成
tdat_rnd ランダムに模範解答を作成して採点(tdat_rnd.$$$を出力しそこに模範解答も入れる)
tdat_cfg r9 tdat_rnd.$$$をwncomr.$$$の9番目解答に作成(rはrnd,aはand,oはor,tはtan)
timeout /s timeout.cfgにOSの時間をスタート時間として記憶(自分で作成したのか記憶が無い)
timeout /e timeout.cfgから開始時間を読み出しスタート時間から現在のOS時間を引いて画面に出力
あとはOSに標準で付いている機能を使用したはず。
発見したtdat_on系のソースリストをみたらよく考えて作られていますな。
2006年に一連のツールを作成しているのですが、今だったらようつくりません。
たしか、作るきっかけは1問に対して10点を配点しなければいけない事例が発生したのでwncomrを1問99点配点可能にバージョンアップしなくてはならず、その時内部構造を大幅に改造しなければ対応できないことがわかりました。さすがに、何年も動作実績があったので内部を改造というのはあまりおこないたくなかったのですが、これで最後の大幅な改造だろうと思ってそのまえに自動テストツールの開発をせねばいかんなと。
説明書にも書いてあったと思うのですが、テストツールの作成がかなり難航しています。そして、いざ完成して実行してみたら潜在的なバグまで発見するという効果がありました。さらに、あまりにもtdat_on用に開発した採点システムが高速だったのでコンソール版として提供するにいたったわけです。
残念ながら、高速採点アルゴリズムはGUI版には搭載していません。
そのかわり、GUI版とコンソール版はアルゴリズムが違うため比較して完全に一致しない場合はどちらかにバグがあるということがわかりました。

■OpScanについて

米Scantron社が製造販売している光学式マーク読取装置(OMR)で最上位機種がセンター試験に使用されていると担当の方から聞きました。職場では1996年にOpScan3を導入(確かオプションつけて百万超えた)し、2001年にOpScan6(3600)を追加購入(これは二百万位だったと思う)そして2011年にOpScan6(5000)に更新(これは二百後半だったと)しています。制御用にScanToolsを購入しているのですが、これが10万位するので決して簡単にテストをマークシート化するとはいきません。もちろんマークシートも専門の印刷会社から購入(一度に1万枚購入しているので単価も10数円)。うちの場合1度に千枚から二千枚採点するので人件費と時間を考慮すればそれ相当なのかもしれません。単純に人間が1人分採点を行う時間が2分として1000人分採点すると2000分(約33時間)としてOMRは1秒で1人ですから1000秒(約17分)差が2000-17=1983分節約ということになります(私的な見解です)。テスト回収後17分後には点数がでてきて、クラス別の平均点やなんかを作成するのも考慮しても1時間ほどで結果がでてしまう。
2016年あたりから都立の入試でマークシートを導入しはじめているようですが、やはり専用機と専用紙でないと採点がうまくいかないと思われます。
もしかすると、採点の業者に頼んだ方が安く済むのだろうか。

■womrform2a(生徒得点配布印刷2)

womrformは5人分を1枚に印刷していたので、配るときにカッターで切り分けるという面倒な作業が必要でした。当時(2003年)は用紙の節約や再利用促進をしていたのでこれでよかったのですが、2020年になって担当する人がカッターで切る作業が結構大変そうなのでA4用紙1人1枚というwomrform2を製作することにしました。
womrform2a画面1
前に製作していたwomrformから設定項目を引き継いだ。

womrform2a印刷プレビュー
A4用紙1枚で1人というと、例えばA4用紙1枚1円であれば1000人で1000枚・千円として、5人1枚だと200枚・200円ということです。これに、人件費予想を入れてみます。200枚を5人分割する作業に1枚30秒(1分2枚)で100分。時給1000円だと1000*(100/60)=約1666.7円。コスト的にも切る作業を入れなければ666.7円節約となりますな。
(切る作業を100分やったら精神的に他の作業が滞りそう)
womrform2がwomrform2aになっているのは当初 .NET Core 3.1で開発を行っていたのですが、Windows 7等の旧システムで稼働させる必要があったため互換性を考慮して .NET Framework 4に移植したためです。単純に設定変更とはいかなかったので別バージョンとなったのです。
※womrform2aは都合上現在未公開(契約上事業所先行のため)
 
wncomr ( 紹介 - 履歴 - その他 ) , wncsf5 , wncsf9
一覧
先頭頁に戻る
[20230330]
©wnc develop