Buscar

simulado_monitoria_2013.1_p3

Prévia do material em texto

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

Continue navegando