Architektura dokument/widok

0

Witam.
Jak w temacie mam napisać prosty programik np wyświetlajacy zegar w 2 widokach cyfrowym i analogowym stosując architekturę dokument/widok ale nigdzie nie mogę znaleźć przykładowego kodu lub wyjaśnienia jak się do tego w ogóle zabrać. Program ma działać pod solarisem więc MFC które pokazuje google chyba nie wchodzi w grę. Będę wdzięczny za wszelkie wskazówki

0

program w c++

0

Najprościej rzecz ujmując to masz klasę zawierającą dokument - czyli wszystkie dane - i najczęściej jedną instancję takiej klasy (chyba, że mówimy o MDI zamiast SDI) oraz klasy widoków - które odpowiadają za prezentację tego co znajduje się w obiekcie dokument.

0
#include <iostream>
#include <windows.h>

int main()
  {
   setlocale(LC_TIME,"");
   char buffer[128],cp[]="\245\206\251\210\344\242\230\276\253¹æê³ñ󜿟";
   while(true)
     {
      system("cls");
      time_t tm=time(0);
      strftime(buffer,128,"Data: \t\t%d %B %Y (%A)\nGodzina: \t%H:%M:%S",localtime(&tm));
      for(char *p=0,*i=buffer;*i;++i) if((p=strchr(cp+9,*i))!=0) *i=*(p-9);
      std::cout<<buffer;
      Sleep(1000);
     }
  } 
 

na razie napisałem tylko coś takiego

ale dalej nie mam pojęcia jak z tym pojechać klasa dokumentu ma zawierac tylko dane (czli to co zapisalem) ale jak powiązac ją z widokiem?

0

Klasa widoku może np. przechowywać wskaźnik do obiektu dokumentu.
Skoro to ma działać na solarisie to po co używasz nagłówka windows.h? Na razie nie napisałeś nic sensownego. To ma być program konsolowy?

0

Stworzyć system klas pozwalający na implementację programów przy użyciu modelu dokument - widok. Napisać program ilustrujący sposób wykorzystania klas (jeden dokument i 2 widoki)

taki jest pelny temat projektu

a co do samego zegarka bez windows.h wymyslilem tylko cos takiego jak zrobic zeby pokazywal czas rzeczywisty a nie pobieral tylko?

#include <iostream> 
#include <time.h> 
using namespace std; 
main() 
{ 
time_t czas; 
time(&czas); 
cout <<ctime(&czas); 
getchar(); 
}  
0

zrobilem zegarek konsolowy teraz rozumiem ze musze skorzystac np z allegro i stworzyc 1 z tych 2 widokow ale nadal nie rozumiem w jaki sposob polaczyc klase dokumentu tymi widokami

#include <time.h>
#include <conio.h>
#include <iostream>

using namespace std;

int main () {

  time_t czas;
  struct tm * data;
  char godzina [80];
for(;;){
        system("cls");
  time ( &czas );
  data = localtime ( &czas );

  strftime (godzina,80,"Teraz jest %H:%M:%S.",data);
  cout<<godzina;
  _sleep(1000);
}
  getch();
  return 0;
} 
 
0

Możesz np. trzymać wskaźnik do dokumentu w klasach widoku, albo jeżeli to ma być SDI to zrobić z klasy dokumentu singletona.

1 użytkowników online, w tym zalogowanych: 0, gości: 1