Gestão de trabalhos domesticos em C++

OubeLa

Power Member
Com vista a facilitar as divisões de tarefas domesticas aqui em casa, resolvi criar um programa simples :lol:

A ideia era ele dizer quem é a fazer uma determinada tarefa.

- 3 tarefas: pôr a mesa, tirar a louça/loiça da máquina de lavar e arruma-la no sitio, arrumar a cozinha.
- o programa saberia os dias do ano. Ou seja, para um determinado dia ele apresenta quem é a fazer cada tarefa. A data seria aprentada assim: Dia / Mês. Seria possivel fazer o programa começar na data que quiseremos, indo a um menu opções e escolhendo a data. Por exemplo, dia 29 de Agosto, e só começava a contar a partir daí.
- O programa verifica quem fez cada tarefa ontem, e apresenta quem deve fazer as tarefas no dia de hoje. Se voltar a ser a mesma pessoa, no dia seguinte ele emite um aviso a dizer que a outra pessoa tem que fazer essa tarefa duas vezes.
- Existirá a opção de não ser ninguem a efectuar a tarefa. No caso de não ser ninguem é como que o programa ignorasse esse dia.
- No menu será possivel adicionar o nome das pessoas que farão as tarefas. Penso que 2 pessoas chegam visto que talvez torne mais complicado se forem mais do que duas.

Acho que expus o problema. Eu ainda estou um bocado verde na programação, por isso ainda tenho alguma dificuldade em resolver os problemas. Seria melhor resolver isto com classes? Não estou a pedir que me façam o código, quero ser eu a faze-lo :) Só precisava que me dessem umas dicas. Se calhar fazer isto com classes era a melhor opção, mas ainda não percebi bem o conceito de classes :wow:
 
Vais ter que usar classes senão nunca mais, digo eu...
Só para ver se percebi tu queres executar o programa e ele dizer: "Dia 29 de Agosto de 2007! O sir_atmc vai pôr a mesa! O irmão vai tirar a louça da maquina de lavar e arruma-la no sitio! O pai vai arrumar a cozinha!" certo?!

Outra coisa queres que o programa distribua as tarefas para por exemplo um mês, ou queres que ele faça isso só no dia?! e a distribuição pode ser randon ou queres que por exemplo tu hoje pôes a mesa, amanha arrumas a louça e no dia a seguir arrumas a cozinha e depois volta a repetir isto?
 
Isso e' uma situação simples relativamente simples, secalhar não precisas de recorrer a Classes.

No entanto, caso queiras aprender, podes usar, p.e. duas classes:
- Pessoa (tu e o resto da malta q vai trabuquir)
- Tarefa (as 3 tarefas q disseste)

Podes guardar quem tem feito o que em ficheiro de texto, para depois poderem tb ver se o programa esta bem feito, ou se esta a facilitar a quem o fez heheh

Caso nao queiras ter q te meter em trabalheiras de o PC calcular a data e assim, tens outra soluçao.
Quando vais 'sortear' as tarefas, dizes q dia e' (por input), e o PC vai ver ao ficheiro de texto quem deve fazer as tarefas nesse dia.

Apenas perguntas a data para registar no ficheiro de texto quem fez o que!

Boa sorte
 
Vais ter que usar classes senão nunca mais, digo eu...
Só para ver se percebi tu queres executar o programa e ele dizer: "Dia 29 de Agosto de 2007! O sir_atmc vai pôr a mesa! O irmão vai tirar a louça da maquina de lavar e arruma-la no sitio! O pai vai arrumar a cozinha!" certo?!

Outra coisa queres que o programa distribua as tarefas para por exemplo um mês, ou queres que ele faça isso só no dia?! e a distribuição pode ser randon ou queres que por exemplo tu hoje pôes a mesa, amanha arrumas a louça e no dia a seguir arrumas a cozinha e depois volta a repetir isto?

Sim, é isso. A ideia era começar hoje por exemplo. Eu punha a mesa, e a minha mãe arrumava a cozinha e tirava a louça. Amanha o programa dizia que era a minha mae a por a mesa, e eu a fazer o resto. E no dia seguinte voltava a fazer o contrário.

A ideia era mesmo guardar num ficheiro de texto apenas o primeiro dia. Depois o programa ia fazendo sempre a disctribuição para 1 dia, e dava as tarefas ao contrario do ultimo dia. Obrigado pelas sugestões :D

Isto era mais para ser um auxiliar de memória, uma vez que as vezes há malabarices. E ao mesmo tempo era bom para excercitar o meu C++ :D
 
Última edição:
Em vez de guardares o primeiro dia apenas, podias guardar o dia anterior e uma tabela de distribuição, isto é, a ordem de pessoas e respectivas tarefas :)

De facto isso parece-me algo relativamente simples de fazer, e nem precisas de grandes coisas para desenvolver isso. Atenção é que precisas de um header para teres as funções que devolvem a data de hoje ;)

A parte das classes nem é imperativo, mas por uma questão de boa organização e estruturação é uma excelente política, pelo menos vais saber sempre o que faz cada coisa e nem te baralhas no teu próprio código ;)

HecKel
 
- O programa verifica quem fez cada tarefa ontem, e apresenta quem deve fazer as tarefas no dia de hoje. Se voltar a ser a mesma pessoa, no dia seguinte ele emite um aviso a dizer que a outra pessoa tem que fazer essa tarefa duas vezes.

Boas de facto com o Heckel disse não parece ser complicado .... e parece-me um problema muito bom para aprenderes um pouco mais de C ou C++.

Apenas não percebi esta parte, o programa é que decide quem faz as tarefas no dia seguite? Se assim for o programa deverá evitar que uma pessoa repita a mesma tarefa duas vezes seguidas?
 
Boas de facto com o Heckel disse não parece ser complicado .... e parece-me um problema muito bom para aprenderes um pouco mais de C ou C++.

Apenas não percebi esta parte, o programa é que decide quem faz as tarefas no dia seguite? Se assim for o programa deverá evitar que uma pessoa repita a mesma tarefa duas vezes seguidas?

O programa vai verificar quem fez a tarefa no dia seguinte. Depois eu faço o input ou coloco no ficheiro quem fez a tarefa do proprio dia. E se for a mesma pessoa do dia anterior, no dia seguinte ele vai dar o aviso de que houve uma repetição.

Ou seja, ele diz quem é a fazer a tarefa. No entanto pode haver o caso de nao se puder cumprir o calendario, e portanto eu vou fazer o input de quem fez a tarefa, e o programa vai verificar se esta correcta ou nao. Se estiver correcto funciona normalmente. Se nao estiver correcto no dia seguinte emite um aviso, e nos proximos 2 dias é a pessoa que não fez a tarefa que as tem de efectuar.
 
Visto que pretendes apenas guardar um dia, recomendo-te vivamente a guardares também uma tabela de distribuição.

Apenas com memória de um dia, o programa não te vai garantir que todos os elementos da família tenham uma rotatividade de tarefas. Vais sempre necessitar de uma tabela de distribuição.

HecKel
 
OK compreendi o programa sugere que devia fazer as tarefas hoje, recebe os dados de quem as fez hoje e por fim avisa de quem não poderá fazer essa tarefa amanha com base nos dados de hoje e de ontem :-D

Pois comeca ai a bater tecla...vai pondo duvias que a malta está pronta para ajudar ;)
 
Como AragTey "começa ai a bater tecla"... isso vai ser simples e não vais precisar de classes...

Só para resumir:

1º Dia-Executas o programa e inseres quem fez as tarefas hoje, faz com que o programa grave um ficheiro com essa informação tipo: sir_atmc - 1; Mão do sir_atmc - 2,3;

Na minha opinião o melhor era no programa fazeres algo que definisse:
1 = levantar a louça;
2 = Arrumar a cozinha;
3 = Tirar a louça da maquina e arrumar;

2º Dia - Executas o programa e ele diz:
sir_atmc = 3,1;
Mãe do sir_atmc = 2;

Após a realização das tarefas vais querer confirmar se tudo foi deito de acordo com isto!?

3º Dia - Executas o programa e ele diz:
sir_atmc = 1;
Mãe do sir_atmc = 3,2;

(claro que aqui em vez das letras aparecia a tarefa)

.......

O algoritmo para todos fazerem todas as tarefas podia ser:

1 - 23
31 - 2
3 - 12
23 - 1
Aqui trocava:
23 - 1
2 - 31
12 - 3
1 - 23
Aqui voltava a trocar....


Se eu em vez de simplificar não compliquei acho que é isto que queres....
 
Ajudem-me lá numa coisa:

Como é que eu abro um ficheiro .txt e vou buscar apenas a primeira ou ultima linha, e depois faço um input e ele grava esse input numa nova linha, preferencialmente no inicio?

sei que tenho de usar o ifstream e ofstream, mas a unica coisa que eu consigo fazer é ele ler o ficheiro todo e fazer o cout, e tambem escrver no ficheiro mas apagando tudo o que está lá.

Obrigado mais uma vez.
 
Ficheiros

Bem, amigo, isso depende um bocado do que quiseres fazer. Queres acrescentar uma nova linha no inicio do ficheiro ou substituir a existente?

Cump
 
O que eu quero é acrescentar uma nova linha, que vai ser igual ao input que eu fizer.
E depois quero fazer o output dessa mesma linha na proxima vez que utilizar o programa, ou quando o ciclo while voltar ao inicio.

Desta forma:no ficheiro incialmente está o nome sir_atmc

Depois ao abrir o programa ele vai buscar a última linha e faz o cout: sir_atmc

Depois ele pede para fazer um input, e eu coloco ATi;

Na proxima vez ele tem de fazer o output da ultima linha, ou seja, ATi.

input: sir_atmc

output_ sir_atmc

E assim sucessivamente. Não quero que ele substitua o ficheiro.
 
Back
Topo