Ir para conteúdo
thiagojoseh_

[Resolvido] Inserir no banco de dados os valores descritos em duas dropdownlist << C# ASP.NET Web Forms >>

Recommended Posts

Olá, pessoal

 

Sou novo aqui no fórum e iniciante em C # ASP.NET. Estou com a seguinte situação, efetuei o cadastro de duas Classes "Aluno" e "Curso" através do MVC e, agora, tenho que cadastrar ambos em uma nova classe "Matricula".

 

Matricula.cs

 

 public class Matricula
    {
        [Key]
        public int MatriculaID { get; set; }

        public int AlunoID { get; set; }
        public int CursoID { get; set; }
    }

 

Contexto.cs

 

using System.Data.Entity;

namespace WebFormsMVC.Models
{
    public class Contexto : DbContext
    {

        public DbSet<Aluno> Alunos { get; set; }
        public DbSet<Curso> Cursos { get; set; }
        public DbSet<Matricula> Matriculas { get; set; }

    }
}

 

Preciso realizar este cadastro em Matricula através do WebForms, ou seja, criei duas dropdownlist, uma para exibir Aluno e outra para Curso. Em seguida, um botão para Salvar os dados selecionados em Matricula. OBS.: Estou utilizando LocalDB.

 

No método do botão salvar, eu tentei colocar o seguinte código para salvar:

 

 public partial class Default : System.Web.UI.Page
    {
        private Contexto db = new Contexto();

        protected void Page_Load(object sender, EventArgs e)
        {
            ddlAlunos.DataTextField = "Nome";
            ddlAlunos.DataValueField = "AlunoID";
            ddlAlunos.DataSource = db.Alunos.ToList();
            ddlAlunos.DataBind();

            ddlCursos.DataTextField = "Descricao";
            ddlCursos.DataValueField = "CursoID";
            ddlCursos.DataSource = db.Cursos.ToList();
            ddlCursos.DataBind();

        }

        protected void Button2_Click(object sender, EventArgs e) // Botão Salvar
        {
               db.Matriculas.Add(ddlAlunos.SelectedItem.Value); 

               db.SaveChanges();

        }
    }

 

Em vermelho, o erro que está retornando... "não é possível converter de "string" para "WebFormsMVC.Models.Matricula"". Preciso apenas passar a ID dos valores selecionados na dropdownlist para a tabela Matricula no banco de dados, para depois exibí-los em uma nova tabela com os Alunos já cadastrados nos Cursos.

 

Desde já agradeço.

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
db.Matriculas.Add(new Matricula {
	CursoId = xxx,
	AlunoId = xxx
});

Porque você tem que add uma matrícula na matrícula, e não uma string.

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, itlpps disse:

db.Matriculas.Add(new Matricula {
	CursoId = xxx,
	AlunoId = xxx
});

Porque você tem que add uma matrícula na matrícula, e não uma string.

Obrigado ITLPPS... no entanto, o que tenho que passar para Curso ID e Aluno ID seriam ddlAlunos.SelectItem.Value. Sendo um para Curso e outro para Aluno?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 minutos atrás, thiagojoseh_ disse:

Obrigado ITLPPS... no entanto, o que tenho que passar para Curso ID e Aluno ID seriam ddlAlunos.SelectItem.Value. Sendo um para Curso e outro para Aluno?

 

Pelo que entendi do seu Page_Load, tem um dropdown pra cada, então sim... Só converter pra int.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, itlpps disse:

Pelo que entendi do seu Page_Load, tem um dropdown pra cada, então sim... Só converter pra int.

 

Realizei o que me informou e o código ficou assim:

 

protected void Button2_Click(object sender, EventArgs e)
        {

            db.Matriculas.Add(new Matricula
            {

                AlunoID = Convert.ToInt16(ddlAlunos.SelectedValue),
                CursoID = Convert.ToInt16(ddlCursos.SelectedValue)
                
           });

            db.SaveChanges();
        }

 

A principio, acredito que esteja OK, o compilador não acusou nenhum erro. Porém, estou tentando executar meu arquivo Default.aspx para testar a funcionalidade da página, mas está retornando o erro abaixo. Um detalhe importante, abri um novo projeto apenas para rodar uma Default.aspx que ele gera automaticamente, ainda assim retorna o erro. Qualquer página .aspx criada seja num projeto existente ou novo, o problema é apresentado.

 

Sabe como posso resolver?

 

URL: http://localhost:52684/WebForms/Default

Erro de Servidor no Aplicativo '/'.


Não é possível encontrar o recurso.

Descrição: HTTP 404. O recurso que você está procurando (ou uma de suas dependências) não pôde ser removido, seu nome foi alterado ou está temporariamente indisponível. Examine o URL e certifique-se de que está digitado corretamente.

URL solicitada: /WebForms/Default

 


Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.7.2106.0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


  • Conteúdo Similar

    • Por Marcos Gilmário
      #include <stdio.h> #include <stdlib.h> #include <time.h> int copiadovetor[10]; //pede para que o usuario digite um numero int recebeValorDoUsuario() {     int j;     printf("Digite um numero:\n ");          scanf("%d",&j);     return j;      } //colher o valor digitado, e verifica se está no vetor int * verificaValorDigitado(int vet[10], int valorDigitado) {                  int i;     printf("\nSegundo vetor:\n");             if(vet!=valorDigitado){                 for(i=0;i<10;i++){             printf(" %d ",vet);         }             printf("%d",valorDigitado);     }            else{                 for(i=0;i<10;i++){             printf("  %d ",vet);           }    }     return copiadovetor; } int * geravetor(int tamanho){          srand(time(NULL));     int vet[tamanho], i;          printf("Primeiro vetor:\n");     for(i=0;i<tamanho;i++){            vet=rand() % 10;         printf(" %d ",vet);         copiadovetor=vet;    }         return vet; } int main (){        int v = recebeValorDoUsuario();    int vet = geravetor(10);    int r = verificaValorDigitado(vet,v);        }  
    • Por Jeovane Carvalho
      Saudações senhoras (es), venho por meio desta pedir um help, pois tenho esse código que exibirei abaixo que esta funcionando 99%, mas só esta faltando um porém que ainda não consigo implementar, tipo:
      Tenho esse código , um menu de nota de alunos, que insere, deleta, imprime e busca por código, até aí esta funcionando de boa, só que, por exemplo se eu cadastrar 2 alunos, um com a matrícula 1 e o outro com a matrícula 2, ele mostra normalmente na tela quando eu peço para listar , mas se eu deletar a matrícula 1 e deixar apenas a matrícula 2 , ele já não lista mais, e pelo que vi e li em vários fóruns é que teria que colocar um ponteiro, ou uma opção recursiva de uma função chamando ela mesma, e gostaria de saber como faço , e se preciso que ao deletar a matrícula 1, este espaço de memória ficará vazio e se tem como realocar a matrícula 2 para o espaço 1 da memória, pois mesmo eu fazendo o laço nessa variável ela não  busca a segunda cadastrada, segue o código:
      A senha de acesso é 1
       
      #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<string.h> #define SENHA 1 #define MAX 3 #ifndef COLORS_H #define COLORS_H #define foreground(color) FORE##color #define background(color) BACK##color #define style(style_) style_ /** Foreground Colors **/ #define FOREBLACK printf("\033[30m") #define FORERED printf("\033[31m") #define FOREGREEN printf("\033[32m") #define FOREYELLOW printf("\033[33m") #define FOREBLUE printf("\033[34m") #define FOREMARGENTA printf("\033[35m") #define FORECYAN printf("\033[36m") #define FOREWHITE printf("\033[37m") #define FORENORMAL_COLOR printf("\033[39m") /** Background Colors **/ #define BACKBLACK printf("\033[40m") #define BACKRED printf("\033[41m") #define BACKGREEN printf("\033[42m") #define BACKYELLOW printf("\033[43m") #define BACKBLUE printf("\033[44m") #define BACKMAGENTA printf("\033[45m") #define BACKCYAN printf("\033[46m") #define BACKWHITE printf("\033[47m") #define BACKNORMAL printf("\033[49m") /** Style **/ #define BRIGHT printf("\033[1m") #define DIM printf("\033[2m") #define NORMAL printf("\033[22m") #define RESETALL printf("\033[0m") #define UNDERLINE printf("\033[4m") #define BLINKSLOW printf("\033[5m") #define BLINKRAPID printf("\033[6m") #define ITALIC printf("\033[3m") #define NEGATIVE printf("\033[7m") #endif /* COLORS_H */ //CONSTRUTOR DE VARIÁVEIS struct cadastro { int matricula; char aluno[50]; char disciplina1[50]; char disciplina2[50]; char disciplina3[50]; float nota1; float nota2; float nota3; float nota4; float nota5; float nota6; float nota7; float nota8; float nota9; int codaux[20]; int vazio; int cod; }; struct cadastro registros[MAX]; void flush_in(){ int ch; while( (ch = fgetc(stdin)) != EOF && ch != '\n' ){} } void gotoxy (int x, int y); //Funçoes que serao usadas void cadastrar(int cod, int pos); //Funçao para consulta void listar( void ); //Funçao para consulta void consultar( void ); //Funçao para exibir relatorio int relatorio( void ); //Função para verificar posição int verifica_pos( void ); //Função para verificar codigo int verifica_cod( int cod ); //Função para verificar posição do codigo int verifica_pos( void ); //Função para excluir cadastro void zerar( void ); //Função para excluir cadastro void excluir( void ); //FUNÇÃO DO MAIN QUE CHAMA TODAS AS FUNÇÕES int main(void){ system ("color 1f"); int op = 0,senha=SENHA,posicao, matricula, retorno; printf("######### SISTEMA DE NOTAS DE ALUNOS: ##############\n\n "); do { printf ("\t\t ----------------------------------\n"); printf ("\n\t\t\t INSIRA A SUA SENHA : "); fflush(stdin); scanf ("%d",&senha); if(senha!=SENHA) { system ("color 1E"); printf("\n\n\t\t\t Senha incorreta. Tente Novamente !\n\n"); printf("\t\t ");system("pause"); system("cls"); } } while(senha!=SENHA); while(op!=5){ system("cls"); printf ("\t\t\t *** MENU DE NOTAS DE ALUNO: ***\n\n ",setlocale(LC_ALL,"")); printf ("\n\n\n\t\t\t DIGITE UMA OPÇÃO ABAIXO: \n\n\n\n ",setlocale(LC_ALL,"")); printf ("\t\t\t -----------------------------\n",setlocale(LC_ALL,"")); printf ("\t\t\t| 1 - Matrícula do Aluno |\n",setlocale(LC_ALL,"")); printf ("\t\t\t| 2 - Listar todos os Alunos |\n",setlocale(LC_ALL,"")); printf ("\t\t\t| 3 - Pesquisar por Matrícula |\n",setlocale(LC_ALL,"")); printf ("\t\t\t| 4 - Excluir Aluno |\n",setlocale(LC_ALL,"")); printf ("\t\t\t| 5 - Sair |\n",setlocale(LC_ALL,"")); printf ("\t\t\t -----------------------------\n",setlocale(LC_ALL,"")); scanf ("%d", &op); switch(op) { case 1: // FUNÇÃO VERIFICA A MATRÍCULA AO CADASTRAR { posicao=verifica_pos(); if ( posicao !=2) { printf("\n\t\t Digite o número da matrícula para o aluno : "); scanf("%d",&matricula); fflush(stdin); retorno = verifica_cod( matricula); if ( retorno == 1 ) { cadastrar( matricula, posicao ); }else{ printf("\n\t\tEste número de Matrícula já existe. Tente Outro !\n\n"); printf("\t\t ");system("pause\n\n"); } }else printf("\n\n\t\t Não é possível realizar mais cadastros !\n\n"); printf("\t\t ");system("pause\n\n"); break; } case 2: // LISTAR { listar(); break; } case 3:// CONSULTAR { consultar(); break; } case 4:// EXCLUIR { excluir(); system ("pause"); break; } // SAIR case 5: { printf("\n\n\t\t Saindo do Sistema - Tchau"); getchar(); printf("\t\t ");return 0; break; } default :// OPÇÃO INVÁLIDA printf("\n\t\t Opcão Inválida\n\n",setlocale(LC_ALL,"")); printf("\t\t ");system("pause\n\n"); break; } } getchar(); }//Final da Função Verifica se a matrícula ja esta sendo usada //FIM DO MAIN // FUNÇAO CADASTRAR void cadastrar( int cod, int pos ) { pos = verifica_pos(); registros[pos].cod = cod; printf("\n\t\t Digite Nome do Aluno: "); scanf("%s",&registros[pos].aluno); printf("\n\t\t Digite a 1º Disciplina : "); scanf("%s",&registros[pos].disciplina1); flush_in(); printf("\n\t\t Nota do 1º Bimestre: "); scanf("%f",&registros[pos].nota1); fflush(stdin); printf("\n\t\t Nota do 2º Bimestre: "); scanf("%f",&registros[pos].nota2); fflush(stdin); printf("\n\t\t Nota do 3º Bimestre: "); scanf("%f",&registros[pos].nota3); printf("\n\t\t Digite a 2º Disciplina : "); scanf("%s",&registros[pos].disciplina2); fflush(stdin); printf("\n\t\t Nota do 1º Bimestre: "); scanf("%f",&registros[pos].nota4); fflush(stdin); printf("\n\t\t Nota do 2º Bimestre: "); scanf("%f",&registros[pos].nota5); fflush(stdin); printf("\n\t\t Nota do 3º Bimestre: "); scanf("%f",&registros[pos].nota6); printf("\n\t\t Digite a 3º Disciplina : ",setlocale(LC_ALL,"")); scanf("%s",&registros[pos].disciplina3); fflush(stdin); printf("\n\t\t Nota do 1º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota7); fflush(stdin); printf("\n\t\t Nota do 2º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota8); fflush(stdin); printf("\n\t\t Nota do 3º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota9); registros[pos].vazio = 1; printf("\n\t\t Cadastro Realizado com Sucesso!\n\n",setlocale(LC_ALL,"")); printf("\t\t ");system("pause"); } //Final da Função Cadastrar // FUNÇAO LISTAR DADOS void listar(void) { int i,cod,posicao,pos,total; setlocale(LC_ALL," "); pos = verifica_pos(); if (cod>MAX) { system("cls"); printf("\nRESULTADO DA BUSCA: \n"); printf("\nForam encontrado (s) o total de :"); for(i=0; i<pos; i++){ total=pos; } printf(" %d Aluno (s) :\n",total); printf("________________________________________________\n\n"); } if (pos>=1) { for (i=0; i<pos; i++ ) { printf("\n\t |Matrícula : %d\n",registros[i].cod); printf("\n\t |Nome do Aluno é: %s\n" ,registros[i].aluno); printf("\n\t |Disciplina : %s\n",registros[i].disciplina1); printf("\n\t |Nota do 1º Bimestre: %.1f\t",registros[i].nota1); printf("\n\t |Nota do 2º Bimestre: %.1f\t",registros[i].nota1); printf("\n\t |Nota do 3º Bimestre: %.1f\n",registros[i].nota3); printf("\n\t |Disciplina : %s\n",registros[i].disciplina2); printf("\n\t |Nota do 1º Bimestre: %.1f\t",registros[i].nota4); printf("\n\t |Nota do 2º Bimestre: %.1f\t",registros[i].nota5); printf("\n\t |Nota do 3º Bimestre: %.1f\n",registros[i].nota6); printf("\n\t |Disciplina : %s\n",registros[i].disciplina3); printf("\n\t |Nota do 1º Bimestre: %.1f\t",registros[i].nota7); printf("\n\t |Nota do 2º Bimestre: %.1f\t",registros[i].nota8); printf("\n\t |Nota do 3º Bimestre: %.1f\n",registros[i].nota9); printf("___________________________________________________\n\n"); } }else{ if (pos<=0) { printf("\n\n\t\t\t Não existe Aluno cadastrado !\n\n"); printf("\t\t ");system("pause"); return; getchar(); } } printf("\t\t ")/system("pause"); }//Final da Função Listar //FUNÇÃO CONSULTAR DADOS void consultar( void ) { int cont = 0, cod,posicao, retorno,codaux; printf("\n\n\t\t\tEntre com o número de Matrícula : ",setlocale(LC_ALL,"")); scanf("%d",&cod); while ( cont <=2) { if (registros[cont].cod==cod) { if (registros[cont].vazio==1) { system("cls"); printf("\nRESULTADO DA BUSCA: \n\n"); printf("_____________________________________________\n\n"); printf("\nMatrícula : %d\n",registros[cont].cod); printf("\nNome do Aluno é: %s\n" ,registros[cont].aluno); printf("\nDisciplina : %s\n",registros[cont].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota3); printf("\nDisciplina : %s\n",registros[cont].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota6); printf("\nDisciplina : %s\n",registros[cont].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota9); printf("\n\n"); system ("pause"); break; } } cont++; } if (registros[cont].vazio==0) { printf("\n\t\t Esta Matrícula não existe. Tente novamente !\n\n",setlocale(LC_ALL,"")); printf("\t\t ")/system("pause"); } } //Final da Função Consultar Dados //FUNÇÃO VERIFICA POSIÇÃO int verifica_pos( void ) { int cont = 0; while ( cont <=MAX) { if ( registros[cont].vazio == 0 ) return(cont); cont++; } return(-1); }//Final da verifica Posição int zerar(int cod) { int cont; for ( cont = 0; cont <= MAX; cont++ ) registros[cont].vazio = 0; } //FUNÇÃO VERIFICA CÓDIGO int verifica_cod( int cod ) { int cont = 0; while ( cont <= MAX ) { if ( registros[cont].cod == cod ) return(0); cont++; } return(1); }//Final da Função Verifica Código //FUNÇÃO EXCLUIR void excluir( void ) { int cod, cont = 0; char resp; printf("\n\t Entre com o código do registro que deseja excluir :",setlocale(LC_ALL,"")); scanf("%d", &cod ); while ( cont <= MAX) { if ( registros[cont].cod == cod ) { // FALTOU if ( registros[cont].vazio == 1 ) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[cont].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[cont].cod); printf("\nNome do Aluno é: %s\n" ,registros[cont].aluno); printf("\nDisciplina : %s\n",registros[cont].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota3); printf("\nDisciplina : %s\n",registros[cont].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota6); printf("\nDisciplina : %s\n",registros[cont].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota9); getchar(); printf("\nDeseja realmente excluir ? S/N:"); scanf("%c",&resp); if ( ( resp == 'S' ) || ( resp == 's' ) ) { registros[cont].cod=0; registros[cont].aluno[50]=0; registros[cont].disciplina1[50]=0; registros[cont].nota1=0; registros[cont].nota1=0; registros[cont].nota3=0; registros[cont].disciplina2[50]=0; registros[cont].nota4=0; registros[cont].nota5=0; registros[cont].nota6=0; registros[cont].disciplina3[50]=0; registros[cont].nota7=0; registros[cont].nota8=0; registros[cont].nota9=0; registros[cont].vazio=0; printf("\nExclusão feita com sucesso\n\n"); break; } else { if ( ( resp == 'N' ) || ( resp == 'n' ) ) { printf("Exclusão cancelada!\n"); break; } } } } cont++; if ( cont > 2) printf("\n\n\t\t Código não encontrado . Tente Outro !\n"); } printf("\n\t\t ");return;system("pause"); system("cls"); }//Final da Função Excluir   Desde já eu agradeço o espaço..
    • Por atkinson
      Oi, estou fazendo um sistema de locadora de carros pra um projeto de faculdade em C, mas estou tendo problemas em uma parte. Meu código ele registra carros e os localiza quando disponíveis, e no arquivo carros.txt os dados ficam organizados dessa maneira:
       
      1 XXX1234 Gol 120
      0 YYY1234 Corsa 110
       
      O 1 e 0 no começo pra determinar disponível ou indisponível
      O XXX1234 é a placa do carro
      Logo depois da placa vem o modelo do carro
      E no final é o valor da diaria de cada carro, sendo o gol 120 reais por dia e o corsa 110 reais por dia.
       
      Eu gostaria de saber, entre todos os carros, como eu poderia por exemplo, digamos que alugaram o gol, como eu faço pro meu sistema localizar o Gol, e modificar o 1 pra 0. Não estou conseguindo achar os comandos q fazem essa busca e alteração. Se alguem puder me ajudar, agradeço muitíssimo. Obrigado pelo seu tempo!
       
    • Por Sylas Chagas
      Este é o exercício: O número 9801 possui a seguinte característica: 98 + 01 = 99 -> 99*99 = 9801. Fazer um programa para obter todos os números de 4 algarismos com a mesma característica do número 9801

      Gostaria de saber aonde estou errando. Alguém tem noção?
      Código: #include <stdio.h> int calculo(x){ int a,b,c; a=(x/100); b=(x%100); c=(a+b); return c*c; } void main () { int num; printf("Numeros com tal caracteristica: "); for (num=1000;num=9999;num++){ if (calculo(num)==num) { printf ("%d\n",num); } } }
    • Por Jeovane Carvalho
      Olá Senhores , estou aqui para um help dos senhores mais experientes, e estou com um problema em meu código, pois desenvolvi um menu em C, e esta funcionando praticamente em tudo, e só não consegui imprimi todos os dados na tela ..
       
      Por exemplo, se eu cadastrar mais de 1 aluno em meu sistema eu consigo visualizar de boa buscando pela matrícula, mas se eu pedi para listar todos os alunos cadastrados, ele só busca o primeiro e os outros ele não retorna, segue abaixo o código....
       
       
      #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<string.h> struct cadastro { int matricula; char aluno[50]; char disciplina1[50]; char disciplina2[50]; char disciplina3[50]; float nota1; float nota2; float nota3; float nota4; float nota5; float nota6; float nota7; float nota8; float nota9; int codaux[20]; int vazio; int cod; }; struct cadastro registros[50]; void flush_in(){ int ch; while( (ch = fgetc(stdin)) != EOF && ch != '\n' ){} } //Funçoes que serao usadas void cadastrar(int cod, int pos); //Funçao para consulta void listar( void ); //Funçao para consulta void consultar( void ); //Funçao para exibir relatorio int relatorio( void ); //Função para verificar posição int verifica_pos( void ); //Função para verificar codigo int verifica_cod( int cod ); //Função para verificar posição do codigo int verifica_pos( void ); //Função para excluir cadastro void excluir( void ); int main(void){ int op = 0,senha,posicao, matricula, retorno; printf("######### SISTEMA DE NOTAS DE ALUNOS: ##############\n\n "); do { printf(" DIGITE UMA SENHA : "); scanf ("%d",&senha); if(senha!=1) { printf("Senha incorreta. Tente Novamente \n\n"); system("pause"); system("cls"); } } while(senha!=1); while(op!=5){ system("cls"); printf ("\n\n *** MENU DE NOTAS DE ALUNO: ***\n\n ",setlocale(LC_ALL,"")); printf ("| 1 - Matrícula do Aluno |\n",setlocale(LC_ALL,"")); printf (" | 2 - Lista de Alunos |\n",setlocale(LC_ALL,"")); printf (" | 3 - Listar dados do Aluno |\n",setlocale(LC_ALL,"")); printf (" | 4 - Pesquisar por Matrícula |\n",setlocale(LC_ALL,"")); printf (" | 5 - Sair |\n",setlocale(LC_ALL,"")); scanf ("%d", &op); switch(op) { case 1: // CADASTRAR { posicao=verifica_pos(); if ( posicao != -1 ) { printf("\nDigite o número da matrícula para o aluno : "); scanf("%d",&matricula); fflush(stdin); retorno = verifica_cod( matricula); if ( retorno == 1 ) cadastrar( matricula, posicao ); else printf("\nCodigo ja existente\n"); system ("pause"); } else printf("\nNao e possivel realizar mais cadastros!\n"); break; } case 2: // LISTAR { listar(); break; } case 3:// CONSULTAR { consultar(); break; } case 4:// EXCLUIR { excluir(); system ("pause"); break; } // SAIR case 5: { printf("\n Saindo do Sistema - Tchau"); getchar(); return 0; break; } default :// OPÇÃO INVÁLIDA printf("Opcão Inválida",setlocale(LC_ALL,"")); break; } } getchar(); } // FUNÇAO CADASTRAR void cadastrar( int cod, int pos ) { pos = verifica_pos(); registros[pos].cod = cod; printf("\nDigite Nome do Aluno: "); scanf("%s",&registros[pos].aluno); printf("\nDigite a 1º Disciplina : "); scanf("%s",&registros[pos].disciplina1); flush_in(); printf("\nNota do 1º Bimestre: "); scanf("%f",&registros[pos].nota1); fflush(stdin); printf("\nNota do 2º Bimestre: "); scanf("%f",&registros[pos].nota2); fflush(stdin); printf("\nNota do 3º Bimestre: "); scanf("%f",&registros[pos].nota3); printf("\nDigite a 2º Disciplina : "); scanf("%s",&registros[pos].disciplina2); fflush(stdin); printf("\nNota do 1º Bimestre: "); scanf("%f",&registros[pos].nota4); fflush(stdin); printf("\nNota do 2º Bimestre: "); scanf("%f",&registros[pos].nota5); fflush(stdin); printf("\nNota do 3º Bimestre: "); scanf("%f",&registros[pos].nota6); printf("\nDigite a 3º Disciplina : ",setlocale(LC_ALL,"")); scanf("%s",&registros[pos].disciplina3); fflush(stdin); printf("\nNota do 1º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota7); fflush(stdin); printf("\nNota do 2º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota8); fflush(stdin); printf("\nNota do 3º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota9); registros[pos].vazio = 1; printf("\nCadastro Realizado com Sucesso!\n\n",setlocale(LC_ALL,"")); getchar(); system("cls"); } //Final da Função Cadastrar // FUNÇAO LISTAR void listar() { setlocale(LC_ALL," "); int i,j,cod,posicao,pos, retorno; pos = verifica_pos(); for (i=0; i<pos; i++ ) { if (registros[i].vazio==1) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[i].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[i].cod); printf("\nNome do Aluno é: %s\n" ,registros[i].aluno); printf("\nDisciplina : %s\n",registros[i].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[i].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[i].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[i].nota3); printf("\nDisciplina : %s\n",registros[i].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[i].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[i].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[i].nota6); printf("\nDisciplina : %s\n",registros[i].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[i].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[i].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[i].nota9); printf("\n\n"); printf("**********************************************\n\n"); system("pause"); getchar(); break; } i++; } if (registros[i].vazio==0) { printf("\nCódigo não encontrado\n\n"); system("pause"); system("cls"); return ; } } //FUNÇÃO CONSULTAR void consultar( void ) { int cont = 0, cod,posicao, retorno,codaux; printf("\nEntre com o código: ",setlocale(LC_ALL,"")); scanf("%d",&cod); system("cls"); while ( cont <= 100 ) { if (registros[cont].cod==cod) { if (registros[cont].vazio==1) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[cont].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[cont].cod); printf("\nNome do Aluno é: %s\n" ,registros[cont].aluno); printf("\nDisciplina : %s\n",registros[cont].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota3); printf("\nDisciplina : %s\n",registros[cont].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota6); printf("\nDisciplina : %s\n",registros[cont].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota9); printf("\n\n"); system ("pause"); system("cls"); break; } } cont++; if (registros[cont].vazio==0) { printf("\nCódigo não encontrado\n\n",setlocale(LC_ALL,"")); system("pause"); system("cls"); return ; } } } //FUNÇÃO VERIFICA POSIÇÃO int verifica_pos( void ) { int cont = 0; while ( cont <= 100 ) { if ( registros[cont].vazio == 0 ) return(cont); cont++; } return(-1); } //FUNÇÃO ZERAR void zerar( void ) { int cont; for ( cont = 0; cont <= 100; cont++ ) registros[cont].vazio = 0; } //FUNÇÃO VERIFICA CODIGO int verifica_cod( int cod ) { int cont = 0; while ( cont <= 100 ) { if ( registros[cont].cod == cod ) return(0); cont++; } return(1); } //FUNÇÃO EXCLUIR void excluir( void ) { int cod, cont = 0; char resp; printf("\nEntre com o código do registro que deseja excluir\n",setlocale(LC_ALL,"")); scanf("%d", &cod ); while ( cont <= 100 ) { if ( registros[cont].cod == cod ) { // FALTOU if ( registros[cont].vazio == 1 ) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[cont].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[cont].cod); printf("\nNome do Aluno é: %s\n" ,registros[cont].aluno); printf("\nDisciplina : %s\n",registros[cont].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota3); printf("\nDisciplina : %s\n",registros[cont].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota6); printf("\nDisciplina : %s\n",registros[cont].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota9); getchar(); printf("\nDeseja realmente excluir ? S/N:"); scanf("%c",&resp); if ( ( resp == 'S' ) || ( resp == 's' ) ) { registros[cont].vazio=0; printf("\nExclusão feita com sucesso\n\n"); break; } else { if ( ( resp == 'N' ) || ( resp == 'n' ) ) { printf("Exclusão cancelada!\n"); break; } } } } cont++; if ( cont > 100 ) printf("\nCodigo nao encontrado\n"); } system("pause"); system("cls"); } Como eu disse, ele roda de boa só não lista todos os alunos e apenas 0 1º, um #trabalhozinho de faculdade.. Obrigado !
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: