int main(int argc, char *argv[]) { //SDK读入=90ms char *topo[MAX_EDGE_NUM]; int edge_num; char *demand[MAX_DEMAND_NUM]; int demand_num; char *topo_file = argv[1]; edge_num = read_file(topo, MAX_EDGE_NUM, topo_file); if (edge_num == 0) { Print("Please input valid topo file.\n"); return -1; } char *demand_file = argv[2]; demand_num = read_file(demand, MAX_DEMAND_NUM, demand_file); if (demand_num != MAX_DEMAND_NUM) { Print("Please input valid demand file.\n"); return -1; } //生成检查result.csv文件合法性和路径信息的程序 //程序如果带5个参数(第一个是文件名)就输出具体的信息,否则只输出重复边个数和权值 G.initial(topo,edge_num); Road0.initial(demand[0],&G); Road1.initial(demand[1],&G); exam_result(argv[1],argv[3],(argc==5)); return 0; }
/** * タイピングの結果を表示する. */ void Test_result() { char buf[MAXSTRLEN]; int writeResult = TRUE; Examination * examination2; Test * test2 = Test_get_test(); //合格情報を記録する for typingtestex拡張 Examination_writePassInfoAndShowResult(&(test.examination), &(test.user)); term_clear(); Test_disp_info(RESULT_X+2, RESULT_Y); term_gotoxy(RESULT_X, RESULT_Y+1); term_rev_disp(ref("result_message")); //合否を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 3); term_disp(ref("exam_result")); if(exam_result(typing_second)==TRUE){ term_disp(ref("pass_message")); }else{ term_disp(ref("fail_message")); } //試験日を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 4); term_disp(ref("exam_date")); get_date(buf); term_disp(buf); //タイピング時間を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 5); term_disp(ref("typing_time")); sprintf(buf, "%d ", typing_second); term_disp(buf); term_disp(ref("second_message")); //端末名を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 6); term_disp(ref("machine_name")); get_hostname(buf); term_disp(buf); //正打鍵数を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 7); term_disp(ref("correct_type")); sprintf(buf, "%d ", err_correct_type()); term_disp(buf); term_disp(ref("word_message")); //ミスタッチ数を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 8); term_disp(ref("miss_count")); sprintf(buf, "%d ", err_error_type()); term_disp(buf); term_disp(ref("word_message")); //1分あたりの正しいタッチ数を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 9); term_disp(ref("correct_type_per_min")); sprintf(buf, "%d ", correct_type_per_min(typing_second)); term_disp(buf); term_disp(ref("per_min_message")); //テキスト情報のタイトル表示 term_gotoxy(RESULT_X, RESULT_Y + 11); term_rev_disp(ref("exam_info_message")); //問題名を表示 term_gotoxy(RESULT_X + 5, RESULT_Y + 13); term_disp(ref("exam_title")); term_disp(ref("title")); //最大誤字数 term_gotoxy(RESULT_X + 5, RESULT_Y + 14); term_disp(ref("max_error_type_msg")); term_disp(ref("max_error_type")); term_disp(ref("word_message")); //制限時間 term_gotoxy(RESULT_X + 5, RESULT_Y + 15); term_disp(ref("time_limit_msg")); term_disp(ref("time_limit")); term_disp(ref("second_message")); //テキスト総文字数 term_gotoxy(RESULT_X + 5, RESULT_Y + 16); term_disp(ref("text_length_msg")); term_disp(ref("total_text_length")); term_disp(ref("word_message")); Intprt_disp_guide(&test.intprt); //次の画面遷移のメッセージを表示する examination2 = &(test2->examination); if(examination2->mode == EXAM_MODE){//本番モードの場合 if(HIDE_ERR_MODE_EX){ Intprt_pause_core(&test.intprt, ref("result_end_message"), FALSE); }else{ Intprt_pause_core(&test.intprt, ref("go_error_check_message"), FALSE); } }else{//練習モードの場合 if(HIDE_ERR_MODE_PRA){ Intprt_pause_core(&test.intprt, ref("result_end_message"), FALSE); }else{ Intprt_pause_core(&test.intprt, ref("go_error_check_message"), FALSE); } } }