Você está na página 1de 2

Departamento de Cincia da Computao - Instituto de Matemtica/UFRJ MAB2 !- C"M#U$A%&" II - C'C' - 2!(!/2 )I*$A D+ +,+RC-CI"* .o' / 0erso ('! 12/((/(!

3 #ra4o5 (2 de no0em6ro de 2!(!

"6s5 Crie um pacote separado para cada 7uesto8 depois e9porte o pacote 4ipado e en0ie para o seu monitor8 con:orme as normas de entre;a de e9erc<cios dispon<0eis na p;ina do curso'

=======================================================================
$=picos5 Mapas8 +9ce>es8 *in;?eton8 M@C Construir uma 0erso muito simp?i:icada de um Asistema de re;istro acadmicoA 1mini-*IBA3 contendo c?asses com A?uno8 Discip?ina8 *i;a e $esta*i;a' A so?uo de0e usar necessariamente o padro de proCeto M@C' O padro MVC: " padro M@C ser uti?i4ado neste e9erc<cio' A idDia D separar as c?asses em trs ;rupos5 1. Modelo5 As c?asses do pacote Amode?oA de0em inc?uir as entidades 7ue representam a rea?idade e9terna 7ue est sendo mode?ada' .o caso8 teremos apenas A?uno e Discip?ina' 2. Vista5 As c?asses do pacote A0istaA permitem a um usurio intera;ir com a ap?icao' E a cFamada Ainter:ace com o usurioA' .este e9emp?o8 teremos apenas uma c?asse8 TestaSiga' 7ue possui o mDtodo main138 a partir do 7ua? se uti?i4a o sistema' Esta classe fornecida pelo professor8 e ser usada para testar a sua so?uo' 3. Controle5 As c?asses do pacote Acontro?adorA ou Acontro?eA interpretam as so?icita>es 0indas da inter:ace8 e as tradu4em em a>es so6re as c?asses do Amode?oA' +sse pacote pode inc?uir um ou mais contro?adores 1por e9emp?o8 para cada su6-sistema8 no caso de sistemas mais comp?e9os3' Cada contro?ador tem dois papDis importantes5 um D manter contro?e de acesso aos o6Cetos da ap?icaoG e o outro D ;arantir o respeito Hs Are;ras do ne;=cioA ou seCa8 a ?=;ica da ap?icao' Um e9emp?o de Are;ra do ne;=cioA D5 Aum mesmo a?uno no pode se inscre0er duas 0e4es na mesma discip?inaA' "utra D5 Ano podem e9istir dois a?unos com o mesmo dreA' .este e9erc<cio simp?es8 s= teremos um o6Ceto contro?ador8 7ue D a Inica instJncia de *i;a' "utras c?asses 7ue participam do pacote Acontro?adorA so as e9ce>es' $oda 0e4 7ue uma so?icitao da A0istaA resu?tar em uma tentati0a de 0io?ar uma re;ra do ne;=cio8 uma e9ceo de0e ser ?anada pe?o contro?ador' +ssa e9ceo de0e ser en0iada para o mDtodo da c?asse da 0ista 7ue encaminFou a so?icitao ao contro?ador' #or esse moti0o8 di0ersas c?asses de e9ceo precisam ser de:inidas no pacote contro?ador' Um e9emp?o dessas c?asses D5 DisciplinaJaCursadaException. A classe TestaSiga A c?asse $esta*i;a D e9ecut0e?8 e apresenta um menu na conso?e para interao com a ap?icao' " menu apresenta as se;uintes op>es5 ====================================== Sistema Mini-Siga - Registro Acadmico ====================================== 1. Criar um Aluno 2. Criar uma Disciplina . !nscre"er em disciplina #. $istar %ist&rico '. $istar alunos (. $istar disciplinas ). Sal"ar cadastros *. Recuperar cadastros +. Sair Sua op,-o.

+9amine essa c?asse8 7ue pode ser 6ai9ada a7ui5 $esta*i;a'Ca0a' .ote 7ue a opo K 1*air3 tam6Dm tenta sa?0ar os dados8 0ia seria?i4ao' + tam6Dm 7ue ao iniciar8 a c?asse $esta*i;a tenta recuperar os dados do ar7ui0o seria?i4ado' A classe Aluno A c?asse A?uno tem 0ari0eis de instJncias5 dre5 *trin; nome5 *trin; Fistorico5*etLDiscip?inaM contendo as discip?inas C cursadas pe?o a?uno' A classe Disciplina A c?asse Discip?ina tem 0ari0eis de instJncia5 codi;oDiscip?ina5 *trin; nomeDiscip?ina5 *trin; creditos5int' A classe Siga8 e as c?asses de +9ceo5 A c?asse *i;a de0e ser um sin;?eton8 ou seCa8 s= de0e ser capa4 de produ4ir no m9imo uma instJncia' @ari0e? de c?asse5 *i;a si;a8 7ue apontar para a Inica instJncia' @ari0eis de instJncia5 A c?asse *i;a contDm dois mapas8 7ue :a4em o pape? do cadastro de a?unos8 e do cadastro de discip?inas5 cadastroA?unos5 MapL*trin;8 A?unoM8 onde a cFa0e D o dre cadastroDiscip?inas5 MapLstrin;8 Discip?inaM8 onde cFa0e D o codi;o Construtor5 o construtor D private8 pois s= Fa0er uma instJncia8 cuCa construo D :i?trada pe?o mDtodo esttico Siga getSiga(). +?e inicia?i4a os mapas onde :icam os cadastros' MDtodo de c?asse 1esttico35 *i;a ;et*i;a13 - esse mDtodo cFama o mDtodo recuperaCadastros 10eCa a6ai9o3 para tentar restaurar os dados seria?i4ados' .o caso de ocorrer um e9ceo 1norma?mente por7ue o ar7ui0o no e9iste38 MDtodos de instJncia5 manipu?am os o6Cetos do mode?o8 ap?icando as re;ras de ne;=cio5 a3 criaA?uno1dre8 nome3 N cria um a?uno com o dre dado e insere no cadastro de a?unos' 63 criaDiscip?ina1codi;o8 nome3 N cria uma discip?ina com esse c=di;o8 e insere no cadastro e discip?inas' c3 inscre0eA?uno1dre8 codi;o3 N simu?a 7ue o a?uno se inscre0eu e cursou uma discip?ina com apro0ao8 e co?oca a discip?ina no Fist=rico do a?uno' d3 *trin; ;et.omeA?uno1*trin; dre3- retorna o nome do a?uno' e3 ArraO)istL*trin;M ?istaA?unos13 N retorna em um ArraO)ist os dados dos a?unos' :3 ArraO)istL*trin;M ?istaDiscip?inas13 N retorna em um ArraO)ist os dados das discip?inas' ;3 *etLDiscip?inaM ;etPistorico1*trin; dre3 N retorna o Fistorico de um a?uno' F3 sa?0aCadastros1nomeAr7ui0o3 N seria?i4a o o6Ceto *i;a no disco' #or construo8 todos os cadastros8 e os a?unos e discip?inas apontados por estes8 tam6Dm sero seria?i4ados' i3 recuperaCadastros1nomeAr7ui0o3 - restaura o o6Ceto *i;a8 e toda a rede de o6Cetos para 7ue e?e re:erencia8 recriando os a?unos e discip?inas'

Você também pode gostar