Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Pontifícia Universidade Católica do Rio de Janeiro Disciplinas: Programação I (INF1004 / INF1005) Avaliação Prática (P3) – 01/12/2012 Nome do aluno: _________________________________________________________________________ Professor: ____________________ Turma: ________________ Matrícula: _______________ Instruções para a realização da avaliação prática 1. A prova terá duração de 150 minutos (2 horas e 30 minutos). 2. É responsabilidade do aluno salvar periodicamente o seu trabalho!!!!. 3. O nome do seu projeto e do seu programa-fonte devem ser iguais ao código da sua turma mais o número da sua matricula e mais o seu primeiro nome. Exemplo: 33F-1012983-maria. 4. No início do seu programa-fonte, coloque, como comentários, o seu nome completo, sua matrícula e o nome do seu professor. 5. Todos os arquivos mencionados no texto abaixo estão armazenados e/ou devem ser criados no diretório especificado pelo professor no início da prova. 6. Não é permitido destacar as folhas que compõem a prova (2 folhas). 7. Antes de perguntar, leia atentamente o que está sendo pedido. 8. Quando terminar a prova, permaneça sentado e chame um professor ou um fiscal. 9. A nota da prova será entregue na data divulgada pelo seu professor. Questão única Na Universidade AAAA, que possui capacidade para, no máximo, 100 alunos, os créditos das disciplinas são contabilizados de acordo com o tipo da disciplina. Há 6 tipos conforme a tabela abaixo: Tipo Descrição EF Eletiva fora do departamento EL Eletiva livre OB Obrigatória básica OC Obrigatória do curso PB Optativa básica PE Optativa da ênfase No arquivo texto CONTAGEM.TXT estão armazenadas as quantidades de créditos ainda não cursados por cada aluno em cada um dos tipos de disciplinas, até o semestre anterior ao atual, por ordem de tipo (conforme tabela acima). Ou seja, o arquivo contém, para cada aluno: • nome do aluno (string de, no máximo, 20 caracteres válidos); • para cada tipo de disciplina: • quantidade de créditos que ainda devem ser cursados para se formar (6 valores inteiros). Portanto, na próxima linha após o nome de um aluno, estão os créditos referentes às disciplinas de cada tipo: EF, EL, OB, OC, PB e PE. Exemplo: imagine que as linhas no retângulo ao lado façam parte do arquivo CONTAGEM.TXT. Isso significaria que o aluno ZEZINHO ainda deve cursar 5 créditos de disciplinas EF, 2 créditos de EL, 3 de OB, 4 de OC, 5 de PB e 2 de PE. Após o término de cada semestre, a contagem de créditos de cada aluno da universidade deve ser atualizada de acordo com as disciplinas cursadas pelo aluno no semestre. Para que os créditos de uma disciplina cursada sejam contabilizados, é necessário que o aluno tenha sido aprovado na disciplina, ou seja, sua média final deve ser maior ou igual a 5.0 (cinco). O arquivo texto SEMESTRE.TXT contém as seguintes informações sobre o semestre atual, uma em cada linha: • nome do aluno (string de, no máximo, 20 caracteres válidos); • total de disciplinas cursadas pelo aluno no semestre; • para cada disciplina cursada: • tipo da disciplina (string de 2 caracteres válidos, conforme a tabela acima); • quantidade de créditos; • média final. Exemplo: imagine que as linhas no retângulo ao lado façam parte do arquivo SEMESTRE.TXT. Isso significaria que o aluno TIO PATINHAS cursou 3 disciplinas no último semestre: • 1 Obrigatória Básica de 2 créditos sendo aprovado com média 7.4; • 1 Eletiva Livre de 1 crédito sendo reprovado com média 4.1; • 1 Obrigatória Básica de 1 crédito sendo aprovado com média 9.8 Nota TIO PATINHAS 3 OB 2 7.4 EL 1 4.1 OB 1 9.8 ZEZINHO 5 2 3 4 5 2 Faça um programa que gere um relatório atualizado (na tela) a partir das informações armazenadas nos 2 arquivos mencionados anteriormente. No relatório, para cada aluno, deve ser impressa a quantidade de créditos ainda não cursados em cada tipo de disciplina. Caso o aluno não tenha mais créditos a cumprir, deverá aparecer a mensagem “Formando”. Ao final do relatório, as seguintes informações devem ser impressas: • o nome do aluno que possui mais créditos ainda não cursados; • o total de alunos que já cumpriram todas as disciplinas do tipo OB (créditos a cumprir = 0); • o total de alunos que já cumpriram todas as disciplinas do tipo OC (créditos a cumprir = 0); Ao final desta página, a seção “RESULTADO ESPERADO” mostra EXATAMENTE o que deve ser impresso pelo seu programa, considerando os arquivos fornecidos. Importante: você NÃO pode alterar o conteúdo desses arquivos. Obrigatoriamente, você deve criar e utilizar as funções abaixo cujos protótipos são: a) int busca (char alunos[][21], char chave[], int total_alunos): implementa o algoritmo de busca sequencial em um vetor de strings; b) int le_arq_contagem (char alunos[][21], int tabela[][6]): realiza a leitura dos dados do arquivo CONTAGEM.TXT, preenchendo os parâmetros recebidos; retorna a quantidade de alunos da universidade; c) void atualiza_tabela(char alunos[][21], int tabela[][6], int total_alunos): atualiza a tabela de créditos ainda não cursados pelos alunos a partir das informações armazenadas no arquivo SEMESTRE.TXT; d) void gera_relatorio(char alunos[][21], int tabela[][6], int total_alunos): imprime o relatório solicitado; e) void contaAlunoSemOBeOC (int tabela[][6], int total_alunos, int *ptotal_semOB, int *ptotal_semOC): preenche os 2 últimos parâmetros recebidos com a quantidade de alunos que já cumpriram todas as disciplinas do tipo OB e do tipo OC, respectivamente. RESULTADO ESPERADO (na tela): Nome EF EL OB OC PB PE CLARABELA 2 2 0 3 2 4 GASTAO 6 2 3 4 3 1 MARGARIDA 8 3 3 4 5 3 MICKEY MOUSE 9 2 3 4 4 4 PATETA 11 12 13 14 15 1 JOAO BAFO DE ONCA 9 14 31 42 5 9 ZEZINHO 5 2 3 4 5 2 LUIZINHO 5 2 3 4 5 2 HUGUINHO 5 2 3 4 5 2 PLUTO 1 1 3 1 2 1 PROFESSOR PARDAL 0 0 0 0 0 0 Formando MINNIE 8 2 7 6 2 6 ZE CARIOCA 0 0 0 0 0 0 Formando TECO 11 3 3 2 8 8 TICO 13 2 6 4 3 5 PATO DONALD 5 3 6 2 3 1 PENINHA 5 5 1 3 2 1 TIO PATINHAS 9 8 6 9 9 9 VOVO DONALDA 5 5 6 7 8 8 Aluno que falta cumprir mais creditos: JOAO BAFO DE ONCA Total de alunos que ja cumpriram todas as disciplinas do tipo OB: 3 Total de alunos que ja cumpriram todas as disciplinas do tipo OC: 2 RASCUNHO