Seguinte to com um problema com um trabalho final da materia de Algoritmos agente trabalha na linguagem C.
O enunciado do trabalho é o seguinte:
Enunciado do trabalho:
Implementar um programa em C para controle de um vestibular, utilizando a estrutura de dados lista encadeada. Considere a existência de apenas um curso. O programa deverá funcionar da seguinte forma:
• O usuário irá indicar a quantidade de alunos que irão participar do vestibular e o número de vagas disponíveis;
• Os dados dos n alunos deverão ser inseridos em um arquivo denominado “vestibular.txt”.
• O programa deverá ler do arquivo “vestibular.txt” os dados dos alunos, verificar quais são os alunos aprovados com o seguinte
critério se a nota for maior ou igual a 60 o aluno e aprovado senão reprovado e, posteriormente,
gravar em um arquivo denominado “aprovados.txt”. Verificar também quais alunos foram reprovados e, posteriormente, gravar em um
arquivo denominado “reprovados.txt”.
• Para cada aluno, informar o nome, o número de inscrição e a nota no vestibular, sendo a nota um valor entre 0 e 100, inclusive.
Até ae tudo beleza, só que to com dificuldade em terminar o programa, vo enviar o codigo do que eu fiz:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <io.h>
#include <sys/time.h>
#include <iostream>
//using namespace std;
#define max 10
/* ========================================================================= */
typedef struct {
int matricula;
char nome[10];
int nota;
/* outros componentes */
}TipoItem;
typedef struct Celula_str {
TipoItem Item;
struct Celula_str *Prox;
}Celula;
typedef struct {
Celula *Primeiro, *Ultimo;
}TipoLista;
/* ========================================================================= */
//Funcao que cria uma lista encadeada vazia
void FLVazia(TipoLista *Lista)
{
Lista->Primeiro = new Celula[1];
Lista->Ultimo = Lista->Primeiro;
Lista->Primeiro->Prox = NULL;
}
/* ========================================================================= */
//Funcao que verifica se a lista esta vazia
int Vazia(TipoLista Lista)
{
return (Lista.Primeiro == Lista.Ultimo);
}
/* ========================================================================= */
//Funcao que insere um novo item no final da lista
void InsereNoFim(TipoItem x, TipoLista *Lista)
{
Lista->Ultimo->Prox = new Celula[1];
Lista->Ultimo = Lista->Ultimo->Prox;
Lista->Ultimo->Item = x;
Lista->Ultimo->Prox = NULL;
}
/* ========================================================================= */
// Função insere um novo item entre a celula apontada por
// p e a seguinte. Supõe-se que p != NULL.
void Insere(TipoItem x, Celula *p)
{
Celula *nova;
nova = new Celula[1];
nova->Item = x;
nova->Prox = p->Prox;
p->Prox = nova;
}
/* ========================================================================= */
// Funcao para imprimir os elementos da lista
void Imprime(TipoLista Lista) // Imprime do Aquivo
{
if (Vazia(Lista)){
printf("\nErro, lista esta vazia");
return;
}
Celula *Aux;
Aux = Lista.Primeiro->Prox;
while (Aux != NULL)
{
FILE *p;
p = fopen ("vestibular.txt","w");
if (!p){
printf ("Erro na abertura do arquivo. Fim de programa.");
exit (1);
}
// Gravando em arquivo
fprintf(p,"%d\n ",&Aux->Item.matricula);
fprintf(p,"%c\n ",&Aux->Item.nome);
fprintf(p,"%d\n ",&Aux->Item.nota);
//fprintf(p,"%s\n ",&Aux->Item.situacao);
Aux = Aux->Prox;
fclose(p);
}
}
/* ========================================================================== */
int main(int argc, char *argv[])
{
TipoLista lista;
TipoItem item;
Celula *p;
int i;
int Ins; //Numero de Alunos inscritos
int vag; //Numero de vagas do Vestibular
FLVazia(&lista);
printf( "\nInforme a quantidade de Inscritos: ");
scanf("\n%d", Ins);
p = lista.Primeiro;
for(i = 0; i < Ins; i++){
printf( "\n Dados do Aluno\n");
printf("\nInforme a matricula do Aluno: ");
scanf("\n%d", item.matricula);
printf("\nInforme o Nome do Aluno: ");
scanf("\n% c", item.nome);
printf("\nInforme Nota do Aluno (0 a 100): ");
scanf("\n%d",item.nota);
p = lista.Primeiro;
}
Imprime(lista);
system("pause");
return(0);
}
Obrigado pela Ajuda
Editado por quintelab Título alterado, removido: Ajuda com programa
Pergunta
SocramSadD
Fala galera beleza?
Seguinte to com um problema com um trabalho final da materia de Algoritmos agente trabalha na linguagem C.
O enunciado do trabalho é o seguinte:
Enunciado do trabalho:
Implementar um programa em C para controle de um vestibular, utilizando a estrutura de dados lista encadeada. Considere a existência de apenas um curso. O programa deverá funcionar da seguinte forma:
• O usuário irá indicar a quantidade de alunos que irão participar do vestibular e o número de vagas disponíveis;
• Os dados dos n alunos deverão ser inseridos em um arquivo denominado “vestibular.txt”.
• O programa deverá ler do arquivo “vestibular.txt” os dados dos alunos, verificar quais são os alunos aprovados com o seguinte
critério se a nota for maior ou igual a 60 o aluno e aprovado senão reprovado e, posteriormente,
gravar em um arquivo denominado “aprovados.txt”. Verificar também quais alunos foram reprovados e, posteriormente, gravar em um
arquivo denominado “reprovados.txt”.
• Para cada aluno, informar o nome, o número de inscrição e a nota no vestibular, sendo a nota um valor entre 0 e 100, inclusive.
Até ae tudo beleza, só que to com dificuldade em terminar o programa, vo enviar o codigo do que eu fiz:
Obrigado pela Ajuda
Editado por quintelabTítulo alterado, removido: Ajuda com programa
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.