Trabalho De C#
Ensaios: Trabalho De C#. Pesquise 862.000+ trabalhos acadêmicosPor: • 26/11/2014 • 4.364 Palavras (18 Páginas) • 267 Visualizações
Linguagem de Programação Comercial
DESAFIO
Uma empresa está no processo de implantação do Sistema de Gestão da Qualidade (SGQ) com o intuito de adequar a seus processos, infraestrutura e sistemas de informação para futuramente obter um certificado de qualidade ISO 9001:2008.
Na implantação do SGQ, geralmente há consultores que irão avaliar e sugerir diversas mudanças administrativas e operacionais, visando obter maior qualidade e otimização dos recursos da empresa. Para ocorrerem essas mudanças, os colaboradores recebem diversos treinamentos, manuais e orientações para estarem cientes das mesmas. Os treinamentos e procedimentos geram diversos documentos e manuais para os funcionários.
Uma das medidas tomadas pela empresa foi solicitar a criação de um Sistema de Informação (SI) para facilitar a disponibilização da documentação e outros materiais para seus colaboradores.
Sistemas de Informação – 3ª Série – Linguagem de Programação Comercial
O desafio proposto é o desenvolvimento de um SI para auxiliar na divulgação e acesso às informações e aos procedimentos do Sistema de Qualidade a serem seguidos pelos departamentos da empresa citada acima.
Esse sistema deverá atender aos requisitos a seguir:
Ter dois ambientes:
• Ambiente 1: Publicação de Conteúdo: nesse ambiente, o usuário responsável por divulgar o material poderá cadastrar e publicar o conteúdo dos manuais e procedimentos necessários para treinamento dos colaboradores.
• Ambiente dois: Consulta e Acesso ao Conteúdo: nesse ambiente, os colaboradores da empresa poderão ter acesso ao conteúdo publicado referente ao material do SGQ.
Requisitos Funcionais:
• O sistema deve permitir ao colaborador consultar o conteúdo por departamento para facilitar a busca pelo conteúdo publicado.
• O sistema deve permitir o cadastro de usuários que irão publicar o conteúdo, cadastro de departamentos e tela para publicação do conteúdo.
A equipe de desenvolvimento deve ser composta por um grupo de alunos para elaboração das atividades e troca de conhecimento e experiências. Considere que a equipe foi contratada por um colaborador da empresa representada pelo professor.
Ao decorrer do desenvolvimento dessa atividade, deverão ser entregues ao representante da empresa:
1. Relatório 1: Codificação das Classes do Sistema.
2. Relatório 2: Descrição da Plataforma e Ferramentas
3. Relatório 3: Interfaces do Sistema de Publicação de Conteúdo.
4. Relatório 4: Codificação das interfaces.
5. Relatório 5: Codificação do Sistema de Publicação de Conteúdo conectado ao Banco de Dados.
6. Relatório 6: Codificação da Importação de arquivos XML.
Todos os documentos e relatórios que a equipe irá entregar para o representante da empresa (professor) devem seguir, como padrão de formatação, a NBR 14724 da ABNT (Associação Brasileira de Normas Técnicas).
Objetivo do Desafio
Desenvolver um Sistema de Informação para auxiliar na divulgação e acesso às informações e procedimentos de um Sistema de Qualidade utilizados por departamentos de uma empresa.
ETAPA 1
Introdução
Escolhemos a linguagem Java e C# pelo motivo que o Java é uma linguagem multiplataforma e o C# por ser uma linguagem nova que pode ser que possa substituir o Java, além disso as duas linguagens, de um certo modo são descendente do C e C++. As duas linguagens são linguagem orientada a objetos (OOP) e possuem muitas semelhanças como mostra o quadro abaixo:
Característica Implementação
Inspirado no C/C++ Boa parte da sintaxe de ambas as linguagens foi inspirada no C/C++, especialmente declaração de variáveis, funções e estruturas de controle.
Orientação a objetos Ambas as linguagens suportam conceitos de programação orientada a objetos com a palavra reservada class.
Herança Herança simples de classes a partir de ancestral comum e herança múltipla de interfaces.
Gerenciamento de memória Automático, com “coletor de lixo”.
Tipagem forte Todas as atribuições tem os tipos validados. Os “casts” são sempre verificados em tempo de execução. Não é possível violar o sistema de tipos.
Compila para código intermediário Sim. No caso da Microsoft compila para “Intermediate Language” e no Java para “bytecode”.
Tratamento de erro Exceptions.
Reflections Ambas as linguagens suportam “reflections”.
Unicode Ambas as linguagens usam o padrão Unicode para representar caracteres e strings.
Classe que não pode ser herdada “final” em Java; “sealed” em C#.
Campo constante “static final” em Java; “const” em C#.
Operador que verifica compatibilidade de tipos “instanceof” em Java; “is” em C#.
1 - Java
Java foi desenvolvida por um grupo de pesquisadores da SUN Microsystems por volta de 1990, pouco antes da explosão da Internet. Essa linguagem possui estrutura muito semelhante à da linguagem C, da qual descende imediatamente. Java tem em comum com a linguagem C++ o fato de ser orientada a objetos e mantém com este um alto grau de semelhança. Esse paradigma de programação consiste de um grau a mais na abstração da programação, em comparação com a programação estruturada, e tem se mostrado extremamente útil na produção de programas cada vez mais sofisticados, em menor tempo e com maior qualidade. A programação orientada a objetos é hoje universalmente adotada como padrão de mercado, e muitas linguagens tradicionais foram aperfeiçoadas para implementar esse paradigma, como C++, Object Pascal, etc.
Tendo sido originalmente concebida para o desenvolvimento de pequenos aplicativos e programas de controle de aparelhos eletrodomésticos e eletroeletrônicos, Java mostrou-se ideal para ser usada na rede Internet. O que a torna tão atraente é o fato de programas escritos em Java poderem ser executados virtualmente em qualquer plataforma, mas principalmente em Windows, Unix e Mac. Em meio a essa pluralidade, Java é um idioma comum, falado por todos. Isto significa que Java é ideal para expressar ideias em forma de programas universalmente aceitos. Soma-se a isso o fato de programas Java poderem ser embutidos em documentos HTML, podendo assim ser divulgados pela rede. Diferente da linguagem C, não é apenas o código fonte que pode ser compartilhado pela rede, mas o próprio código executável compilado, chamado bytecodes.
Em contraste com a letargia de documentos tradicionais, Java acrescenta a interatividade entre o usuário e o documento que está sendo consultado, tornando-o mais expressivo, agradável e surpreendente. Java é ideal para a elaboração de material educacional, pois permite ilustrar claramente os conceitos enquanto possibilita um ensino individualizado.
Há uma certa curiosidade por detrás do nome dado a essa linguagem de programação. Java é o nome de uma ilha do Pacífico, onde se produz uma certa variedade de café homônimo. A inspiração bateu à equipe de desenvolvimento ao saborear esse café em uma lanchonete local. Deram-se conta de como era extremamente apreciado por profissionais da área de software (ao menos nos Estados Unidos), de modo que não foi menos justo fazer-lhe homenagem ao batizar uma nova linguagem de programação.
1.1 - Processo de Compilação
Um programa fonte escrito em linguagem Java é traduzido pelo compilador para os bytecodes, isto é, o código de máquina de um processador virtual, chamado Java Virtual Machine (JVM). A JVM é um programa capaz de interpretar os bytecodes produzidos pelo compilador, executando o programa cerca de 20 vezes mais lento do que C. Pode parecer ruim, mas é perfeitamente adequado para a maioria das aplicações. Com isto, um programa Java pode ser executado em qualquer plataforma, desde que esteja dotada de uma JVM. É o caso dos programas navegadores mais populares, como o Netscape Navigator e o Internet Explorer, que já vêm com uma JVM. A vantagem desta técnica é evidente: garantir uma maior portabilidade para os programas Java em código-fonte e compilados. Porém, as JVM tendem a ser programas extensos que consomem muitos recursos, restringindo assim o tamanho das aplicações escritas em Java.
Atualmente, já existem compiladores capazes de traduzir bytecodes para instruções de máquina nativas, como o Just In Time compiler (ou JIT), tornando os programas ainda mais rápidos. Este compilador requer uma versão específica para cada plataforma onde se pretende que o programa Java seja executado. Em contrapartida à maior velocidade de execução está também uma maior necessidade de memória, pois os bytecodes compilados, em geral, ficam três vezes maiores do que o original. Uma alternativa bem mais interessante, e talvez muito mais viável, é a implementação da JVM em hardware na forma de uma placa ou microchip. A primeira iniciativa neste sentido é da Sun Microelectronics, que está produzindo os chips PicoJava I, MicroJava e UltraJava. Estes são capazes executar diretamente bytecodes, acelerando em milhares de vezes a velocidade de execução. Isto permitirá o desenvolvimento viável de aplicativos cada vez mais complexos, abrangentes e funcionais. Espera-se que estas soluções sejam brevemente empregadas na fabricação de telefones celulares, pagers, jogos, organizadores pessoais digitais, impressoras e eletrodomésticos de consumo, além aplicações mais sérias como estações de trabalho dotadas do sistema operacional JavaOS. Trata-se certamente do futuro das soluções para aplicações de rede.
2 - C#
O C# (pronuncia-se “C Sharp”) é uma nova linguagem criada pela Microsoft em conjunto com a arquitetura .NET. O símbolo # significa que a nota deve ser meio tom mais aguda. O C# traz este símbolo, pois possui uma linguagem com toda a robustez e cientificidade de sintaxe do C, só que agora "meio tom" melhorado.
Nas últimas duas décadas, C e C++ foram as linguagens mais amplamente usadas para o desenvolvimento de software comercial e de negócios. Embora as duas linguagens proporcionem ao programador uma quantidade enorme de controle granular, esta flexibilidade possui um custo para a produtividade. Comparadas com uma linguagem como o Microsoft Visual Basic, aplicações C e C++ equivalentes frequentemente demoram mais para serem desenvolvidas. Devido a complexidade e longos tempos de ciclo associados a essas linguagens, muitos programadores C e C++ vêm procurando uma linguagem que ofereça um melhor balanceamento entre poder e produtividade.
A solução Microsoft para este problema foi a criação da linguagem C#. Ele é uma moderna linguagem orientada a objeto que habilita os programadores a construir rapidamente uma ampla gama de aplicações para a nova plataforma Microsoft .NET, a qual proporciona ferramentas e serviços que exploram totalmente a computação e as comunicações.
Devido ao seu elegante projeto orientado a objeto, C# é uma escolha excelente para arquitetar uma ampla gama de componentes – de objetos de negócio de alto nível a aplicações no nível do sistema. Usando construções de linguagem C# simples, estes componentes podem ser convertidos em serviços Web, permitindo que eles sejam invocados pela Internet, a partir de qualquer linguagem rodando em qualquer sistema operacional.
Principalmente, C# é projetado para trazer desenvolvimento rápido para o programador C++ sem sacrificar o poder e o controle que têm sido a característica fundamental do C e C++. Devido a esta herança, C# possui um alto grau de fidelidade com C e C++. Desenvolvedores familiarizados com estas linguagens podem se tornar produtivos em C# rapidamente. Porém o C# modifica bastante o C++ e não tem a pretensão de manter a compatibilidade, apenas a “familiaridade”.
2.1 - Processo de Compilação
Os fontes em C# tem extensão “cs”. Todos os fontes em um “projeto” são compilados diretamente para um único “assembly” (.EXE ou .DLL). Não existe um arquivo intermediário (.OBJ ou .DCU) como no Delphi.
Todo programa criado pelo compilador C# é dito “verificável”. Isto quer dizer que o compilador JIT (Just In Time Compiler) pode, em tempo de execução / compilação, verificar e garantir que o programa não faça nenhuma operação que possa comprometer a segurança e integridade do sistema.
Pode parecer estranho, mas existem instruções MSIL (Microsoft Intemediate Language) capazes de abrir brechas na segurança do sistema, como por exemplo, para manuseio direto de ponteiros ou “casts” inseguros. Estas instruções são necessárias em alguns casos, como por exemplo para que a própria biblioteca chame a API do Windows. Programas que contém estas instruções são ditos “não-verificáveis”. O compilador C# pode criar programas não-verificáveis, incluindo manipulação direta de ponteiros, com a opção “/unsafe”. Já o compilador C++ sempre gera código não-verificável. Evidentemente é necessário um privilégio especial de segurança para rodar programas não-verificáveis.
É perfeitamente possível criar programas bastante úteis sem violar os critérios de “verificabilidade” e, consequentemente, segurança.
3 - Conclusão
Embora compartilhe características com o Java, o C# é uma linguagem que traz vários recursos muito interessantes que não ou existem no Java ou dão muito trabalho para implementar ou têm performance ruim. Porem o Java possui uma grande preferência por seu uma linguagem multiplataforma facilitando muito o serviço de muitos
Programadores. O C# é um grande candidato a se tornar uma linguagem utilizados pela maioria dos programadores, mas ainda é necessário analisar e efetuar muito teste.
Classe usuario
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
class ClasseUsuario
{
private int Codigo;
private string Nome;
private int SenhaUsuario;
private string LoginUsuario;
private string TipoUsuario;
private int CodigoDepartamento;
public ClasseUsuario(int codigo1, int senhaUsuario1, int codigoDepartamento1, string nome1, string tipoUsuario1, string loginUsuario1)
{
this.Codigo = codigo1;
this.SenhaUsuario = senhaUsuario1;
this.CodigoDepartamento = codigoDepartamento1;
this.Nome = nome1;
this.TipoUsuario = tipoUsuario1;
this.LoginUsuario = loginUsuario1;
}
public int codigo1
{
get { return Codigo; }
set { Codigo = value; }
}
public string nome1
{
get { return Nome; }
set { Nome = value; }
}
public int senhaUsuario1
{
get { return SenhaUsuario; }
set { SenhaUsuario = value; }
}
public string loginUsuario1
{
get { return LoginUsuario; }
set { LoginUsuario = value; }
}
public string tipoUsuario1
{
get { return TipoUsuario; }
set { TipoUsuario = value; }
}
public int CodigoDepartamento1
{
get { return CodigoDepartamento; }
set { CodigoDepartamento = value; }
}
}
}
Classe material
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
class material
{
private int cod;
private string cod_departamento;
private DateTime data;
private string titulo;
private string conteudo;
private string cod_usuario;
public Classe material(int cod1, string cod_departamento1, DateTime data1, string titulo1, string conteudo1,string cod_usuario1)
{
this.cod = cod1;
this.cod_departamento = cod_departamento1;
this.data = data1;
this.titulo = titulo1;
this.conteudo = conteudo1;
this.cod_usuario = cod_usuario1;
}
public int cod1
{
get { return cod; }
set { cod = value; }
}
public string cod_departamento1
{
get { return cod_departamento; }
set { cod_departamento = value; }
}
public DateTime data1
{
get { return data; }
set { data = value; }
}
public string titulo1
{
get { return titulo; }
set { titulo = value; }
}
public string conteudo1
{
get { return conteudo; }
set { conteudo = value; }
}
public string cod_usuario1
{
get { return cod_usuario; }
set { cod_usuario = value; }
}
}
}
Classe Departamento
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
class Classedepartamento
{
private int cod;
private string descricao;
public Classedepartamento(int cod1,string descricao1)
{
this.cod = cod1;
this.descricao = descricao1;
}
public int cod1
{
get { return cod; }
set { cod = value; }
}
public string descricao1
{
get { return descricao; }
set { descricao = value; }
}
}
}
Classe login
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
class ClasseLogin
{
private int Senha;
private string Login;
private string Tipo;
public ClasseLogin(string login1, int senha1, string tipo1)
{
this.Login = login1;
this.Senha = senha1;
this.Tipo = tipo1;
}
public string login1
{
get { return Login; }
set { Login = value; }
}
public string tipo1
{
get { return Tipo; }
set { Tipo = value; }
}
}
}
ETAPA 2
Passo 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}
private void Form5_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Passo 2
Login De usuário
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Consulta de Material
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Bibliografia
TROELSEN, ANDRW. PROFISSIONAL E A PLATAFORMA C#.NET 4. 5ª ED. RIO DE JANEIRO – RJ:ALTA BOOKS,2013
http://www.msdnbrasil.com.br/colunas/falandoc/col_falandoc_3.aspx
http://www.coladaweb.com/informatica/comparativo-entre-c-e-java
...