Curso de Licenciatura em Engenharia Informática Cadeira de Algoritmia



Documentos relacionados
Ferramenta de Testagem IECL Orientações para o Aluno (PT)

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Interface Pessoa Máquina

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

COMPUTAÇÃO e PROGRAMAÇÃO

OBI2009 Caderno de Tarefas

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Criando um script simples

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

1. Lançamento em Contas Bancárias Liquidação de Clientes

AMBIENTE DE PROGRAMAÇÃO PYTHON

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento)

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

Plataforma de Benefícios Públicos Acesso externo

15 4 Operação Avançada do Sistema: Inclusão de Nota Fiscal e seus relacionamentos

Ao ligar o equipamento, você verá a mensagem abaixo, o objetivo dela é fazer a configuração mínima para LOGAR ao servidor da Internet.

20 Caracteres - Tipo char

gettyimages.pt Guia do site área de Film

Base de Dados para Administrações de Condomínios

Novo Order Manager para o Software NobelProcera

Dicas para usar melhor o Word 2007

E ainda uma terceira com as opções deste último exemplo, em que a cor de fundo deve ser verdeescuro.

Como-Funciona-Banco-Damus-Excel-Com-VBNet-Em-3-Idiomas

Usuário deve preencher o código do Registro da sua Empresa (composto de 4 dígitos), sua senha, e teclar o botão ENVIAR.

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

OBI2014 Caderno de Tarefas

Manual das funcionalidades Webmail AASP

Java Mail Server. Manual do Utilizador

Pesquisas Google - O Essencial

Lição 1 - Criação de campos calculados em consultas

A4 Projeto Integrador e Lista de Jogos

Quem são os prestadores de serviços digitais e que serviços são tributados?

Trabalho 3: Agenda de Tarefas

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Portal AEPQ Manual do utilizador

Manual AGENDA DE BACKUP

BearingNet - Inventário

Sessão 2 UFCD 0804 Algoritmos

ZSRest. Manual Profissional. Comandos Rádio X64. V2011-Certificado

Inventario de produtos

Google Sites. A g r u p a m e n t o C a m p o A b e r t o /

Aplicações de Escritório Electrónico

INTRODUÇÃO AO WORD Processamento de texto

Ministério da Cultura

3 Dicas MATADORAS Para Escrever s Que VENDEM Imóveis

Comandos Sequenciais if else, e Switch

TUTORIAL AMBIENTE WEB PORTUGOL

Para criar a conta faça clique no separador. Abre um formulário com campos que terá que preencher. Basta ir seguindo

Manual de Utilizador Documentos de Transporte. TOConline. Suporte. Página - 1

Manual de Utilização do Sistema de Digitação de Pedidos Off-line

Aplicações de Escritório Electrónico

Especificação do 3º Trabalho

43 11 Relatórios, Listagens e Exportações para Excel, TXT e HTML

Ficheiros binários 1. Ficheiros binários

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.

1. Ligar o Computador Ambiente de Trabalho

Sumário. Tutorial: Editor de Exercícios Online para o professor

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II)

SAFT para siscom. Manual do Utilizador. Data última versão: Versão: Data criação:

Manual de Utilização

Colocar em prática. Tópicos para aprender. Colocar em prática. Utilizar as aplicações da Microsoft Windows num quadro interactivo SMART Board

7. Estrutura de Decisão

Guia de Acesso/Apresentação de Pedidos de Apoio Sistema de Informação RURAL

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

OBI2013 Caderno de Tarefas

Computadores XXI: Busca e execução Final

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania

Configurando a emissão de boletos no sistema

Resumo da Matéria de Linguagem de Programação. Linguagem C

OBI2014 Caderno de Tarefas

Aula 2 Modelo Simplificado de Computador

Novo Formato de Logins Manual de Consulta

Menu Notas Fiscais Entradas. Sugestão de Compras: 1º passo: selecionar os critérios de pesquisa e filtros:

UFPel Departamento de Informática. Tutorial Google Docs. Profa. Lisane Brisolara de Brisolara

Manual do Utilizador

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

DIRETRIZES DE USO DA MATRIZ DE SISTEMATIZAÇÃO DE INFORMAÇÕES

Principais Ferramentas do Tidia-ae

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

O AMBIENTE DE TRABALHO DO WINDOWS

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

ZSRest. Manual de Configuração. Serviço de Entregas. V2011-Certificado

Controle Parental. Introdução

Treinamento de. Linx Pos

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1. Correio Electrónico. Actividades de exploração

Sistema GPB Gestão de Pombais

ÍNDICE MANUAL SITE ADMINISTRÁVEL TV. 1. Introdução 2. Acessando o site administrável/webtv SITE ADMINISTRÁVEL 3. CONFIGURAÇÕES

Controle Patrimonial WEB

GESTÃO DE STOCKS. Para gerir o seu stock deve realizar 4 passos essenciais:

Manual de utilização do sistema Diagnose. Marcus Vinícius Benedito. 10 de maio de 2007

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

e shutdown -a sao formas de desligamento forçados sendo -a o anulador do shutdown -s

Engenharia de Software Sistemas Distribuídos

Pré-Venda. Para efetuar a montagem de uma Pré-Venda em seu sistema segue o passo a passo.

Transcrição:

Curso de Licenciatura em Engenharia Informática Cadeira de Algoritmia Projecto de avaliação 2006/2007. Este projecto visa a criação de um back-end para geração de facturas para um sistema de facturação Web. Num hipotético sistema de facturação Web, uma pessoa introduz dados que deseja ver facturados pela sua empresa, carrega num botão e na página seguinte surge-lhe a factura pronta a imprimir com os respectivos totais. O programa que você vai desenvolver é utilizado pelas páginas que seriam desenvolvidas por outra pessoa, para gerar a factura em si. O seu programa não se preocupa com pedir dados ao utilizador pela Web, e as páginas não se iriam preocupar com gerar a factura: o seu programa faz isso. Página a pedir dados para a factura. Botão de enviar O programa deste projecto. Página que exibe a factura pronta a imprimir. É da responsabilidade das páginas que seriam desenvolvidas por outra pessoa, preocupar-se com o ambiente Web. O seu programa deve simplesmente assumir que está a ser chamado pela linha de comandos. Isto que dizer que os requisitos técnicos serão: O seu programa deve ser escrito em linguagem C padrão, lendo dados do teclado (ou melhor entrada padrão do C stdin) e escrevendo dados para o ecrã (ou melhor saída padrão do C stdout); Todos os dados devem ser lidos com a função scanf() do C; Os dados que vão ser fornecidos ao seu programa estarão em formato ASCII simples no conjunto de caracteres US-ASCII, sendo a saída idêntica (ou seja, não se preocupe com caracteres acentuados, não os use no programa, e não se preocupe com HTML, entity-encoding e outras situações habituais em programação Web);

Durante o desenvolvimento, seria muito útil poder utilizar-se o seu programa para testar e corrigir erros no processo. Assim, a funcionalidade pretendida é a seguinte: O programa deve ler do teclado múltiplas linhas para o descritivo de uma factura. Cada linha deve ser composta de o nome do produto/serviço (campo de texto com um máximo de 50 caracteres, não podendo conter espaços ) o data em que o produto/serviço foi prestado (campo de texto com exactamente 10 caracteres no formato AAAA-MM-DD); o quantidade de unidades compradas/prestadas (campo float/double); o preço total por esta linha do descritivo (sem IVA) (campo float/double); o percentagem do IVA (e.g. 21.0 = 21%) (campo float/double) Não deve haver limite para a quantidade de linhas que uma factura pode ter, enquanto o computador tiver memória livre para as guardar; O programa deve arrancar e começar imediatamente a pedir linhas de descritivo para facturas, sem nenhum menu inicial: isto para que possa ser chamado a partir da linha de comandos por um comando semelhante a programa < descritivo-teste.txt ; O seu programa sabe que já não há mais linhas de descritivo, quando lê o nome do produto/serviço de uma dessas linhas e esse nome é ou (ou seja, quem estiver a usar o programa, termina a lista de descritivo escrevendo apenas um asterisco ou símbolo mais sozinhos numa linha). Se o símbolo terminador for o asterisco, o seu programa termina exibindo no ecrã um cabeçalho ( Factura electrónica ), o descritivo que foi introduzido ( bonito, bem formatado, uma linha de ecrã por linha de descritivo), e ao final exibe o total de IVA, o sub-total dos produtos/serviços sem IVA, e o total final a pagar com a soma desses dois. Se o símbolo terminador for o mais, o seu programa vai agora ler uma série de comandos (strings), um por linha, terminados ao final por um asterisco sozinho. Quando ler o asterisco, o seu programa corre os comandos pela mesma ordem em que foram introduzidos, e sai. Os comandos que ele deve reconhecer são: listar a linha actual do descritivo (inicialmente, a linha actual é a 1ª até ser mudada pelos comandos L ou L-); L avança a linha actual para passar a ser a seguinte (não exibe nada no ecrã nem muda a lista de linhas de descritivo, só muda a linha que será exibida pelo comando ); Isto é para lhe facilitar a vida de forma a que este campo possa ser lido com um %s no scanf().

L- recua a linha actual para passar a ser a anterior (não exibe nada no ecrã nem muda a lista de linhas de descritivo, só muda a linha que será exibida pelo comando ); LT listar todo o descritivo tal como foi introduzido inicialmente, ou tal como ficou ordenado pelo último comando LN, LD, LQ, LP ou LI; LN listar o descritivo ordenado pelo nome do produto/serviço; LD listar o descritivo ordenado pela data de prestação; LQ listar o descritivo ordenado pela quantidade; LP listar o descritivo ordenado pelo preço (sem IVA); LI listar o descritivo ordenado pela percentagem de IVA; D - apaga ( delete ) a linha actual (ver comandos, L e L-), passando a linha actual a ser a que estava à frente desta; I introduzir mais linhas de descritivo à frente das que já existem, voltando para todos os efeitos ao comportamento inicial do programa. Encontra exemplo de utilização na página seguinte deste enunciado. Tal como já deve ter compreendido, espera-se que o programa seja implementado recorrendo ao uso de listas bidireccionais (duplamente ligadas) que guardam estruturas C em cada elemento. Cada ordenação deve alterar permanentemente a lista. O comando de apagar também deve alterar permanentemente a lista. Nota: se tiver dificuldades com o uso de listas, aceita-se que o programa seja implementado com vectores (arrays). No entanto a nota máxima de um projecto com vectores é 14 o que significa que um projecto com vectores que cumpra apenas 50% dos critérios de avaliação tem nota 7! Critérios de avaliação: Quantidade de comandos que foram correctamente implementados; Qualidade do código; Exibir correctamente, caracter a caracter, alguns descritivos de teste que o professor irá usar; À-vontade em relação ao próprio trabalho, durante a apresentação oral do trabalho. O projecto deve ser realizado em grupo e apresentado em grupo. A nota do projecto pode ser diferente para cada elemento do grupo. Um elemento do grupo que não apareça ao mesmo tempo que os restantes para a discussão terá nota zero para a apresentação oral do mesmo, e nota reduzida para os restantes critérios. Boa Sorte! Pedro Freire

Anexo: Exemplos de utilização. Nestes exemplos, o texto que você escreveria está a azul, e o texto que o programa manda para o ecrã está a negro. Factura electronica Sub-total: 1801.00 IVA: 370.21 Total a pagar: 2171.21 L L Portas 2007-01-01 5.0 500.20 21.0%

D LT LD L D I Candeeiros 2007-01-01 3.00 30 21 LT Candeeiros 2007-01-01 3.0 30.00 21.0%