pen&pen
19-11-2008, 08:38 PM
Lỗi sai mình có chú thích ở dưới. Bạn nào có thể giải thích và sữa lỗi đó giùm mình được không. Mình đang rất cần!
Biến name và n đều không thuộc lớp qlhk. Hàm timkiem_nk thuộc lớp qlhk. Biến name thuộc lớp nhankhau , biến n thuộc lớp shkhau .Làm thế nào để hàm timkiem_nk có thể sử dụng được hai biến đó vậy?
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
class nhankhau
{
private:
char name[25];
char birthday[15];
char que[100];
char dantoc[10];
char gioitinh[4];
char tongiao[20];
long cmnd;
char nghenghiep[40];
char quanhe[10];
public:
void nhap();
void xuat();
void nhap1();
};
//================================================== ============================
class shkhau
{
private:
nhankhau nk[15];
long n; //so nhan khau
char ten_ch[25];
public:
void input();
void output();
void input1();
};
//================================================== ============================
class qlhk
{
private:
shkhau hk[15];
int maso; //so luong so ho khau hien co (ma so cua co ho khau)
public:
void setdata();
void print();
void print1(shkhau x);
void timkiem_nk(nhankhau x);
};
//================================================== ============================
void nhankhau::nhap()
{
cout<<"\n Ten: ";
cin.ignore(1);
cin.get(name,25);
cout<<"\n Quan he voi chu ho(neu la chu ho thi nhap vao chu ho): ";
cin.ignore(1);
cin.get(quanhe,10);
cout<<"\n Ngay/thang/nam sinh:\t";
cin.ignore(1);
cin.get(birthday,15);
cout<<"\n Que quan: ";
cin.ignore(1);
cin.get(que,100);
cout<<"\n Dan toc: ";
cin.ignore(1);
cin.get(dantoc,10);
cout<<"\n Gioi tinh: ";
cin.ignore(1);
cin.get(gioitinh,4);
cout<<"\n Ton giao: ";
cin.ignore(1);
cin.get(tongiao,20);
cout<<"\n So chung minh nhan dan:\t";
cin>>cmnd;
cout<<"\n Nghe nghiep: ";
cin.ignore(1);
cin.get(nghenghiep,40);
}
//--------------------------------
void nhankhau::nhap1()
{
cout<<"\nTen: ";
cin.ignore(1);
cin.get(name,25);
}
//-----------------------------------
void nhankhau::xuat()
{
cout<<"\n Ten:"<<name<<"\n Quan he: "<<quanhe
<<"\n\t Ngay/thang/nam sinh:\t"<<birthday<<"\n\tQue quan: "<<que
<<"\n\tDan toc: "<<dantoc<<"\n\tGioi tinh: "<<gioitinh
<<"\n\tTon giao: "<<tongiao<<"\n\tSo chung minh nhan dan:\t"<<cmnd
<<"\n\tNghe nghiep: "<<nghenghiep;
}
//================================================== ============================
void shkhau::input1()
{
cout<<"\nChu ho: ";
cin.ignore(1);
cin.get(ten_ch,25);
}
//--------------------------------------
void shkhau::input()
{
cout<<"\n So nhan khau: ";
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"\nThanh vien "<<i<<endl;
nk[i].nhap();
}
}
//----------------------------------------
void shkhau::output()
{
for(int i=1;i<=n;i++)
{
cout<<"\n"<<i<<"."<<endl;
nk[i].xuat();
}
}
//================================================== ============================
void qlhk::setdata()
{
cout<<"\nTong so so ho khau: "; cin>>maso;
for(int i = 1;i<=maso;i++)
{
cout<<"\nMa so: "<<i<<endl;
hk[i].input1();
hk[i].input();
}
}
//-----------------------------------------
void qlhk::print()
{
for(int i = 1;i<=maso;i++)
{
cout<<"Ma so: "<<i;
hk[i].output();
}
}
//-----------------------------------------
void qlhk ::timkiem_nk(nhankhau x)
{
char ten[25];
for(int i=1;i<=maso;i++)
for(int j=1;j<=n;j++) //BI LOI O DAY: Undefined symbol 'n'
if(strcmp(name,ten)==0) //LOI: Undefined symbol 'name'
x.xuat();
}
//================================================== ============================
void main()
{
clrscr();
nhankhau x;
qlhk vungcao;
vungcao.setdata();
vungcao.print();
cout<<"\nTIM KIEM NHAN KHAU: \n";
x.nhap1();
vungcao.timkiem_nk(x);
getch();
}
Biến name và n đều không thuộc lớp qlhk. Hàm timkiem_nk thuộc lớp qlhk. Biến name thuộc lớp nhankhau , biến n thuộc lớp shkhau .Làm thế nào để hàm timkiem_nk có thể sử dụng được hai biến đó vậy?
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
class nhankhau
{
private:
char name[25];
char birthday[15];
char que[100];
char dantoc[10];
char gioitinh[4];
char tongiao[20];
long cmnd;
char nghenghiep[40];
char quanhe[10];
public:
void nhap();
void xuat();
void nhap1();
};
//================================================== ============================
class shkhau
{
private:
nhankhau nk[15];
long n; //so nhan khau
char ten_ch[25];
public:
void input();
void output();
void input1();
};
//================================================== ============================
class qlhk
{
private:
shkhau hk[15];
int maso; //so luong so ho khau hien co (ma so cua co ho khau)
public:
void setdata();
void print();
void print1(shkhau x);
void timkiem_nk(nhankhau x);
};
//================================================== ============================
void nhankhau::nhap()
{
cout<<"\n Ten: ";
cin.ignore(1);
cin.get(name,25);
cout<<"\n Quan he voi chu ho(neu la chu ho thi nhap vao chu ho): ";
cin.ignore(1);
cin.get(quanhe,10);
cout<<"\n Ngay/thang/nam sinh:\t";
cin.ignore(1);
cin.get(birthday,15);
cout<<"\n Que quan: ";
cin.ignore(1);
cin.get(que,100);
cout<<"\n Dan toc: ";
cin.ignore(1);
cin.get(dantoc,10);
cout<<"\n Gioi tinh: ";
cin.ignore(1);
cin.get(gioitinh,4);
cout<<"\n Ton giao: ";
cin.ignore(1);
cin.get(tongiao,20);
cout<<"\n So chung minh nhan dan:\t";
cin>>cmnd;
cout<<"\n Nghe nghiep: ";
cin.ignore(1);
cin.get(nghenghiep,40);
}
//--------------------------------
void nhankhau::nhap1()
{
cout<<"\nTen: ";
cin.ignore(1);
cin.get(name,25);
}
//-----------------------------------
void nhankhau::xuat()
{
cout<<"\n Ten:"<<name<<"\n Quan he: "<<quanhe
<<"\n\t Ngay/thang/nam sinh:\t"<<birthday<<"\n\tQue quan: "<<que
<<"\n\tDan toc: "<<dantoc<<"\n\tGioi tinh: "<<gioitinh
<<"\n\tTon giao: "<<tongiao<<"\n\tSo chung minh nhan dan:\t"<<cmnd
<<"\n\tNghe nghiep: "<<nghenghiep;
}
//================================================== ============================
void shkhau::input1()
{
cout<<"\nChu ho: ";
cin.ignore(1);
cin.get(ten_ch,25);
}
//--------------------------------------
void shkhau::input()
{
cout<<"\n So nhan khau: ";
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"\nThanh vien "<<i<<endl;
nk[i].nhap();
}
}
//----------------------------------------
void shkhau::output()
{
for(int i=1;i<=n;i++)
{
cout<<"\n"<<i<<"."<<endl;
nk[i].xuat();
}
}
//================================================== ============================
void qlhk::setdata()
{
cout<<"\nTong so so ho khau: "; cin>>maso;
for(int i = 1;i<=maso;i++)
{
cout<<"\nMa so: "<<i<<endl;
hk[i].input1();
hk[i].input();
}
}
//-----------------------------------------
void qlhk::print()
{
for(int i = 1;i<=maso;i++)
{
cout<<"Ma so: "<<i;
hk[i].output();
}
}
//-----------------------------------------
void qlhk ::timkiem_nk(nhankhau x)
{
char ten[25];
for(int i=1;i<=maso;i++)
for(int j=1;j<=n;j++) //BI LOI O DAY: Undefined symbol 'n'
if(strcmp(name,ten)==0) //LOI: Undefined symbol 'name'
x.xuat();
}
//================================================== ============================
void main()
{
clrscr();
nhankhau x;
qlhk vungcao;
vungcao.setdata();
vungcao.print();
cout<<"\nTIM KIEM NHAN KHAU: \n";
x.nhap1();
vungcao.timkiem_nk(x);
getch();
}