Você está na página 1de 46

1

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS MARCELO DE OLIVEIRA PITA

PORTIFLIO INDIVIDUAL
Algoritmos e Estruturas de Dados Banco de Dados II Anlise de Sistemas II Desenvolvimento Orientado a Objetos I

MARCELO DE OLIVEIRA PITA

PORTIFLIO INDIVIDUAL
Algoritmos e Estruturas de Dados Banco de Dados II Anlise de Sistemas II Desenvolvimento Orientado a Objetos I

Atividade de Produo Textual apresentada ao Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas da UNOPAR - Universidade Norte do Paran, para a disciplina Seminrio III. Profs.: Marcio Chiaveli, Merris Mozer, Roberto Nishimura, Simone Tanaka

SUMRIO
Colatina 2011

1 INTRODUO..........................................................................................................6

7 3 ESTUDO DE CASO: RESTRUTUTURAO ESCOLA DE IDIOMAS ..................8 ENGLISH SCHOOL TO LEARN..............................................................................8 3.1 CASOS DE UTILIZAO POR ATORES ..........................................................10 3.2 IDENTIFICAO DOS ATORES POR CASOS DE UTILIZAO....................10 4 DIAGRAMAS DE CASOS DE USO ....................................................................10 5 DIAGRAMA DE CLASSES...................................................................................11 5.1 MER - PROJETO CONCEITUAL DE BANCOS DE DADOS.............................12 5.2 MER - PROJETO LGICO DE BANCOS DE DADOS......................................14 7 REPRESENTAO DAS CLASSES ....................................................................20 7.1 CLASSE PESSOA...............................................................................................20 7.2 CLASSE TURMA.................................................................................................22 7.3 CLASSE PROFESSOR.......................................................................................23 7.4 CLASSE PESSOA...............................................................................................25 7.5 CLASSE FUNCIONRIO....................................................................................27 7.6 CLASSE FORNECEDOR....................................................................................29 7.7 CLASSE ESCOLA...............................................................................................31 7.8 CLASSE DISCIPLINA.........................................................................................33 7.9 CLASSE CURSO.................................................................................................35 8 LEIAUTE DO PROJETO ......................................................................................37 8.1 TELA LOGIN SISTEMA.....................................................................................37 8.2 TELA ABERTURA SISTEMA.............................................................................37 37 8.3 TELA DE CADASTRO ........................................................................................38 38 8.4 TELA CONTAS A PAGAR.................................................................................38 38 9 LINHA CDIGO EXEMPLO DE FILA....................................................................39 9.1 CLASSE CONTAS PAGAR PARTE 01.......................................................39 using System;...........................................................................................................39 using System.Collections.Generic;........................................................................39

using System.Linq;..................................................................................................39 using System.Text;..................................................................................................39 namespace ProjetoEscola.......................................................................................39 { 39 class ContasAPagar.............................................................................................39 { 39 private List<ContaAPagar> contas;...............................................................39 public ContasAPagar()............................................................................39 {..........................................................................................................................39 contas = new List<ContaAPagar>();..........................................................39 }..........................................................................................................................39 public void inserirContaAPagar(ContaAPagar conta).................................39 {..........................................................................................................................39 if (conta.dataVencimento == null)..............................................................39 throw new Exception("Data de vencimento no informada");............39 if (conta.descricao == null | conta.descricao.Equals(""))........................39 throw new Exception("Descrio da conta no informada");.............40 if (conta.valor <= 0.0)...................................................................................40 throw new Exception("Valor invlido");................................................40 contas.Add(conta);......................................................................................40 }..........................................................................................................................40 public void apagarContaAPagar(int id).........................................................40 {..........................................................................................................................40 foreach (ContaAPagar conta in contas)....................................................40 {......................................................................................................................40 if (conta.id == id)......................................................................................40 {..................................................................................................................40 contas.Remove(conta);.......................................................................40 break;.....................................................................................................40 }..................................................................................................................40 }......................................................................................................................40 }..........................................................................................................................40 public List<ContaAPagar> getContasAPagar()............................................40 {..........................................................................................................................40

return contas;...............................................................................................40 }..........................................................................................................................40 } 40 } 40 9.2 CLASSE CONTAS PAGAR PARTE 02 .....................................................41 9.3 CLASSE CONTAS PAGAR PARTE 03......................................................42 9.4 FORMULRIO ENTRADA DADOS...................................................................42 10 CONCLUSO.......................................................................................................45 11 REFERNCIAS.....................................................................................................46

1 INTRODUO

Este trabalho visa demonstrar a eficcia do uso da tecnologia de informao em sistemas que envolvem aes administrativas, numa realidade de educao complementar, que desenvolve curso de Ingls. O nome da instituio que iremos elencar como exemplo a Escola de Idiomas English school To learn , onde pretende-se implementar o sistema. Desta forma, deve-se elaborar um sistema confivel e bem planejado. Todavia, para uma boa gesto (dimensionar recursos e prazos adequadamente, reduzir e simplificar a manuteno) necessrio ter em mos toda uma documentao de um sistema, a fim de evitar vrios problemas futuros com atualizaes e manuteno, e acima de tudo, reaproveitar o cdigo reusabilidade de cdigo est diretamente ligado a um paradigma de programao que Orientao a Objeto.

2 DESENVOLVIMENTO

O presente trabalho discorrer sobre as tarefas realizadas na secretaria e tesouraria, algumas dificuldades identificadas na realizao dessas tarefas e a proposta de um sistema automatizado usando um software projetado especificamente para uso dessa funo. Iremos apresentar ao longo deste trabalho os conceitos, suas regras, e as vantagens especificamente o desenvolvimento de Sistemas Orientados a Objetos, e tem por finalidade apresentar um resumo relacionado dos principais itens relevantes debatidos ao longo deste terceiro semestre das disciplinas estudadas at aqui ressaltando foram de suma importncia, no entanto os conceitos referentes as disciplinas Algoritmos e Estruturas de Dados,Banco de Dados II,Anlise de Sistemas II e Desenvolvimento Orientado a Objetos I.

3 ESTUDO DE CASO: RESTRUTUTURAO ESCOLA DE IDIOMAS ENGLISH SCHOOL TO LEARN

O fenmeno da convergncia digital est presente em praticamente todos os setores, seja ele comercial ou industrial e utiliza a informtica para automatizar e agilizar seus servios. O senhor Astrogildo, proprietrio da Escola de Idiomas English school To learn, nos procurou no intuito de automatizar os processos cotidianos, tanto administrativos, quanto de recursos humanos, apresentando a seguinte demanda: - A escola possui dois computadores, um de uso da secretaria e outro da tesouraria, no possuindo nenhum software pagamentos; - A secretaria e a tesouraria fazem uso de um aplicativo do pacote Microsoft Office chamado Excel para gerenciamento dos seguintes itens: cadastrar aluno, cursos, turma, professores, controlar recebimento, controlar contas a pagar, dentre outros, utilizando fichas impressas modelos pr-definidos no Microsoft Excel e preenchidas manualmente pelo secretria e/ou responsvel pelo setor financeiro caneta e arquivadas em um fichrio. O proprietrio tambm relatou um problema gravssimo que ocorreu a cerca de uns trs meses, o local que estava acondicionado as caixas aps um forte chuva tais fichas de alunos no podem obter rasuras, para torrencial algumas telhas estavam quebradas e a chuva molhou vrias caixas de arquivos, sabendo que expedio de alguns documentos, e que foi necessrio copiar todas as avaliaes dos aluno de todas as fichas e transcrev-las para uma nica ficha de matrcula o que se torna dispendioso e ocasionando retrabalho a expedio de algum documento, uma vez que, se houver rasura necessrio outra ficha e escrever tudo novamente. Com o conhecimento de que aplicativo Microsoft Excel no contempla todas as necessidades da escola, devidos suas limitaes e que foram desenvolvidas para outros fins, apresentamos a idia do software que ir automatizar todas as tarefas cotidianas. de gerenciamento de controle de alunos e

A forma tradicional de armazenamento de informaes manualmente, em papel, no garante seu registro imediato, exemplo: quando o aluno procura a escola para se inscrever, preenche um cadastro caneta e entrega ao funcionrio, que posteriormente digitar as informaes na planilha Excel e a mesma esquece de fazer este lanamento, o que compromete a organizao do trabalho. No h como obter informaes imediatas, como nmero total de alunos, relao de nmero de alunos por sexo, por raa ou idade, nome de alunos que devem documentos escola, nmero de alunos por srie entre outras informaes que so solicitadas pela direo da escola para planejamento e desenvolvimento de atividades pedaggicas e tambm atualizao de dados O recebimento das mensalidades tambm um outro transtorno, cada aluno possui uma carteirinha e no verso da mesma a responsvel pela tesouraria assina num campo da carteirinha, fazendo referncia data paga. Esses dados deveriam ser rigorosamente cadastrados no sistema ao final de cada dia. No entanto, quando o funcionrio no segue esse parmetro, acaba tornando o sistema inconsistente, gerando contradies e conflitos com o aluno, pois j ocorreu cobrana indevida a alunos que estavam em dia com sua mensalidade, devido esquecimento de alimentao do sistema. Pensando em melhor aproveitamento das informaes e organizao dos dados, prope-se um software ensino. Com o software os servios da secretaria e tesouraria tornam-se mais dinmicos e as informaes so fidedignas. O sistema prope melhorar o acompanhamento e traz subsdios para a gesto escolar. A idia automatizar trabalhos rotineiros da escola. Uma vez que o aluno os dados pessoais e dados escolares so cadastrados no sistema possvel, em poucos mecanismos, obter documentos importantes, de forma rpida e eficaz. Prtico Teaches - Controle para Escolas . para a melhoria da gesto escolar e conseqentemente para a melhoria da qualidade do

10

3.1 CASOS DE UTILIZAO POR ATORES Um caso de utilizao uma sequncia de aes que um ou mais atores realizam num sistema de modo a obterem um resultado particular [OMG99].

Atores Usurio Secretria

Caso de Utilizao Manter Acesso ao sistema Controlar Aluno Controlar Disciplina Controlar Curso Controlar Turma Controlar Matricula Aluno Controlar Professor Controlar Boleta Cobrana

Financeiro

Gerenciar Mensalidades Controlar Fornecedores Gerenciar Contas Pagar

Tabela 1- Identificao Casos de uso por Ator

3.2 IDENTIFICAO DOS ATORES POR CASOS DE UTILIZAO

Nome Usurio Secretria

Descrio um funcionrio da escola que ficar encarregado pela administrao dos usurios e configuraes do sistema. o funcionrio da escola que trabalha na secretaria escolar, e tem por objetivo (incluso, alterao e excluso), curso, turma, professor, disciplina, etc.. um funcionrio da escola cuja responsabilidade o setor financeiro que ficar encarregado confeco de boletas, recebimento mensalidade, controle de contas a pagar e controle de fornecedores.

Financeiro

Tabela 1- Identificao dos Atores por casos de utilizao

4 DIAGRAMAS DE CASOS DE USO

11

Mostra os casos de uso, atores, e seus relacionamentos que expressam a funcionalidade de um sistema. Uma das grandes vantagens da UML representar graficamente todas as necessidades levantadas junto ao usurio, para que assim possa se evitar a ambigidade e ao desvio de interpretao por parte dos desenvolvedores de sistema no que se refere produo, construo ou alterao de um software. Segue abaixo o diagrama que exemplifica os casos de uso, demonstrando as relaes entre cada um deles:

Figura 1 Diagrama de Caso Uso Fonte: Prprio Autor

5 DIAGRAMA DE CLASSES

12

Um diagrama uma representao grfica de um conjunto de elementos e so usados para visualiza os sistema sob diferentes perspectivas, que tem a finalidade de facilitar a compreenso do sistema que est sendo desenvolvido. Diagrama de Classe, corresponde a uma estrutura de um diagrama com seus elementos peculiares referente a OO, ou seja, a classe propriamente dita. Tal diagrama alm de possuir as classes e seus elementos, consigo traz tambm o seguintes elementos: relacionamentos, generalizaes, agregaes, associaes e pacotes utilizados para agrupar elementos. Vale salientar que, Diagrama de Classe representa estruturas estticas das classes integrantes ao sistema.

Figura 2 Diagrama de Classe Fonte: Prprio Autor

5.1 MER - PROJETO CONCEITUAL DE BANCOS DE DADOS

13

Figura 3 MER - Projeto Conceitual Fonte: Prprio Autor

14

5.2 MER - PROJETO LGICO DE BANCOS DE DADOS

Figura 4 MER - Projeto Lgico Fonte: Prprio Autor

15

6 SCRIPT CONEXO BANCO DADOS ORACLE

CREATE TABLE ALUNO ( ID NOME ENDERECO CIDADE UF TELEFONE EMAIL DOCUMENTO DATA_NASCIMENTO ID_TURMA ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, VARCHAR(255), VARCHAR(150), VARCHAR(2), VARCHAR(10), VARCHAR(255), VARCHAR(14), DATE, INTEGER

CREATE TABLE CONTA_PAGAR ( ID DATA_EMISSAO DATA_VENCIMENTO VALOR ID_FORNECEDOR ID_ESCOLA ); INTEGER NOT NULL, DATE NOT NULL, DATE NOT NULL, NUMERIC(18,2) NOT NULL, INTEGER NOT NULL, INTEGER NOT NULL

16

CREATE TABLE CURSO ( ID NOME DURACAO NIVEL ID_ESCOLA ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, INTEGER, INTEGER, INTEGER NOT NULL

CREATE TABLE DISCIPLINA ( ID NOME ID_CURSO ID_PROFESSOR ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, INTEGER NOT NULL, INTEGER NOT NULL

CREATE TABLE ESCOLA ( ID NOME ENDERECO CIDADE UF TELEFONE EMAIL DOCUMENTO ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, VARCHAR(255), VARCHAR(150), VARCHAR(2), VARCHAR(10), VARCHAR(255), VARCHAR(14)

17

CREATE TABLE FORNECEDOR ( ID NOME ENDERECO CIDADE UF TELEFONE EMAIL DOCUMENTO ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, VARCHAR(255), VARCHAR(150), VARCHAR(2), VARCHAR(10), VARCHAR(255), VARCHAR(14)

CREATE TABLE FUNCIONARIO ( ID NOME ENDERECO CIDADE UF TELEFONE EMAIL DOCUMENTO DATA_NASCIMENTO SALARIO CARGO ID_ESCOLA ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, VARCHAR(255), VARCHAR(150), VARCHAR(2), VARCHAR(10), VARCHAR(255), VARCHAR(14), DATE, NUMERIC(18,2), VARCHAR(50), INTEGER

18

CREATE TABLE TURMA ( ID NOME ID_CURSO ); INTEGER NOT NULL, VARCHAR(255) NOT NULL, INTEGER NOT NULL

ALTER TABLE ALUNO ADD CONSTRAINT PK_ALUNO PRIMARY KEY (ID); ALTER TABLE CONTA_PAGAR ADD CONSTRAINT PK_CONTA_PAGAR

PRIMARY KEY (ID); ALTER TABLE CURSO ADD CONSTRAINT PK_CURSO PRIMARY KEY (ID); ALTER TABLE DISCIPLINA ADD CONSTRAINT PK_DISCIPLINA PRIMARY KEY (ID); ALTER TABLE ESCOLA ADD CONSTRAINT PK_ESCOLA PRIMARY KEY (ID); ALTER TABLE FORNECEDOR ADD CONSTRAINT PK_FORNECEDOR PRIMARY KEY (ID); ALTER TABLE FUNCIONARIO ADD CONSTRAINT PK_FUNCIONARIO PRIMARY KEY (ID); ALTER TABLE TURMA ADD CONSTRAINT PK_TURMA PRIMARY KEY (ID);

ALTER TABLE ALUNO ADD CONSTRAINT FK_ALUNO_TURMA FOREIGN KEY (ID_TURMA) REFERENCES TURMA (ID); ALTER ESCOLA (ID); ALTER TABLE CONTA_PAGAR FOREIGN ADD KEY CONSTRAINT (ID_FORNECEDOR) TABLE CONTA_PAGAR FOREIGN KEY ADD (ID_ESCOLA) CONSTRAINT REFERENCES

FK_CONTA_PAGAR_ESCOLA

FK_CONTA_PAGAR_FORNECEDOR REFERENCES FORNECEDOR (ID);

19

ALTER TABLE CURSO ADD CONSTRAINT FK_CURSO_ESCOLA FOREIGN KEY (ID_ESCOLA) REFERENCES ESCOLA (ID); ALTER TABLE DISCIPLINA ADD CONSTRAINT FK_DISCIPLINA_CURSO

FOREIGN KEY (ID_CURSO) REFERENCES CURSO (ID); ALTER TABLE DISCIPLINA ADD CONSTRAINT FK_DISCIPLINA_PROFESSOR FOREIGN KEY (ID_PROFESSOR) REFERENCES FUNCIONARIO (ID); ALTER TABLE FUNCIONARIO ADD CONSTRAINT FK_FUNCIONARIO_ESCOLA FOREIGN KEY (ID_ESCOLA) REFERENCES ESCOLA (ID); ALTER TABLE TURMA ADD CONSTRAINT FK_TURMA_CURSO FOREIGN KEY (ID_CURSO) REFERENCES CURSO (ID);

20

7 REPRESENTAO DAS CLASSES

7.1 CLASSE PESSOA using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Aluno: Pessoa { public DateTime dataNascimento;

public Turma turma;

public Aluno() { turma = new Turma(); }

public override string adicionar() { string s = base.adicionar();

if (s.Equals("")) return "Aluno foi adicionado com sucesso";

21

else return s; }

public override string editar() { string s = base.editar();

if (s.Equals("")) return "Aluno foi editado com sucesso"; else return s; }

public override string excluir() { string s = base.excluir();

if (s.Equals("")) return "Aluno foi excludo com sucesso"; else return s; } } }

22

7.2 CLASSE TURMA

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Turma { public string nome;

public Curso curso; public List<Aluno> alunosList;

//construtor public Turma() { curso = new Curso(); alunosList = new List<Aluno>(); }

public string adicionar() { return "";

23

public string editar() { return ""; }

public string excluir() { return ""; } } }

7.3 CLASSE PROFESSOR

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Professor : Funcionario {

24

public readonly string cargo = "Professor"; public string graduacao;

public List<Disciplina> disciplinasList;

// construtor public Professor() { disciplinasList = new List<Disciplina>(); }

public string adicionar() { return ""; }

public string editar() { return ""; }

public string excluir() { return ""; } } }

25

7.4 CLASSE PESSOA

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { abstract class Pessoa { public int id; public string nome; public string endereco; public string cidade; public string uf; public string telefone; public string email; public string documento;

protected virtual string validarPreenchimentoCampos() { if (nome.Trim() == "") return "Nome no informado";

if (endereco.Trim() == "")

26

return "Endereo no informado";

if (cidade.Trim() == "") return "Cidade no informada";

if (uf.Trim() == "") return "UF no informada";

if (telefone.Trim() == "") return "Telefone no informado";

if (email.Trim() == "") return "E-mail no informado";

if (documento.Trim() == "") return "Documento no informado";

if (!validarDocumento()) return "Documento invlido";

return ""; }

protected virtual bool validarDocumento() { //TODO: Gerar cdigo para validar documento (cpf, cnpj)

27

return true; }

public virtual string adicionar() { return validarPreenchimentoCampos(); }

public virtual string editar() { return validarPreenchimentoCampos(); }

public virtual string excluir() { return ""; } } }

7.5 CLASSE FUNCIONRIO

using System; using System.Collections.Generic; using System.Linq; using System.Text;

28

namespace ProjetoEscola { class Funcionario : Pessoa { public DateTime dataNascimento; public float salario; public string cargo;

public Escola escola;

public Funcionario() { escola = new Escola(); }

public string adicionar() { return ""; }

public string editar() { return ""; }

29

public string excluir() { return ""; } } }

7.6 CLASSE FORNECEDOR

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Fornecedor : Pessoa { public List<ContaAPagar> contasAPagarList;

//construtor public Fornecedor() { contasAPagarList = new List<ContaAPagar>(); }

30

public override string adicionar() { string s = base.adicionar();

if (s.Equals("")) return "Fornecedor foi adicionado com sucesso"; else return s; }

public override string editar() { string s = base.editar();

if (s.Equals("")) return "Fornecedor foi editado com sucesso"; else return s; }

public override string excluir() { string s = base.excluir();

if (s.Equals(""))

31

return "Fornecedor foi excludo com sucesso"; else return s; } } }

7.7 CLASSE ESCOLA

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Escola : Pessoa { public List<Funcionario> funcionariosList; public List<Professor> professoresList; public List<ContaAPagar> contasAPagarList; public List<Curso> cursosList;

//construtor public Escola() { funcionariosList = new List<Funcionario>();

32

professoresList = new List<Professor>(); contasAPagarList = new List<ContaAPagar>(); cursosList = new List<Curso>();

public override string adicionar() { string s = base.adicionar();

if (s.Equals("")) return "Escola foi adicionada com sucesso"; else return s; }

public override string editar() { string s = base.editar();

if (s.Equals("")) return "Escola foi editada com sucesso"; else return s; }

33

public override string excluir() { string s = base.excluir();

if (s.Equals("")) return "Escola foi excluda com sucesso"; else return s; }

} }

7.8 CLASSE DISCIPLINA

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Disciplina { public string nome;

34

public Curso curso; public Professor professor;

public Disciplina() { curso = new Curso(); professor = new Professor(); }

public string adicionar() { return ""; }

public string editar() { return ""; }

public string excluir() { return ""; } } }

35

7.9 CLASSE CURSO

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class Curso { public string nome; public int duracao; public int nivel;

public Escola escola; public List<Disciplina> disciplinasList; public List<Turma> turmasList;

//construtor public Curso() { escola = new Escola(); disciplinasList = new List<Disciplina>(); turmasList = new List<Turma>(); }

36

public string adicionar() { return ""; }

public string editar() { return ""; }

public string excluir() { return ""; }

} }

37

8 LEIAUTE DO PROJETO

8.1 TELA LOGIN SISTEMA

Figura 5 Tela Login Fonte: Prprio Autor

8.2 TELA ABERTURA SISTEMA

38

8.3 TELA DE CADASTRO

8.4 TELA CONTAS A PAGAR

39

9 LINHA CDIGO EXEMPLO DE FILA

9.1 CLASSE CONTAS PAGAR PARTE 01

using System; using System.Collections.Generic; using System.Linq; using System.Text;

namespace ProjetoEscola { class ContasAPagar { private List<ContaAPagar> contas; public ContasAPagar() { contas = new List<ContaAPagar>(); }

public void inserirContaAPagar(ContaAPagar conta) { if (conta.dataVencimento == null) throw new Exception("Data de vencimento no informada"); if (conta.descricao == null | conta.descricao.Equals(""))

40

throw new Exception("Descrio da conta no informada");

if (conta.valor <= 0.0) throw new Exception("Valor invlido"); contas.Add(conta); } public void apagarContaAPagar(int id) { foreach (ContaAPagar conta in contas) { if (conta.id == id) { contas.Remove(conta); break; } } }

public List<ContaAPagar> getContasAPagar() { return contas; } } }

41

9.2 CLASSE CONTAS PAGAR PARTE 02

namespace ProjetoEscola { class ContaAPagar { public int id; public string descricao; public DateTime dataEmissao; public DateTime dataVencimento; public double valor; public Fornecedor fornecedor; public Escola escola; //construtor public ContaAPagar() { fornecedor = new Fornecedor(); escola = new Escola(); } public string adicionar() { return ""; } public string editar() { return ""; } public string excluir() { return ""; } } }

42

9.3 CLASSE CONTAS PAGAR PARTE 03 namespace ProjetoEscola { public class ContaAPagarComparer : IComparer<ContaAPagar> { int IComparer<ContaAPagar>.Compare(ContaAPagar x, ContaAPagar y) { { if (x == null) { if (y == null) { return 0; } else { return -1; } } else { if (y == null) { return 1; } else { return x.dataVencimento.CompareTo(y.dataVencimento); } } } } } } 9.4 FORMULRIO ENTRADA DADOS

namespace ProjetoEscola { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

43

private ContasAPagar contas = new ContasAPagar(); private int sequence = 0; private void inserirConta() { try { ContaAPagar conta = new ContaAPagar(); conta.descricao = tbDescricao.Text; conta.dataVencimento = tbVencimento.Value; try { conta.valor = double.Parse(tbValor.Text); } catch { MessageBox.Show("Valor invlido", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } conta.id = ++sequence; contas.inserirContaAPagar(conta); listarContas(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void listarContas() { ContaAPagarComparer cc = new ContaAPagarComparer(); contas.getContasAPagar().Sort(cc); grid.Rows.Clear(); foreach (ContaAPagar conta in contas.getContasAPagar()) { grid.Rows.Add(conta.id, conta.dataVencimento, conta.descricao, conta.valor); } }

44

private void apagarConta() { if (grid.Rows.Count > 0) { contas.apagarContaAPagar(int.Parse(grid.CurrentRow.Cells[0].Value.ToString())); grid.Rows.Remove(grid.CurrentRow); } } private void button1_Click(object sender, EventArgs e) { inserirConta(); } private void button2_Click(object sender, EventArgs e) { listarContas(); } private void button3_Click(object sender, EventArgs e) { apagarConta(); } } }

45

10 CONCLUSO

Esse trabalho, por fim, teve a clara inteno de modelar um sistema de gesto escolar que auxilie os funcionrios e proprietrio tornando as mais dinmicos e automatizao de processos em seu cotidiano. A grande dificuldade para que se possa fazer um Software Computacional de qualidade fazer com que se consiga interpretar a idias mais destorcidas do usurio, transformando-a em uma linguagem POO compreensvel e intuitiva. Todas as disciplinas estudadas at aqui foram de suma importncia, no entanto no

limitamos ao enunciado do trabalho do portflio complementares aplicveis conforme as

percebe-se que ao longo deste ir encontrar vrios itens disciplinas

Algoritmos e Estruturas de Dados,Banco de Dados II,Anlise de

Sistemas II e Desenvolvimento Orientado a Objetos I.

46

11 REFERNCIAS

TANAKA, Simone Sawasaki. Anlise de sistemas II: diagrama de classe :: Tele aula exibida em 3/03/2011 NISHIMURA, Roberto Yukio. Banco de dados II: entendendo a estrutura de comandos SQL - Structure Query Language : Tele-aula exibida em 02/03/2011 NISHIMURA, Roberto Yukio. Banco de dados II: banco de dados distribudo: Teleaula exibida em 16/03/2011 MOZER, Merris. Algoritmos e Estrutura de Dados: introduo alocao duplamente encadeada sequencial: Tele-aula exibida em 27/04/2011 MOZER, Merris. Algoritmos e Estrutura de Dados: introduo alocao simplesmente encadeada sequencial: Tele-aula exibida em 20/04/2011 CHIAVELI, 04/05/2011 CHIAVELI, Marcio Roberto.Desenvolvimento orientado a objetos I: desenvolvimento prtico, herana, polimorfismo e classe esttica (static class) : Tele-aula exibida em 04/11/2010 FANDERUFF, Damaris. Dominando o Oracle 9i: modelagem e desenvolvimento. So Paulo: Pearson, 2003. 440 p. Acesso na biblioteca digital da Unopar / Pearson em 19/05/2011. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados . 4. ed. So Paulo: Pearson, 2009. 724 p. Acesso na biblioteca digital da Unopar / Pearson em 30/05/2011. BARNES, David J.; KLLING, Michael. Programao orientada a objetos como Java: uma introduo prtica usando o Bluej. So Paulo: Pearson, 2004. 398 p. Acesso na biblioteca digital da Unopar / Pearson em 01/06/2011. LARMAN, Craig. Utilizando UML e padres: uma introduo anlise e ao projeto orientados a objetos e ao desenvolvimento iterativo . 3. ed. Porto Alegre: Bookman, 2008. Acesso na biblioteca digital da Unopar / Pearson em 18/05/2011. TANAKA, Simone Sawasaki. Anlise de sistemas I: curso superior de tecnologia em anlise e desenvolvimento de sistemas 2 . So Paulo: Pearson Education do Brasil, 2009. 182 p. Acesso na biblioteca digital da Unopar / Pearson em 27/05/2011. Marcio Roberto.Desenvolvimento orientado a objetos I: implementao de uma classe com seus mtodos e atributos : Tele-aula exibida em

Você também pode gostar