1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Gestão de trabalhos domesticos em C++

Discussão em 'Programação' iniciada por OubeLa, 29 de Agosto de 2007. (Respostas: 12; Visualizações: 1430)

  1. OubeLa

    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:
     
  2. metRo_

    metRo_ Power Member

    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?
     
  3. hYpe

    hYpe [email protected] Member

    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
     
  4. OubeLa

    OubeLa Power Member

    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: 29 de Agosto de 2007
  5. HecKel

    HecKel The WORM

    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
     
  6. AragTey

    AragTey Power Member

    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?
     
  7. OubeLa

    OubeLa Power Member

    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.
     
  8. HecKel

    HecKel The WORM

    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
     
  9. AragTey

    AragTey Power Member

    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 ;)
     
  10. metRo_

    metRo_ Power Member

    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....
     
  11. OubeLa

    OubeLa Power Member

    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.
     
  12. mj2p

    mj2p I'm Cool Cuz I Fold

    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
     
  13. OubeLa

    OubeLa Power Member

    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.
     

Partilhar esta Página