int main( const int argc , const char ** argv ) { if( flagSpecified(argc,argv,kFlagLogo) ) displayLogo(); initializeRandomGenerator(); initializeSsl(); // Not the most beautiful piece of initialization code :) if( controllerRequested(argc,argv) ) startController(argc,argv); else if( serverRequested(argc,argv) ) startServer(argc,argv); else if( clientRequested(argc,argv) ) startClient(argc,argv); else if( eventStreamRequested(argc,argv) ) startEventStream(argc,argv); else if( generateHashRequested(argc,argv) ) startGenerateHash(argc,argv); else if( addControllerRequested(argc,argv) ) startAddController(argc,argv); else usage(); cleanupSsl(); cleanupLogger(); return EXIT_SUCCESS; }
int main(int argc, char *argv[]) { int algorithm, times_to_execute=1; do { printf ("Number of queens (1<=nqueens<%d): ", MAXQ); scanf ("%d", &nqueens); } while ((nqueens < 1) || (nqueens > MAXQ)); do { printf ("Algorithm: (1) Random search (2) Hill climbing "); printf ("(3) Simulated Annealing (4) Genetic Algorithm: "); scanf ("%d", &algorithm); } while ((algorithm < 1) || (algorithm > 4)); if (algorithm != 4) { do { printf("How many times to execute? (1<n<10000):"); scanf("%d", ×_to_execute); } while ((times_to_execute < 1 || times_to_execute > 10000)); } initializeRandomGenerator(); int i=0; switch (algorithm) { case 1: randomSearch(); break; case 2: solutions_found = 0; for (i=0; i<times_to_execute; i++) { initiateQueens(1); hillClimbing(); } printf("Algorithm finished. Found a solution in %d out of %d executions.\n", solutions_found, i); break; case 3: solutions_found = 0; for(i = 0; i < times_to_execute; i++) { initiateQueens(1); simulatedAnnealing(); } printf("Algorithm finished. Found a solution in %d out of %d executions.\n", solutions_found, i); break; case 4: initiateQueens(1); geneticAlgorithm(); } return 0; }
/* * main -- エントリポイント */ int main(int argc, char **argv) { int i, j; /* 乱数の初期化 */ initializeRandomGenerator(); /* * ファイルアクセスモジュールの初期化 */ if (initializeFileModule() != OK) { fprintf(stderr, "%s: initialization failed.\n", TEST_NAME); } /* * 前回このプログラムを実行したときのテストファイルが * 残っている可能性があるので、まず消去する */ deleteFile(TEST_FILE1); deleteFile(TEST_FILE2); /* FILE_SIZE分のページの内容を乱数で作成 */ for (i = 0; i < FILE_SIZE; i++) { for (j = 0; j < PAGE_SIZE; j++) { /* 0〜9の範囲の乱数を発生しパターンを作る */ int x; x = getRandomInteger(0, 9); /* ページに'0'〜'9'の文字を入れる */ pagePattern[i][j] = '0' + x; } } /* テストの実行 */ fprintf(stderr, "%s: test 1: Start\n", TEST_NAME); if (test1() == OK) { fprintf(stderr, "%s: test 1: OK\n\n", TEST_NAME); } else { fprintf(stderr, "%s: test 1: NG\n\n", TEST_NAME); } fprintf(stderr, "%s: test 2: Start\n", TEST_NAME); if (test2() == OK) { fprintf(stderr, "%s: test 2: OK\n\n", TEST_NAME); } else { fprintf(stderr, "%s: test 2: NG\n\n", TEST_NAME); } fprintf(stderr, "%s: test 3: Start\n", TEST_NAME); if (test3() == OK) { fprintf(stderr, "%s: test 3: OK\n\n", TEST_NAME); } else { fprintf(stderr, "%s: test 3: NG\n\n", TEST_NAME); } fprintf(stderr, "%s: test 4: Start\n", TEST_NAME); if (test4() == OK) { fprintf(stderr, "%s: test 4: OK\n\n", TEST_NAME); } else { fprintf(stderr, "%s: test 4: NG\n\n", TEST_NAME); } /* * ファイルアクセスモジュールの終了処理 */ if (finalizeFileModule() != OK) { fprintf(stderr, "%s: finalization failed.\n", TEST_NAME); } exit(0); }
/* * main -- バッファ管理モジュールのテスト */ int main(int argc, char **argv) { File *file[2]; char page1[PAGE_SIZE], page2[PAGE_SIZE]; int i; /* 乱数用関数の初期化 */ initializeRandomGenerator(); /* * ファイルアクセスモジュールの初期化 */ if (initializeFileModule() != OK) { fprintf(stderr, "%s: initialization failed.\n", TEST_NAME); } /* * 前回このプログラムを実行したときのテストファイルが * 残っている可能性があるので、まず消去する */ deleteFile(TEST_FILE1); deleteFile(TEST_FILE2); /* 空のファイルを2つ作り、オープンする */ if (createFile(TEST_FILE1) != OK) { fprintf(stderr, "Cannot create file.\n"); exit(1); } if (createFile(TEST_FILE2) != OK) { fprintf(stderr, "Cannot create file.\n"); exit(1); } if ((file[0] = openFile(TEST_FILE1)) == NULL) { fprintf(stderr, "Cannot open file.\n"); exit(1); } if ((file[1] = openFile(TEST_FILE2)) == NULL) { fprintf(stderr, "Cannot open file.\n"); exit(1); } /* * ファイルの先頭から順に、(FILE_SIZE)ページ分のダミーデータを書く * * それぞれのページの先頭3バイトに、以下のように文字を書く * file1: * 0ページ目: 000 * 1ページ目: 001 * 2ページ目: 002 * (以下同様) * file2: * 0ページ目: 100 * 1ページ目: 101 * 2ページ目: 102 * (以下同様) */ for (i = 0; i < FILE_SIZE; i++) { /* ページに書く内容を用意する */ memset(page1, 0, PAGE_SIZE); memset(page2, 0, PAGE_SIZE); sprintf(page1, "00%c", '0' + i); sprintf(page2, "10%c", '0' + i); /* ファイルに書き込む */ if (writePage(file[0], i, page1) != OK) { fprintf(stderr, "Cannot write page.\n"); exit(1); } if (writePage(file[1], i, page2) != OK) { fprintf(stderr, "Cannot write page.\n"); exit(1); } } /* いったんファイルをクローズする */ closeFile(file[0]); closeFile(file[1]); /* * ここまでが下準備。ここからバッファリング機能をテストする */ test1(); test2(); /* * ファイルアクセスモジュールの終了処理 */ if (finalizeFileModule() != OK) { fprintf(stderr, "%s: finalization failed.\n", TEST_NAME); } /* ファイルを削除する */ deleteFile(TEST_FILE1); deleteFile(TEST_FILE2); }