Ola pessoal estou com um problema aqui,preciso transformar esse programa que estava em arquivos para lista encadeada em C,até comecei mas ali fiquei se alguém pudesse me ajudar a transformar ele em lista encadeada.Se algum ajudasse eu sair do começo ao menos
#include<stdio.h>
#include<stdlib.h>
struct shopping
{
char nome[20];
int codigo, tipo;
float area, condominio;
struct shopping *prox;
}
typedef struct shopping * pno;
void abre_arquivo(void)
{
p_shopping=fopen("shopping_center.bin","a+b");
}
float condominio2(int tipo,float area)
{
switch(t_tipo)
{
case 1: return t_area*50; break;
case 2: return t_area*65; break;
case 3: return t_area*80; break;
case 4: return t_area*95; break;
}
}
void mostrar(void)
{
printf("\n%6d %-13s %4.2f %4d %10.2f", shopping.codigo,shopping.nome,shopping.area,shoppi ng.tipo,shopping.condominio);
}
void procurar(int cod)//procurar
{
rewind(p_shopping);
do{
fread(&shopping, sizeof(tipo_shopping), 1, p_shopping);
if(cod==shopping.codigo) mostrar();
}while ( feof(p_shopping)==0 && cod!=shopping.codigo);
if(cod!=shopping.codigo)
printf("\n Loja não cadastrada");
}
void cadastrar(void)
{
int continuar;
do{
system("cls");
printf("\t\t Cadastro");
printf("\n\n Shopping Center");
printf("\n\n Cadastro de loja");
printf("\n\n Codigo: ");
scanf("%d",&shopping.codigo);
printf("Nome: ");
fflush(stdin);
gets(shopping.nome);
printf("Area: ");
scanf("%f",&shopping.area);
printf("Tipo (1-Confeccoes, 2-alimentacao, 3-livros, 4-servicos): ");
scanf("%d",&shopping.tipo);
shopping.condominio=condominio2(shopping.tipo, shopping.area);
printf("\n Cadastrado com sucesso");
printf("\n\n Cadastrar outra (1-sim / 0-não): ");
scanf("%d",&continuar);
}while(continuar==1);
}
void consultar (void)
{
int t_codigo,continuar;
do{
system("cls");
printf("\t\t Consultar");
printf("\n\n Shopping Center");
printf("\n\n Consultar Loja");
printf("\n\n Codigo da loja que deseja consultar: ");
scanf("%d",&t_codigo);
printf("\n________________________________________ ___________________");
printf("\n Codigo Nome Area Tipo Condominio");
printf("\n________________________________________ ___________________");
procurar(t_codigo);
printf("\n________________________________________ ____________________");
printf("\n\n Consultar outra loja(1-sim/0-não): ");
scanf("%d",&continuar);
}while(continuar==1);
}
void listar(void)
{
system("cls");
printf("\t\t Relatorio geral");
printf("\n\n Shopping Center");
printf("\n\n Listagem geral");
printf("\n________________________________________ ______________________");
printf("\n Codigo Nome Area Tipo Condominio");
printf("\n________________________________________ ______________________");
rewind(p_shopping);
do{
fread(&shopping, sizeof(tipo_shopping), 1, p_shopping);
if(feof(p_shopping)==0) mostrar();
}while(feof(p_shopping)==0);
printf("\n________________________________________ ______________________");
printf("\n Tecle enter para voltar ao menu...");
getchar();
getchar();
}
main()
{
int opcao;
abre_arquivo();
do{
system("cls");
printf("\t\t Tela de Menu");
printf("\n \n Shopping Center");
printf("\n Opcoes");
printf("\n 1-Cadastrar loja");
printf("\n 2-Consultar loja");
printf("\n 3-Listagem de Todas as Lojas");
printf("\n 0-Sair");
printf("\n Entre com a opcao: ");
scanf("%d",&opcao);
if(opcao!=0)
{
switch(opcao)
{
case 1: cadastrar();break;
case 2: consultar(); break;
case 3: listar(); break;
default: printf("\n Opção Invalida"); break;
}
}
}while (opcao!=0);
}
Pergunta
Titon
Ola pessoal estou com um problema aqui,preciso transformar esse programa que estava em arquivos para lista encadeada em C,até comecei mas ali fiquei se alguém pudesse me ajudar a transformar ele em lista encadeada.Se algum ajudasse eu sair do começo ao menos
#include<stdio.h> #include<stdlib.h> struct shopping { char nome[20]; int codigo, tipo; float area, condominio; struct shopping *prox; } typedef struct shopping * pno; void abre_arquivo(void) { p_shopping=fopen("shopping_center.bin","a+b"); } float condominio2(int tipo,float area) { switch(t_tipo) { case 1: return t_area*50; break; case 2: return t_area*65; break; case 3: return t_area*80; break; case 4: return t_area*95; break; } } void mostrar(void) { printf("\n%6d %-13s %4.2f %4d %10.2f", shopping.codigo,shopping.nome,shopping.area,shoppi ng.tipo,shopping.condominio); } void procurar(int cod)//procurar { rewind(p_shopping); do{ fread(&shopping, sizeof(tipo_shopping), 1, p_shopping); if(cod==shopping.codigo) mostrar(); }while ( feof(p_shopping)==0 && cod!=shopping.codigo); if(cod!=shopping.codigo) printf("\n Loja não cadastrada"); } void cadastrar(void) { int continuar; do{ system("cls"); printf("\t\t Cadastro"); printf("\n\n Shopping Center"); printf("\n\n Cadastro de loja"); printf("\n\n Codigo: "); scanf("%d",&shopping.codigo); printf("Nome: "); fflush(stdin); gets(shopping.nome); printf("Area: "); scanf("%f",&shopping.area); printf("Tipo (1-Confeccoes, 2-alimentacao, 3-livros, 4-servicos): "); scanf("%d",&shopping.tipo); shopping.condominio=condominio2(shopping.tipo, shopping.area); printf("\n Cadastrado com sucesso"); printf("\n\n Cadastrar outra (1-sim / 0-não): "); scanf("%d",&continuar); }while(continuar==1); } void consultar (void) { int t_codigo,continuar; do{ system("cls"); printf("\t\t Consultar"); printf("\n\n Shopping Center"); printf("\n\n Consultar Loja"); printf("\n\n Codigo da loja que deseja consultar: "); scanf("%d",&t_codigo); printf("\n________________________________________ ___________________"); printf("\n Codigo Nome Area Tipo Condominio"); printf("\n________________________________________ ___________________"); procurar(t_codigo); printf("\n________________________________________ ____________________"); printf("\n\n Consultar outra loja(1-sim/0-não): "); scanf("%d",&continuar); }while(continuar==1); } void listar(void) { system("cls"); printf("\t\t Relatorio geral"); printf("\n\n Shopping Center"); printf("\n\n Listagem geral"); printf("\n________________________________________ ______________________"); printf("\n Codigo Nome Area Tipo Condominio"); printf("\n________________________________________ ______________________"); rewind(p_shopping); do{ fread(&shopping, sizeof(tipo_shopping), 1, p_shopping); if(feof(p_shopping)==0) mostrar(); }while(feof(p_shopping)==0); printf("\n________________________________________ ______________________"); printf("\n Tecle enter para voltar ao menu..."); getchar(); getchar(); } main() { int opcao; abre_arquivo(); do{ system("cls"); printf("\t\t Tela de Menu"); printf("\n \n Shopping Center"); printf("\n Opcoes"); printf("\n 1-Cadastrar loja"); printf("\n 2-Consultar loja"); printf("\n 3-Listagem de Todas as Lojas"); printf("\n 0-Sair"); printf("\n Entre com a opcao: "); scanf("%d",&opcao); if(opcao!=0) { switch(opcao) { case 1: cadastrar();break; case 2: consultar(); break; case 3: listar(); break; default: printf("\n Opção Invalida"); break; } } }while (opcao!=0); }Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.