claudiop Posted July 1, 2012 at 02:00 AM Report #466632 Posted July 1, 2012 at 02:00 AM Boas Tenho de fazer um programa para simular o funcionamento de uma caixa registadora em C(terminal), mas para alem de estar com alguns problemas, o programa sem de ser tão cross-plataform quão possivel. A parte em que estou com problemas, é em fazer da melhor forma possivel, a selecção do que consta na venda. Onde é que devo de guardar os produtos(nome/preço)? Num xml? Plain text? Embutidos no programa? Xml's, não sei trabalhar com eles, mas tambem não parece algo muito dificil de tentar. Texto plano, pode levar a problemas de sintaxe e a distinguir o nome do preço, ou nem por isso? É boa ideia fazer num ficheiro.c á parte e importa-lo com as devidas estruturas de dados? E como poderia fazer uma interface de texto, para seleccionar as coisas que funcione em windows(sem livrarias que não as do proprio OS)? Só me ocorre, seleccionar os produtos um a um, por um numero individual, mas isso é tudo menos pratico! Como é que uma coisa tão simples, já deu tanto em que pensar... 😛 Cumprimentos
pmg Posted July 1, 2012 at 09:37 AM Report #466638 Posted July 1, 2012 at 09:37 AM o programa sem de ser tão cross-plataform quão possivel. Instala dois ou tres compiladores na tua máquina (por exemplo: Visual Studio, gcc, lcc-win, tcc) e faz o teu programa compilar neles todos sem erros nem warnings. Além disso ainda podes usar compiladores online (codepad, ideone, comeau-computing) para mais validações. Lembra-te que alguns compiladores não foram actualizados para a definição do C de 1999 (ou de 2011), por isso usa apenas o que está na definição de 1989 (todos os compiladores decentes seguem, no mínimo, essa definição). Ou seja: nada de definir variaveis no meio de código ou dentro da inicialização dos for, por exemplo. A parte em que estou com problemas, é em fazer da melhor forma possivel, a selecção do que consta na venda. Onde é que devo de guardar os produtos(nome/preço)? Num xml? Plain text? Embutidos no programa? Xml's, não sei trabalhar com eles, mas tambem não parece algo muito dificil de tentar. Texto plano, pode levar a problemas de sintaxe e a distinguir o nome do preço, ou nem por isso? Segundo penso o melhor, mais cross-platform, mais fácil de usar é plain text. Mas plain text a sério: nada de utf-8 ou iso-8859-1. Usando us-ascii perdes acentos, cedilhas, etc ... mas garantes que o texto é apresentado da mesma forma em todas as máquinas. Se tens que usar acentos, cedilhas, etc ... então vai por utf-8 ... e prepara-te para falhanços espectaculares. É boa ideia fazer num ficheiro.c á parte e importa-lo com as devidas estruturas de dados? Não. É boa ideia definir as estruturas necessárias num ficheiro cabeçalho (com extensão .h) e #incluí-lo nos ficheiros source (com extensão .c). E como poderia fazer uma interface de texto, para seleccionar as coisas que funcione em windows(sem livrarias que não as do proprio OS)? Só me ocorre, seleccionar os produtos um a um, por um numero individual, mas isso é tudo menos pratico! Lembra-te que o problema é para resolver tão cross-platform quanto possível. Imagina como é que seleccionarias as coisas num computador sem ecrã, só com impressora ... What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Flinger Posted July 2, 2012 at 08:40 AM Report #466765 Posted July 2, 2012 at 08:40 AM (edited) Se quiseres lidar com strings completas, acentuação, cedilhas, etc, podes ir pelo xml, e usar uma biblioteca que compile em todas as plataformas, como a libxml2: Libxml2 is known to be very portable, the library should build and work without serious troubles on a variety of systems (Linux, Unix, Windows, CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...) Além de te auxiliar na formação do xml (que é um formato independente da plataforma), trata-te do encoding, suportando os mais comuns de base: libxml2 has a set of default converters for the following encodings (located in encoding.c): UTF-8 is supported by default (null handlers) UTF-16, both little and big endian ISO-Latin-1 (ISO-8859-1) covering most western languages ASCII, useful mostly for saving HTML, a specific handler for the conversion of UTF-8 to ASCII with HTML predefined entities like © for the Copyright sign. Permite-te ainda registar outros conversores que queiras usar, e, em sistemas Unix, é capaz de usar o iconv para dar suporte aos restanttes encodings. Edited July 2, 2012 at 08:41 AM by Flinger 1 Report
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now