PUCRS
Programação de Software Básico
Faculdade de Informática
Trabalho II - 2006/2
Este trabalho poderá ser desenvolvido por grupos de 2 alunos ou de forma individual
<<ATENÇÃO: Página atualizada com uma interface gráfica para o trabalho>>
<<<Envie para [email protected] um arquivo com as disciplinas que você poderá cursar em 2007/I>>>
<<<O nome do arquivo deve ter seu número de matrícula>>>
DESCRIÇÃO
Este trabalho tem por objetivo
aplciar os conceitos de Programação Orientada a Objetos,
vistos em aula. O objetivo geral do programa a ser desenvolvido
é gerenciar a matrícula de alunos em um conjunto de
disciplinas. Todos os dados deve ser gravados em arquivos-texto e podem
ser usados pelo programa diversas vezes.
FUNÇÕES
O programa deverá executar, pelo menos estas funções:
Imprimir os alunos matriculados em uma disciplina:
o usuário deve informar o código da disciplina e o
sistema deve imprimir a listagem dos alunos(matriula e nome) em ordem
alfabética do nome.
Escolher um aluno para trabalhar:o usuário deve informar o número de matrícula e a partir desta informação, todas as demais operações serão realizadas sobre
este aluno;
Imprimir o horário do aluno: exibe na tela, o horário atualizado do aluno;
Imprimir as disciplinas em que o aluno pode se matricular: nesta
listagem devem aparecer as disciplinas, suas turmas e seus
horários. O sitema nõa deve apresentar as disciplinas em
que o aluno já está matriculado;
Matricular o aluno em uma disciplina: o usuário informa o código e a turma da disciplina
e o sistema insere a mesma em seu horário, se não houver
colisão de horário com outra discplina. Casa haja, a
operação não deve ser realizada e uma mensagem de
erro deve ser apresentada ao usuário. Se for informada uma
disciplina inválida, o sistema deve notificar o usuário;
Retirar o aluno de uma disciplina: o
usuário informa o código e a turma da disciplina e
o sistema retira a disciplina de seu horário, se esta
não fizer parte do horário do aluno, uma
mensagem de erro deve ser apresentada
ao usuário. Se for informada uma disciplina inválida, o sistema deve notificar o usuário;
ARQUIVOS
Para poder funcionar o programa deverá ter acesso a alguns arquivos(no formato texto) com os dados de alunos, e disciplinas existentes e disciplinas liberadas para o alunos.
A seguir, cada uma destes arquivos é apresentado:
Arquivo de TURMAS: conterá, em cada linha o código, o número de créditos, o nome, a turma e o horário
de cada uma turma de cada disciplina. Os dados de uma
turma(que estão em uma linha) deverão ser separados por
um asterisco '*', como no exemplo abaixo.
4115K*04*Álgebra Linear e Geometria Analítica*128*2*AB*4*CD*XX*XX 4613A*06*Algoritmos e Programação I *128*2*FG*4*FG*6*FG 4613A*06*Algoritmos e Programação I *138*3*FG*5*FG*7*AB 4613C*06*Algoritmos e Programação II*128*2*FG*4*FG*6*FG 4613C*06*Algoritmos e Programação II*138*2*FG*4*FG*6*FG 4622M*04*Avaliação de Desempenho de Sistemas *128*2*FG*4*FG*XX*XX 4115H*04*Cálculo A*128*2*FG*4*FG*XX*XX Um exemplo deste arquivo pode ser obtido neste link.
Arquivo de ALUNOS: conterá, em cada linha a matrícula e o nome de cada aluno, como no exemplo:
052001344*ALEXANDRE KAZUO SEKI 051041374*ANDRE OURIQUE SOLARO 052001377*ANDREW SANTANA POMPEO 051041440*BERNARDO BOSAK DE REZENDE 052001385*BERNARDO DE LIMA BERRA
Um exemplo deste arquivo pode ser obtido neste link.
Arquivos de Disciplinas Liberadas:
deverá existir um arquivo para cada aluno. O nome do arquivo
é o número de matrícula do aluno. Nestes arquivos,
cada linha deverá conter o código de uma disciplina, em
que cada aluno está liberado para se matricular, como no
exemplo do arquivo 051041374.txt: 4613C*06
4622M*04
<<<Envie para [email protected] um arquivo com as disciplinas que você poderá cursar em 2007/I>>>
<<<O nome do arquivo deve ter seu número de matrícula>>>
Exemplos destes arquivos poderão ser obtidos neste link.
Arquivos de Disciplinas: deverá existir para cada disciplina/turma um arquivo com todos os alunos matriculados nesta turma. O nome do arquivo é o código da disciplina. Nestes arquivos, cada linha deverá
conter o nome e o número de matrícula dos alunos matriculados, como no exemplo do arquivo 461304.128:
Disciplina: Algoritmos e Programação I
CODCRED: 4613C-04
Turma: 128
052001344 ALEXANDRE KAZUO SEKI 051041374 ANDRE OURIQUE SOLARO 052001377 ANDREW SANTANA POMPEO 051041440 BERNARDO BOSAK DE REZENDE 052001385 BERNARDO DE LIMA BERRA
Arquivos de Horário: deverá existir um arquivo para cada
aluno. O nome do arquivo é o número de matrícula do aluno e a extensão é HOR. Nestes
arquivos, cada linha deverá conter o código de uma disciplina e a turma em que
cada aluno está matriculado, como no exemplo do
arquivo 051041374.HOR:
4115K*04*128 4613C*06*139
UTILIZAÇÃO DE INTERFACE GRÁFICA
Se o grupo de sejar pode utilzair uma
interface gráfica para melhorar a apresentação do
trabalho. A título de sugestão, foi desenvolvida, pelo
estagiário de docência, Rafael Rieder, uma
interface básica para o trabalho.
Esta interface foi
construída com o a biblioteca wxWidgets e com o wxDevCpp, que é um ambiente de
desenvolvimento derivado do DEVCPP. Abaixo sequem
alguns arquivos necessário à utilização da interface:
BibliotecaWxWidgets.zip (9MB) - Biblioteca para o desenvolvimento do trabalho no DEVCPP, sem a instalação do wxDEVCPP. Exemplo1.zip (7KB) - Exemplo de interface simples para compilação no DEVCPP , sem a instalação do wxDEVCPP. Interface_Rafael.zip (22Kb) -
Interface para o trabalho. Pode ser compilado tanto no DEVCPP quanto no
wxDEVCPP. Para compilar utilizando apenas o DEVCPP abra o projeto
InterfaceT2-DEV.dev. Para compilar utilizando o ambiente wxDEVCPP, abra o projeto Interface.dev.
Caso o grupo deseje montar um interface em outro editor, não há problema algum.