Exemple #1
0
void newcommand(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
int y, delcolor = BACKGROUND_BLUE | BACKGROUND_INTENSITY, yellow = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
SetConsoleTextAttribute(hConsole, delcolor);
deleting(16);
for(y = 17; y < 25; y++){
    deleting(y);
    }
baseprint(2, 16, yellow);
}
Exemple #2
0
int changeenter2(int n, int m){
int color = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
char temp[50];
baseprint(2, 21, color);
printf("Enter b [0 ; %i] : ", m - 1);
baseprint(2, 22, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > m - 1 || atoi(temp) < 0){
    fflush(stdin);
    baseprint(2, 23, color);
    printf(" ERROR, try again!");
    deleting(22);
    baseprint(2, 22, color);
}
deleting(23);
return atoi(temp);
}
Exemple #3
0
int randomenter2(void){
int color = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
char temp[50];
baseprint(2, 21, color);
printf("Enter b [-100 ; 100] : ");
baseprint(2, 22, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > 100 || atoi(temp) < -100){
    fflush(stdin);
    baseprint(2, 23, color);
    printf(" ERROR, try again!");
    deleting(22);
    baseprint(2, 22, color);
}
deleting(23);
return atoi(temp);
}
Exemple #4
0
int main(){
	srand(time(NULL));
	container *cHead = NULL, *cTail = NULL, *cCurrent = NULL;
	int numCnt = 0, choice = 0;
	init(&cHead, numCnt, &cTail);
	write(cHead);
	do{
		system("cls");
		printf("Main menu:\n");
		printf("1. Show contents of all containers\n");
		printf("2. Open container\n");
		printf("3. Add container\n");
		printf("4. Delete container\n");
		printf("5. Save\n");
		printf("6. Exit\n");
		scanf("%d", &choice);
		system("cls");
		switch (choice){
		case 1:
			contents(cHead);
			printf("Press any key for return to main menu...\n");
			getch();
			break;
		case 2:
			CntMenu(&cHead, numCnt);
			break;
		case 3:
			if (cHead == NULL)
				cHead = new container;
			else if (cTail == NULL){
				cTail = new container;
				cHead->next = cTail;
			}
			else{
				cCurrent = new container;
				cTail->next = cCurrent;
				cTail = cCurrent;
			}
			numCnt++;
			printf("Container #%d successfully added\n", numCnt);
			printf("Press any key for return to main menu...\n");
			getch();
			break;
		case 4:
			deleting(&cHead, numCnt, &cTail);
			printf("Press any key for return to main menu...\n");
			getch();
			break;
		case 5:
			write(cHead);
			printf("Saving is successful\n");
			printf("Press any key for return to main menu...\n");
			getch();
			break;
		}
	} while (choice != 6);

	return 0;
}
Exemple #5
0
void Pin::keyPressEvent(QKeyEvent *event)
{
	if (event->matches(QKeySequence::Delete)) {
		hide();
		emit deleting();
		delete this;
	}
}
Exemple #6
0
int firstEnter2(void){
int color = BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY;
int b = 0;
char temp[50];
baseprint(25, 8, color);
printf("Enter b [1 ; 10] : ");
baseprint(25, 9, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > 10 || atoi(temp) < 1){
    fflush(stdin);
    baseprint(25, 10, color);
    printf(" ERROR, try again!");
    deleting(9);
    baseprint(25, 9, color);
}
deleting(10);
return atoi(temp);
}
Exemple #7
0
int changeenter1(int n, int m){
int color = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
char temp[50];
baseprint(2, 18, color);
printf("Replace the element [a][b] with value c");
baseprint(2, 19, color);
printf("Enter a [0 ; %i] : ", n - 1);
baseprint(2, 20, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > n - 1 || atoi(temp) < 0){
    fflush(stdin);
    baseprint(2, 21, color);
    printf(" ERROR, try again!");
    deleting(20);
    baseprint(2, 20, color);
}
deleting(21);
return atoi(temp);
}
Exemple #8
0
int firstEnter1(void){
char temp[50];
int color = BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY;
baseprint(25, 4, color);
printf("Matrix size is a*b.");
baseprint(25, 5, color);
printf("Enter a [1 ; 10] : ");
baseprint(25, 6, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > 10 || atoi(temp) < 1){
    fflush(stdin);
    baseprint(25, 7, color);
    printf(" ERROR, try again!");
    deleting(6);
    baseprint(25, 6, color);
}
deleting(7);
return atoi(temp);
}
Exemple #9
0
void elementsSum(int n, int m, int mat[n][m]){
int i, sum = 0, indM, color = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
char temp[50];
baseprint(2, 18, color);
printf("Enter the index of column [0 ; %i] : ", m - 1);
baseprint(2, 19, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > m - 1 || atoi(temp) < 0){
    fflush(stdin);
    baseprint(2, 20, color);
    printf(" ERROR, try again!");
    deleting(19);
    baseprint(2, 19, color);
}
deleting(20);
indM = atoi(temp);
for(i = 0; i < n; i++){
    sum = sum + mat[i][indM];
}
baseprint(2, 20, color);
printf("Sum of the specified column elements is : %i", sum);
}
Exemple #10
0
int changeenter3(void){
int x, color = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
char temp[50];
baseprint(42, 19, color);
printf("Enter c [-50 ; 50] :");
baseprint(42, 20, color);
while(scanf("%s", temp) != 1 || isNumber(temp) == 0 || atoi(temp) > 50 || atoi(temp) < -50){
    fflush(stdin);
    baseprint(42, 21, color);
    printf(" ERROR, try again!");
    for(x = 42; x < 80; x++){
        baseprint(x, 20, color);
        printf(" ");
    }
    baseprint(42, 20, color);
}
deleting(21);
return atoi(temp);
}
 ~TempRecoveryUnitSwap() {
     boost::scoped_ptr<RecoveryUnit> deleting(_txn->releaseRecoveryUnit());
     _txn->setRecoveryUnit(_oldRecoveryUnit);
 }
Exemple #12
0
void CntMenu(container **cHead, int numCnt){
	int choice, number;
	container *n = NULL;
	printf("Enter number of container for opening. Total amount of containers: %d\n", numCnt);
	scanf("%d", &number);
	if (number > numCnt || number < 1){
		printf("Incorrect number. Error opening\n.");
		return;
	}
	n = (*cHead);
	for (int i = 0; i < number - 1; i++){
		n = n->next;
	}
	printf("Container #%d opened succesfull\n", number);
	printf("Press any key to continue\n");
	getch();

	box *bHead = n->head, *bTail = n->tail, *bCurrent = NULL;
	do{
		system("cls");
		printf("Container #%d menu:\n", number);
		printf("1. Show contents of all boxes\n");
		printf("2. Open box\n");
		printf("3. Add box\n");
		printf("4. Delete box\n");
		printf("5. Back to main menu\n");
		scanf("%d", &choice);
		system("cls");
		switch (choice){
		case 1:
			contents(bHead);
			printf("Press any key for return to main menu...\n");
			getch();
			break;
		case 2:
			boxMenu(&bHead, n->qtBoxes, number);
			break;
		case 3:
			if (bHead == NULL)
				bHead = new box;
			else if (bTail == NULL){
				bTail = new box;
				bHead->next = bTail;
			}
			else{
				bCurrent = new box;
				bTail->next = bCurrent;
				bTail = bCurrent;
			}
			n->qtBoxes++;
			printf("Box #%d successfully added\n", n->qtBoxes);
			printf("Press any key for return to container menu...\n");
			getch();
			break;
		case 4:
			deleting(&bHead, n->qtBoxes, &bTail);
			printf("Press any key for return to container menu...\n");
			getch();
			break;
		}
	} while (choice != 5);
}
Exemple #13
0
int command(int n, int m, int mat[n][m]){
int pink = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
green = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_INTENSITY,
yellow = BACKGROUND_BLUE | BACKGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
int command = 0, y;
char s[50];
baseprint(2, 15, pink);
printf("Please, enter your command :");
while(command != 2){
baseprint(2, 16, yellow);
scanf("%s", s);
fflush(stdin);
if(strcmp(s,"help") == 0){
    command = 1;
}
else if(strcmp(s,"end") == 0){
    command = 2;
}
else if(strcmp(s,"null") == 0){
    command = 3;
}
else if(strcmp(s,"random") == 0){
    command = 4;
}
else if(strcmp(s,"change") == 0){
    command = 5;
}
else if(strcmp(s,"flipH") == 0){
    command = 6;
}
else if(strcmp(s,"mean") == 0){
    command = 7;
}
else if(strcmp(s,"sum") == 0){
   command = 8;
}
else if(strcmp(s,"change1") == 0){
    command = 9;
}
else if(strcmp(s,"change2") == 0){
    command = 10;
}
else if(strcmp(s,"change3") == 0){
    command = 11;
}
else{
    command = 0;
    baseprint(2, 17, pink);
    printf(" ERROR, try again!");
    deleting(16);
    baseprint(2, 16, pink);
    getch();
}
deleting(17);
switch (command){
    case 1:
        help();
        getch();
        break;
    case 2:
        end();
        break;
    case 3:
        null(n, m, mat);
        break;
    case 4:
        random(n, m, mat);
        break;
    case 5:
        elchange(n, m, mat);
        break;
    case 6:
        flipH(n, m, mat);
        break;
    case 7:
        meanValue(n, m, mat);
        getch();
        break;
    case 8:
        elementsSum(n, m, mat);
        getch();
        break;
    case 9:
        elementsChange1(n, m, mat);
        break;
    case 10:
        elementsChange2(n, m, mat);
        break;
    case 11:
        columnChange(n, m, mat);
        break;
    case 0:
        break;
}
newcommand();
}
}
Exemple #14
0
int file_run(FILE* data)
{
    product* work_product = NULL;
    char *file_menu[] = {
        "Show file data;\n",
        "Add record;\n",
        "Edit record;\n",
        "Sort records;\n",
        "Delete record;\n",
        "Save & close the file;\n"
    };

    char menu_symb[] = "0";
    char work_name[NAM_LEN + 1];

    int work_line = 0;
    int menu_count = 0;
    int incorrect_choice = 1;
    int exit = 0;

    do
    {
        incorrect_choice = 1;
        system("clear");
        for(menu_count = 0; menu_count < 6; menu_count++)
            printf("%d) %s", menu_count + 1, file_menu[menu_count]);

        printf("Input the number of menu item:\n");
        while(incorrect_choice)
        {
            menu_symb[0] = getche();
            if(!strpbrk(menu_symb, "123456"))
                printf("Unknown value: %c; repeat the choice\n", menu_symb[0]);
            else
                incorrect_choice = 0;
        }

        switch(menu_symb[0])
        {
        case '1':
        {
            file_read(data);
        }
            break;
        case '2':
        {
            work_product = product_input();
            if(work_product)
            {
                sorted_insert(data, work_product);
                product_destroy(work_product);
            }
        }
            break;
        case '3':
        {
            puts("Input the name of the product to edit:");
            string_input(stdin, NAM_LEN, work_name, 0);

            work_line = name_find(data, work_name);
            if(!work_line)
                alert("\tNo such product;");
            else
            {
                work_product = product_read(data, work_line);
                deleting(data, work_line);
                product_update(work_product);
                product_write(data, work_line, work_product);
                product_destroy(work_product);
            }
        }
            break;
        case '4':
        {

        }
            break;
        case '5':
        {
            puts("Input the name of the product to delete:");
            string_input(stdin, NAM_LEN, work_name, 0);

            work_line = name_find(data, work_name);
            if(!work_line)
                alert("\tNo such product;");
            else
                deleting(data, work_line);
        }
            break;
        case '6':
        {
            file_close(data);
            exit = 1;
        }
            break;
        }

    }while(!exit);

    return menu_symb[0] - '0';
}
Exemple #15
0
int main(int argc, char *argv[]){
	// Options
	char *in_filename  = NULL; // 問題ファイル名
	char *out_filename = NULL; // 出力解答ファイル名
	char *fix_filename = NULL; // 固定セル情報ファイル名
	int outer_loops = O_LOOP;  // 外ループ回数
	bool fixed = false;        // 固定フラグ

	// Options 取得
	struct option longopts[] = {
		{"loop",     required_argument, NULL, 'l'},
		{"fixfile",  required_argument, NULL, 'x'},
		{"output",   required_argument, NULL, 'o'},
		{"fix-flag", no_argument,       NULL, 'f'},
		{"version",  no_argument,       NULL, 'v'},
		{"help",     no_argument,       NULL, 'h'},
		{0, 0, 0, 0}
	};
	int opt, optidx;
	while ((opt = getopt_long(argc, argv, "l:o:fvh", longopts, &optidx)) != -1) {
		switch (opt) {
			case 'l':
				outer_loops = atoi(optarg);
				break;
			case 'x':
				fix_filename = optarg;
				break;
			case 'o':
				out_filename = optarg;
				break;
			case 'f':
				fixed = true;
				break;
			case 'v':
				version();
			case 'h':
			case ':':
			case '?':
			default:
				usage();
		}
	}
	if (argc <= optind) {
		usage();
	}
	in_filename = argv[optind];
	assert(in_filename != NULL);

	clock_t start_time, finish_time;
	start_time = clock();

	initialize(in_filename); // 問題盤の生成
	printBoard(); // 問題盤の表示
	
	// 固定セルの生成 (機械学習の結果に基づく)
	if (fix_filename != NULL) {
		setFixFlagFromFile(fix_filename);
		printFixFlag();
	}
	// 固定フラグの生成
	else if (fixed) {
		generateFixFlag();
		printFixFlag();
	}
	
	// 乱数の初期化
	mt_init_genrand((unsigned long)time(NULL));
	// ペナルティの初期化
	penalty_T = 0;
	penalty_C = 0;
	
	// 初期ルーティング
	for(int i=1;i<=board->getLineNum();i++){
		// 数字が隣接する場合スキップ
		if(board->line(i)->getHasLine() == false) continue;
		
		if(!routing(i)){
			cerr << "Cannot solve!! (error: 1)" << endl;
			exit(1);
		}
	}
	for(int i=1;i<=board->getLineNum();i++){
		// 数字が隣接する場合スキップ
		if(board->line(i)->getHasLine() == false) continue;
		
		recording(i);
	}
	
	// 中間ポートを利用するか?
	// 利用している間,ライン不通過回数をカウントしない
	bool use_intermediate_port = false;
	// 中間ポートに設定するマスとそれを利用する数字
	int inter_x, inter_y, inter_line = -1;
	
	
	// 探索スタート!!
	for (int m = 2; m <= outer_loops + 1; m++) { // 外ループ
	
		if(!use_intermediate_port){ // 中間ポートを利用しない場合
			if ((m - 1) % 100 == 0) {
				cout << "loop " << (m-1) << endl;
			}
			if(m>INIT){ resetCandidate(); }
		}
		else{ // 中間ポートを利用する場合
			if ((m - 1) % 100 == 0) {
				cout << "loop " << (m-1) << "+" << endl;
			}
		}
		
		// 解導出フラグ
		bool complete = false;
		
		for (int n = 1; n <= I_LOOP; n++) { // 内ループ
			if (INIT < m && !use_intermediate_port){
				checkLineNonPassed();
			}

			// 問題のおいて数字が隣接していないラインを選択する
			int id;
			do {
				id = (int)mt_genrand_int32(1, board->getLineNum());
			} while (board->line(id)->getHasLine() == false);
			//cout << "(" << m << "," << n << ")Re-route Line" << id << endl;

			// 経路の削除
			deleting(id);
			
			// ペナルティの設定
			penalty_T = (int)(NT * (mt_genrand_int32(0, m - 1)));
			penalty_C = (int)(NC * (mt_genrand_int32(0, m - 1)));

			// 中間ポートを利用しない場合
			if ( !((board->line(id))->isIntermediateUsed()) ) {
				// 経路の探索
				if ( !routing(id) ) {
					cerr << "Cannot solve!! (error: 2)" << endl; // 失敗したらプログラム終了
					exit(2);
				}
				// 経路の記録
				recording(id);
			}

			// 中間ポートを利用する場合
			else {
				// 経路の探索 (INTTRY 回)
				bool success = false;
				for (int count = 0; count < INTTRY; count++) {
					if (routingSourceToI(id)) {
						success = routingIToSink(id);
						break;
					}
				}
				// 中間ポート利用に失敗した場合,通常経路探索した後に内ループ脱出
				if ( !success ) {
					if ( !routing(id) ) {
						cerr << "Cannot solve!! (error: 3)" << endl; // 失敗したらプログラム終了
						exit(3);
					}
					recording(id);
					break;
				}
				// 経路の記録
				recording(id);
			}

			// 終了判定(解導出できた場合,正解を出力)
			if(isFinished()){
				finish_time = clock();

				printSolution();
				if (out_filename != NULL) {
					printSolutionToFile(out_filename);
					cout << "--> Saved to " << out_filename << endl << endl;
				}

				cout << "SUMMARY" << endl;
				cout << "-------" << endl;
				cout << " - filename:   " << in_filename << endl;
				cout << " - size:       " << board->getSizeX() << " x " << board->getSizeY() << endl;
				cout << " - iterations: " << (m - 1) << endl;
				cout << " - CPU time:   "
				     << ((double)(finish_time - start_time) / (double)CLOCKS_PER_SEC)
				     << " sec" << endl;

				complete = true;
				break;
			}
		}
		if(complete) break; // 正解出力後は外ループも脱出
		
		// 中間ポートを使用した次のループでは,中間ポートを利用しない
		if(use_intermediate_port){
			use_intermediate_port = false;
			board->line(inter_line)->setIntermediateUnuse();
			continue;
		}
		
		// 不通過マスの調査->中間ポートを利用するか?
		int candidate_count = 0; // 候補数
		inter_x = -1;
		inter_y = -1;
		for(int y=0;y<board->getSizeY();y++){
			for(int x=0;x<board->getSizeX();x++){
				Box* trgt_box = board->box(x,y);
				if(trgt_box->isCandidate()){
					candidate_count++;
					//cout << "(" << x << "," << y << ")"; // 不通過マス
				}
			}
		}
		//cout << endl;
		if(candidate_count==0) continue; // 候補数0なら利用しない
		
		// 候補の中から中間ポートに設定するマスをランダムに選択
		int c_d = (int)mt_genrand_int32(0, candidate_count - 1); // 選択は候補の中で何番目か?
		int n_d = 0; // 何番目なのかをカウントする用の変数
		
		bool flag = false; // 二重ループのためフラグが必要
		for(int y=0;y<board->getSizeY();y++){
			for(int x=0;x<board->getSizeX();x++){
				Box* trgt_box = board->box(x,y);
				if(!trgt_box->isCandidate()){
					continue;
				}
				if(n_d==c_d){
					flag = true;
					inter_x = x; inter_y = y;
					break;
				}
				n_d++;
			}
			if(flag) break;
		}
		
		// 中間ポートの四方を見て,中間ポートを利用する数字をランダムに選択
		checkCandidateLine(inter_x,inter_y); // 候補となるラインを調査
		
		candidate_count = 0; // 候補数
		inter_line = -1;
		for(int i=1;i<=board->getLineNum();i++){
			Line* trgt_line = board->line(i);
			if(trgt_line->isCandidate()){
				candidate_count++;
				//if(candidate_count>1) cout << ", ";
				//cout << i;
			}
		}
		//cout << endl;
		if(candidate_count==0) continue; // 候補数0なら利用しない
		
		c_d = (int)mt_genrand_int32(0, candidate_count - 1); // 選択は候補の中で何番目か?
		n_d = 0; // 何番目なのかをカウントする用の変数
		
		for(int i=1;i<=board->getLineNum();i++){
			Line* trgt_line = board->line(i);
			if(!trgt_line->isCandidate()) continue;
			if(n_d==c_d){
				inter_line = i;
				break;
			}
			n_d++;
		}
		
		//cout << "Set (" << inter_x << "," << inter_y << ") InterPort of Line " << inter_line << endl;
		Line* line_i = board->line(inter_line);
		line_i->setIntermediateUse();
		line_i->setIntermediatePort(inter_x,inter_y);
		use_intermediate_port = true;
		// m--; // 使うかどうか思案中・・・
		
		
		// ペナルティ更新(旧)
		//penalty_T = (int)(NT * m);
		//penalty_C = (int)(NC * m);
	}
	
	
	// 解導出できなかった場合
	if(!isFinished()){
		for(int i=1;i<=board->getLineNum();i++){
			printLine(i);
		}
		cerr << "Cannot solve!! (error: 4)" << endl;
		exit(4);
	}
	
	//デバッグ用
	//for(int y=0;y<board->getSizeY();y++){
		//for(int x=0;x<board->getSizeX();x++){
			//cout << "(" << x << "," << y << ") ";
			//Box* trgt_box = board->box(x,y);
			//cout << " N:" << trgt_box->getNorthNum();
			//cout << " E:" << trgt_box->getEastNum();
			//cout << " S:" << trgt_box->getSouthNum();
			//cout << " W:" << trgt_box->getWestNum();
			//cout << endl;
		//}
	//}
	
	//for(int i=1;i<=board->getLineNum();i++){
	//	calcCost(i);
	//}
	
	delete board;
	return 0;
}
void PhysicConstraintWidget::deleteConstraint()
{
	emit deleting(this);
}
Exemple #17
0
void ServerInfo::emitDeleting() {
	emit(deleting(this));
}
Exemple #18
0
 //! Call the deleting destructor
 void call_deleting(Class * const ptr){ deleting(ptr); }