Este projeto consiste em construir uma planilha eletrônica em modo texto, usando a biblioteca NCurses para a gestão do terminal. A interface da planilha deve ser similar à figura abaixo:
O formato CSV - Comma Separated Values (Valores Separados por Vírgula) é um formato popular para a representação de tabelas de dados. Existem diversas variantes desse formato, então neste projeto assumimos a seguinte especificação:
Exemplo de um arquivo CSV:
Data,Descrição,Valor 05/04/2016,"Despesas apto (luz, água)",50 07/04/2016,Material de limpeza,20.30 11/04/2016,Matrícula inglês,110 13/04/2016,"Papelaria (cadernos, canetas)",25 15/04/2016,Supermercado,60 19/04/2016,Credito ônibus,50 20/04/2016,Almoço (pizza),20 26/04/2016,Camiseta,35 30/04/2016,Aluguel,"500"
= A op B
, onde A e B são números ou referências de células e op
é uma operação algébrica simples (+, -, *, /).Células podem ser referenciadas usando suas coordenadas: por exemplo, a string A5 referencia o valor da célula na coluna A e linha 5.
texcel
: abre uma planilha em branco (sem nome)texcel arq1.csv
: abre o arquivo arq1.csv
-Wall
texcel
(de Text Excel)texcel.c
(programa principal)csvfile.c
, csvfile.h
(lê/escreve arquivos CSV)formula.c
, formula.h
(funções para analisar e calcular fórmulas)all
, clean
e purge
Ncurses:
/usr/lib/ncurses/examples/
(pacote ncurses-examples
)ncurses-examples
disponível no Debian e derivados (Ubuntu, Mint, etc).Instalação da biblioteca NCurses no Linux (Ubuntu, Debian, Mint):
sudo apt-get install libncurses-dev
O código de inicialização da biblioteca NCurses, com as configurações necessárias para este projeto, é o seguinte:
initscr () ; // inicializa a biblioteca ncurses raw () ; // permite tratar teclas de controle (^C, ^Z, etc) keypad (stdscr, TRUE) ; // habilita leitura de teclas de setas, Fn, etc noecho () ; // não escreve as teclas lidas na tela curs_set (0) ; // esconde o cursor do terminal
Projetos similares a este: