Need debugging help ASAP

Nerevarine

Incarnate
C++ DEBUG
This one last error is making me insane
Here's the code
Code:
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<dos.h>
#include<stdio.h>
#include<fstream.h>
#include<process.h>
#include<stdlib.h>

class train {
private :
int trainno,nofafseat,nofasseat,noffsseat,nofacseat,nofssseat; char trainname[60],startingpoint[60],destination[60]; public :
train() {
trainno=0;
nofafseat=0;
nofasseat=0;
noffsseat=0;
nofacseat=0;
nofssseat=0;
strcpy(trainname,"/0");
strcpy(startingpoint,"/0");
strcpy(destination,"/0");
}
void display();
void input()
{
clrscr();
gotoxy(10,10);
cout<<"ENTER THE TRAIN NUMBER ";
gotoxy(57,10);
cin>>trainno;
gotoxy(10,12);
cout<<"ENTER THE NUMBER OF A/C FIRST CLASS SEATS";
gotoxy(57,12);
cin>>nofafseat; gotoxy(10,14);
cout<<"ENTER THE NUMBER OF A/C SECOND CLASS SEATS";
gotoxy(57,14);
cin>>nofasseat;
gotoxy(10,16);
cout<<"ENTER THE NUMBER OF FIRST CLASS SLEEPER SEATS";
gotoxy(57,16);
cin>>noffsseat; gotoxy(10,18);
cout<<"ENTER THE NUMBER OF A/C CHAIR CAR SEATS"; gotoxy(57,18);
cin>>nofacseat;
gotoxy(10,20);
cout<<"ENTER THE NUMBER OF SECOND CLASS SLEEPER SEATS";
gotoxy(57,20);
cin>>nofssseat;
gotoxy(10,22);
cout<<"ENTER THE TRAIN NAME";
gotoxy(57,22);
gets(trainname);
gotoxy(10,24);
cout<<"ENTER THE STARTING POINT ";
gotoxy(57,24);


gets(startingpoint); gotoxy(10,26);
cout<<"ENTER THE DESTINATION ";
gotoxy(57,26);
gets(destination);
}
		//To input the details void display();      //To display the details int returntr(); int returnaf();


int returntr() {
return trainno;
}
int returnaf()
{
return nofafseat;
}
int returnas() {
return nofasseat;
}
int returnfs()
{
return noffsseat;
}
int returnac()
{
return nofacseat;
}
int returnss()
{
return nofssseat;
}
}tr;



void train::display ()
{
clrscr();
gotoxy(10,10); cout<<"TRAIN NUMBER "; gotoxy(47,10);
cout<<trainno;
gotoxy(10,12); cout<<"TRAIN NAME "; gotoxy(47,12);
puts(trainname);
gotoxy(10,14);
cout<<"NO OF A/C FIRST CLASS SEATS ";
gotoxy(47,14);
cout<<nofafseat;
gotoxy(10,16);
cout<<"NO OF A/C SECOND CLASS SEATS ";
gotoxy(47,16);
cout<<nofasseat;
gotoxy(10,18);
cout<<"NO OF FIRST CLASS SLEEPER SEATS ";
gotoxy(47,18);
cout<<noffsseat;
gotoxy(10,20);
cout<<"NO OF A/C CHAIR CLASS SEATS ";
gotoxy(47,20);
cout<<nofacseat;
gotoxy(10,22);


cout<<"NO OF SECOND CLASS SLEEPER SEATS ";
gotoxy(47,22);
cout<<nofssseat;
gotoxy(10,24);
cout<<"STARTING POINT ";
gotoxy(47,24);
puts(startingpoint);
gotoxy(10,26); cout<<"DESTINATION "; gotoxy(47,26);
puts(destination);
gotoxy(10,28);
cout<<"PRESS ANY KEY TO CONTINUE ";
getch();
}

class tickets
{
int toaf,nofaf,toas,nofas,tofs,noffs,toac,nofac,toss,nofss,age;
int resno;
char status[40],name[40];
public:
tickets();
void reservation();	//For ticket reservation
void cancellation();        //For ticket cancellation int ret();
void display();	//To display reservation details
int ret()
{
return resno;
}
}tick;

tickets::tickets() {
resno=0;
toaf=0;
nofaf=0;
toas=0;
nofas=0;

tofs=0;
noffs=0;
toac=0;
nofac=0;
toss=0;
nofss=0;
age=0;
strcpy(status,"/0"); strcpy(name,"/0");
}



void tickets::display()
{
int f=0; clrscr();
ifstream fn("Ticket1.dat",ios::out); fn.seekg(0);
if(!fn)
{
cout<<"ERROR IN THE FILE ";
}
X:
gotoxy(10,10);
cout<<"ENTER THE RESERVATION NO "; gotoxy(10,12);
int n; cin>>n;
while(!fn.eof())
{
fn.read((char*)&tick,sizeof(tick));

gotoxy(10,10);
if(n==resno)
{
clrscr();
f=1;
gotoxy(10,10);
cout<<"NAME "; gotoxy(30,10) ; cout<<name; gotoxy(10,12);
cout<<"AGE "; gotoxy(30,12);
cout<<age;
gotoxy(10,14);
cout<<"PRESENT STATUS ";
gotoxy(30,14);
cout<<status; gotoxy(10,16);
cout<<"RESERVATION NUMBER ";
gotoxy(30,16);
cout<<resno;
gotoxy(10,18);
cout<<"PRESS ANY KEY TO CONTINUE ";
getch();
}
}
if(f==0) {
clrscr();
gotoxy(10,10);
cout<<"UNRECOGINIZED RESERVATION NO !!! WANNA \n RETRY ?(Y/N) "; char a;
gotoxy(10,12);
cin>>a;
if(a=='y'||a=='Y') {
clrscr();
goto X;
}
else {
gotoxy(10,12);
cout<<"PRESS ANY KEY TO CONTINUE"; getch();
}
}
fn.close();
}

void tickets::reservation()
{
clrscr();
gotoxy(10,10); cout<<"RESERVATION "; gotoxy(10,12);
cout<<"ENTER THE TRAIN NO: ";
int tno,f=0; cin>>tno; ofstream file;
ifstream fin("Train1.dat",ios::out); fin.seekg(0);
if(!fin)
{
clrscr();
gotoxy(10,10); cout<<"ERROR IN THE FILE ";
clrscr();
while(!fin.eof())
{
fin.read((char*)&tr,sizeof(tr)); int z;
z=tr.returntr(); if(tno==z)
{
f=1;
nofaf=tr.returnaf();
nofas=tr.returnas();
noffs=tr.returnfs();
nofac=tr.returnac();
nofss=tr.returnss();
}
}
if(f==1)
{
file.open("Ticket1.dat",ios::app);
S:
clrscr();
gotoxy(10,10); cout<<"NAME:";
gets(name);
gotoxy(10,12); cout<<"AGE:";
cin>>age; clrscr();
gotoxy(10,10);
cout<<"SELECT THE CLASS WHICH YOU WISH TO TRAVEL"; gotoxy(10,12);
cout<<"1.A/C FIRST CLASS " ; gotoxy(10,14);
cout<<"2.A/C SECOND CLASS " ;
gotoxy(10,16);
cout<<"3.FIRST CLASS SLEEPER " ;
gotoxy(10,18); cout<<"4.A/C CHAIR CAR " ;
gotoxy(10,20);
cout<<"5.SECOND CLASS SLEEPER ";
gotoxy(10,22);
cout<<"ENTER YOUR CHOICE "; gotoxy(30,22);
int c; cin>>c; switch(c) {
case 1:
toaf++;
resno=rand(); if((nofaf-toaf)>0)
{
strcpy(status,"confirmed");
gotoxy(10,24) ;
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26); cout<<"RESERVATION NO";
gotoxy(30,26); cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;





strcpy(status,"pending");
gotoxy(10,24);

cout<<"STATUS";
gotoxy(30,24); puts(status);
gotoxy(10,26); cout<<"RESERVATION NO";
gotoxy(30,26); cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}

case 2:
toas++;
resno=rand();
if((nofas-toas)>0)
{
strcpy(status,"confirmed");
gotoxy(10,24) ;
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26); cout<<"RESERVATION NO";
gotoxy(30,26); cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;





strcpy(status,"pending");
gotoxy(10,24); cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26);
cout<<"RESERVATION NO";
gotoxy(30,26);
cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}

case 3:
tofs++; resno=rand();
if((noffs-tofs)>0)
{
strcpy(status,"confirmed");
gotoxy(10,24) ;
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26); cout<<"RESERVATION NO";
gotoxy(30,26); cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}
else
{
strcpy(status,"pending");
gotoxy(10,24);
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26);
cout<<"RESERVATION NO";
gotoxy(30,26);
cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}

case 4:
toac++;
resno=rand();
if((nofac-toac)>0)
{
strcpy(status,"confirmed");
gotoxy(10,24) ;
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26);
cout<<"RESERVATION NO";
gotoxy(30,26);
cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}
else
{
strcpy(status,"pending");
gotoxy(10,24);
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26); cout<<"RESERVATION NO"; gotoxy(30,26);
cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}

case 5:
toss++; resno=rand(); if((nofss-toss)>0) {
strcpy(status,"confirmed");
gotoxy(10,24) ;
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26); cout<<"RESERVATION NO";
gotoxy(30,26); cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}
else
{
strcpy(status,"pending");
gotoxy(10,24);
cout<<"STATUS";
gotoxy(30,24);
puts(status);
gotoxy(10,26);

cout<<"RESERVATION NO";
gotoxy(30,26);
cout<<resno;
getch();
file.write((char*)&tick,sizeof(tick)); break;
}
}
gotoxy(10,28);
cout<<"DO YOU WISH TO CONTINUE BOOKING TICKETS (Y/N) ? "; gotoxy(57,30); char n;
cin>>n;
if(n=='y'||n=='Y') {
goto S;
}
}
}
if(f==0)
{
clrscr();
gotoxy(10,10);
cout<<"ERROR IN THE TRAIN NUMBER ENTERED !!!"; getch();
}
file.close();
}

void tickets::cancellation()
{
clrscr(); ifstream fin;
fin.open("Ticket1.dat",ios::out);

ofstream file;
file.open("Temp1.dat",ios::app);
fin.seekg(0);
gotoxy(10,10);
cout<<"ENTER THE RESERVATION NO ";
int r,f=0;
cin>>r;
if(!fin)
{
cout<<"ERROR IN THE FILE !!!";
}
while(!fin.eof())
{
fin.read((char*)&tick,sizeof(tick)); int z;
z=ret();

if(z!=r)
	{
	file.write((char*)&tick,sizeof(tick));
	}
if(z==r)
	{
	f=1;
	}
};
file.close(); fin.close();
remove("Ticket1.dat"); rename("Temp1.dat","Ticket1.dat");
if(f==0) {
gotoxy(10,12);
cout<<"NO SUCH RESERVATION IS MADE !!! PLEASE RETRY	";
getch();

}
else
{
gotoxy(10,12);
cout<<"RESERVATION CANCELLED"; getch();
}
}

void main() {
int ch,r=1000,j;
clrscr();
gotoxy(33,22);
cout<<"WELCOME";
Z:
clrscr(); gotoxy(25,8) ;
cout<<"RAILWAY TICKET RESERVATION"; gotoxy(25,9);
cout<<"==========================";
gotoxy(20,15) ; cout<<"1.TRAIN DETAILS";
gotoxy(20,17);
cout<<"2.UPDATE TRAIN DETAILS ";
gotoxy(20,19);
cout<<"3.RESERVING A TICKET ";
gotoxy(20,21);
cout<<"4.CANCELLING A TICKET";
gotoxy(20,23);
cout<<"5.DISPLAY THE PRESENT TICKET STATUS ";
gotoxy(20,25);
cout<<"6.EXIT";
gotoxy(20,27);
cout<<"ENTER YOUR CHOICE: ";


cin>>ch; char n;
switch(ch) {
case 1: {
ifstream fin("Train1.dat",ios::out);
fin.seekg(0);
clrscr();
if(!fin)
{
clrscr();
gotoxy(10,10);
cout<<"ERROR IN THE FILE !!!";
}
else {
clrscr();
while(!fin.eof()) {
fin.read((char*)&tr,sizeof(tr)); tr.display();
}
}
fin.close(); goto Z;
}
case 2:

clrscr();
gotoxy(20,10);
cout<<"ENTER THE PASSWORD " ;
cin>>j;
gotoxy(20,30);
cout<<"CHECKING PLEASE WAIT	";
getch();



{
Y:
ofstream fout("Train1.dat",ios::app); tr.input();
fout.write((char*)&tr,sizeof(tr));
fout.close();
gotoxy(10,30);
cout<<"DO YOU WISH TO CONTINUE UPDATING ?(Y/N)";
cin>>n;
if(n=='y'||n=='Y')
{
goto Y; goto Z;
}
else
goto Z;


case 3:
tick.reservation();  goto Z;  // <-------ERROR IS HERE

case 4:
tick.cancellation(); goto Z;

case 5:
tick.display(); goto Z;

case 6:
exit(0);
}
getch();
}
}


The error is
Case bypasses initialization of local variable in main

Need help ASAP
 
Done :-D

here's the correct code:

navigation();

cin>>ch; char n;

while(ch!=6)
{
switch(ch) {
case 1: {
ifstream fin("Train1.dat",ios::eek:ut);
fin.seekg(0);
system("cls");
if(!fin)
{
system("cls");
gotoxy(10,10);
cout<<"ERROR IN THE FILE !!!";
}
else {
system("cls");
while(!fin.eof()) {
fin.read((char*)&tr,sizeof(tr)); tr.display();
}
}
fin.close();
break;
}
case 2:
{
system("cls");
gotoxy(20,10);
cout<<"ENTER THE PASSWORD " ;
cin>>j;
gotoxy(20,30);
cout<<"CHECKING PLEASE WAIT ";
_getch();


do{
ofstream fout("Train1.dat",ios::app); tr.input();
fout.write((char*)&tr,sizeof(tr));
fout.close();
gotoxy(10,30);
cout<<"DO YOU WISH TO CONTINUE UPDATING ?(Y/N)";
cin>>n;
} while(n=='y'||n=='Y');
break;

}

case 3:
tick.reservation();
break;

case 4:
tick.cancellation();
break;

case 5:
tick.display();
break;
}

navigation();

cin>>ch;
}

and navigation() is here:

void navigation()
{
system("cls"); gotoxy(25,8) ;
cout<<"RAILWAY TICKET RESERVATION"; gotoxy(25,9);
cout<<"==========================";
gotoxy(20,15) ; cout<<"1.TRAIN DETAILS";
gotoxy(20,17);
cout<<"2.UPDATE TRAIN DETAILS ";
gotoxy(20,19);
cout<<"3.RESERVING A TICKET ";
gotoxy(20,21);
cout<<"4.CANCELLING A TICKET";
gotoxy(20,23);
cout<<"5.DISPLAY THE PRESENT TICKET STATUS ";
gotoxy(20,25);
cout<<"6.EXIT";
gotoxy(20,27);
cout<<"ENTER YOUR CHOICE: ";
}


Now the main thing, stop posting codes written in turbo c or I'll come at your place and BANG YOU. I mean, I spent 10 min replacing nor ISO/standardized functions like strcpy, strcmp... by their standardized forms. And why the hell are you using turbo c? :twisted::twisted::twisted::twisted::twisted::twisted::twisted:
 

ShankJ

Been There, Done That!!
Done :-D

here's the correct code:

navigation();

cin>>ch; char n;

while(ch!=6)
{
switch(ch) {
case 1: {
ifstream fin("Train1.dat",ios::eek:ut);
fin.seekg(0);
system("cls");
if(!fin)
{
system("cls");
gotoxy(10,10);
cout<<"ERROR IN THE FILE !!!";
}
else {
system("cls");
while(!fin.eof()) {
fin.read((char*)&tr,sizeof(tr)); tr.display();
}
}
fin.close();
break;
}
case 2:
{
system("cls");
gotoxy(20,10);
cout<<"ENTER THE PASSWORD " ;
cin>>j;
gotoxy(20,30);
cout<<"CHECKING PLEASE WAIT ";
_getch();


do{
ofstream fout("Train1.dat",ios::app); tr.input();
fout.write((char*)&tr,sizeof(tr));
fout.close();
gotoxy(10,30);
cout<<"DO YOU WISH TO CONTINUE UPDATING ?(Y/N)";
cin>>n;
} while(n=='y'||n=='Y');
break;

}

case 3:
tick.reservation();
break;

case 4:
tick.cancellation();
break;

case 5:
tick.display();
break;
}

navigation();

cin>>ch;
}

and navigation() is here:

void navigation()
{
system("cls"); gotoxy(25,8) ;
cout<<"RAILWAY TICKET RESERVATION"; gotoxy(25,9);
cout<<"==========================";
gotoxy(20,15) ; cout<<"1.TRAIN DETAILS";
gotoxy(20,17);
cout<<"2.UPDATE TRAIN DETAILS ";
gotoxy(20,19);
cout<<"3.RESERVING A TICKET ";
gotoxy(20,21);
cout<<"4.CANCELLING A TICKET";
gotoxy(20,23);
cout<<"5.DISPLAY THE PRESENT TICKET STATUS ";
gotoxy(20,25);
cout<<"6.EXIT";
gotoxy(20,27);
cout<<"ENTER YOUR CHOICE: ";
}


Now the main thing, stop posting codes written in turbo c or I'll come at your place and BANG YOU. I mean, I spent 10 min replacing nor ISO/standardized functions like strcpy, strcmp... by their standardized forms. And why the hell are you using turbo c? :twisted::twisted::twisted::twisted::twisted::twisted::twisted:

some colleges and schools have only turbo C..
 
some colleges and schools have only turbo C..

So...? Cant we just go to the director/registrar and teach him a lesson on turbo c vs the world? I mean, it's just like you know that a bomb has been planted on all you classmate's vehicles which is certain to blow at one point or the other, and you just dont care to help them and get the bomb removed, :twisted: and the best of all, you yourself go and plant a bomb on your own vehicle too by installing turbo c at your home pc!!

As far as I can imagine, these possibilities exists:-

A) You really like turbo c.
B) You are being forced to use turbo c. (you are free at your home)
C) You can not figure out how to set up another IDE, oh sorry, turbo c is not even an IDE. (use Google, or TDF)
D) You do not know about any other IDE. (use google)
E) You just want to run some codes and do not think about industry.
F) You just don't care. (turbo c is perfect for you.)


Other than that, you cannot even learn to use a debugger. I corrected that code only using the errors provided by the debugger.
 
OP
Nerevarine

Nerevarine

Incarnate
thanks man, but my school is very strict about using TC++.. I have suggested numerous times but they are just a bunch of a$$holes..
really appreciate your help dude.. :)

PS What IDE did u use btw ? Eclipse ?
 

tkin

Back to school!!
thanks man, but my school is very strict about using TC++.. I have suggested numerous times but they are just a bunch of a$$holes..
really appreciate your help dude.. :)

PS What IDE did u use btw ? Eclipse ?
I use Code::Blocks for C, C++ projects.
 
I use visual studio 2012.

I use visual studio 2012.

Btw, did you get the problem in your code? I mean, I just converted the set of goto code into a while code. And one more thing, avoid using goto jump statements, it will help you in the long run.
 
Top Bottom