• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Equalizer

[C++] Life Counter

32 mensagens neste tópico

Antes demais devo apresentar-me não fosse este o 1º post... Já por aki ando há uns tempos, aprendi umas coisas e como tal decidi tornar me mais activo, acho que este projecto merece. Como programador muito verdinho ainda, comecei a aprender alguma coisa com a minha Casio nas aulas de Mat.. :-[  e fui passando pra o Pascal, C++, um pouco de Java e agora dando uns toques em php... Ainda não domino nada mas vou no meu caminho.

Mas agora ao que interessa: venho apresentar um pequeno programita feito por mim em C++ que pouco serve a não ser por curiosidade, ele depois de introduzida a data de nascimento do user e o dia actual ele calcula os dias de vida exactos que o user tem. Como o cálculo é feito precisamente contando com anos bissextos e comuns (tem uma função interna que determina o tipo de ano em que se encontra) podem mesmo dizer que têm aquele exacto nº de dias, nem um a mais nem a menos...

Depois tem uns extras a mais por graça, como é uma coisa meio "inútil" decidi não fazer um GUI mas estou sempre a tempo...  :P

E pronto aki fica:

versão 0.1

exe:

Life_Counter_0.1.rar

source:

Life_Counter_v0.1.cpp

versão 0.2

exe:

Life_Counter_0.2.rar

source:

Life_Counter_v0.2.cpp

Digam alguma coisa...posso arranjar o código mas como não tá nada de exemplar nem bem comentado acho por bem não o meter pelo menos ainda.

Bem sei que é um prog dakeles com pouca utilididade, mas tem a sua graça, por isso não massacrem muito...  :-[

E como até já escrevi demais vou-me...  :ipool:

Cumps!  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem-vindo ao fórum!

Gostei do programa, tá mt fixe!!

Uma sugestão, depois de calcular a data o programa podia fechar ou perguntar se quer sair... :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eh eh !

Tá fixe !

Olha, mas não há forma de ele buscar a data actual ao sistema sem ter que ser introduzida manualmente ?

09152006000647ce6.jpg

Assim evitavas que permitisse meter a data actual inferior a de nascimento para não dar coisas deste género !

E o comentário ao tempo que passámos a dormir deveria variar com a percentagem obtida !

Outra sugestão, poderias calcular o tempo que ainda nos resta de vida, baseado na esperança média de vida, mas aí irias que ter que perguntar o sexo, e futuramente poderias introduzir muitas funcionalidades de forma a melhorara a previsão !

Ideias não me faltam, mas para já ficam só estas, se achares boa ideia e avançares com estas eu depois dou mais !  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso de não poder introduzir datas inferiores, pressupõem-se que os membros desta comunidade sejam inteligentes... mas o maior problema no desenvolvimento de software é a estupidez dos utilizadores! :P

Depois se puderes fornecer o source, era nice!  :) Bom trabalho! :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, se pudesses fornecer o código-fonte...

As ideias do RidelIght são boas, penso que o programa ficaria muito melhor. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu diria que isto é C do que C++

Por ser numa janela janela do DOS não quer dizer que tenha de ser C...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu diria que isto é C do que C++

Por ser numa janela janela do DOS não quer dizer que tenha de ser C...

Nem sequer é numa janela de DOS, é na linha de comandos. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, obrigado pelos comentários vou ver o que se pode fazer...  :P

Olha, mas não há forma de ele buscar a data actual ao sistema sem ter que ser introduzida manualmente ?

Haver quase de certeza que há, tive a dar uma olhada na library "time.h" não há nada de muito explicito nisso mas pode se tentar adaptar, mas já agora any help is apprecciated.

Outra sugestão, poderias calcular o tempo que ainda nos resta de vida, baseado na esperança média de vida, mas aí irias que ter que perguntar o sexo, e futuramente poderias introduzir muitas funcionalidades de forma a melhorara a previsão !

Isso é uma boa ideia quando tiver tempo hei de dar uns toques aí, thanks pela ideia.  :)

eu diria que isto é C do que C++

Por ser na console não quer dizer nada, apesar de não usar as funcionalidades do C++, há pequenos pormenores que indicam que não é C. (penso eu)

Ah, e já agora cá vai o source:

http://equalizer.no.sapo.pt/Life_Counter_v0.1.cpp

Mais uma vez obrigado pelos comments.    :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem-vindo ao fórum do P@P!

Life Counter... sim, o nome foi a primeira coisa que me atraiu...

O programa está engraçado... agora segundo o que li neste tópico tu não usaste funções de saber a data do sistema por isso os minutos e a horas... serão só estatísicas então :P

Ainda assim tá muito bom... não imaginava que passava tanto tempo da minha vida a dormir (41 %)...  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda assim tá muito bom... não imaginava que passava tanto tempo da minha vida a dormir (41 %)...  :hmm:

Ena tu é que dormes !  :shocking:

Já viste que estas a "desperdiçar" quase metade do teu tempo de vida ?

A mim deu-me 28% !

E o programa disse que era muito tempo !  :eek:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também foi 28%, não achas muito tempo? Um terço da tua vida a dormir... :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também foi 28%, não achas muito tempo? Um terço da tua vida a dormir... :dontgetit:

Acho, mas menos que isso depois não nos aguentámos.

Life is too short, don't waste your time sleeping !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aparentemente é mesmo C++...

olhando para o código, uma das coisas que não me agrada é o facto da main ser recursiva, podias fazer um ciclo que ficava melhor...

fica aqui uma lista de warnings que podias corrigir:

Life_Counter_v0.1.cpp: In function `int main()':

Life_Counter_v0.1.cpp:67: warning: statement has no effect

Life_Counter_v0.1.cpp:75: warning: statement has no effect

Life_Counter_v0.1.cpp:122: warning: statement has no effect

Life_Counter_v0.1.cpp:129: warning: statement has no effect

Life_Counter_v0.1.cpp: In function `bool testeAno(float)':

Life_Counter_v0.1.cpp:199: warning: unused variable 'anoBissexto_'

se não precisas de fazer inicialização de variáveis nos fors deixas o primeiro campo sem nada...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aparentemente é mesmo C++...

olhando para o código, uma das coisas que não me agrada é o facto da main ser recursiva, podias fazer um ciclo que ficava melhor...

fica aqui uma lista de warnings que podias corrigir:

Life_Counter_v0.1.cpp: In function `int main()':

Life_Counter_v0.1.cpp:67: warning: statement has no effect

Life_Counter_v0.1.cpp:75: warning: statement has no effect

Life_Counter_v0.1.cpp:122: warning: statement has no effect

Life_Counter_v0.1.cpp:129: warning: statement has no effect

Life_Counter_v0.1.cpp: In function `bool testeAno(float)':

Life_Counter_v0.1.cpp:199: warning: unused variable 'anoBissexto_'

se não precisas de fazer inicialização de variáveis nos fors deixas o primeiro campo sem nada...

Apesar de teres razão, não fiz isto com muitas preocupações apenas o fiz porque o meu irmão mais novo me perguntou: "Ó mano, quanto dias achas que eu tenho ao todo?" e então eu respondi "Espera um bocado que já te digo" e fiz isto em pouco tempo e sem grandes cuidados, mas obrigado pela observação...

Quanto aos warnings no Dev-C++ não os vi mas assim vou tentar resolver isso e fazer umas alterações.

os minutos e a horas... serão só estatísicas então

Os minutos e as horas são convertidos directamente dos dias de vida calculados pelo prog, por isso está lá o "ou seja"...  :P

Cumps!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Olha, mas não há forma de ele buscar a data actual ao sistema sem ter que ser introduzida manualmente ?

Haver quase de certeza que há, tive a dar uma olhada na library "time.h" não há nada de muito explicito nisso mas pode se tentar adaptar, mas já agora any help is apprecciated.

fica aqui um exemplo de um programa (em C!!) que usa as funções 'time' e 'localtime' para determinar informações sobre a data, agora é só adaptar...

#include <stdio.h>
#include <time.h>

int main()
{
  time_t t;
  time(&t);

  struct tm* data;
  data=localtime(&t);

  printf("seg: %d\n",data->tm_sec);
  printf("min: %d\n",data->tm_min);
  printf("horas:%d\n",data->tm_hour);
  printf("dia: %d\n",data->tm_mday);
  printf("mes: %d\n",data->tm_mon);
  printf("ano: %d\n",1900+data->tm_year);

  return 0;
}

EDIT:

este programa funciona em Unix, em windows não sei se também vai funcionar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado Rui Carlos, mas quando vi o teu post já tinha arranjado maneira de por isto a funcar, de qualquer maneira obrigado.  :thumbsup:

E pronto lá fui implementando as funções que aqui o pessoal sugeriu e aí tá a nova versão:

versão 0.2

exe

http://equalizer.no.sapo.pt/Life_Counter_v0.2.rar

source

http://equalizer.no.sapo.pt/Life_Counter_v0.2.cpp

Principais diferenças:

- Adicionado frases variáveis dependendo da percentagem de tempo que o usuário passa a  dormir           

- Adicionado cálculo simples do tempo restante de vida com base na esperança média de vida portuguesa

- Removida a introdução da data actual manualmente pois esta é apanhada automaticamente do tempo do sistema

E aí tá, alguma coisa é só dizer...

Cumps!  :ipool:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está melhor sem dúvida, mas continua a pedir sempre a data depois de introduzirmos uma vez.

Sugestão: no fim podia perguntar se desejamos sair...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas melhorações, parece que vou viver até aos 72 anos. Depois dou-vos a confirmação! :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

09152006235654xn2.jpg

Experimentem dizer que dorme 5.30 horas !

Dass já só tenho mais 49 anos de vida !

Que terror...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias adicionar se fuma/não fuma, quantos cigarros fuma, há quanto tempo fuma e depois :

Se continuar a fumar tem x anos de vida, se para HOJE de fumar tem y,...etc..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias adicionar se fuma/não fuma, quantos cigarros fuma, há quanto tempo fuma e depois :

Se continuar a fumar tem x anos de vida, se para HOJE de fumar tem y,...etc..

Tambem tinha essa ideia david!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

detectei um bug!

ora mudei a data no relogio para 2070 por exemplo. o Programa não abre.

e se por exemplo já termos mais de 72 anos, o nosso periodo de vida será de -xxx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora