Prova 1 de Programação 2 (2010/1)
Autor: Hilário | Publicado: 2010-09-15T14:01:00-03:00

<!--[if gte mso 9]>     Normal   0         21         false   false   false      PT-BR   X-NONE   X-NONE                                                                                                     <![endif]--><!--[if gte mso 9]>                                                                                                                                                                                                                                                                                                                                                                                                                                   <![endif]--><!--[if gte mso 10]>   /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;}  <![endif]-->  Você é um estagiário e foi convocado às pressas para criar o sistema de notas do Vestibular de uma faculdade. A escola possui informações sobre as notas que os candidatos obtiveram em cada curso separadas em arquivos textos (um arquivo para cada curso), e também um arquivo texto com as informações de cada curso. Você projetou as seguintes estruturas de dados para armazenar esses dados:     typedef struct {       char nome[50];       char inscr[20];       double nota;  } Candidato;     typedef struct {       char codigo[10];       char nome[50];       int n_vagas;       int n_inscritos;       Candidato **v; /* vetor que armazenará os alunos inscritos no curso */  } Curso;        Questão 1) Implemente uma função que receba como parâmetros o número de cursos oferecidos e um arquivo texto (já aberto) contendo as informações sobre cada curso. Leia os dados do arquivo e retorne um vetor contendo os cursos criados. Exemplo de arquivo entrada:     CCOMP  Ciência da Computação  40  560  MAT  Matemática  40  78     Questão 2) Implemente uma função que receba como parâmetros um vetor com os cursos oferecidos, o número de cursos, o código de um curso e um arquivo texto (já aberto) com informações sobre os candidatos a esse curso. Aloque e armazene neste curso as informações sobre seus candidatos. Exemplo de arquivo entrada para um curso com 3 inscritos:     Hilario Seibel Junior  20100034  99.9  Seu Madruga  20103556  21.3  Cristovao Colombo  20105502  57.8     Questão 3) Implemente uma função que receba um curso como parâmetro. Imprima os alunos aprovados e os 10 primeiros suplentes (caso existam alunos suficientes). Caso haja alunos com mesma nota, o aluno com menor número de matrícula deverá ficar mais bem posicionado.     Questão 4) Implemente uma função que receba como parâmetros o número de cursos oferecidos e o vetor de cursos. Crie um arquivo binário para cada curso oferecido, contendo as informações sobre os candidatos aprovados neste curso. O nome do arquivo deve ser o código do curso com a extensão ".bin". Para criar a String contendo o nome deste arquivo, implemente uma função em separado que concatene duas Strings e retorne a String criada (sem utilizar a biblioteca "String.h").     Questão 5) Implemente a função principal, que deve receber na linha de comando o nome do arquivo contendo informações sobre os cursos. Considere que o primeiro elemento contido neste arquivo será o número de cursos oferecidos. Em seguida, crie o vetor de cursos, armazene as informações sobre os candidatos a este curso, imprima os aprovados e os 10 primeiros suplentes de cada curso e crie os arquivos binários com as informações sobre os alunos aprovados em cada curso (para que estas fiquem disponíveis para futuras consultas). Obs.: Considere que o nome do arquivo texto contendo as informações sobre os candidatos a cada curso é o código do curso com a extensão ".txt". Lembre-se de desalocar os vetores que tenham sido alocados dinamicamente.