estiglp-11/12-5946-csharp e Fsharp 1 Relatório Linguagens de programação 11/12 João Caixinha nº5946

Documentos relacionados
Trabalho prático 2011/2012 Linguagens de programação. João Caixinha Nº5946

Aplicação de Estatísticas de Ensino Superior

Manual de Utilizador Carregamento e Processamento de Ficheiros via Internet Banking. Português - V1

Especificação do 3º Trabalho

Pesquisa e organização de informação

Rock In Rio - Lisboa

Regulamento do Concurso

DOCUMENTO DE APOIO À APLICAÇÃO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Engenharia de Software. Enunciado da Primeira Parte do Projecto

MANUAL DO UTILIZADOR

SIBA SISTEMA DE INFORMAÇÃO DE BOLETINS DE ALOJAMENTO MANUAL DE UTILIZADOR

Aplicações de Escritório Electrónico

Tarefa Orientada 2 Criar uma base de dados

O que é o JavaScript?

Java Mail Server. Manual do Utilizador

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

Aula de Laboratório: Iniciação ao Protégé/Frames

RECOLHA DE INFORMAÇÃO DE REMUNERAÇÕES, SUPLEMENTOS E DOS PONTOS DECORRENTES DA AVALIAÇÃO DE DESEMPENHO

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Engenharia de Software. Enunciado da Quarta Parte do Projecto

7.3. WINDOWS MEDIA PLAYER 12

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR


Tarefa Orientada 2 Visual Studio 2005 e Visual C#

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

Gerar o Ficheiro de Inventário

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Tutorial exe elearning XHTML editor (versão 1.0x)

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

TUTORIAL. Como criar um blogue/página pessoal no WordPress

WEBSITE DEFIR PRO

1.4.4 Configurar serviços de armazenamento

Manual de Administração Intranet BNI

MANUAL DO CANDIDATO

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Aspectos de Segurança em Programação com Java

Primeiro contato com JavaScript

Manual do Painel Administrativo

Software Adobe DreamWeaver. Requisitos para criar aplicações Web

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

Documento de Requisitos Projeto SisVendas Sistema de Controle de Vendas para Loja de Informática.

EIC. Projecto I. Manual do Utilizador. Vídeo Vigilância Abordagem Open Source. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

Lógica de Programação

Manual do usuário. Softcall Java. versão 1.0.5

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

4.1. TRABALHAR COM O CALENDÁRIO

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Tarefa Orientada 17 Listas de dados

O Primeiro Programa em Visual Studio.net

Segurança de Dados no PostgreSQL

PLANIFICAÇÃO DAS UNIDADES DIDÁTICAS DO MANUAL (8º ano Turmas A B e C)

Como usar o bluej. Laboratório I Prof.ª Vera Alves

JDBC Java Database Connectivity

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Santa Cruz do Sul, outubro de 2015.

A interface do Microsoft Visual Studio 2005

Como acessar. Pelo portal de sua instituição de ensino. Pelo endereço personalizado (URL) Existem duas maneiras distintas de acesso:

QualiQuantiSoft Versão 1.3c

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Sistema de Informação Integrado da Universidade de Évora

Especificação do Trabalho

MANUAL DO UTILIZADOR

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

ZS Rest. Manual Profissional. Instalação do Software. v2011

Para proceder a instalação do SPSS deve efectuar os seguintes passos tal como demonstrado nas figuras.

Aleph Manual de utilização do módulo de circulação e empréstimos

Trabalho Prático Nº1 Introdução ao C#.NET

2. Altere o nome da folha1 para Stocks e da folha2 para Vendas.

Prof. Esp. Adriano Carvalho

Procedimentos para a divulgação de eventos no site da ECUM

Programa EndNote. Download para teste no site: (Atualmente o EndNote está na versão 5x)

Um sistema SMS 1 simplificado

Gestão Pessoal. Relatório Único. Manual preparação do software para o relatório único

Solutions for Information Technologies. BIS-Navegador. IBM DB2 UDB v8.x

Manual de Access 2007

Carregamento de dados para o preçário

MANUAL DE PROCEDIMENTOS

Ferramentas de Comunicação da Internet no Ensino/Aprendizagem

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Plataforma. Manual de Utilização Acesso ao Procedimento Fornecedor. Electrónica BizGov

Manual de Utilização de Certificados Digitais. Microsoft Outlook 2007

Java Beans e Servlets

MySQL Query Browser. Professor Victor Sotero SGD

1. Criar uma nova apresentação

Índice. Índice de figuras

Dadas a base e a altura de um triangulo, determinar sua área.

CURSO DE PROGRAMAÇÃO EM JAVA

CAPÍTULO 4 Implementação do modelo num programa de cálculo automático

Guião de Introdução ao Eclipse IDE Índice

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO

Transcrição:

estiglp-11/12-5946-csharp e Fsharp 1 Relatório Linguagens de programação 11/12 João Caixinha nº5946 1

estiglp-11/12-5946-csharp e Fsharp 2 Resumo - Este relatório relata as soluções encontradas para a criação das aplicações propostas no segundo trabalho de linguagens de programação, recorrendo as linguagens de programação c# e f# e ainda as modificações para a sua segunda versão. Este relatório demonstra estas três fazes de desenvolvimento nas duas aplicações. I. INTRODUÇÃO II. APRESENTAÇÃO DAS APLICAÇÕES Segundo o requerido no enunciado do trabalho prático número 2 da cadeira Linguagens de programação ano lectivo 2011/2012 na escola superior de tecnologia e gestão de beja, pretende-se o desenvolvimento de duas aplicações, uma escrita na linguagem c csharp e outra em f csharp, estas contam com as mesmas funcionalidades, pode-se dividir estas em três fases. Leitura dos ficheiros csv[1], interação com a base de dados SQLite[2] e geração de estatísticas a partir dos dados armazenados recorrendo a extensão LINQ. O objectivo será ler registos respeitantes as colocações no ensino superior no ano 2000 até ao ano 2010, estes dados estão disponíveis num conjunto de dez ficheiros csv[1] fornecidos pelo docente. Após a leitura dos ficheiros as aplicações permitem guardar as informações numa base de dados SQLite[2] gerida pela aplicação. As aplicações geram as seguintes estatísticas: Número de professores grau/estabelecimento/ano Número de professores categoria/estabelecimento/ano Número de estabelecimentos por ano. Número de professores por categoria/ano A. Interface gráfica C# e f# Esta aplicação conta com uma interface gráfica desenvolvida no visual studio 2010, utiliza a biblioteca System.Windows.Forms do.net framework 3.5[3]. A aplicação conta com duas Forms, a principal constituída por três botões principais: Open csv - Carrega o ficheiro csv[1] seleccionado num FileDialog para uma DataGrid que possibilita visualizar os registos. Dump to DB - Permite enviar os dados carregados para a base de dados. Uma vez o processo concluído é visualizado uma mensagem. Statistics - Mostar a segunda Form, dependendo da opção de estatística selecionada na Form principal através de quatro RadioButtons, será visualizado a estatística pretendida na segunda form. A segunda Form é constituída por quatro ListBox e uma DataGrid. As ListBox representam por ordem: A primeira os diferentes anos inseridos na base de dados, independentemente da estatística selecionada. A segunda permite nas duas primeira estatísticas, visualizar os estabelecimentos de ensino num dados ano, este selecionado 2

estiglp-11/12-5946-csharp e Fsharp 3 na primeira lista. Na terceira estatística permite visualizar-se a contagem de escolas nos diferentes anos, e ainda na quarta estatística todo as categorias num dado ano. A terceira permite a visualização dos diferentes graus e categorias, num dado estabelecimento e ano na primeira e segunda estatística, na terceira não conta com nenhuma funcionalidade e na quarta é utilizada para contar os professores de uma categoria num dado ano. A quarta lista é utilizada apenas nas duas primeiras estatísticas, justamente para mostrar a contagem dos professores numa dada categoria ou grau, num dado ano e estabelecimento de ensino. estes Strings, substituísse os carácteres por para evitar erros ao colocar os registos na base de dados. Por cada registo lido no csv[1] é criado um objecto Teacher e guardado na lista Teachers, a lista Teachers é indicada como DataSource do objecto DataGrid de forma a preencher as células da grelha e utilizador ter uma percepção visual da informação. B. Escrita dos registos na base de dados SQLite (c# e f#) Para ser possível a interação das aplicações com a base de dados SQLite[2], utilizou-se a driver System.Data.SQLite, a qual esta disponível no site http://www.sqlite.org/download.html. C. Criação do controlador para a base de dados (c# e f#) III. METODOLOGIA (C# E F#) A. Leitura de ficheiros csv(c# e f#) Para permitir a leitura dos registos nos ficheiros csv[1] de forma correta sem erros devido á caracteres mal interpretados pelo programa, utilizou-se a biblioteca LumenWorks.Framework.IO.Csv que permite tratar ficheiros csv[1] de forma correta. Tomou-se conhecimento desta biblioteca a partir do site http://www.codeproject.com/kb/database/csvread er.aspx. Esta permite iterar pelos registos do ficheiro, de forma a estruturar melhor a informação criou-se um modelo para os registos para representa os professores, a Class Teacher, esta classe conta com os atributos: (string Cod, string Name, string Degree, string Curse, string Catgory, string Regime, string Year, string TypeEstablishment, string Establishment ). No construtor da class, em cada atributo, sendo Para lidar com a base de dados foi criada a class SQLHandler que utiliza a driver para fazer ligação á base de dados. Esta conta com métodos para: Criação da base de dados (construtor) Criação de tabelas (createtable) Inserção de dados nas tabelas (insertdata) Leituras dos registos armazenados (getdata) D. Fluxo lógico para inserção de dados (c# e f#) O primeiro passo é a criação da base de dados e tabela, criou-se o método createtable que utilizando a ligação cria a tabela caso esta não exista. É enviada a lista Teachers para o método insertdata, este por sua vez inicia uma transação e insere os dados de cada professor representados por classes Teacher, na qual se alterou o método ToString() para retornar uma string com os todos atributos da instancia no formato SQL[4]. 3

estiglp-11/12-5946-csharp e Fsharp 4 Quando o processo esta completo é mostrado uma caixa de mensagem a indicar essa informação. E. Janela de estatísticas (C#) Para ser possível gerar as estatísticas, ao selecionase uma estatística, é lido todos os registos armazenados e estes são guardados numa lista genérica do tipo Teacher, para desta forma permitir a utilização do LINQ[5]. Para preencher as ListBox utilizou-se as seguintes técnicas: 1. Para visualizar-se os diferentes anos na primeira ListBox criou-se o método getyears(listbox list), recorrendo ao LINQ[5] este seleciona todos os campos Year nos objetos Teacher da lista Teachers e agrupa os por Year, obtendo-se todos os diferentes. De seguida inseridos na primeira ListBox nominada Years. 2. Para preencher a lista de estabelecimentos, criou-se o método getestablishments(string year, ListBox list) e utilizou-se o LINQ[5], para seleccionador todos os Teachers com o campo Year igual ao selecionado na primeira lista, e agrupando estes por estabelecimento, obtendo-se desta forma todos os estabelecimentos num dados ano. Isto para a primeira e segunda estatísticas, na terceira utiliza-se o LINQ[5] para contar o numero de escolas nos diferentes anos e na quarta estatística seleciona-se as diferentes categorias independentemente do estabelecimento, ou seja agrupando-se por categorias. 3. Na primeira e segunda estatística a ListaBox de categorias ou graus,é preenchida através do método getcatordegree(string scool, ListBox list) e utilizou-se o LINQ[5] para selecionar todos os registos onde os campos Year e Establishment sejam iguais aos itens selecionados na primeira e segunda ListBox, agrupando por categoria ou grau. Na terceira não tem funcionalidade, na quarta esta é utilizada para mostrar a contagem de professores num dado ano e categoria. 4. A grelha de dados(datagridview), é preenchida com todos os Teachers com os valores selecionados nas três nos respectivos campos, através do método getteachers(string year), preenchendo a DataGrid com a lista de Teacher resultante. 5. A lista de estatística(lista 4) é preenchida através do método getstatistics(string item, ListBox list), este por sua vez testa para todos os itens da lista Years o método getteachers(string year), como este retorna uma lista de professores, adiciona-se como item á lista de estatísticas, o ano seguido do tamanha da lista. F. Janela de estatísticas(f#) Da mesma forma que na aplicação de c#, na janela de estatísticas existem 4 ListBox e uma DataGrid. 1. Para preencher a primeira lista, itera-se por todos o objetos da lista Teachers e se o valor do campo Ano não existir na ListBox então é adicionado. 2. Na ListBox de estabelecimentos, o procedimento é o mesmo, mas a comparação é feita com o campo estabelecimento e o campo Ano selecionado na lista anterior. Como em c#, esta funciona desta forma para a primeira e segunda estatística, na terceira é preenchida com o numero de estabelecimentos de ensino por ano armazenados na tabela do SQLite[2].Na quarta opção é preenchida pelas diferentes categorias num dados ano através do methodo getcatgorys(). 3. Na ListBox de categorias ou graus, mais uma vez utiliza-se o procedimento anterior, comparado a existência do campo categoria se for o caso ou grau na ListBox. Na terceira estatística esta lista não tem qualquer funcionalidade mas na quarta é utilizada 4

estiglp-11/12-5946-csharp e Fsharp 5 para mostrar a contagem de professores numa dada categoria em todos os anos, isto é possível através do método countteacherscatgory(). 4. O preenchimento da DataGrid é feito através da criação de uma nova lista temp, que guarda os registos Teacher com os campos iguais aos selecionados nas ListBoxs anteriores. Na quanta opção é feita através do método fillgridforcatgorys() V. REFERENCIAS 1.CSV-Ficheiro com valores separados por vírgulas. 2.SQLite-Formato de base de dados. 3. framework 3.5-Versão do framework utilizado. 4.SQL- Linguagem estruturada para base de dados. 5.LINQ-Linguagem para integração de pesquisas. 5. As estatísticas são geradas através da iteração de cada item da lista Anos, contado o numero de professores com os valores dos campos iguais aos selecionados nas listas, adicionado á lista de estatísticas o ano e a contagem. VI. BIBLIOGRAFIA LumenWorks.Framework.IO.Csv http://www.codeproject.com/kb/database/csvread er.aspx SQLite IV. CONCLUSÕES A linguagem C# da Microsoft tem incontestáveis semelhanças á linguagem Java da SUN, contudo verifica-se que esta é mais flexível em termos de usabilidade. Nota-se melhorias em termos de velocidade de compilação e ainda, a utilização do visual studio de monstra grande facilidade de criação de interfaces gráficas. A linguagem F#, sendo uma linguagem nova, que permite a utilização de multiparadigma de programação, é bastante fácil de aprender a se desenvolver simples aplicações, pois esta também é baseada em C#, também, de bastante rapidez de execução, talvez até mais que a C#. Embora, no visual studio não seja possível criar as interfaces em F# como em C#, não existe grande complexidade na criação das mesmas. http://www.sqlite.org/download.html. LINQ Fsharp http://msdn.microsoft.com/enus/library/bb308959.aspx http://msdn.microsoft.com/enus/vstudio/hh388569.aspx http://my.safaribooksonline.com/book/programming /microsoftdotnet/9780470528013/inheritance/overriding#x2lu dgvybmfsx0zsyxnoumvhzgvyp3htbglkptk3 ODA0NzA1MjgwMTMvMTI1 5