Preciso passar esse programa para arquivos mas tenho muita em fazer, não entendi muito sobre essa matéria, se alguém puder me ajudar, me explicar, agradeceria !
Código:
#include <stdio.h> #include <stdlib.h> #include <string.h> struct vcliente{ int cod, cama; char nome[100], end[200], cpf[20], rg[20], tel[20], cidade[50]; double somavalor; }cliente[100]; int opc1,p=1; int camacasal=39, camasolteiro=61; void visual(); double bebidas(); int consultar(int num); double fechardiarias(int num); double financeiro(); int local2(); double refeicoes(); int vagasdisponiveis(); int verificavagas(); void cadastrar(); void pesquisarquarto(); void visual(){ printf("\n000000000000000000000000000000000000000000000000000000000000000000000000000000" "\n0________0000_______000___000000__00__________00_______0000_______000__0000000" "\n0__000000000__00000__00__0_00000__000000__000000__0000__00__00000__00__0000000" "\n0__000000000__00000__00__00_0000__000000__000000__0000__00__00000__00__0000000" "\n0__000000000__00000__00__000_000__000000__000000______0000__00000__00__0000000" "\n0__000000000__00000__00__0000_00__000000__000000__00__0000__00000__00__0000000" "\n0__000000000__00000__00__00000_0__000000__000000__000__000__00000__00__0000000" "\n0________0000_______000__000000___000000__000000__0000__000_______000________0" "\n000000000000000000000000000000000000000000000000000000000000000000000000000000" "\n\n\t\t\t\tControle de Hotel\n\n"); } int consultar(int num){ int enco = -1; for(int q=0;q<100;q++){ if(cliente[q].cod == num){ enco = q; q = 100; }//fim if }// FIM FOR return(enco); }// FIM CONSULTAR int local2(){// Local disponivel ou quarto int enco=-1,p=0; for(int i=0;i<100;i++){ if(cliente[i].cod == -1){ p=i; if(i>0) i=100; }//fim if }//fim for return(p); }//fim local2 int verificavagas(){//verifica vagas disponiveis int enco=-1,p=0; for(int i=0;i<100;i++){ if(cliente[i].cod != -1){ p+=1;//p=p+1; }//fim if }//fim for return(p); }//fim verificavagas void cadastrar(void){ //cadastra clientes system("cls"); int local=local2(); int tipocama; int cod; char nome[100], end[200], cpf[20], rg[20], tel[20], cidade[50]; visual(); if(local!=-1){ printf("\n\n---Cadastro de Clientes---"); fflush(stdin); printf("\n\nNome: "); fflush(stdin); gets(nome); fflush(stdin); printf("RG: "); fflush(stdin); gets(rg); fflush(stdin); printf("CPF: "); fflush(stdin); gets(cpf); fflush(stdin); printf("Endereco: "); fflush(stdin);gets(end); fflush(stdin); printf("Telefone: "); fflush(stdin); gets(tel); fflush(stdin); printf("Cidade: "); fflush(stdin); gets(cidade); fflush(stdin); printf("\nEscolha o tipo de quarto"); printf("\n1-Com Cama de Solteiro --> %i disponiveis",camasolteiro); printf("\n2-Com Cama de Casal --> %i disponiveis",camacasal); printf("\nInforme opcao de quarto: "); scanf("%i",&tipocama); printf("\n\nVerificacao de Dados"); printf("\nQuarto: %i",p); printf("\nNome: %s",nome); printf("\nRG: %s",rg); printf("\nCPF: %s",cpf); printf("\nTelefone: %s",tel); printf("\nEndereco: %s",end); printf("\nCidade: %s",cidade); if(tipocama==1)printf("\nQuarto com cama solteiro\n"); if(tipocama==2)printf("\nQuarto com cama casal\n"); printf("\n\nOs dados estao corretos? 1 - Sim ou 2 - Nao ! \n"); scanf("%i",&opc1); if(opc1 == 1){ strcpy( cliente[local].nome,nome); strcpy( cliente[local].rg,rg); strcpy( cliente[local].cpf,cpf); strcpy( cliente[local].tel,tel); strcpy( cliente[local].end,end); strcpy( cliente[local].cidade,cidade); cliente[local].cod = local; if(tipocama==2){ cliente[local].cama=tipocama; camacasal--; }//fim if if(tipocama==1){ cliente[local].cama=tipocama; camasolteiro--; }//fim if }//fim if p++; }//fim if else{ printf("Nao ha locais disponiveis no hotel !"); }//fim else }//fim cadastrar int vagasdisponiveis(){ //quantas vagas ainda tem system("cls"); visual(); int verifica; int restam; verifica=verificavagas(); restam=100-verifica; if(p<100){ printf("\nAinda Tem %i vagas !\n\n",restam); }//fim if else{ ("\nNao tem vagas !\n\n"); }//fim else system("pause"); }//fim vagasdisponiveis void pesquisarquarto(){ //pesquisa se o cliente ja ta cadastrado system("cls"); visual(); int cod =-1; fflush(stdin); printf("\nInforme Quarto: "); scanf("%i",&cod); cod = consultar(cod); if(cod > -1){ printf("Nome: %s \n",cliente[cod].nome); printf("RG: %s \n",cliente[cod].rg); printf("CPF: %s \n",cliente[cod].cpf); printf("Endereco: %s\n",cliente[cod].end); printf("Telefone: %s\n",cliente[cod].tel); printf("Cidade: %s\n",cliente[cod].cidade); system("pause"); }else{ printf("\nHospede nao existe!!!!\n"); system("pause"); }//fim else }//fim pesquisarnome double financeiro(){ system("cls"); visual(); int opc=-1,opc2,num; char buscar; do{ fflush(stdin); printf("--Financas--\n"); printf("Informe o numero do Quarto: \n"); scanf("%i",&num); num = consultar(num); if(num == -1){ printf("\nHospede nao existe!\n"); }//fim if if(num > -1){ printf("Nome cliente: %s\n\n",cliente[num].nome); printf("1-Fechar diaria\n"); printf("2-Sair\n"); scanf("%i",&opc); do{ if(opc == 1){ printf("\n1-Para Refeicoes"); printf("\n2-Para Bebidas"); printf("\n3-Para Finalizar Diaria"); printf("\n4-Imprimir total e sai\n"); scanf("%i",&opc2); if(opc2 == 1)cliente[num].somavalor = refeicoes(); if(opc2 == 2)cliente[num].somavalor += bebidas(); if(opc2 == 3)cliente[num].somavalor += fechardiarias(num); if(opc2 == 4){ printf("\nValor total Refeicoes + Bebidas + Diaria: %.2lf",cliente[num].somavalor); cliente[num].cod=-1; if(cliente[num].cama == 2){ camacasal++; }//fim if 1 if(cliente[num].cama == 1){ camasolteiro++; }//fim if 2 }//fim if opc==4 }//fim if opc==1 }while(opc2 != 4); }// fim if(num > -1){ printf("\nDeseja pesquisar outro hospede: 1-Sim 0-Nao "); scanf("%i",&opc2); }//fim do while(opc2!=0); }//fim financeiro double bebidas(){ system("cls"); visual(); int opc; double pcerveja, prefri, pwiski, pagua, tcerveja, trefri, twiski, tagua; int qcerveja, qrefri, qwiski, qagua; tcerveja= trefri = twiski = tagua = 0; do{ printf("\n\n--Bebidas--\n"); printf("1-Cerveja\n"); printf("2-Refrigerante\n"); printf("3-Wiski\n"); printf("4-Agua\n"); printf("5-Fechar Bebidas\n"); scanf("%i",&opc); switch (opc){ case 1: printf("\nInforme o preco da cerveja: "); scanf("%lf",&pcerveja); printf("\nInforme a quantidade: "); scanf("%i",&qcerveja); tcerveja=pcerveja*qcerveja; printf("\nTotal cerveja %.2lf reais\n\n",tcerveja); break; case 2: printf("\nInforme o preco do refrigerante: "); scanf("%lf",&prefri); printf("\nInforme a quantidade: "); scanf("%i",&qrefri); trefri=prefri*qrefri; printf("\nTotal refrigerante %.2lf reais\n\n",trefri); break; case 3: printf("\nInforme o preco do wiski: "); scanf("%lf",&pwiski); printf("\nInforme a quantidade: "); scanf("%i",&qwiski); twiski=pwiski*qwiski; printf("\nTotal wiski %.2lf reais\n\n",twiski); break; case 4: printf("\nInforme o preco da agua: "); scanf("%lf",&pagua); printf("\nInforme a quantidade: "); scanf("%i",&qagua); tagua=pagua*qagua; printf("\nTotal agua %.2lf reais\n\n",tagua); break; case 5: opc=0; double total = tcerveja + trefri + twiski + tagua; printf("\nTotal gasto com bebidas: %.2lf\n\n",total); return(total); break; }//fim switch }//fim do while(opc!=0); system("pause"); }//fim bebidas double refeicoes(){ system("cls"); visual(); int opc3=0; int qp1, qp2, qp3; // quantidade prato double pp1, pp2, pp3; //preço prato double tp1, tp2, tp3; // total prato double total; tp1 = tp2 = tp3 = 0; qp1 = qp2 = qp3 = 0; tp1 = tp2 = tp3 = 0; total = 0; do{ printf("\n\n--Menu Refeicoes-=="); printf("\n1-Prato 1"); printf("\n2-Prato 2"); printf("\n3-Prato 3"); printf("\n4-Fechar Refeicoes\n"); scanf("%i",&opc3); switch (opc3){ case 1: printf("\nInforme preco do Prato 1: "); scanf("%lf",&pp1); printf("\nInforme quantidade: "); scanf("%i",&qp1); tp1=pp1*qp1; printf("\nTotal Prato 1: %.2lf",tp1); break; case 2: printf("\nInforme preco do Prato 2: "); scanf("%lf",&pp2); printf("Informe quantidade: "); scanf("%i",&qp2); tp2=pp2*qp2; printf("\nTotal Prato 2: %.2lf",tp2); break; case 3: printf("\nInforme preco do Prato 3: "); scanf("%lf",&pp3); printf("\nInforme quantidade: "); scanf("%i",&qp3); tp3=pp3*qp3; printf("\nTotal Prato 3: %.2lf",tp3); break; case 4: total = tp1 + tp2 + tp3; printf("\nTotal Refeicoes: %.2lf reais\n",total); return(total); break; }//fim switch }//fim do while(opc3!=4); }//fim refeicoes double fechardiarias(int num){ system("cls"); int dias,opc; double precodia, totaldiaria; visual(); num = consultar(num); printf("%i",num); printf("\nInforme quantos dias de hospedagem : "); scanf("%i",&dias); printf("Informe o preco da diaria : "); scanf("%lf",&precodia); totaldiaria=precodia*dias; printf("\nO cliente %s: valor diarias= %2.lf\n",cliente[num].nome,totaldiaria); return(totaldiaria); system("pause"); }//fim fechardiarias int main(){ system("cls"); int opcao=0; int i; for(i=0;i<100;i++){ cliente[i].cod = -1; }//fim for do{ system("cls"); system("color 9f"); visual(); printf("\t\t(1)-Cadastrar Clientes\n"); printf("\t\t(2)-Vagas Disponiveis\n"); printf("\t\t(3)-Financeiro e Fechamento de Diarias\n"); printf("\t\t(4)-Pesquisa Hospede\n"); printf("\t\t(0)-Fechar Programa\n"); printf("\t\tDigite a Opcao: "); scanf("%i",&opcao); switch (opcao){ case 1: cadastrar(); break; case 2: vagasdisponiveis(); break; case 3: financeiro(); break; case 4: pesquisarquarto(); break; case 0: break; default : printf("NAO TEM"); break; }//fim swicth }//fim do while(opcao!=0); }//fim main