Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <time.h>
- typedef struct produto {
- int id;
- int categoria;
- char modelo [20];
- float preco;
- int desconto;
- char seccao;
- int num;
- } Produto;
- typedef struct {
- int dia, mes, ano;
- } data_fat;
- typedef struct {
- int id_fat;
- int nif;
- char nome [50];
- int id_prod;
- int valor;
- data_fat data;
- } fatura;
- void abrir_loja (Produto *ptr) {
- FILE *ptr_f;
- char stock[100]="stock.txt";
- ptr_f = fopen(stock,"r");
- int i[14];
- int a1;
- int a2;
- char a3 [20];
- float a4;
- int a5;
- char a6;
- int a7;
- while(!feof(ptr_f)) {
- fscanf(ptr_f," %d %d %s %f %d %c", &a1, &a2, a3, &a4, &a5, &a6);
- switch(a1) {
- case 1: ptr[0].num = i[0]++; break;
- case 2: (ptr[1]).num = i[1]++; break;
- case 3: (ptr[2]).num = i[2]++; break;
- case 4: (ptr[3]).num = i[3]++; break;
- case 5: (ptr[4]).num = i[4]++; break;
- case 6: (ptr[5]).num = i[5]++; break;
- case 7: (ptr[6]).num = i[6]++; break;
- case 8: (ptr[7]).num = i[7]++; break;
- case 9: (ptr[8]).num = i[8]++; break;
- case 10: (ptr[9]).num = i[9]++; break;
- case 11: (ptr[10]).num = i[10]++; break;
- case 12: (ptr[11]).num = i[11]++; break;
- case 13: (ptr[12]).num = i[12]++; break;
- case 14: (ptr[13]).num = i[13]++; break;
- case 15: (ptr[14]).num = i[14]++; break;
- }
- }
- fclose(ptr_f);
- }
- void ver_catalogo(int c1, Produto *ptr) {
- switch(c1) {
- case 1: printf("1 - Mesa %s - %.2f€ com %d%% de Desconto = %3.2f€ - Secção %c\n", ptr[0].modelo, ptr[0].preco, ptr[0].desconto, (ptr[0].preco-((ptr[0].preco)*(ptr[0].desconto))/100), ptr[0].seccao);
- printf("2 - Mesa %s - %.2f€ com %d%% de Desconto = %3.2f€ - Secção %c\n", ptr[1].modelo, ptr[1].preco, ptr[1].desconto,(ptr[1].preco-((ptr[1].preco)*(ptr[1].desconto))/100) , ptr[1].seccao);
- printf("3 - Mesa %s - %.2f€ com %d%% de Desconto = %3.2f€ - Secção %c\n\n", ptr[2].modelo, ptr[2].preco, ptr[2].desconto,(ptr[2].preco-((ptr[2].preco)*(ptr[2].desconto))/100) , ptr[2].seccao); break;
- case 2: printf("1 - Cadeira %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[3].modelo, ptr[3].preco, ptr[3].desconto,(ptr[3].preco-((ptr[3].preco)*(ptr[3].desconto))/100) , ptr[3].seccao);
- printf("2 - Cadeira %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[4].modelo, ptr[4].preco, ptr[4].desconto, (ptr[4].preco-((ptr[4].preco)*(ptr[4].desconto))/100), ptr[4].seccao);
- printf("3 - Cadeira %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[5].modelo, ptr[5].preco, ptr[5].desconto,(ptr[5].preco-((ptr[5].preco)*(ptr[5].desconto))/100) , ptr[5].seccao); break;
- case 3: printf("1 - Cama %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[6].modelo, ptr[6].preco, ptr[6].desconto,(ptr[6].preco-((ptr[6].preco)*(ptr[6].desconto))/100) , ptr[6].seccao);
- printf("2 - Cama %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[7].modelo, ptr[7].preco, ptr[7].desconto,(ptr[7].preco-((ptr[7].preco)*(ptr[7].desconto))/100) , ptr[7].seccao);
- printf("3 - Cama %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[8].modelo, ptr[8].preco, ptr[8].desconto,(ptr[8].preco-((ptr[8].preco)*(ptr[8].desconto))/100) , ptr[8].seccao); break;
- case 4: printf("1 - Roupeiro %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[9].modelo, ptr[9].preco, ptr[9].desconto, (ptr[9].preco-((ptr[9].preco)*(ptr[9].desconto))/100), ptr[9].seccao);
- printf("2 - Roupeiro %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[10].modelo, ptr[10].preco, ptr[10].desconto,(ptr[10].preco-((ptr[10].preco)*(ptr[10].desconto))/100) , ptr[10].seccao);
- printf("3 - Roupeiro %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[11].modelo, ptr[11].preco, ptr[11].desconto, (ptr[11].preco-((ptr[11].preco)*(ptr[11].desconto))/100), ptr[11].seccao); break;
- case 5: printf("1 - Armário %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[12].modelo, ptr[12].preco, ptr[12].desconto,(ptr[12].preco-((ptr[12].preco)*(ptr[12].desconto))/100) , ptr[12].seccao);
- printf("2 - Armário %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[13].modelo, ptr[13].preco, ptr[13].desconto,(ptr[13].preco-((ptr[13].preco)*(ptr[13].desconto))/100) , ptr[13].seccao);
- printf("3 - Armário %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[14].modelo, ptr[14].preco, ptr[14].desconto,(ptr[14].preco-((ptr[14].preco)*(ptr[14].desconto))/100), ptr[14].seccao); break;
- case 6: printf("1 - Mesa %s - %.2f€ com %d%% de Desconto = %3.2f€ - Secção %c\n", ptr[0].modelo, ptr[0].preco, ptr[0].desconto,(ptr[0].preco-((ptr[0].preco)*(ptr[0].desconto))/100) , ptr[0].seccao);
- printf("2 - Mesa %s - %.2f€ com %d%% de Desconto = %3.2f€ - Secção %c\n", ptr[1].modelo, ptr[1].preco, ptr[1].desconto,(ptr[1].preco-((ptr[1].preco)*(ptr[1].desconto))/100) , ptr[1].seccao);
- printf("3 - Mesa %s - %.2f€ com %d%% de Desconto = %3.2f€ - Secção %c\n\n", ptr[2].modelo, ptr[2].preco, ptr[2].desconto, (ptr[2].preco-((ptr[2].preco)*(ptr[2].desconto))/100), ptr[2].seccao);
- printf("4 - Cadeira %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[3].modelo, ptr[3].preco, ptr[3].desconto,(ptr[3].preco-((ptr[3].preco)*(ptr[3].desconto))/100) , ptr[3].seccao);
- printf("5 - Cadeira %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[4].modelo, ptr[4].preco, ptr[4].desconto,(ptr[4].preco-((ptr[4].preco)*(ptr[4].desconto))/100) , ptr[4].seccao);
- printf("6 - Cadeira %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[5].modelo, ptr[5].preco, ptr[5].desconto,(ptr[5].preco-((ptr[5].preco)*(ptr[5].desconto))/100) , ptr[5].seccao);
- printf("7 - Cama %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[6].modelo, ptr[6].preco, ptr[6].desconto,(ptr[6].preco-((ptr[6].preco)*(ptr[6].desconto))/100) , ptr[6].seccao);
- printf("8 - Cama %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[7].modelo, ptr[7].preco, ptr[7].desconto, (ptr[7].preco-((ptr[7].preco)*(ptr[7].desconto))/100), ptr[7].seccao);
- printf("9 - Cama %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[8].modelo, ptr[8].preco, ptr[8].desconto,(ptr[8].preco-((ptr[8].preco)*(ptr[8].desconto))/100) , ptr[8].seccao);
- printf("10 - Roupeiro %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[9].modelo, ptr[9].preco, ptr[9].desconto,(ptr[9].preco-((ptr[9].preco)*(ptr[9].desconto))/100) , ptr[9].seccao);
- printf("11 - Roupeiro %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[10].modelo, ptr[10].preco, ptr[10].desconto, (ptr[10].preco-((ptr[10].preco)*(ptr[10].desconto))/100), ptr[10].seccao);
- printf("12 - Roupeiro %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[11].modelo, ptr[11].preco, ptr[11].desconto,(ptr[11].preco-((ptr[11].preco)*(ptr[11].desconto))/100) , ptr[11].seccao);
- printf("13 - Armário %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[12].modelo, ptr[12].preco, ptr[12].desconto,(ptr[12].preco-((ptr[12].preco)*(ptr[12].desconto))/100) , ptr[12].seccao);
- printf("14 - Armário %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n", ptr[13].modelo, ptr[13].preco, ptr[13].desconto,(ptr[13].preco-((ptr[13].preco)*(ptr[13].desconto))/100) , ptr[13].seccao);
- printf("15 - Armário %s - %.2f€ com %d%% de Desconto = %.2f€ - Secção %c\n\n", ptr[14].modelo, ptr[14].preco, ptr[14].desconto, (ptr[14].preco-((ptr[14].preco)*(ptr[14].desconto))/100), ptr[14].seccao); break;
- }
- }
- void efetuar_compra(Produto *ptr, fatura *fat) {
- int c1, c2, i=0, j, fnif;
- float fvalor;
- char c3, c4, fnome[50];
- printf("Qual é o seu NIF? "); scanf("%d", &fnif);
- printf("\nEm que nome pretende deixar esta fatura? "); gets(fnome);
- while ((c3 != 'N' || c3 != 'n')) {
- printf("\nDe que categoria deseja comprar?\n1 - Mesas\n2 - Cadeiras\n3 - Camas\n4 - Roupeiros\n5 - Armários\n"); scanf("%d", &c1);
- ver_catalogo(c1, ptr);
- printf("Escolha o numero do produto: "); scanf("%d", &c2);
- printf("Pretende efetuar outra compra?\nS - Sim\nN - Não\n"); scanf("%c", &c3);
- fat[i].nif = fnif;
- fat[i].nome = &fnome;
- fat[i].id_fat++;
- fat[i].id_prod = c1*3-3+c2;
- fat[i].valor = (ptr[fat[i].id_prod-1].preco-((ptr[fat[i].id_prod-1].preco)*(ptr[fat[i].id_prod-1].desconto))/100);
- fat[i].data.dia = 13; fat[i].data.dia = 12; fat[i].data.dia = 14;
- i++;
- if(c3 == 'N' || c3 == 'n') j=i;
- }
- for (i=0;i=j;i++) {
- printf("%d %d %s %d %.2f %d-%d-%d\n", fat[i].id_fat, fat[i].nif, fat[i].nome, fat[i].id_prod, fat[i].valor, fat[i].data.dia, fat[i].data.mes, fat[i].data.ano);
- fvalor = fvalor + fat[i].valor;
- }
- printf("O valor total da sua compra é de %.2f euros. Deseja continuar?\nS - Sim\nN - Não\n", fvalor); scanf("%c", &c4);
- }
- main() {
- char escolha, a;
- int i,c1;
- Produto basededados[15] = {{1, 1, "Inverno", 29.90, 0, 'A', 0},
- {2, 1, "Verao" ,19.90, 0 ,'A', 0},
- {3, 1, "Primavera", 14.90 ,5 ,'B', 0},
- {4, 2, "Fashion", 59.90, 0, 'A', 0},
- {5, 2, "Cool", 39.90, 10, 'C', 0},
- {6, 2, "Awesome", 49.90, 30, 'C', 0},
- {7, 3, "Baixa", 119.90, 0, 'D', 0},
- {8, 3, "Media", 169.90, 0, 'E', 0},
- {9, 3, "Alta", 259.90, 15, 'F', 0},
- {10, 4, "Europeu", 129.90, 50, 'G', 0},
- {11, 4, "Asiatico", 699.90 , 0,'H', 0},
- {12, 4, "Americano", 399.90, 0, 'I', 0},
- {13, 5, "Madeira", 219.90, 0, 'J', 0},
- {14, 5, "Plastico", 59.90, 25, 'K', 0},
- {15, 5, "Metal", 159.90, 0, 'N', 0}
- };
- fatura dadosfatura[50];
- abrir_loja(basededados);
- do {
- printf("\n***** YKEA - Cliente *****\n");
- printf("1 - Ver Catalogo\n");
- printf("2 - Efetuar Compra\n");
- printf("3 - Histórico de Compras\n");
- printf("4 - Promoções\n");
- printf("5 - Mapa da Loja\n");
- printf("S - Sair\n");
- printf("A - Modo Admin\n");
- printf("**************************\n\n");
- printf("O que deseja fazer? (use o número ou a letra correspondente do menu)\n");
- scanf(" %c", &escolha);
- switch(escolha){
- case '1':
- printf("Que categoria deseja ver:\n1 - Mesas\n2 - Cadeiras\n3 - Camas\n4 - Roupeiros\n5 - Armários\nT - Todos\n");
- scanf("%d", &c1);
- ver_catalogo(c1, basededados);
- break;
- case '2': efetuar_compra(basededados, dadosfatura);
- break;
- case '3': break;
- case '4': break;
- case '5': break;
- case 's':
- case 'S': break;
- case 'a':
- case 'A': break;
- default : printf("Opção Inválida\n"); break;
- }
- printf("Deseja fazer outra operação? (s=sim/n=não)\n");
- scanf(" %c", &a);
- }
- while(a!='n');
- }
Advertisement
Add Comment
Please, Sign In to add comment