Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /* run this program using the console pauser or add your own getch, system("pause") or input loop */
- typedef struct ex{
- int num;
- char nome[40];
- char turma[3];
- float media;
- }estrutura;
- estrutura dados;
- FILE *fx;
- void insere(){
- int c;
- fx=fopen("aluno.dat","a+");
- do{
- printf("Numero do aluno:");
- scanf("%d",&dados.num);
- printf("Nome do aluno:");
- scanf("%s",dados.nome);
- printf("Turma do aluno:");
- scanf("%s",dados.turma);
- printf("Media do aluno:");
- scanf("%f",&dados.media);
- fwrite(&dados,sizeof(dados),1,fx);
- printf("----------- Pretende continuar?(0-n/1-s) -----------\n");
- scanf("%d",&c);
- }while (c==1);
- fclose(fx);
- }
- void lista()
- {
- int i=0;
- float s=0, media;
- fx=fopen("aluno.dat","r");
- fread(&dados,sizeof(dados),1,fx);
- while (!feof(fx)){
- i++;
- printf("Numero: %d\nNome: %s\nTurma: %s\nMedia: %.2f\n-----------\n",dados.num,dados.nome,dados.turma,dados.media);
- s += dados.media;
- fread(&dados,sizeof(dados),1,fx);
- }
- media = (s / i);
- printf("Media Global:%.2f\n",media);
- printf("-----------\n");
- fclose(fx);
- }
- void pesquisa(){
- int numero;
- printf("Numero a pesquisar:\n");
- scanf("%d",&numero);
- fx=fopen("aluno.dat","r");
- fread(&dados,sizeof(dados),1,fx);
- while ((numero!=dados.num) && (!feof(fx))){
- fread(&dados,sizeof(dados),1,fx);
- }
- if (numero==dados.num){
- printf("------------ Numero encontrado -----------\n");
- printf("Numero: %d\nNome: %s\nTurma: %s\nMedia: %.2f\n",dados.num,dados.nome,dados.turma,dados.media);
- }
- else{
- printf("----------- Numero nao encontrado -----------\n");
- }
- fclose(fx);
- }
- void consulta(){
- char tap[3];
- fx = fopen("aluno.dat","r");
- printf("Turma a pesquisar:\n");
- scanf("%s",tap);
- fread(&dados,sizeof(dados),1,fx);
- while (!feof(fx)){
- if (strcmp(tap,dados.turma)==0){
- printf("-----------\nNumero: %d\nNome: %s\nMedia: %.2f\n-----------\n",dados.num,dados.nome,dados.media);
- }
- else{
- printf("----------\nTurma nao encontrada\n-----------\n");
- }
- fread(&dados,sizeof(dados),1,fx);
- }
- }
- void pesquisaa(){
- int nAluno,c=0;
- fx = fopen ("aluno.dat","r+" );
- printf("Número do aluno:\n");
- scanf("%d",&nAluno);
- while ( nAluno!=dados.num &&!feof(fx) ){
- fread(&dados,sizeof(dados),1,fx);
- if( nAluno == dados.num ){
- printf("----------Aluno Encontrado-----------\n");
- fseek ( fx,-sizeof(dados),1 );
- dados.num = nAluno;
- printf("Nome: \n");
- printf("%d",dados.nome);
- printf("Turma: \n");
- printf("%d",dados.turma);
- printf("Media: \n");
- printf("%d",dados.media);
- fwrite( &dados,sizeof(dados),1,fx );
- c++;
- }
- }
- if(c==0){
- printf("----------Aluno Nao Encontrado-----------\n");
- }
- fclose(fx);
- }
- void exportar(){
- char nomeFicheiro[20],turma[6];
- printf("Nome do Ficheiro:");
- scanf("%s",nomeFicheiro);
- if( fopen( nomeFicheiro,"r")==NULL ){
- fn=fopen( nomeFicheiro ,"w");
- fclose(fn);
- }
- printf("Turma a exportar");
- scanf("%s",turma);
- fx = fopen( "aluno.dat","r" );
- fn = fopen( nomeFicheiro ,"a+");
- fread(&dados,sizeof(dados),1,fx);
- while ( !feof(fx) ){
- if( strcmp( turma,dados.turma )==0 ){
- fwrite ( &dados,sizeof(dados),1,fn );
- }
- fread(&dados,sizeof(dados),1,fx);
- }
- fclose(fn);
- fclose(fx);
- }
- void importar(){
- char nomeFicheiro[30];
- printf("Ficheiro a importar:");
- scanf("%s",nomeFicheiro);
- fn = fopen(nomeFicheiro,"r");
- fx = fopen("dados.dat","a+");
- fread(&dados,sizeof(dados),1,fn);
- while(!feof( fn )){
- fwrite(&dados,sizeof(dados),1,fx);
- fread(&dados,sizeof(dados),1,fn);
- }
- }
- void limpa(){
- fx=fopen("aluno.dat","w");
- fclose(fx);
- printf("----------- Limpeza concluida -----------\n");
- }
- int main() {
- int op;
- if(fopen("aluno.dat","r")==NULL){
- fx=fopen("aluno.dat","w");
- fclose(fx);
- }
- do{
- printf("1-Inserir dados\n");
- printf("2-Consulta Global c/ media\n");
- printf("3-Pesquisa por numero do aluno\n");
- printf("4-Consulta de alunos de uma turma c/ media \n");
- printf("5-Pesquisa por numero do aluno c/ alteracao \n");
- printf("6-Exportar ficheiro \n");
- printf("7-Importar ficheiro \n");
- printf("8-Limpeza do ficheiro\n");
- printf("9-Sair\n");
- printf("Escolha do utilizador:\n");
- scanf("%d",&op);
- switch(op){
- case 1: insere();
- break;
- case 2: lista();
- break;
- case 3: pesquisa();
- break;
- case 4: consulta();
- break;
- case 5: pesquisaa();
- break;
- case 6: exportar();
- break;
- case 7: importar();
- break;
- case 8: limpa();
- break;
- }
- }while (op!=9);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement