Projeto supermercado

Disponível somente no TrabalhosFeitos
  • Páginas : 11 (2696 palavras )
  • Download(s) : 0
  • Publicado : 8 de abril de 2013
Ler documento completo
Amostra do texto
#include <iostream.h>
#include <stdlib.h>
# define limpa system("cls")

// Estrutura para 'produto'
struct produto {
int codigo,estoque;
float preco;
char nome[30];
};

// Estrutura para 'cliente'
struct cliente {
int codigo;
char nome[30];
char end[30];
char fone[16];
float vdevido;
};

// Estrutura para 'venda'
struct venda {
int codigo, codvnd, codcli,codprod, qtdeprod;
};

// Variaveis das estruturas
struct produto prod[100];
struct cliente cli[100];
struct venda vnd[100];

// Grava arquivo
void gravar_arquivo() {
int i;
//Variavel do tipo ponteiro para arquivo onde será feito o backup
FILE *ARQ1;
FILE *ARQ2;
FILE *ARQ3;
//Cria um backup do arquivo atual para prevenir errosrename("ARQFIN1.txt","ARQFINBKP1.txt");
rename("ARQFIN2.txt","ARQFINBKP2.txt");
rename("ARQFIN3.txt","ARQFINBKP3.txt");
remove("ARQFIN1.txt");
remove("ARQFIN2.txt");
remove("ARQFIN3.txt");

//Abre o arquivo para gravação
ARQ1=fopen("ARQFIN1.txt","a+");
//Verifica se o arquivo foi aberto corretamente
if (ARQ1 == 0) {
printf("Erro na Abertura do Arquivo deproduto\n");
system("pause");
exit(-1);
}
//Abre o arquivo para gravação
ARQ2=fopen("ARQFIN2.txt","a+");
//Verifica se o arquivo foi aberto corretamente
if (ARQ2 == 0) {
printf("Erro na Abertura do Arquivo de cliente\n");
system("pause");
exit(-1);
}
//Abre o arquivo para gravação
ARQ3=fopen("ARQFIN3.txt","a+");//Verifica se o arquivo foi aberto corretamente
if (ARQ3 == 0) {
printf("Erro na Abertura do Arquivo de venda\n");
system("pause");
exit(-1);
}
fwrite(&prod,sizeof(struct produto),100,ARQ1);
fwrite(&cli,sizeof(struct cliente),100,ARQ2);
fwrite(&vnd,sizeof(struct venda),100,ARQ3);
//Fecha oarquivo para evitar problemas
fclose(ARQ1);
fclose(ARQ2);
fclose(ARQ3);
}

// Carrega arquivo
void carregar_arquivo() {
//Variavel do tipo ponteiro para arquivo onde será feito o backup
FILE *ARQ1;
FILE *ARQ2;
FILE *ARQ3;
//Abre o arquivo para leitura
ARQ1=fopen("ARQFIN1.txt","r");
ARQ2=fopen("ARQFIN2.txt","r");ARQ3=fopen("ARQFIN3.txt","r");
//Verifica se o arquivo foi aberto corretamente
if (ARQ1 == 0) {
printf("Erro na Abertura do Arquivo de produto ou Arquivo nao encontrado\n");
system("pause");
return;
}
//Verifica se o arquivo foi aberto corretamente
if (ARQ2 == 0) {
printf("Erro na Abertura do Arquivo de cliente ou Arquivo nao encontrado\n");system("pause");
return;
}
//Verifica se o arquivo foi aberto corretamente
if (ARQ3 == 0) {
printf("Erro na Abertura do Arquivo de venda ou Arquivo nao encontrado\n");
system("pause");
return;
}
fread(&prod,sizeof(struct produto),100,ARQ1);
fread(&cli,sizeof(struct cliente),100,ARQ2);fread(&vnd,sizeof(struct venda),100,ARQ3);
//Fecha o arquivo para evitar problemas
fclose(ARQ1);
fclose(ARQ2);
fclose(ARQ3);
}

// 1 Cadastra Cliente
void cadastra_cliente () {
int i,opcao;

for (i=0;i<100;i++) {
if (cli[i].codigo == 0) {
cli[i].codigo = i+1;
printf ("\n\tCodigo: \t\t\t%d",cli[i].codigo);printf ("\n\tDigite nome do cliente: \t");
gets(cli[i].nome);
printf ("\tDigite endereco do cliente: \t");
gets (cli[i].end);
printf ("\tDigite fone do cliente: \t");
gets (cli[i].fone);
cli[i].vdevido = 0;

//Continua ou nao cadastrar
printf ("\n\n\n\tDeseja continuar...
tracking img