I'd really appreciate some help with his code. I'm making a pharmacy management program. When I run my code, I get the following error log:
1>------ Build started: Project: IT320 Pharmacy, Configuration: Debug Win32 ------ 1>Build started 09-Jun-12 22:38:50. 1>InitializeBuildStatus: 1> Touching "Debug\IT320 Pharmacy.unsuccessfulbuild". 1>ClCompile: 1> Main.cpp 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(12): error C2146: syntax error : missing ';' before identifier 'lek1' 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(35): error C2065: 'lek1' : undeclared identifier 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(35): error C2228: left of '.unosDatumaProizvodnje' must have class/struct/union 1> type is ''unknown-type'' 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(36): error C2065: 'lek1' : undeclared identifier 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(36): error C2228: left of '.starostLeka' must have class/struct/union 1> type is ''unknown-type'' 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(37): error C2065: 'lek1' : undeclared identifier 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(37): error C2228: left of '.prikazStarostiLeka' must have class/struct/union 1> type is ''unknown-type'' 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(43): error C2065: 'lek1' : undeclared identifier 1>c:\users\boris\documents\visual studio 2010\projects\it320 pharmacy\it320 pharmacy\program.h(43): error C2228: left of '.unosLeka' must have class/struct/union 1> type is ''unknown-type'' 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:00.43 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
And I've got the following source files with code.
Main.cpp
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
#include "Lek.h"
#include "Login.h"
#include "Program.h"
using namespace std;
Lek lek1;
Login login;
Program program;
/////////////////////////////////////////////////
// Glavna metoda (Program)
int main()
{
lek1.trenutnoVreme();
program.autentikacija();
cout << endl;
getch();
return 0;
}
Lek.h
#pragma once
#include <iostream>
#include <string>
#include <ctime>
#include <fstream>
#include "Program.h"
using namespace std;
// Klasa koja sadrzi informacije o lekovima
class Lek
{
// Osobine leka
public:
string naziv;
double cena;
string barkod;
double kolicina;
Program program;
int proizvedenGodina, proizvedenMesec, proizvedenDan;
int sadGodina, sadMesec, sadDan;
int starostGodina, starostMesec, starostDan;
// Provera da li je godina prestupna
bool daLiPrestupna(int godina)
{
if (godina % 400 == 0)
{
return true;
}
else
{
if (godina % 100 == 0)
{
return false;
}
else
{
if (godina % 4 == 0)
{
return true;
}
else
{
return false;
}
}
}
}
// Proracun trenutnog datuma
void trenutnoVreme()
{
time_t t = time(0);
struct tm * sada = localtime(& t);
sadGodina = (sada->tm_year + 1900);
sadMesec = (sada->tm_mon + 1);
sadDan = sada->tm_mday;
}
// Proracun starosti leka
void starostLeka()
{
// Definise broj dana u mesecu
// Februar sadrzi 28 ili 29 dana, zbog toga postoji -1 zbog kasnijeg proracuna
int mesecDan[12] = {31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// Proracun starosti u danima
// Ako je dan proizvodnje veci od danasnjeg dana, onda smestamo vrednost u
// inkrement koja ce biti dodata danasnjem danu. 'int mesecDan[]' pomaze u dobijanju dobrog broja
int inkrement = 0;
if (proizvedenDan > sadDan)
{
inkrement = mesecDan[proizvedenMesec - 1];
}
// Provera: da li je mesec februar? Ako jeste, koji je broj dana?
if (inkrement == -1)
{
if (daLiPrestupna(proizvedenGodina))
{
inkrement = 29;
}
else
{
inkrement = 28;
}
}
// Jednostavna aritmeticka operacija; sada inkrement sadrzi broj koji
// se dodati proizvedenMesec-u
if (inkrement != 0)
{
starostDan = (sadDan + inkrement) - proizvedenDan;
inkrement = 1;
}
else
{
starostDan = sadDan - proizvedenDan;
}
// Proracun starosti u mesecima
// Ako je danasnji mesec manji od rezultata (mesec proizvodnje + inkrement),
// onda se dodaje 12 danasnjem mesecu, i 1 godini proizvodnje; u suprotom
// je samo obicno oduzimanje
if ((proizvedenMesec + inkrement) > sadMesec)
{
starostMesec = (sadMesec + 12) - (proizvedenMesec + inkrement);
inkrement = 1;
}
else
{
starostMesec = (sadMesec) - (proizvedenMesec + inkrement);
inkrement = 0;
}
// Proracun starosti u godinama, sledi jednostavna aritmetika
starostGodina = sadGodina - (proizvedenGodina + inkrement);
}
/////////////////////////////////////////////////
// Unos datuma proizvodnje leka
void unosDatumaProizvodnje()
{
if (cin.fail())
{
cin.clear();
cin.ignore();
}
cout << "Unesite godinu proizvodnje leka (1900 - 2012):\n";
cin >> proizvedenGodina;
if (cin.fail())
{
cout << "Greska pri unosu godine! Pokusajte ponovo.";
getch();
unosDatumaProizvodnje();
}
if (proizvedenGodina < 1900 || proizvedenGodina > 2012)
{
cout << "Unesena godina nije u ispravnom intervalu. Pokusajte ponovo.\n";
getch();
unosDatumaProizvodnje();
}
cout << endl;
mesecProizvodnje:
cout << "Unesite mesec proizvodnje leka (1 - 12):\n";
cin >> proizvedenMesec;
if (cin.fail())
{
cout << "Greska pri unosu meseca! Pokusajte ponovo.";
getch();
unosDatumaProizvodnje();
}
if (proizvedenMesec < 1 || proizvedenMesec > 12)
{
cout << "Unesen mesec nije u ispravnom intervalu. Pokusajte ponovo.\n";
getch();
goto mesecProizvodnje;
}
cout << endl;
danProizvodnje:
cout << "Unesite dan proizvodnje leka (1 - 31):\n";
cin >> proizvedenDan;
if (cin.fail())
{
cout << "Greska pri unosu dana! Pokusajte ponovo.";
getch();
unosDatumaProizvodnje();
}
if (proizvedenDan < 1 || proizvedenDan > 31)
{
cout << "Unesen dan nije validan! Pokusajte ponovo!\n";
getch();
goto danProizvodnje;
}
else
{
if (daLiPrestupna(proizvedenGodina) && proizvedenMesec == 2)
{
if (proizvedenDan == 30 || proizvedenDan == 31)
{
cout << "Unesen dan nije validan! Pokusajte ponovo!\n";
getch();
goto danProizvodnje;
}
}
else if (!daLiPrestupna(proizvedenGodina) && proizvedenMesec == 2)
{
if (proizvedenDan == 29 || proizvedenDan == 30 || proizvedenDan == 31)
{
cout << "Unesen dan nije validan! Pokusajte ponovo!\n";
getch();
goto danProizvodnje;
}
}
if (proizvedenMesec == 4 || proizvedenMesec == 6 || proizvedenMesec == 9 || proizvedenMesec == 11)
{
if (proizvedenDan == 31)
{
cout << "Unesen dan nije validan! Pokusajte ponovo!\n";
getch();
goto danProizvodnje;
}
}
}
cout << endl;
}
void prikazStarostiLeka()
{
cout << "Lek je proizveden pre:\n";
cout << starostGodina << " godina, " << starostMesec << " meseci i " << starostDan << " dana.\n";
}
// Unos novog leka
void unosLeka()
{
ofstream pisiFajl;
pisiFajl.open("lekovi.txt");
cout << endl;
if (pisiFajl.is_open()) // Da li je fajl otvoren?
{
// Upis leka
cout << "Unesite sifru leka (barkod - 13 cifara):\n";
cin >> barkod;
cout << endl;
if (barkod.length() == 13)
{
cout << "Barkod uspesno unet!\n\n";
getch();
}
else
{
cout << "Barkod neuspesno unet. Pokusajte ponovo!\n\n";
getch();
system("cls");
unosLeka();
}
cout << "Unesite naziv leka:\n";
cin >> naziv;
cout << endl;
cout << "Unesite cenu leka:\n";
cin >> cena;
cout << endl;
while (cena < 0)
{
cout << "Cena ne moze biti negativna! Unesite ponovo.\n";
cin >> cena;
cout << endl;
getch();
}
cout << endl;
cout << "Unesite kolicinu leka (br. pakovanja):\n(decimalna vrednost bice zaokruzena na donju celu vrednost)";
cin >> kolicina;
cout << endl;
kolicina = floor(kolicina);
while (kolicina < 0)
{
cout << "Kolicina ne moze biti negativna! Unesite ponovo.\n";
cin >> cena;
cout << endl;
getch();
}
cout << endl;
unosDatumaProizvodnje();
pisiFajl << barkod << " " << naziv << " " << cena << " " << kolicina;
}
else
{
cout << "Fajl nije otvoren! Ponovno pokusavanje...";
getch();
unosLeka();
}
cout << "Zatvaranje fajla...";
getch();
pisiFajl.close();
program.prikazMenija();
}
Lek(void)
{
}
virtual ~Lek(void)
{
}
};
Program.h
#pragma once
#include <iostream>
#include <conio.h>
#include "Lek.h"
#include "Login.h"
using namespace std;
class Program
{
public:
char opcija;
Lek lek1;
Login login1;
// Glavni meni aplikacije
void prikazMenija()
{
cout << endl;
cout << "Dobrodosli. Odaberite opciju:\n"
<< "1. Provera starosti leka\n"
<< "2. Unos novog leka\n"
<< "3. Brisanje leka\n"
<< "4. Pregled lekova\n"
<< "5. Izlaz"
<< endl << endl;
cin >> opcija;
cout << endl;
switch (opcija)
{
case '1':
system("cls");
lek1.unosDatumaProizvodnje();
lek1.starostLeka();
lek1.prikazStarostiLeka();
prikazMenija();
break;
case '2':
system("cls");
lek1.unosLeka();
getch();
prikazMenija();
break;
case '3':
// lek1.brisanjeLeka();
cout << "Nije implementirano";
getch();
system("cls");
prikazMenija();
break;
case '4':
// lek1.pregledLekova();
cout << "Nije implementirano";
getch();
system("cls");
prikazMenija();
break;
case '5':
exit(1);
break;
default:
cout << endl;
system("cls");
cout << "Uneli ste pogresnu opciju. Pokusajte ponovo!\n";
cout << endl;
prikazMenija();
break;
}
}
/////////////////////////////////////////////////
// Autentikacija korisnika
void autentikacija()
{
ifstream Passfile("password.txt", ios::in);
Passfile >> login1.inpass;
ifstream Userfile("username.txt", ios::in);
Userfile >> login1.inuser;
system("cls");
cout << endl;
cout << "Username: ";
cin >> login1.username;
cout << endl;
cout << "Password: ";
cin >> login1.password;
Userfile.close();
Passfile.close();
if (login1.username == login1.inuser && login1.password == login1.inpass)
{
// Autentikacija je uspela
system("cls");
prikazMenija();
}
else
{
// Autentikacija nije uspela
cout << endl;
cout << "Username i/ili sifra nije dobro uneto! Pokusajte ponovo!\n\n";
getch();
autentikacija();
}
}
Program(void)
{
}
~Program(void)
{
}
};
I think I understand the log a bit, that being that the compiler tells me that it cannot find a ; sign at a specified line. But I don't seem to see where the problem is. Even worse, I think this code worked perfectly before.
If you want to test the app out, you also need a username.txt and password.txt files where your source files are, with 1 username and 1 password in those files, respectively.
Does anyone seem to know where the problem could be?
Thanks in advance.

New Topic/Question
Reply




MultiQuote





|