terça-feira, 12 de junho de 2018



Diagnóstico de saúde

terça-feira, 10 de abril de 2018



2018 é um ano cheio de acontecimentos! Copa do mundo, eleições presidenciais, e é claro preparação para a prova do Enem. É muito importante que você estude um conteúdo de qualidade, com exemplos e exercícios para fixação dos conhecimentos estudados.

A apostila Enem 2018, disponibilizada neste site, contém conteúdos referentes a todas as matérias que são cobradas.

Incluindo apostila de redação, e provas anteriores com seus gabaritos.

Aproveite essa oportunidade e garanta uma boa nota nesse vestibular que vai levar você para a Universidade.

Bons estudos! Organize-se, tenha um plano de estudos e saia na frente.

Download da Apostila

Leia e escreva sempre, tendo em mente algumas características importantes, para uma boa avaliação da sua redação:




Enem 2018 - Apostila de estudos


Uma das opções de investimento mais interessantes é o Câmbio Internacional. Ou seja, a oscilação do preço das moedas de cada País. E quando falamos em câmbio internacional, falamos de FOREX, o mercado com maior movimentação financeira do mundo, com alta alavancagem proporcionando a oportunidade de investimentos muito agressivos.

Mas quando sugerimos o investimento FOREX, precisamos considerar a importância de seguir uma metodologia, para que o crescimento e desenvolvimento da conta de negociação se dê de forma segura e com o menor risco de percas.

Nesse artigo, eu Gabriel, falo sobre uma metodologia a ser aplicada para aqueles que desejam ter um crescimento significativo, em médio prazo realizando aplicações financeiras mensalmente.

Quando falamos em aplicação mensal, estamos tratando de investimentos aos quais você não quer perder.

Vamos supor que você inicie uma conta com $100,00 dólares. Vamos simular um investimento mensal de $100,00 dólares durante 24 meses, ou 2 anos. Ao final deste período, você teria $2.400,00 dólares se não houvesse juros compostos. Agora vamos imaginar que você consiga um crescimento mensal de 10% sobre o valor da sua conta. Ao final de 24 meses, você terá um patrimônio acumulado de $9.834,34 dólares.

Se aumentarmos o período de tempo, ao final de 48 meses teríamos um patrimônio de $105.714,00 dólares, sendo que a soma de sua aplicação seria apenas $4.900,00 dólares.

Você já deve ter percebido o poder dos juros compostos, mas a questão é como manter esse crescimento durante todo esse tempo!?

Se partirmos do princípio que você terá o crescimento de 10% da conta realizando 10 operações bem sucedidas durante o mês, você terá um crescimento de 1% em cada operação. Exemplo: sua conta tem $200,00 dólares. Seu objetivo será conseguir $20,00 dólares durante o mês realizando 10 operações. Isso significa que em cada operação você vai conseguir $2,00 dólares.

É claro que esses valores não são fixos, pois o mercado é volátil e nem sempre você conseguirá ter os mesmos resultados. Alguns dias mais, outros dias menos. Mas o que eu quero dizer e que é muito importante, é que em você não vai buscar os 10% em uma única operação. Se você assim conseguir significa que sua alavancagem está muito alta, e da mesma maneira que você cresceu muito rapidamente, você vai quebrar muito rapidamente. Trabalhe com um Stop de perda máxima de 2%. Almeje ganhos de 1% por operação, dessa forma você terá um crescimento saudável.

Lembre-se que nem sempre você vai ganhar. Se você tiver 5 perdas de 1% cada, você terá que realizar mais 15 operações bem sucedidas de 1% para atingir o crescimento de 10% ao mês.


Esta foi minha contribuição. Espero que goste e que você possa ter bons investimentos, com as dicas que eu dei. Grande abraço!

Plano de crescimento Forex

segunda-feira, 10 de agosto de 2015

Este artigo tem por objetivo apresentar um sistema de cadastro utilizando a linguagem de programação Java, e seus respectivos frameworks JSF, Primefaces, integração com banco de dados usando Hibernate, persistência com arquivo xml, e padrão de projeto MVC(Model, View, Control).

Neste projeto foram utilizados as ferramentas: Eclipse Luna, MYSQL.


Para baixar o projeto completo clique aqui


Crie um banco de dados chamado escola. não crie nenhuma tabela, pois o hibernate fará isso para você! 

Para começar crie um new Dinamic Web Project. Name: Escola



 
na página seguinte, clique na opção gerar arquivo web.xml

Com o projeto criado, é hora de converter o projeto para Maven.

Com o botão direito do mouse clique sobre o projeto - configure - convert to maven Project

Por quê utilizar o maven: O maven é um facilitador de dependências, ao invés de importarmos vários arquivos .jar ao projeto, iremos inserir blocos de xml em um arquivo chamado pom.xml. Ele vai importar direto dos repositórios todas as nossas dependências e manter atualizado nosso projeto.


Vamos começar a programar:


Crie o pacote com.pap.util

Nele inserir a classe: HibernateUtil.java 


package com.pap.util;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
 * Gabriel Massuquetti de Carvalho
 */
public class HibernateUtil {
    private static EntityManagerFactory emf;
    private HibernateUtil() {
    }
    public static EntityManagerFactory geteEntityManagerFactory() {
        if (emf == null) {
            try {
                emf = Persistence
                        .createEntityManagerFactory("exemplohibernate");
            } catch (Exception ex) {
                System.err.println("Initial SessionFactory creation failed."
                        + ex);
            }
        }
        return emf;
    }
}
 
No pom.xml insira: 


<repositories>
        <repository>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Maven Repository Group</name>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <layout>default</layout>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>net.bootsfaces</groupId>
            <artifactId>bootsfaces</artifactId>
            <version>0.6.6</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.faces</artifactId>
            <version>2.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>5.2.RC1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.5.6</version>
        </dependency>
    </dependencies>




Crie o pacote com.pap.entity 

Nele inserir a classe: Aluno.java 


package com.pap.entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Table(name="aluno")
@Entity
public class Aluno implements Serializable{
   
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String curso;
    private String periodo;
   
   
    public Aluno() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Aluno(Long id, String name, String curso, String periodo) {
        super();
        this.id = id;
        this.name = name;
        this.curso = curso;
        this.periodo = periodo;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCurso() {
        return curso;
    }
    public void setCurso(String curso) {
        this.curso = curso;
    }
    public String getPeriodo() {
        return periodo;
    }
    public void setPeriodo(String periodo) {
        this.periodo = periodo;
    }
   

}






Crie o pacote com.pap.dao

Nele inserir a classe: AlunoDao.java 




package com.pap.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import com.pap.entity.Aluno;
public class AlunoDao {
    public void saveOrUpdate(Aluno aluno) {
        EntityManager em = com.pap.util.HibernateUtil
                .geteEntityManagerFactory().createEntityManager();
        try {
            em.getTransaction().begin();
            if (aluno.getId() == null)
                em.persist(aluno);
            else
                em.merge(aluno);
            em.getTransaction().commit();
        } catch (Exception e) {
            em.getTransaction().rollback();
        }
    }
    public void delete(Aluno aluno) {
        EntityManager em = com.pap.util.HibernateUtil
                .geteEntityManagerFactory().createEntityManager();
        try {
            em.getTransaction().begin();
            Aluno al = em.find(Aluno.class, aluno.getId());
            em.remove(al);
            em.getTransaction().commit();
        } catch (Exception e) {
            em.getTransaction().rollback();
        }
    }
    public List<Aluno> list() {
        List<Aluno> result = null;
        try {
            EntityManager em = com.pap.util.HibernateUtil
                    .geteEntityManagerFactory().createEntityManager();
            Query query = em.createQuery("FROM Aluno");
            result = query.getResultList();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}


Crie o pacote com.pap.control

Nele inserir a classe: AlunoMBean.java 



package com.pap.control;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import com.pap.dao.AlunoDao;
import com.pap.entity.Aluno;
@ManagedBean
@SessionScoped
public class AlunoMBean {
   
    private static final long serialVersionUID = 1L;
    private Aluno aluno;
    private AlunoDao ad;
    private List<Aluno> AlunoList;
   
    @PostConstruct
    public void init(){
        this.aluno = new Aluno();
        this.ad = new AlunoDao();
        this.AlunoList = ad.list();
    }
    public String newAluno(){
        return "manageAluno";
    }
   
    public String delete(Aluno aluno){
        ad.delete(aluno);
        return "aluno";
    }
    public String edit(Aluno aluno){
        this.aluno = aluno;
        return "manageAluno";
    }
   
    public String save() {
        ad.saveOrUpdate(aluno);
        this.aluno = new Aluno();
        return "aluno";
    }
   
    //Geters and seters
     
    public Aluno getAluno() {
        return aluno;
    }
    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }
    public AlunoDao getAd() {
        return ad;
    }
    public void setAd(AlunoDao ad) {
        this.ad = ad;
    }
    public List<Aluno> getAlunoList() {
        this.AlunoList = ad.list();
        return AlunoList;
    }
    public void setAlunoList(List<Aluno> alunoList) {
        AlunoList = alunoList;
    }
    public static long getSerialversionuid() {
        return serialVersionUID;
    }
}

Dentro de SRC crie uma nova pasta chamada META-INF. Nela crie um arquivo chamado persistence.xml

Dentro de persistence.xml adicione: 


<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="exemplohibernate">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.pap.entity.Aluno</class>
   
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url"
                value="jdbc:mysql://localhost:3306/escola" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="root" />
        </properties>
    </persistence-unit>
</persistence>

 
Está na hora de criar nossas views: Na pasta WebContent do seu projeto crie um novo arquivo aluno.xhtml. Ele será responsável por exibir nossos alunos cadastrados. 
aluno.xhtml: 

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui" xmlns:b="http://bootsfaces.net/ui"
    xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
    <title>Gerencia Aluno</title>
    <style>
#bordas {
    background-color: #F8F8FC;
}
#rodape {
    background-color: #167A89;
    color: #F7FBFC;
}
</style>
</h:head>
<h:body>
    <div id="bordas">
        <b:navBar inverse="true" fixed="top">
            <b:navbarLinks>
                <b:navLink value="Lista de Alunos" href="aluno.xhtml"></b:navLink>
                <b:navLink value="Gerenciar Aluno" href="manageAluno.xhtml"></b:navLink>
            </b:navbarLinks>
        </b:navBar>
        <br /> <br /> <br /><hr/>
        <b:container>
            <h2>
                <h:outputText value="Gerenciar Aluno" />
            </h2>
            <h:form>
                <p:commandButton value="Novo Aluno" id="new"
                    action="#{alunoMBean.newAluno}" />
            </h:form>
            <br />
            <br />
            <h:form>
                <p:dataTable id="tbl" var="aluno" value="#{alunoMBean.alunoList}"
                    paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}
         {Exporters}"
                    paginator="true" rows="5" style="margin-bottom:20px">
                    <f:facet name="{Exporters}">
                        <h:commandLink>
                            <p:graphicImage value="images/excel.png" width="24" />
                            <p:dataExporter type="xls" target="tbl" fileName="aluno" />
                        </h:commandLink>
                        <h:commandLink>
                            <p:graphicImage value="images/pdf.png" width="24" />
                            <p:dataExporter type="pdf" target="tbl" fileName="aluno" />
                        </h:commandLink>
                        <h:commandLink>
                            <p:graphicImage value="images/xml.png" width="24" />
                            <p:dataExporter type="xml" target="tbl" fileName="aluno" />
                        </h:commandLink>
                    </f:facet>
                    <p:column headerText="Codigo do aluno">
                        <h:outputText value="#{aluno.id}" />
                    </p:column>

                    <p:column headerText="Name Student">
                        <h:outputText value="#{aluno.name}" />
                    </p:column>
                    <p:column headerText="Curso do aluno">
                        <h:outputText value="#{aluno.curso}" />
                    </p:column>
                    <p:column headerText="Turno de estudo">
                        <h:outputText value="#{aluno.periodo}" />
                    </p:column>
                    <p:column headerText="Editar" exportable="false">

                        <p:commandButton action="#{alunoMBean.edit(aluno)}" value="Editar" />

                    </p:column>
                    <p:column headerText="Deletar" exportable="false">

                        <h:commandLink action="#{alunoMBean.delete(aluno)}"
                            value="Excluir" />
                    </p:column>
                </p:dataTable>
            </h:form>
            <br />
            <br />
            <br />
            <br />
        </b:container>
    </div>
    <div id="rodape">
        <br />
        <br />
        <br />
        <br />
        <center>
            <h2>
                <h:outputText value="Todos os direitos reservados" />
            </h2>
            <img src="images/escola.jpg" alt="Escola" width="275" />
        </center>
        <br />
        <br />
        <br />
    </div>
</h:body>
</html>

  
 
Agora a view manageAluno.xhtml. Esta página será responsável por editar ou incluir um novo aluno: 


<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui" xmlns:b="http://bootsfaces.net/ui"
    xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
    <title>Gerencia Aluno</title>
    <style>
#rodape {
    background-color: #167A89;
    color: #F7FBFC;
}

#bordas {
    background-color: #F8F8FC;
}
</style>
</h:head>
<h:body>
    <div id="bordas">
        <b:container>
            <b:navBar inverse="true" fixed="top">
                <b:navbarLinks>
                    <b:navLink value="Lista de Alunos" href="aluno.xhtml"></b:navLink>
                    <b:navLink value="Gerenciar Aluno" href="manageAluno.xhtml"></b:navLink>
                </b:navbarLinks>
            </b:navBar>
            <br />
            <hr />
            <br />
            <br />
            <br />
            <h1>
                <h:outputText value="Gerenciar aluno" />
            </h1>
            <br />
            <br />
            <h:form>
                <p:panel id="panel" header="Adicionar aluno">

                    <h:panelGrid columns="3" cellpadding="5">
                        <p:outputLabel value="Name" />
                        <p:inputText id="name" value="#{alunoMBean.aluno.name}"
                            label="name">
                        </p:inputText>
                        <br />

                        <p:outputLabel value="Curso" />
                        <p:inputText id="curso" value="#{alunoMBean.aluno.curso}"
                            label="curso">
                        </p:inputText>
                        <br />
                        <p:outputLabel value="periodo" />
                        <p:inputText id="periodo" value="#{alunoMBean.aluno.periodo}"
                            label="periodo">
                        </p:inputText>
                        <br />
                    </h:panelGrid>
                    <p:commandButton value="Salvar" update="panel"
                        action="#{alunoMBean.save}" />
                </p:panel>
            </h:form>
            <br />
            <br />
            <br />
            <br />
            <br />
            <br />
            <br />
            <br />
            <br />
        </b:container>
    </div>
    <div id="rodape">
        <br /> <br /> <br /> <br />
        <center>
            <h2>
                <h:outputText value="Todos os direitos reservados" />
            </h2>
            <img src="images/escola.jpg" alt="Escola" width="275" />
        </center>
        <br /> <br /> <br />
    </div>
</h:body>
</html>

 
Neste projeto estamos utilizando datatable do primefaces e ela é capaz de exportas seus dados para os formatos PDF, XLS, XML. 
Utilizamos algumas imagens no projeto. Elas foram guardadas dentro da pasta images em WebContent. São elas: Images
Imagens do Projeto final: 
Lista de alunos


 Cadastrar novo


 
Informações adicionais: Para criar o menu superior, e manter o conteúdo centralizado foi utilizado o framework bootsfaces: http://www.bootsfaces.net/


Para baixar o projeto completo clique aqui

 

Crud Java Web - JSF + Hibernate + Primefaces

quarta-feira, 24 de junho de 2015



Este post tem por objetivo apresentar uma aplicação em C que apresenta ao usuário uma tela com as opções de inserir, alterar, excluir, listar e pesquisar pessoas, acessando um arquivo.

segue o código:


/*======================================================================*/ 
/*
 // Autor: Gabriel Massuquetti de Carvalho
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>

#define ARQ "Dados.dat" /* arquivo com os dados*/
#define OP_INSERIR '1'
#define OP_ALTERAR '2'
#define OP_APAGAR '3'
#define OP_LISTAR '4'
#define OP_PESQUISAR '5'
#define OP_SAIR '0'
#define OP_PESQ_IDADE '1'
#define OP_PESQ_NOME '2'

char *MainMenu[]={
    "1. Inserir registro",
    "2. Alterar registro",
    "3. Apagar registro",
    "4. Listar registros",
    "5. Pesquisar",
    "0. Sair",
    NULL /* ACABARAM AS OPÇÕES*/
};

char *PesqMenu[]={
    "1. Pesquisar por intervalo de idades",
    "2. Pesquisar por nome",
    NULL  /* ACABARAM AS OPÇÕES*/
};

FILE *fp; /*variável global pois é útil ao longo do programa*/

typedef struct{
    char nome[30+1];
    int idade;
    float salario;
    char Status; /* '*' indica que o registro está apagado*/
}Pessoa;

void Mensagem(char *msg);

/* lê os dados de um registro introduzido pelo usuário*/
void Ler_Pessoa(Pessoa *p){
    printf("Nome:    "); gets(p->nome);
    printf("Idade:   "); scanf("%d",&p->idade);
    printf("salario: "); scanf("%f",&p->salario);
    p->Status = ' ';
    fflush(stdin);
}


/*Mostra na tela os dados existentes no registro*/
void Mostrar_Pessoa(Pessoa p){
    printf("%-30s %3d %10.2f \n",p.nome, p.idade, p.salario);
}

/*Adiciona uma pessoa ao arquivo*/
void Adiciona_Pessoa(Pessoa p){
    fseek(fp, 0L, SEEK_END);
    if(fwrite(&p, sizeof(p), 1, fp)!=1)
        Mensagem("Adicionar pessoa: Falhou a escrita do registro");
}

/*Colocar uma mensagem na tela*/
void Mensagem(char *msg){
    printf(msg);
    getchar();
}



/*Verificar se o arquivo já existe. Se não existir, ele é criado
se já existir, abre-o em modo de leitura e escrita (r+b)
*/
void Inic(){
    fp= fopen(ARQ, "r+b"); //tentar abrir
    if(fp==NULL){
        fp = fopen(ARQ, "w+b"); // criar o arquivo
        if(fp==NULL){
            printf(stderr," Erro fatal: impossível criar arquivo de dados\n");
            exit(1);
        }
    }
}

/* Faz um menu simples com as opções do vetor de strings.
seleciona a opção, usando o primeiro caracter de cada string.
devolve o primeiro caracter da opção.
*/
char Menu(char *opcoes[]){
    int i;
    char ch;
    while(1){
        /*CLS */
        printf("\n\n\n\n\n");
            for(i=0; opcoes[i]!=NULL; i++)
                printf("\t\t%s\n\n",opcoes[i]);
               
            printf("\n\n\t\tOpcao: ");
            ch = getchar(); fflush(stdin);
            for(i=0; opcoes[i]!= NULL; i++)
                if(opcoes[i][0]==ch)
                    return ch;
    }
}

void Inserir_Pessoa(){
    Pessoa x;
    Ler_Pessoa(&x);
    Adiciona_Pessoa(x);
}

void Alterar_Pessoa(){
    Pessoa x;
    long int n_reg;
    printf("Qual o numero do registro: ");
    scanf("%ld", & n_reg); fflush(stdin);
    if(fseek(fp, (n_reg-1)*sizeof(Pessoa), SEEK_SET)!=0){
        Mensagem("Registro inexistente ou problemas no posicionamento!!!");
        return;
    }
    if(fread(&x, sizeof(Pessoa), 1, fp)!= 1){
        Mensagem("Problemas na leitura do registro!!!");
        return;
    }
   
    if(x.Status=='*'){
        Mensagem("Um registro apagado não pode ser alterado!!! \n\n");
        return;
    }
   
    printf("\n\n Dados Atuais \n\n");
    Mostrar_Pessoa(x);
    printf("\n\n Novos dados \n\n");
    Ler_Pessoa(&x);
   
    // recuar um registro no arquivo
    fseek(fp, -(long) sizeof(Pessoa), SEEK_CUR);
    // reescrever o registro;
    fwrite(&x, sizeof(Pessoa), 1, fp);
    fflush(fp); /*despejar os arquivos no disco rígido*/
}

void Apagar_Pessoa(){
    Pessoa x;
    long int n_reg;
    char resp;
   
    printf("Qual o numero do registro: ");
    scanf("%ld", & n_reg); fflush(stdin);
    if(fseek(fp, (n_reg - 1)*sizeof(Pessoa), SEEK_SET)!= 0){
        Mensagem("Registro inexistente ou problemas no registro!!!");
        return;
    }
    if(fread(&x, sizeof(Pessoa), 1, fp)!= 1){
        Mensagem("Problema na leitura do registro!!!");
        return;
    }
    if(x.Status=='*'){
        Mensagem("Registro já está apagado!!!\n\n");
    }
    printf("\n\n Dados atuais \n\n");
    Mostrar_Pessoa(x);
    printf("\n\n Apagar o registro (s/n)???: "); resp = getchar();
    fflush(stdin);
    if(toupper(resp)!= 'S')return;
   
    x.Status= '*';
    // recuar um registro no arquivo
    fseek(fp, -(long) sizeof(Pessoa), SEEK_CUR);
    // reescrever o registro;
    fwrite(&x, sizeof(Pessoa), 1, fp);
    fflush(fp); /*Despejar os arquivos no disco rígido*/
}

void Listar(){
   
    long int n_Linhas = 0;
    Pessoa reg;
    rewind(fp);
    while(1){
        if(fread(&reg, sizeof(reg), 1, fp)!= 1)break; /*Sair do laço*/
        if(reg.Status=='*') continue; /*Passa ao próximo*/
        Mostrar_Pessoa(reg);
        n_Linhas++;
        if(n_Linhas%20==0)
            Mensagem("Pressione <Enter> para continuar .  .  .");
    }
    Mensagem("\n\n Pressione <Enter> para continuar .  .  ."); /*No fim da listagem*/
}

void pesquisar_Idades(int ini, int fim){
    Pessoa reg;
    rewind(fp);
   
    while(fread(&reg, sizeof(Pessoa), 1, fp))
        if(reg.Status!='*' && reg.idade>=ini && reg.idade<=fim)
            Mostrar_Pessoa(reg);
   
    Mensagem("\n\n Pressione <Enter> para continuar .  .  ."); /*No fim da listagem*/
}

void Pesquisar_Nome(char *s){
    Pessoa reg;
    rewind(fp);
   
    while(fread(&reg, sizeof(Pessoa), 1, fp))
        if(reg.Status!='*' && strstr(reg.nome, s))
            Mostrar_Pessoa(reg);
           
    Mensagem("\n\n Pressione <Enter> para continuar .  .  ."); /*No fim da listagem*/
}


int main(int argc, char *argv[]) {
   
    char opcao;
    Inic();
    while((opcao = Menu(MainMenu))!= OP_SAIR)
        switch(opcao){
           
            case OP_INSERIR: Inserir_Pessoa(); break;
            case OP_ALTERAR: Alterar_Pessoa(); break;
            case OP_APAGAR: Apagar_Pessoa(); break;
            case OP_LISTAR: Listar(); break;
            case OP_PESQUISAR:
                switch(opcao){
                    case OP_PESQ_IDADE:
                        {
                            int n1, n2;
                            printf("Qual o intervalo de idades: ");
                            scanf("%d%d", &n1, &n2); fflush(stdin);
                            pesquisar_Idades(n1, n2);
                                break;
                        }
                    case OP_PESQ_NOME:
                        {
                            char string[BUFSIZ+1];
                            printf("Qual o nome a procurar: ");
                            gets(string); fflush(stdin);
                            Pesquisar_Nome(string);
                        }
                }
        }
   
   
    return 0;
}

/*======================================================================*/ 

Referência: Luis Damas linguagem c

Crud em C usando arquivo

 
Academy Programming © 2015 - Designed by Templateism.com