Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema De Cadastro De Alunos


acostaviana

Pergunta

Boa noite pessoal!!!

Tenho que fazer o seguinte programa:

Construa um programa para organizar a matrícula, o nome, e as notas P1 e P2 de vários alunos de uma turma. A quantidade de alunos da turma deverá ser informada pelo usuário.

O programa deverá oferecer as seguintes opções ao usuário:

 Cadastrar os dados de um aluno.

 Remover os dados de um aluno.

 Listar em ordem crescente de matrícula os alunos cadastrados.

 Listar em ordem alfabética os alunos cadastrados.

Obs.: utilize struct, alocação dinâmica, funções, passagem de parâmetro por referência.

Será que alguém pode me ajudar?????

:D

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

boa noite.

Olha aki, este programa usa todos os dados que você pediu, com pequenas modificações você consegue adaptá-lo p/ as suas necessidades. valeu! Qualquer coisa é só falar.

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

#include<dos.h>

struct tipoitem

{

char nome[30],end[30],tel[30],cidade[10],cep[15];

};

class montatela

{

int l,c,y,col,lin;

public:

void monta_tela();

void apresentacao();

void mostra_data();

}; //metodos

class tipolista

{

struct tipocelula

{

tipoitem item;

tipocelula *prox;

};tipocelula *inicio,*fim;

public:

void inserir(tipoitem elemento, int &cont);

void retirar(tipoitem &elemento,int &cont);

void mostrar_qt();

void mostrar_todos();

int mostrar_arcos();

tipolista();

~tipolista();

void vazia();

};

tipolista::tipolista()

{

if((inicio=fim=new(tipocelula))==NULL)

cout<<"MEMORIA INSUFICIENTE";

else

inicio->prox=NULL;

}

tipolista::~tipolista()

{

tipocelula *temp=inicio;

while(temp!=NULL)

{

inicio=inicio->prox;

temp->prox=NULL;

delete temp;

temp=inicio;

}

}

void tipolista::inserir(tipoitem elemento,int &cont)

{

tipocelula *novo,*aux,*aux1;

aux=inicio; aux1=inicio->prox;

while(aux1!=NULL)

{

if(strcmp(aux1->item.nome,elemento.nome)>0)

break;

aux=aux->prox;

aux1=aux1->prox;

}

if((novo=new(tipocelula))==NULL)

cout<<"MEMORIA INSUFICIENTE";

else

{

novo->prox=aux->prox;

aux->prox=novo;

novo->item=elemento;

cont++;

cout<<"\nCONVIDADO INSERIDO COM SUCESSO!";

getch();

}

if(aux1==NULL)

fim=novo;

return;

}

void tipolista::retirar(tipoitem &elemento,int &cont)

{

// int status=0;

tipocelula *aux,*aux1;

aux=aux1=inicio;

aux1=inicio->prox;

cout<<"\nDIGITE O NOME DO CONVIDADO: ";

cin>>elemento.nome;

while(aux1!=NULL)

{

if(strcmp(elemento.nome,aux1->item.nome)==0)

break;

aux=aux->prox;

aux1=aux1->prox;

}

if(aux1==NULL)

{

cout<<"\nNAO EXISTE ESTA PESSOA NA FESTA";

getch();

}

else

{

cont--;

aux->prox=aux1->prox;

aux1->prox=NULL;

elemento=aux1->item;

delete aux1;

}

if(aux->prox==NULL)

fim=aux;

return;

}

void tipolista::mostrar_todos()

{

tipocelula *aux;

aux=inicio->prox;

while(aux!=NULL)

{

cout<<"\nNOME:.........."<<aux->item.nome;

cout<<"\nENDERECO......."<<aux->item.end;

cout<<"\nTELEFONE......."<<aux->item.tel;

cout<<"\nCIDADE........."<<aux->item.cidade;

cout<<"\nCEP............"<<aux->item.cep;

cout<<"\n\n";

aux=aux->prox;

getch();

}

}

int tipolista::mostrar_arcos()

{

int status=0;

tipocelula *aux;

aux=inicio->prox;

while(aux!=NULL)

{

if(strcmp(aux->item.cidade,"ARCOS")==0)

{

cout<<"\nNOME:.........."<<aux->item.nome;

cout<<"\nENDERECO......."<<aux->item.end;

cout<<"\nTELEFONE......."<<aux->item.tel;

cout<<"\nCIDADE........."<<aux->item.cidade;

cout<<"\nCEP............"<<aux->item.cep;

status=1;

}

aux=aux->prox;

}

if(status==0)

cout<<"\nNAO EXISTE NENHUM VISITANTE DE ARCOS";

return status;

}

void montatela::monta_tela()

{

textmode(C80);

textbackground(15);

clrscr();

window(11,5,71,25);

textbackground(15);

clrscr(); //LIMPA TELA

l=0;

textcolor(1);

for(c=0;c<60;c++)

{

gotoxy(c,l);

cprintf("Ä");

}

gotoxy(c+1,l);

cprintf("¿");

c=c+1;

for (l=2;l<20;l++)

{

gotoxy(c,l);

cprintf("³");

}

gotoxy(c,19);

cprintf("Ù");

l=19;

for (c=60;c>0;c--)

{

gotoxy(c,l);

cprintf("Ä");

}

c=1;

for(l=2;l<19;l++)

{

gotoxy(c,l);

cprintf("³");

}

gotoxy(c,l);

printf("À");

gotoxy(c,1);

printf("Ú");

for(c=2;c<61;c++)

{

gotoxy(c,1);

cprintf("Û");

}

}

void montatela::apresentacao()

{

textcolor(60);

gotoxy(30-strlen("BEM VINDO A FESTA ")/2,2);

cprintf("%s","BEM VINDO A FESTA" );

textcolor(15);

gotoxy(30-strlen("DIGITE A SUA OPCAO TECLE <ENTER>")/2,5);

cprintf("%s","DIGITE A SUA OPCAO E TECLE <ENTER>" );

gotoxy(30-strlen("[1]-INSERIR CONVIDADO EM ORDEM DE NOME NA LISTA")/2,7);

cprintf("%s","[1]-INSERIR CONVIDADO EM ORDEM DE NOME NA LISTA" );

gotoxy(30-strlen("[2]-RETIRAR CONVIDADO")/2,8);

cprintf("%s","[2]-RETIRAR CONVIDADO" );

gotoxy(30-strlen("[3]-MOSTRAR QUANTIDADE DE CONVIDADOS")/2,9);

cprintf("%s","[3]-MOSTRAR QUANTIDADE DE CONVIDADOS" );

gotoxy(30-strlen("[4]-MOSTRAR TODOS OS CONVIDADOS")/2,10);

cprintf("%s","[4]-MOSTRAR TODOS OS CONVIDADOS" );

gotoxy(30-strlen("[5]-MOSTRAR TODOS OS CONVIDADOS DA CIDADE DE ARCOS")/2,11);

cprintf("%s","[5]-MOSTRAR TODOS OS CONVIDADOS DA CIDADE DE ARCOS" );

gotoxy(30-strlen("[6]-SAIR")/2,12);

cprintf("%s","[6]-SAIR" );

}

void montatela::mostra_data() //PROCEDIMENTO PARA MOSTRAR A DATA ATUAL

{

struct date data;

gotoxy(30-strlen("DATA ATUAL: XX/XX/XXXX")/2,4);

getdate(&data);

cprintf("DATA ATUAL:%d/%d/%d",data.da_day,data.da_mon,data.da_year);

}

void main()

{

int op,cont=0;

tipolista lista;

montatela tela;

tipoitem elemento;

clrscr();

do

{

tela.monta_tela();

tela.apresentacao();

tela.mostra_data();

cin>>op;

window(1,1,80,25); //definicao do tamanho da tela

clrscr();

textbackground(0);

clrscr();

switch (op)

{

case 1:

cout<<"\nDIGITE O NOME DO CONVIDADO: ";

cin>>elemento.nome;

cout<<"\nDIGITE O ENDERECO DO CONVIDADO: ";

cin>>elemento.end;

cout<<"\nDIGITE O TELEFONE DO CONVIDADO: ";

cin>>elemento.tel;

cout<<"\nDIGITE A CIDADE DO CONVIDADO: ";

cin>>elemento.cidade;

cout<<"\nDIGITE O CEP DA CIDADE: ";

cin>>elemento.cep;

lista.inserir(elemento,cont);

break;

case 2:

if(cont==0)

cout<<"não EXSTE MAIS NENHUM CONVIDADO NA FESTA";

else

lista.retirar(elemento,cont);

cout<<"\nVC RETIROU O CONVIDADO DE NOME:......."<<elemento.nome;

getch();

break;

case 3:

cout<<"\nPOSSUI "<<cont<<" CONVIDADOS NA FESTA";

getch();

break;

case 4:

clrscr();

if(cont==0)

cout<<"não POSSUI MAIS NENHUM CONVIDADO NA FESTA";

else

lista.mostrar_todos();

break;

case 5:

lista.mostrar_arcos();

getch();

break;

case 6:

exit(1);

}

}while(op!=6);

}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...