Connecting Tech Pros Worldwide Help | Site Map

Urgent Help required

 
LinkBack Thread Tools Search this Thread
  #1  
Old October 21st, 2006, 09:05 AM
Jinsu Jais
Guest
 
Posts: n/a
Default Urgent Help required

Dear guys,

I am a student who had started learning Turbo c++ yet one year. I know
only the basics of the c++. But now its my turn to make a project in
our school. So I decided to start a project which doesn't use any
graphical support in c++. So I prefer a Blood Bank management system.
But I am not sure that is my project is perfect. So my friends, PLEASE
HELP ME TO MAKE A PERFECT ERROR-FREE PROJECT. Also advice me some other
projects with the codes so that I can implement it. I am adding my code
here.
NEED AN URGENT REPLY TO : jinsujais@yahoo.com or jinsujais@gmail.com

Jinsu M Jais



// A BLOOD BANK MANAGEMENT SYSTEM

#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
class DONOR
{
char name[20];
char dob[9];
char address[30];
int phone_no;
char blood_gr[4];
public:
DONOR()
{
phone_no=0;
}
void accept();
void display();
void save();
char *return_group();
};
char *DONOR::return_group()
{
return blood_gr;
}
void DONOR::accept()
{
clrscr();
cout<<"\t\t\tDONOR DETAILS";
cout<<"\nEnter NAME: ";
gets(name);
cout<<"\nEnter Address : ";
gets(address);
cout<<"\nEnter Date of Birth : ";
gets(dob);
cout<<"\nEnter Phone Number : ";
cin>>phone_no;
cout<<"\nEnter Blood Group : ";
gets(blood_gr);
}
void DONOR::display()
{
clrscr();
cout<<"\t\t\tDONOR DETAILS";
cout<<"\nNAME : ";
puts(name);
cout<<"\nAddress : ";
puts(address);
cout<<"\nDate Of Birth : ";
puts(dob);
cout<<"\nPhone Number : "<<phone_no;
cout<<"\nBlood Group : ";
puts(blood_gr);
getch();
}
void DONOR::save()
{
fstream dfile;
DONOR DD;
dfile.open("DONOR.dat",ios::app);
dfile.write((char *)&DD,sizeof(DD));
dfile.close();
}
class node
{
DONOR record;
public:
node *next;
void append();
void display();
void save();
void query(char b_group[40]);
node()
{
next=NULL;
}
};
void node::append()
{
record.accept();
next=NULL;
}
void node::display()
{
record.display();
}
void node::save()
{
record.save();
}
void node::query(char b_group[40])
{
if(strcmp(record.return_group(),b_group)==0)
display();
}
class list
{
node *first,*last;
public:
list()
{
first=NULL;
last=NULL;
}
void append();
void save(node *ptr);
void display();
void query();
void open();
};
void list::save(node *ptr)
{
ptr->save();
}
void list::append()
{
node *ptr;
ptr=new node;
ptr->append();
if(first==NULL)
first=last=ptr;
else
{
last->next=ptr;
last=ptr;
}
save(ptr);
}
void list::display()
{
node *ptr;
ptr=first;
while(ptr!=NULL)
{
ptr->display();
ptr=ptr->next;
}
}
void list::query()
{
clrscr();
char b_group[4];
node *ptr;
cout<<"\t\tDONOR DETAILS";
cout<<"\nBlood Group : ";
cin>>b_group;
for(ptr=first;ptr;ptr=ptr->next)
ptr->query(b_group);
}
void main()
{
int ch;
list LIST;
do
{
clrscr();
cout<<"\t\t\tDONOR DETAILS";
cout<<"\n\t1: Append Records";
cout<<"\n\t2: Display Records";
cout<<"\n\t3: Query on blood group";
cout<<"\n\t4: End the program";
cout<<"\n\nEnter your choice : ";
cin>>ch;
switch(ch)
{
case 1:
LIST.append();
break;
case 2:
LIST.display();
break;
case 3:
LIST.query();
break;
case 4:
cout<<"\nEnd of the program";
getch();
break;
}
}while(ch!=4);
}


  #2  
Old October 21st, 2006, 09:25 AM
StreamKid
Guest
 
Posts: n/a
Default Re: Urgent Help required

so...

1) at the beggining, in class DONOR, i guess you want the first part
(name, dob, address, etc) private, but you haven't written the
private: keyword anywhere, and they aren't always by default private
(depends on the compiler). you can change it to:
class DONOR {
private:
char name[20];
// ...
public:
// what you 've already declared as public

2) although in c its legal to have void main, in c++ int must return
int.

there may be more bugs, but i'm not so expirienced either, so i didnt'
find them..

  #3  
Old October 21st, 2006, 12:05 PM
Daniel T.
Guest
 
Posts: n/a
Default Re: Urgent Help required

In article <1161422552.910326.259260@m73g2000cwd.googlegroups .com>,
"Jinsu Jais" <jinsujais@gmail.comwrote:
Quote:
Dear guys,
>
I am a student who had started learning Turbo c++ yet one year. I know
only the basics of the c++. But now its my turn to make a project in
our school. So I decided to start a project which doesn't use any
graphical support in c++. So I prefer a Blood Bank management system.
But I am not sure that is my project is perfect. So my friends, PLEASE
HELP ME TO MAKE A PERFECT ERROR-FREE PROJECT. Also advice me some other
projects with the codes so that I can implement it. I am adding my code
here.
NEED AN URGENT REPLY TO : jinsujais@yahoo.com or jinsujais@gmail.com
>
Jinsu M Jais
>
>
>
// A BLOOD BANK MANAGEMENT SYSTEM
>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
The above are the wrong headers for standard C++. They should be:

#include <fstream>
#include <string>
#include <cstdlib>
#include <cstdio>
Quote:
#include<conio.h>
The above header doesn't exist in C++
Quote:
class DONOR
{
char name[20];
char dob[9];
char address[30];
int phone_no;
char blood_gr[4];
Learn about std::string and use it above.
Quote:
public:
DONOR()
{
phone_no=0;
}
Use an initialization list and initialize *all* your variables, not just
phone_no.

http://www.parashift.com/c++-faq-lit....html#faq-10.6
Quote:
void accept();
void display();
void save();
char *return_group();
Probably should return const char*.

Make sure your functions are const correct in general.

http://www.parashift.com/c++-faq-lit...rrectness.html
Quote:
};
char *DONOR::return_group()
{
return blood_gr;
}
Make the above "const char*"
Quote:
void DONOR::accept()
{
clrscr();
"clrscr" is not standard C++
Quote:
cout<<"\t\t\tDONOR DETAILS";
cout<<"\nEnter NAME: ";
gets(name);
cout<<"\nEnter Address : ";
gets(address);
cout<<"\nEnter Date of Birth : ";
gets(dob);
cout<<"\nEnter Phone Number : ";
cin>>phone_no;
cout<<"\nEnter Blood Group : ";
gets(blood_gr);
}
Use "cin" instead of "gets" in the above.
Quote:
void DONOR::display()
{
clrscr();
cout<<"\t\t\tDONOR DETAILS";
cout<<"\nNAME : ";
puts(name);
cout<<"\nAddress : ";
puts(address);
cout<<"\nDate Of Birth : ";
puts(dob);
cout<<"\nPhone Number : "<<phone_no;
cout<<"\nBlood Group : ";
puts(blood_gr);
getch();
There is no "getch" in standard C++
Quote:
}
Use "cout" instead of "puts" in the above.
Quote:
void DONOR::save()
{
fstream dfile;
DONOR DD;
dfile.open("DONOR.dat",ios::app);
dfile.write((char *)&DD,sizeof(DD));
dfile.close();
Your trying to save a blank DONOR object. Write 'this' instead of '&DD'.
Better would be to use the put-to operator (<<) for each parameter, like
you do with cout.

http://www.parashift.com/c++-faq-lit...alization.html
Quote:
}
class node
{
DONOR record;
public:
node *next;
void append();
void display();
void save();
void query(char b_group[40]);
node()
{
next=NULL;
}
};
void node::append()
{
record.accept();
next=NULL;
}
void node::display()
{
record.display();
}
void node::save()
{
record.save();
}
void node::query(char b_group[40])
{
if(strcmp(record.return_group(),b_group)==0)
display();
}
class list
{
node *first,*last;
public:
list()
{
first=NULL;
last=NULL;
}
void append();
void save(node *ptr);
void display();
void query();
void open();
};
void list::save(node *ptr)
{
ptr->save();
}
void list::append()
{
node *ptr;
ptr=new node;
ptr->append();
if(first==NULL)
first=last=ptr;
else
{
last->next=ptr;
last=ptr;
}
save(ptr);
}
void list::display()
{
node *ptr;
ptr=first;
while(ptr!=NULL)
{
ptr->display();
ptr=ptr->next;
}
}
void list::query()
{
clrscr();
char b_group[4];
node *ptr;
cout<<"\t\tDONOR DETAILS";
cout<<"\nBlood Group : ";
cin>>b_group;
for(ptr=first;ptr;ptr=ptr->next)
ptr->query(b_group);
}
Dump the node and list classes and use std::list instead.
Quote:
void main()
{
int ch;
list LIST;
do
{
clrscr();
No such function in standard C++
Quote:
cout<<"\t\t\tDONOR DETAILS";
cout<<"\n\t1: Append Records";
cout<<"\n\t2: Display Records";
cout<<"\n\t3: Query on blood group";
cout<<"\n\t4: End the program";
cout<<"\n\nEnter your choice : ";
cin>>ch;
switch(ch)
{
case 1:
LIST.append();
break;
case 2:
LIST.display();
break;
case 3:
LIST.query();
break;
case 4:
cout<<"\nEnd of the program";
getch();
break;
}
}while(ch!=4);
}
--
There are two things that simply cannot be doubted, logic and perception.
Doubt those, and you no longer*have anyone to discuss your doubts with,
nor any ability to discuss them.
  #4  
Old October 21st, 2006, 02:25 PM
David Harmon
Guest
 
Posts: n/a
Default Re: Urgent Help required

On 21 Oct 2006 02:39:24 -0700 in comp.lang.c++, "StreamKid"
<copyrighter@gmail.comwrote,
Quote:
>1) at the beggining, in class DONOR, i guess you want the first part
>(name, dob, address, etc) private, but you haven't written the
>private: keyword anywhere, and they aren't always by default private
>(depends on the compiler). you can change it to:
>class DONOR {
>private:
According to the standard, they are private. It would take a pretty
wacky compiler to get that wrong.

See "[7.8] What's the difference between the keywords struct and
class?" in Marshall Cline's C++ FAQ. You can read the FAQ at:
http://www.parashift.com/c++-faq-lite/

 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,989 network members.