Jump to content

Qual a melhor forma de resolver


claudiop

Recommended Posts

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

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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 by Flinger
  • Vote 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.