Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <windows.h>
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- # define L 5
- # define C 29
- typedef struct BICOMB {
- int c[L][C];
- float preco;
- int Luglivres;
- float receita;
- double percent;
- };
- BICOMB semana[7] = { { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 5, 56, 0 } , };
- BICOMB c2 = { {
- { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
- { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
- { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, 3, 56 };
- double lugoc1;
- double lugoc2;
- void seatcheck1(int l, int colu, int v[5][29]) {
- if (v[l][2 * colu] == 0)
- {
- v[l][2 * colu] = 1;
- v[l][(2 * colu) - 1] = 1;
- printf("O seu lugar foi marcado com sucesso. \n");
- lugoc1++;
- }
- else if (v[l][2 * colu] == 1)
- {
- printf("\nO lugar escolhido ja esta ocupado.\n");
- }
- }
- void seatcheck2(int li, int colun, int b[5][29]) {
- if (b[li][2 * colun] == 0)
- {
- b[li][2 * colun] = 1;
- b[li][(2 * colun) - 1] = 1;
- printf("O seu lugar foi marcado com sucesso. \n");
- lugoc2++;
- }
- else if (b[li][2 * colun] == 1)
- {
- printf("\nO lugar escolhido ja esta ocupado.\n");
- }
- }
- void draw1(int dsemana)
- {
- int i, j;
- printf("\t 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ");
- for (i = 0; i < L; i++)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
- printf("\n\t ");
- for (j = 0; j < C; j++)
- {
- switch (semana[dsemana - 1].c[i][j])
- {
- case 0: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN);
- break;
- case 1: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED);
- break;
- case 2: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE);
- break;
- case 3: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN);
- break;
- case 4:
- printf("A");
- break;
- case 5:
- printf("B");
- break;
- case 6:
- printf(" ");
- break;
- case 7:
- printf("C");
- break;
- case 8:
- printf("D");
- break;
- }
- printf(" ");
- }
- }
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
- printf("\n\n");
- }
- void draw2()
- {
- int i, j;
- printf("\t 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ");
- for (i = 0; i < L; i++)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
- printf("\n\t ");
- for (j = 0; j < C; j++)
- {
- switch (c2.c[i][j])
- {
- case 0: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN);
- break;
- case 1: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED);
- break;
- case 2: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE);
- break;
- case 3: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN);
- break;
- case 4:
- printf("A");
- break;
- case 5:
- printf("B");
- break;
- case 6:
- printf(" ");
- break;
- case 7:
- printf("C");
- break;
- case 8:
- printf("D");
- break;
- }
- printf(" ");
- }
- }
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
- printf("\n\n");
- }
- int main()
- {
- float prec1, prec2;
- char b, ll, tryn, ap2;
- int ap, classe, col, diasemana;
- prec1 = 5;
- prec2 = 3;
- printf("\t\t\tBICOMB\n\n");
- printf("\tGestao de vendas de Bilhetes de Comboio\n");
- int i, j;
- printf("\n\n");
- printf("\nPreco atual dos bilhetes: \n\tClasse 1: %0.1f Euros\n\tClasse 2: %0.1f Euros\n ", prec1, prec2);
- printf("\nNumero de lugares disponiveis na classe 1: 56");
- printf("\nNumero de lugares disponiveis na classe 2: 56");
- printf("\nPor Favor utilize os carateres indicados para responder.\n\n");
- ALT_PRECO: printf("Antes da marcacao de lugares, deseja alterar o preco dos bilhetes? S/N: \n");
- scanf(" %c", &b);
- if (b == 'S' || b == 's') {
- REPEAT: printf("Pretende alterar o preco da classe 1 ou da classe 2? 1/2: \n");
- scanf("%d", &ap);
- }
- else if (b == 'N' || b == 'n') {
- goto INITIATE;
- }
- else {
- printf("Nao inseriu nenhum dos caracteres indicados \n");
- goto ALT_PRECO;
- }
- if (ap == 1) {
- printf("Introduza o novo preco para a classe 1: \n");
- scanf("%f", &prec1);
- }
- else if (ap == 2) {
- printf("Introduza o novo preco para a classe 2: \n");
- scanf("%f", &prec2);
- }
- else {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n");
- goto REPEAT;
- }
- printf("\nPretende alterar novamente o preco? S/N : \n"); scanf(" %c", &ap2);
- if (ap2 == 's' || ap2 == 'S') {
- goto REPEAT;
- }
- else if (ap2 == 'n' || ap2 == 'N') {
- goto PRECO_ATUAL;
- }
- else {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
- goto ALT_PRECO;
- }
- PRECO_ATUAL:printf("Preco atual dos bilhetes: \n\tClasse 1: %0.1lf Euros \n\tClasse 2: %0.1lf Euros\n", prec1, prec2);
- Sleep(1000);
- INITIATE: printf("Ira agora iniciar a compra dos bilhetes. Aguarde...\n");
- Sleep(2500);
- VENDAS:printf("Introduza a classe do lugar desejado: 1/2: ");
- scanf("%d", &classe);
- if (classe == 1) {
- printf("Na classe 1 pode comprar o seu bilhete no dia de semana que lhe for mais cómodo.\n");
- printf("Indique o dia da semana que pretende:\n 1 - Segunda-Feira\n");
- printf("2 - Terca-Feira\n");
- printf("3 - Quarta-Feira\n");
- printf("4 - Quinta-Feira\n");
- printf("5 - Sexta-Feira\n");
- printf("6 - Sabado\n");
- printf("7 - Domingo\n");
- printf("A sua resposta: \n"); scanf("%d", &diasemana);
- draw1(diasemana);
- printf("\nNúmero de lugares livres : %d", semana[diasemana].Luglivres);
- printf("\nPercentagem de bilhetes vendidos: %.2f%%", semana[diasemana].percent);
- printf("\nReceita actual do proprio dia: %.2f Euros", semana[diasemana - 1].receita);
- FILA1: printf("\n\nIntroduza a letra da fila do lugar: A/B/C/D ");
- scanf(" %c", &ll);
- if (ll != 'a' && ll != 'A' && ll != 'b' && ll != 'B' && ll != 'c' && ll != 'C' && ll != 'd' && ll != 'D') {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
- goto FILA1;
- }
- else {
- COLUNA1: printf("\n\nIntroduza o numero do lugar: (De 1 a 14) ");
- scanf("%d", &col);
- if (col >= 1 && col <= 14) {
- if (ll == 'a' || ll == 'A')
- {
- seatcheck1(0, col, semana[diasemana - 1].c);
- }
- else if (ll == 'b' || ll == 'B')
- {
- seatcheck1(1, col, semana[diasemana - 1].c);
- }
- else if (ll == 'c' || ll == 'C')
- {
- seatcheck1(3, col, semana[diasemana - 1].c);
- }
- else if (ll == 'd' || ll == 'D')
- {
- seatcheck1(4, col, semana[diasemana - 1].c);
- }
- draw1(diasemana);
- goto TRYN;
- }
- else {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
- goto COLUNA1;
- }
- }
- }
- else if (classe == 2)
- {
- draw2();
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
- printf("\nNúmero de lugares livres : %d", c2.Luglivres);
- printf("\nPercentagem de bilhetes vendidos: %.2f%%", c2.percent);
- printf("\nReceita actual do proprio dia: %.2f Euros", c2.receita);
- FILA2: printf("\n\nIntroduza a letra da fila do lugar: A/B/C/D ");
- scanf(" %c", &ll);
- if (ll != 'a' && ll != 'A' && ll != 'b' && ll != 'B' && ll != 'c' && ll != 'C' && ll != 'd' && ll != 'D') {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
- goto FILA2;
- }
- else {
- COLUNA2: printf("\n\nIntroduza o numero do lugar: (De 1 a 14) ");
- scanf("%d", &col);
- if (col >= 1 && col <= 14) {
- if (ll == 'a' || ll == 'A')
- {
- seatcheck2(0, col, c2.c);
- }
- else if (ll == 'b' || ll == 'B')
- {
- seatcheck2(1, col, c2.c);
- }
- else if (ll == 'c' || ll == 'C')
- {
- seatcheck2(3, col, c2.c);
- }
- else if (ll == 'd' || ll == 'D')
- {
- seatcheck2(4, col, c2.c);
- }
- }
- else {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n ");
- goto COLUNA2;
- }
- }
- draw2();
- TRYN: printf("\n\n Deseja marcar outro lugar? S/N: ");
- scanf(" %c", &tryn);
- if (tryn == 's' || tryn == 'S')
- {
- goto VENDAS;
- }
- else if (tryn == 'n' || tryn == 'N')
- {
- printf("A encerrar...");
- }
- else {
- printf("Nao inseriu nenhum dos caracteres indicados. Iremos repetir a pergunta. \n");
- goto TRYN;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement