Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- typedef struct {
- float preco;
- int posicao[2];
- int linha;
- int coluna;
- char nome[50];
- int quantidade;
- } produto;
- int main() {
- int quantidade_produtos;
- scanf("%d", &quantidade_produtos);
- produto estoque[quantidade_produtos];
- int flag = 0;
- int contador = 0;
- char outputs[1000][100]; //s? vcs e Deus sabem quantos comandos v?o ser dados
- int outputIndex = 0;
- while (flag != 1) {
- char acao[40];
- int lugar[2];
- char nome[50];
- int quantidade;
- float preco;
- scanf("%s", acao);
- if (strcmp(acao, "EXIT") == 0) {
- sprintf(outputs[outputIndex], "Saindo...\n");
- flag = 1;
- }
- else if (strcmp(acao, "CREATE") == 0) {
- // linha coluna nome quantidade pre?o
- scanf(" %d %d %s %d %f", &lugar[0], &lugar[1],
- nome, &quantidade, &preco);
- int isSamePlace = 0;
- int flagg = 0;
- for (int i = 0; i < contador && flag != 1; i++) {
- if (estoque[i].posicao[0] == lugar[0] &&
- estoque[i].posicao[1] == lugar[1]) {
- isSamePlace = 1;
- sprintf(outputs[outputIndex], "ERRO: espa?o ja ocupado\n");
- flagg = 1;
- }
- }
- if (!isSamePlace) {
- estoque[contador].posicao[0] = lugar[0];
- estoque[contador].posicao[1] = lugar[1];
- estoque[contador].preco = preco;
- estoque[contador].quantidade = quantidade;
- strcpy(estoque[contador].nome, nome);
- sprintf(outputs[outputIndex], "Produto adicionado no estoque!\n");
- contador++;
- }
- }
- else if (strcmp(acao, "READ") == 0) {
- // nome
- scanf("%s", nome);
- int flagg = 0;
- for (int i = 0; i < contador && flagg != 1; i++) {
- if (strcmp(estoque[i].nome, nome) == 0) {
- //"LINHA: COLUNA: QTD: PRECO: "
- sprintf(outputs[outputIndex], "LINHA: %d COLUNA: %d QTD: %d PRECO: %.2f\n",
- estoque[i].posicao[0], estoque[i].posicao[1],
- estoque[i].quantidade, estoque[i].preco);
- flagg = 1;
- }
- }
- if (flagg == 0) {
- sprintf(outputs[outputIndex], "ERRO: Produto nao encontrado.\n");
- }
- }
- else if (strcmp(acao, "UPDATE") == 0) {
- // nome quantidade pre?o
- scanf("%s %d %f", nome, &quantidade, &preco);
- int flagg = 0;
- for (int i = 0; i < contador && flagg != 1; i++) {
- if (strcmp(estoque[i].nome, nome) == 0) {
- // quantidade, preco
- estoque[i].quantidade = quantidade;
- estoque[i].preco = preco;
- sprintf(outputs[outputIndex], "Produto atualizado!\n");
- flagg = 1;
- }
- }
- if (flagg == 0) sprintf(outputs[outputIndex], "Produto nao encontrado!\n");
- }
- else if (strcmp(acao, "DELETE") == 0) {
- scanf("%s", nome);
- int flagg = 0;
- for (int i = 0; i < contador && flagg != 1; i++) {
- if (strcmp(estoque[i].nome, nome) == 0) {
- for (int j = i; j < contador - 1; j++) {
- estoque[j] = estoque[j + 1];
- }
- contador--;
- sprintf(outputs[outputIndex], "Produto removido!\n");
- flagg = 1;
- }
- }
- if (flagg == 0) {
- sprintf(outputs[outputIndex], "Produto nao encontrado!\n");
- }
- }
- else if (strcmp(acao, "PRINT") == 0) {
- for (int i = 0; i < contador; i++) {
- //"LINHA: COLUNA: NOME: QTD: PRECO: "
- sprintf(outputs[outputIndex], "LINHA: %d COLUNA: %d NOME: %s QTD: %d PRECO: %.2f\n",
- estoque[i].posicao[0], estoque[i].posicao[1],
- estoque[i].nome, estoque[i].quantidade, estoque[i].preco);
- outputIndex++;
- }
- }
- outputIndex++;
- }
- // Print all messages in order
- for (int i = 0; i < outputIndex; i++) {
- printf("%s", outputs[i]);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment