Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z podzialem kodu na czesci

Ostatnio zmodyfikowano 2009-06-04 23:07
Autor Wiadomość
Haker123
Temat założony przez niniejszego użytkownika
Problem z podzialem kodu na czesci
» 2009-06-04 14:21:18
Witam.
Tym razem mam problem z podzialem kodu ;/ albo wyzuca mi ze string nie ma nazwy (jak jest w "Definicje.hpp")albo wypisuje strasznie duuuuzo bledow ale nie pokazuje w ktorej linijce sa te bledy ;/(jak string jest w "Main.cpp")
bede wdzieczny jak ktos mi pomoze bo ja nie wiem gdzie jest blad ;/

Oto moj kod

Main.cpp
C/C++
#include <iostream>
#include <conio.h>
#include <console.ddt>
#include <fstream>
#include "Definicje.hpp"

using namespace std;
using namespace ddt::console;

int main()
{
    int pozycja = 0;
    bool koniec = false;
    char wybor;
    while( koniec == false )
    {
       
        WyswietlKomunikat( pozycja );
       
        wybor = getch();
       
        switch( wybor )
        {
        case 224: //klawisze specjalne
            wybor = getch();
            switch( wybor )
            {
            case 72: //strzałka w górę
                pozycja -= 1;
                break;
            case 80: //strzałka w dół
                pozycja += 1;
                break;
            }
            break;
        case 13: //enter
            if( pozycja == 0 ) Quiz();
           
            if( pozycja == 1 ) Kalkulator();
           
            if( pozycja == 2 ) koniec = true;
           
            break;
        }
        if( pozycja > 2 ) pozycja = 0;
       
        if( pozycja < 0 ) pozycja = 2;
       
    }
    return( 0 );
}
Definicje.hpp
C/C++
#ifndef Definicje_hpp
#define Definicje_hpp

void Quiz( void );
void Kalkulator( void );
void WyswietlKomunikat( int zaznacz );
string tablica[ 3 ] = { "Quiz", "Kalkulator", "Wyjscie" };

#endif
Kalkulator.cpp
C/C++
#include "Definicje.hpp"
#include <console.ddt>
#include <iostream>
#include <conio.h>
using namespace ddt::console;
using namespace std;

void Kalkulator( void )
{
    clrscr();
    int a, b, dwa;
    gotoxy( 1, 4 );
    cout << "Podaj liczbe a: ";
    cin >> a;
   
    cout << endl;
   
    cout << "Podaj liczbe b: ";
    cin >> b;
   
    cout << endl;
   
    cout << "Co zrobic:" << endl;
    cout << "[1]: dodac" << endl;
    cout << "[2]: odjac" << endl;
    cout << "[3]: pomnozyc" << endl;
    cout << "[4]: podzielic" << endl;
    cout << "";
    cin >> dwa;
   
    cout << endl;
   
    switch( dwa )
    {
    case 1:
        cout << "Wynik dodawania to: " << a + b << endl << endl;
        break;
       
    case 2:
        cout << "Wynik odejmowania to: " << a - b << endl << endl;
        break;
       
    case 3:
        cout << "Wynik mnozenia to: " << a * b << endl << endl;
        break;
       
    case 4:
        cout << "Wynik dzielenia to: " << a / b << endl << endl;
        break;
       
    default:
        cout << "Zly wybor";
        break;
    }
    getch();
    clrscr();
}
Quiz.cpp
C/C++
#include "Definicje.hpp"
#include <console.ddt>
#include <iostream>
#include <conio.h>
#include <fstream>
using namespace ddt::console;
using namespace std;

void Quiz( void )
{
    clrscr();
   
    char pytanie1[ 110 ];
    char pytanie2[ 110 ];
    char pytanie3[ 110 ];
   
    fstream pytania;
    pytania.open( "Pytania.txt", ios::in );
   
    if( pytania.good() == true )
    {
        int odp1;
        int odp2;
        int odp3;
        int punkty = 0;
       
        pytania.read( pytanie1, 108 );
        pytanie1[ 108 ] = 0;
        cout << pytanie1;
       
        cout << "";
        cin >> odp1;
       
        if( odp1 == 4 )
        {
            punkty += 1;
        }
       
        pytania.read( pytanie2, 103 );
        pytanie2[ 103 ] = 0;
        cout << pytanie2;
       
        cout << "";
        cin >> odp2;
       
       
        if( odp2 == 2 )
        {
            punkty += 1;
        }
       
        pytania.read( pytanie3, 107 );
        cout << pytanie3;
        cout << "";
        cin >> odp3;
       
        cout << endl << endl;
       
        if( odp3 == 3 )
        {
            punkty += 1;
        }
       
        if( punkty == 0 )
        {
            cout << "Ani jednego punktu nie zdobyles??;/" << endl;
        }
       
        if( punkty == 1 )
        {
            cout << "1 punkt na 3 mozliwe, slabiutko" << endl;
        }
       
        if( punkty == 2 )
        {
            cout << "No nawet ladnie, 2 punkty" << endl;
        }
       
        if( punkty == 3 )
        {
            cout << "Ladnie zdobyles maxymalna ilosc punktow" << endl;
        }
        getch();
        pytania.close();
    } else cout << "Brak pliku z pytaniami";
   
    getch();
    clrscr();
}
Komunikat.cpp
C/C++
#include "Definicje.hpp"
#include <console.ddt>
#include <iostream>
#include <conio.h>

using namespace ddt::console;
using namespace std;

void WyswietlKomunikat( int zaznacz )
{
    for( int i = 0; i <= 2; i++ )
    {
        if( i == zaznacz )
        {
            textbackground( 12 );
            textcolor( 14 );
        } else
        {
            textbackground( 0 );
            textcolor( 7 );
        }
        gotoxy( 35, 10 + i * 4 );
        cout << tablica[ i ] << endl;
    }
}
P-7425
DejaVu
» 2009-06-04 16:09:33
C/C++
#include <console.ddt>
Jeśli używasz projektów - wciągnij do nich pliki: console.hpp i console.cpp. Ten Ci nie pójdzie.
P-7433
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-04 17:00:08
Konsolka mi dziala bo wzucilem je do folderu z innymi bibliotekami i dziala dobrze ;]

Wracajac do projektu to wystarczy ze zmienie ustawienie "include" i bedzie dobrze?? Myslalem ze nie ma to znaczenia jaka kolejnosc jest tych include. Spruboje i napisze czy dziala ;]

EDIT::

Pozmienialem kolejnosc "include" ale dalej wyskakuje mi blad z tymi "string"
a jak przenioslem string do funkcji z komunikatami to wyskakuje pelno bledow tego typu

multiple definition of `ddt::console::init()'
i sa chyba wszystkie znaczniki z biblioteki "console" ;/ i nie wiem co robic, nigdy czegos takiego nie mialem ;/
P-7434
DejaVu
» 2009-06-04 17:15:21
Ściągnij paczkę z console.ddt i przeczytaj plik informacyjny skoro twierdzisz, iż nie wiem co piszę :)
P-7435
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-04 22:26:08
P.Piotrze nie mowie ze nie wiesz co piszesz :P tylko ze zawsze mi to dzialalo bez wsadzania tych plikow do foleru z przyszlym programem. Pierwszy raz robie projekt i widac ze jeszcze nic nie wiem o programowaniu :P spruboje tego co piszesz ;]

Co do string to jak mam to zaincludowac?? Daje string do "Definicje.hpp" i jest zle?? Bede wdzieczny jak mi powiesz jak to zrobic bo szczeze mowiac jestem jeszcze zielony w programowaniu :P

EDIT::

Ehh wsadzilem pliki konsoli do folderu z projektem zmienilem zapis include na #include "console.ddt"
i dalej mam wiele komunikatow (przyklad byl wyzej :P) ehh nie wiem co robie zle ;/
P-7439
DejaVu
» 2009-06-05 03:02:58
Proszę... czytaj uważniej to co napisałem już 2 razy. Teraz jest trzeci - bardziej dobitnie:

informacja.txt:
Jeśli tworzysz projekt w którym masz więcej niż jeden plik, dodaj do projektu pliki console.cpp i console.hpp. Plik który dołączasz to: #include "console.hpp"
P-7445
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-07 13:35:37
Sorki ze tak dlugo tutaj nie pisalem ale mialem egzaminy w szkole :P

Co do problemu to przepraszam ale masz racje :( troszke nieuwaznie czytalem i tu byl moj blad ;/ teraz juz wiem o co chodzi, ehh mam nadzieje ze wiecej takich glupich bledow nie bede robic :P

Wielkie dzieki za pomoc :P
P-7489
manfred
» 2009-06-04 15:53:19
Zastanawiam się, jakim prawem chcesz, aby kompilator widział w Definicje.hpp jakiś symbol string, jak mu nikt go nie zdefiniował... Najprościej naprawić to kolejnością includów - na początku biblioteka standardowa, potem biblioteki osób trzecich, na końcu nagłówki projektu.
P-18938
« 1 » 2
  Strona 1 z 2 Następna strona