Gå til innhold

Nybegynner prosjekt i c++, Filmdatabase?


Anbefalte innlegg

Hei, jeg har lyst til å prøve meg litt på C++. For ett par år siden prøvde jeg meg på "Hello world" men så ble det ikke noe mere ut av det lærte meg heller litt PHP :-P

 

Men nå føler jeg at jeg trenger det :-)

 

Jeg har lyst til å lage en filmdatabase hvor jeg kan putte alle filmene mine med imdb link og slikt, lagrinstatus osv...

 

Blir dette veldig vanskelig? Burde jeg velge ett annet språk? Eller først og fremst hva trenger jeg?

 

F.eks. MySQL som jeg bruker i PHP? Trenger jo noe slikt?

 

 

EDIT: Tenkt litt på Idén, vil ha det slik at jeg liksom skriver in imdb koden også henter programmet automatisk ned navn og årstall men jeg kan endre på det om det f.eks. er en spansk film så vil jeg ha Engelsk filmtittel og ikke SPansk :-P

Endret av Rudde93
Lenke til kommentar
Videoannonse
Annonse

for en filmdatabase ville jeg personlig brukt php/python med mysql som backend og vist sidene som html..

 

Men om du vil lage et frontend i c++ er dette fullt mulig, du kan gjøre de samme kallene mot database som du kan i php. Google mysql c++ bør gi noen treff og eksempler på hvordan dette gjøres.

 

Evt kan du bruke QT bibloteket. QT har elementer for GUI og database og er rimelig lett å sette opp, og en annen fordel er at de har masse eksempelkode og et bra community.

Lenke til kommentar

Her er en interface du kan bruke. Det er dessverre meget tungvinnt å lage vinduer til windows i c++.

 

 

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




long CALLBACK WndProc (HWND hwnd, unsigned int message, WPARAM wParam, LPARAM lParam)
{
  if (message == WM_DESTROY) PostQuitMessage (0);
  return DefWindowProc (hwnd, message, wParam, lParam);
}





int WINAPI WinMain(HINSTANCE ht, HINSTANCE pr, LPSTR str, int sz) {
   int w,h;
   w=800; h=600;

   MSG messages;
   HWND hwnd;
   WNDCLASSEX wc;
   HDC hDC;
   HGLRC hRC;  
   wc.hInstance = ht;
   wc.lpszClassName = "Wnd";
   wc.lpfnWndProc = WndProc;
   wc.style = CS_DBLCLKS;                
   wc.cbSize = sizeof (WNDCLASSEX);
   wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
   wc.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
   wc.hCursor = LoadCursor (NULL, IDC_ARROW);
   wc.lpszMenuName = NULL;                
   wc.cbClsExtra = 0;                 
   wc.cbWndExtra = 0;                     
   wc.hbrBackground = (HBRUSH) 2;

   RegisterClassEx (&wc);

   hwnd = CreateWindowEx (
          0,                
          "Wnd",         
          "MITT PROGRAM",       
          WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,
     100, 100, w, h,
     NULL, NULL, ht, NULL);

HWND b1 = CreateWindow( "button", "Legg til film", 
                        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
                        10, 500, 150, 30, hwnd, 
                        (HMENU) 1, 
                        ht, NULL );

HWND b2 = CreateWindow( "button", "Slett film", 
                        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
                        170, 500, 150, 30, hwnd, 
                        (HMENU) 2, 
                        ht, NULL );

HWND l1 = CreateWindow( "listbox",NULL, 
                        LBS_MULTIPLESEL | WS_CHILD | WS_VISIBLE |LBS_SORT | WS_VSCROLL | WS_TABSTOP, 
                        10, 10, w-25, 480, hwnd, 
                        (HMENU) 4, 
                        ht, NULL );

   ShowWindow (hwnd,sz);
   SendMessage (l1, LB_ADDSTRING, 0, 
                                (LPARAM)(LPCTSTR) "Title: Batman                              Year: 1999                              Genre: Action");
   SendMessage (l1, LB_ADDSTRING, 0, 
                                (LPARAM)(LPCTSTR) "Title: Drittfilm                              Year: 2009                              Genre: Action");
   while (GetMessage (&messages, NULL, 0, 0))
   {
       TranslateMessage(&messages);
       DispatchMessage(&messages);
   }

return messages.wParam;
}

Lenke til kommentar

Jeg ville dog valgt et annet språk enn C++ :p men det er kanskje bare meg :)

 

Som oln sier, må du bruke et GUI API, det er håpløst å skrive et stort GUI program kun med Windows SDK.

 

Det finnes mange alternativer, men QT og GTK er vel de mest brukelige. For et rent windows program kan du bruke MFC (Microsoft Foundation Classes), men jeg har ihvertfall hatt dårlig erfaring med det.

 

Men hvordan skal programmet ligge i forhold til databaseserveren? lokalt på samme maskin, felles for et nettverk, eller er databasen på internett?

Endret av GeirGrusom
Lenke til kommentar

Men i svarte hælvete da, han sier jo at han vil lage det i C++. Hvis du skal gjøre dette i C++ bør du være stødig innen GUI-programmering og sockets, og du bør vel strengt tatt også skaffe deg bekjentskap med et database-bibliotek. Hvis ikke du kan noe C++ fra før, så kommer du ikke til å klare dette. Begynn med noe enklere. :)

Lenke til kommentar
Men i svarte hælvete da, han sier jo at han vil lage det i C++.

Les dette.

Blir dette veldig vanskelig? Burde jeg velge ett annet språk? Eller først og fremst hva trenger jeg?

Da må det gå ann og si at dette blir enklere i et språk som python.

Men uansett språk så ligger dette i vanskelighetsgrad et stykke over vanlige nybegynner prosjekter.

Lenke til kommentar

Jeg har laget en enkel filmdatabase tidligere, riktignok ikke i c++, men php /m mysql.

 

Jeg tror det vil være lettere og kanskje større sjanse for at du kommer til å få det til med php og mysql.

 

Det er lett å skjønne hvordan kall til databaser fungerer, samt hvordan du skal bruke de. Jeg anbefaler php/mysql.

 

Du lager et superenkelt design med html/css og hiver inn php-kode for alle kall og ymse sidervarianeter. Først er det naturlig å lage et databasedesign som passer til en filmdatabase.

 

Last ned WAMP, som er en komplett ferdig oppsatt lokal web-server med php og mysql. Kjempeenkelt å komme igang med.

 

 

MEN, dersom du virkelig inn for c++ med databasekoding og GUI vil du lære mye mer. Dog, det kommer til å ta lang tid ;)

 

Lykke til!

Endret av bjaanes
Lenke til kommentar

Sorry! Lese vist litt for fort igjennom tråden.

 

Da vil jeg anbefale deg å kanskje prøve å gjøre dette i C#? Det er temmelig enkelt i forhold til C++ med tanke på databaser og koding, hvertfall det jeg har prøvd meg på av databasekoding i begge språk.

 

Nå skal jeg naturligvis ikke kverulere for mye med trådstarter her, men personlig så syntes jeg en slik applikasjon har MER å gjøre i en browser enn i en standalone applikasjon på desktopen din (langt lettere tilgang for langt flere pcer)

Men i læringens navn, gjør det, for all del =)

 

C++ med QT for GUI og SQL eller MySQL (eller noe lignende)

eller

C# med SQL.

 

Mine tips hvertfall =)

Lenke til kommentar

C++ .NET er også et alternativ. Du får den tungvindte C++ syntaxen sammen med mye lettere WinForms.

 

Det er mye tyngre å starte med C++ enn C#, og i dag er det ingen gode grunner til å bruke C++ med mindre du skal kommunisere med hardware og allerede besitter kunnskapen. Begyn med C# og så tar du neste skritt å konvertere prosjektet til C++.

 

Fordeler:

* Du lærer syntax lettere i C# og du finner mye mer online hjelp

* C++ og C# syntax er lik (jaja, eple og pære - begge er frukter)

* C# gir deg rask fremgang som gir deg power-boost

 

Usj, alt dette er basert på at du er i Windows verden da...

Lenke til kommentar
Her er en interface du kan bruke. Det er dessverre meget tungvinnt å lage vinduer til windows i c++.

 

Røyka eller? :p

 

Jeg ville dog valgt et annet språk enn C++ :p men det er kanskje bare meg :)

 

Som oln sier, må du bruke et GUI API, det er håpløst å skrive et stort GUI program kun med Windows SDK.

 

Er ikke håpløst om man bare hiver seg rundt å skriver en win32 gui wrapper.

http://bildr.no/view/458238

En test av gui wrappern jeg skriver atm.

 

Ska lage 3 forskjellige options for window styles på den.

1 - Standard win32 GUI

2 - Ferdig laga buttons / default skins (som jeg har mekka)

3 - Inkludere dine egne skins :p

Endret av zorgion
Lenke til kommentar

Jeg tror ikke han har røyka. Alle vet at GUI i C++ (og særlig med Win32 GUIet) er føkka. Jeg anbefaler å bruke GTKmm og Glade. Her kan du bruke Glade til å generere GUIet som en XML-fil, og denne lastes under runtime. Da slipper du så mye støgg og jævlig GUI kode og verden blir et bedre sted.

Lenke til kommentar
Jeg tror ikke han har røyka. Alle vet at GUI i C++ (og særlig med Win32 GUIet) er føkka. Jeg anbefaler å bruke GTKmm og Glade. Her kan du bruke Glade til å generere GUIet som en XML-fil, og denne lastes under runtime. Da slipper du så mye støgg og jævlig GUI kode og verden blir et bedre sted.

 

Jeg er enighet inkarnert. ^^

Lenke til kommentar
Jeg tror ikke han har røyka. Alle vet at GUI i C++ (og særlig med Win32 GUIet) er føkka. Jeg anbefaler å bruke GTKmm og Glade. Her kan du bruke Glade til å generere GUIet som en XML-fil, og denne lastes under runtime. Da slipper du så mye støgg og jævlig GUI kode og verden blir et bedre sted.

 

Vell GUI kode er ikke akkurat stygg om du bare har vett til å dele den opp i classes og structs. For eks. alt som har med system tray og gjøre tray.h osv.

 

Mitt syn på Win32 GUI er at det bare trengs en ekstra hjelpende hånd :)

Som for eks. det jeg posta isted trenger 4 commands nuh + å starte en handler for diverse system knapper som for eks. 'x' (exit) osv.

 

Jeg kan (i runtime) forandre diverse ting (i debug mode) via en menu som jeg holder på med :p

Endret av zorgion
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...