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

Program się nie uruchamia.

Ostatnio zmodyfikowano 2012-05-22 18:36
Autor Wiadomość
Aramil
Temat założony przez niniejszego użytkownika
Program się nie uruchamia.
» 2012-05-22 17:58:04
Wiem że tytuł trochę mało mówi ale nie wiedziałem jak to ująć. Ale przechodząc do sedna problemu. Otóż, mam program ten oto :

C/C++
// Baza dancyh
#include <iostream>
#include <string>
#include <conio.h>
#include <sstream>
#include <fstream>


using namespace std;

class uzytkownicy
{
public:
    string imie;
    string nazwisko;
    string pesel;
    string wiek;
    string plec;
    string CyfraKontrolna;
};

class funkcje
{
public:
    string rokUrodzenia( string pesel1 );
    string plec( string pesel1 );
    string liczbaKontrolna( string pesel1 );
    string zapis( char nazwa[ 30 ] );
    int nowyRekord();
   
};

string funkcje::rokUrodzenia( string pesel1 )
{
    string litera1, litera2, litera3;
    litera1 = pesel1[ 0 ];
    litera2 = pesel1[ 1 ];
    litera3 = pesel1[ 2 ];
    stringstream konwersja1( litera1 );
    stringstream konwersja2( litera2 );
    stringstream konwersja3( litera3 );
    int liczba1, liczba2, liczba3;
    konwersja1 >> liczba1;
    konwersja2 >> liczba2;
    konwersja3 >> liczba3;
    int tablica1[ 4 ], wiek, rok;
    if( liczba3 == 8 || liczba3 == 9 )
    {
        tablica1[ 0 ] = 1;
        tablica1[ 1 ] = 8;
    }
    else
    if( liczba3 == 0 || liczba3 == 1 )
    {
        tablica1[ 0 ] = 1;
        tablica1[ 1 ] = 9;
    }
    else
    if( liczba3 == 2 || liczba3 == 3 )
    {
        tablica1[ 0 ] = 2;
        tablica1[ 1 ] = 0;
    }
    tablica1[ 2 ] = liczba1;
    tablica1[ 3 ] = liczba2;
    rok = tablica1[ 0 ] * 1000 + tablica1[ 1 ] * 100 + tablica1[ 2 ] * 10 + tablica1[ 3 ];
    wiek = 2012 - rok;
    ostringstream wieklit1;
    wieklit1 << wiek;
    string wieklit = wieklit1.str();
    return wieklit;
}

string funkcje::plec( string pesel1 )
{
    string litera, plec;
    litera = pesel1[ 9 ];
    int cyfra;
    istringstream iss( litera );
    iss >> cyfra;
    if( cyfra % 2 == 0 )
    {
        plec = "Kobieta";
    }
    else
    {
        plec = "Mezczyzna";
    }
    return plec;
}

string funkcje::liczbaKontrolna( string pesel1 )
{
    int i, tablicakontr[ 11 ], wynik, liczba, zm;
    string litera1, litera2, litera3, litera4, litera5, litera6, litera7, litera8, litera9, litera10, litera11;
    litera1 = pesel1[ 0 ];
    litera2 = pesel1[ 1 ];
    litera3 = pesel1[ 2 ];
    litera4 = pesel1[ 3 ];
    litera5 = pesel1[ 4 ];
    litera6 = pesel1[ 5 ];
    litera7 = pesel1[ 6 ];
    litera8 = pesel1[ 7 ];
    litera9 = pesel1[ 8 ];
    litera10 = pesel1[ 9 ];
    litera11 = pesel1[ 10 ];
    istringstream iss1( litera1 );
    istringstream iss2( litera2 );
    istringstream iss3( litera3 );
    istringstream iss4( litera4 );
    istringstream iss5( litera5 );
    istringstream iss6( litera6 );
    istringstream iss7( litera7 );
    istringstream iss8( litera8 );
    istringstream iss9( litera9 );
    istringstream iss10( litera10 );
    istringstream iss11( litera11 );
    iss1 >> tablicakontr[ 1 ];
    iss2 >> tablicakontr[ 2 ];
    iss3 >> tablicakontr[ 3 ];
    iss4 >> tablicakontr[ 4 ];
    iss5 >> tablicakontr[ 5 ];
    iss6 >> tablicakontr[ 6 ];
    iss7 >> tablicakontr[ 7 ];
    iss8 >> tablicakontr[ 8 ];
    iss9 >> tablicakontr[ 9 ];
    iss10 >> tablicakontr[ 10 ];
    iss11 >> tablicakontr[ 11 ];
    wynik = 1 * tablicakontr[ 1 ] + 3 * tablicakontr[ 2 ] + 7 * tablicakontr[ 3 ] + 9 * tablicakontr[ 4 ] + 1 * tablicakontr[ 5 ] + 3 * tablicakontr[ 6 ] + 7 * tablicakontr[ 7 ] + 9 * tablicakontr[ 8 ] + 1 * tablicakontr[ 9 ] + 3 * tablicakontr[ 10 ];
    ostringstream licz;
    licz << wynik;
    string wyniklit = licz.str(), li, efekt;
    li = wyniklit[ wyniklit.length() - 1 ];
    istringstream zmiana( li );
    zmiana >> zm;
    zm = 10 - zm;
    if( zm == tablicakontr[ 11 ] )
    {
        efekt = "PESEL poprawny.";
        return efekt;
    }
    else
    {
        efekt = "PESEL niepoprawny.";
        return efekt;
    }
   
}


string funkcje::zapis( char nazwa[ 30 ] )
{
    ofstream( nazwa ).close();
    fstream plik;
   
   
}

int funkcje::nowyRekord()
{
    funkcje skrot;
    char nazwa[ 30 ];
    string imie1, nazwisko1, pesel1, peseltest;
    int liczba, i = 0, dl, a;
    cout << "Podaj ile rekordow chcesz wpisac:\n";
    cin >> liczba;
    uzytkownicy tablica[ liczba ];
    cout << "Wprowadz dane:";
    for( i = 0; liczba > i; i++ )
    {
        cout << "\nImie:\t";
        cin >> tablica[ i ].imie;
        cout << "\nNazwisko:\t";
        cin >> tablica[ i ].nazwisko;
        cout << "\nPESEL:\t";
        cin >> tablica[ i ].pesel;
        pesel1 = tablica[ i ].pesel;
        tablica[ i ].wiek = skrot.rokUrodzenia( pesel1 );
        cout << "Wiek:" << tablica[ i ].wiek;
        tablica[ i ].plec = skrot.plec( pesel1 );
        cout << "\nPlec:\t" << tablica[ i ].plec;
        tablica[ i ].CyfraKontrolna = skrot.liczbaKontrolna( pesel1 );
        cout << "\nStatus nr. ewidencyjnego:\t" << tablica[ i ].CyfraKontrolna;
        cout << "\nProgram rozpoczyna sekwencje zapisu do pliku txt.\nWAZNE! Do nazwy pliku dodaj .txt !\nProsze podac nazwe bazy danych:\t";
        cin >> nazwa;
        skrot.zapis( nazwa );
       
    }
    getch();
    return 0;
}

int main( int argc, char * argv[] )
{
    funkcje skrot;
    int wyb;
    cout << "Witaj w bazie danych PESEL-i.\n";
    cout << "Menu glowne:\n1.Stworz baze danych.\n2.Wczytaj baze danych.\n";
    cin >> wyb;
    switch( wyb )
    {
    case 1:
        cout << "INFO: Baza danych sklada sie z 3 rekordow wypelnianych przez uzytkownika. Po zakonczeniu prac z baza danych program poprosi o podanie nazwy bazy danych która jednoczesnie bedzie nazwa pliku .txt w ktorym w/w baza sie zapisze.\n";
        skrot.nowyRekord();
        break;
    }
    system( "PAUSE" );
    return 0;
}


Program jest na zaliczenie programowania obiektowego. Ale to szczegół. Problem jest taki że dev go nie kompiluje, nie pojawia się to fajne okienko, a później nie uruchamia programu. Wcześniej śmigał dobrze. Ale teraz musiałem wprowadzić zmiany w kodzie. Dokładniej mowiąć tutaj:
C/C++
class uzytkownicy
{
public:
    string imie;
    string nazwisko;
    string pesel;
    string wiek;
    string plec;
    string CyfraKontrolna;
};
Była wcześniej struktura. A obecnie jest klasa. Taki wymóg prowadzącego. Innym wymogiem jest posiadanie 2 klas w programie, więc z braku pomysłu podporządkowałem wszystkie funkcje w programie do klasy funkcje:
C/C++
class funkcje
{
public:
    string rokUrodzenia( string pesel1 );
    string plec( string pesel1 );
    string liczbaKontrolna( string pesel1 );
    string zapis( char nazwa[ 30 ] );
    int nowyRekord();
   
};
I teraz zaczął się ten cały cyrk. Nie mam pomysłu dlaczego tak się dzieje.
Jeszcze dodam jaki był zamysł programu, bo może ktoś będzie potrzebował. Tak więc program to swoista baza danych która po podaniu imienia nazwiska i pesela oblicza wiek, płeć oraz sprawdza czy dany pesel jest poprawny, czy zgadza się liczba kontrolna. Wszystko ma zapisywać do pliku txt. Zapisywanie jest jeszcze w produkcji że tak to ujmę. Wiem że program nie jest jakim cudem ale zrobiłem wszsytko co w mojej mocy. :D

Z góry dzięki za pomoc. ;)
P-57168
Aramil
Temat założony przez niniejszego użytkownika
» 2012-05-22 18:36:06
Temat do zamknięcia. Jak się okazało po dogłębnych oględzinach, dev nie uruchamiał po skompilowaniu pliku exe...
P-57175
« 1 »
  Strona 1 z 1