01/10/2018, 09:23

Tại sao hàm tìm theo mã và theo tên chạy cứ 1 người dù nhập dữ liệu khác nhau

#include <iostream>
#include <string>

using namespace std;

struct Nhanvien
{
	int manv;
	char hoten[30];
};

//prototype
//void Nhap(Nhanvien [], int);
//void Xuat(Nhanvien [], int);
//void SapXep(Nhanvien[], int);
//Nhanvien* TimTheoMa(Nhanvien[], int, int);
//Nhanvien* TimTheoTen(Nhanvien[], char[], int);

//code
void Nhap(Nhanvien snv[], int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		cout << "Nhap ma so nhan vien thu " << i + 1 << " : ";
		cin >> snv[i].manv;
		cin.ignore();
		cout << "Nhap ten: " << endl;
		cin.getline(snv[i].hoten, 30);
		
	}
}

void Xuat(Nhanvien snv[], int n)
{
	int i;
	for (i = 0; i < n; i++)
		cout << snv[i].manv << "	" << snv[i].hoten << endl;
}

void SapXep(Nhanvien snv[], int n)
{
	int i, j;
	Nhanvien tmp;
	for(i = 0; i < n - 1; i++)
		for (j = i + 1; j < n; j++)
		{
			if (strcmp(snv[i].hoten, snv[j].hoten) > 0)
			{
				tmp = snv[i];
				snv[i] = snv[j];
				snv[j] = tmp;
			}
		}
}
Nhanvien* TimTheoMa(Nhanvien snv[], int maso, int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		if (maso == snv[i].manv)
		{
			return snv + i;
		}
	}
	return NULL;
}

Nhanvien* TimTheoTen(Nhanvien snv[], char ten[], int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		if (strcmp(ten, snv[i].hoten) == 0)
		{
			return snv + i;
		}
	}
	return NULL;
}

int main()
{
	int n;
	int maso;
	char ten[30];
	Nhanvien snv[30];

	cout << "Nhap so nhan vien : ";
	cin >> n;
	fflush(stdin);

	Nhap(snv, n);
	Xuat(snv, n);

	cout << "Danh sach sau khi sap xep : " << endl;
	SapXep(snv, n);
	Xuat(snv, n);

	do {
		cout << "Nhap ma can tim : ";
		cin >> maso;
		fflush(stdin);
		TimTheoMa(snv, maso, n);
		if (*TimTheoMa == NULL)
		{
			cout << "Khong co nhan vien ma nay !" << "Moi nhap lai !" << endl;
			system("pause");
			system("cls");
		}
		else cout << snv->manv << "	" << snv->hoten << endl;
	} while (*TimTheoMa == NULL);

	do {
		cout << "Nhap ten can tim : ";
		cin.getline(ten, 30);
		fflush(stdin);
		TimTheoTen(snv, ten, n);
		if (*TimTheoTen == NULL)
		{
			cout << "Khong co nhan vien ten nay !" << "Moi nhap lai !" << endl;
			system("pause");
			system("cls");
		}
	} while (*TimTheoTen == NULL);
	cout << snv->manv << "	" << snv->hoten << endl;
	
	system("pause");
	return 0;
}
Bài liên quan
0