using System;
using System.Data;
namespace bai1
{
class NhanVien
{
public string manv;
public string tennv;
public int gioitinh;
public DateTime ngaysinh;
public NhanVien Next;
public double luong;
public NhanVien()
{
manv = tennv = "";
luong = 0;
gioitinh = 0;
ngaysinh = DateTime.Parse("1/1/0001");
Next = null;
}
}
class Program
{
public static void NhapDS(ref NhanVien nv)
{
int giua;
bool ktgiua;
string strgiua;
do
{
Console.WriteLine("\nNhap so de bat dau nhap danh sach (Nhap ki tu khac de thoat): ");
strgiua = Console.ReadLine();
ktgiua = int.TryParse(strgiua, out giua);
if (ktgiua == true)
{
NhanVien nv2 = new NhanVien();
Console.Write("Nhap ma nhan vien (khong qua 50 ki tu): ");
nv2.manv = Console.ReadLine();
Console.Write("Nhap ten nhan vien: ");
nv2.tennv = Console.ReadLine();
Console.Write("Nhap gioi tinh (0: nu, 1: nam): ");
nv2.gioitinh = int.Parse(Console.ReadLine());
while (nv2.gioitinh != 0 && nv2.gioitinh != 1)
{
Console.Write("Nhap lai gioi tinh: ");
nv2.gioitinh = int.Parse(Console.ReadLine());
}
Console.Write("Nhap ngay sinh: ");
nv2.ngaysinh = DateTime.Parse(Console.ReadLine());
Console.Write("Nhap luong: ");
nv2.luong = double.Parse(Console.ReadLine());
nv2.Next = null;
if (nv == null) nv = nv2;
else
{
NhanVien nv3 = nv;
while (nv3.Next != null) nv3 = nv3.Next;
nv3.Next = nv2;
}
}
}
while (ktgiua == true);
}
public static DataTable GetTable(NhanVien nv)
{
DataTable table = new DataTable();
if (nv == null)
{
Console.Write(" Danh sach rong ");
}
else
{
NhanVien nv3 = nv;
if (nv3 != null)
{
table.Columns.Add("MaNV", typeof(string));
table.Columns.Add("Ten nhan vien ", typeof(string));
table.Columns.Add("Gioi tinh", typeof(int));
table.Columns.Add("Ngay sinh", typeof(DateTime));
table.Columns.Add("Luong", typeof(double));
}
while (nv3 != null)
{
table.Rows.Add(nv3.manv, nv3.tennv, nv3.gioitinh,nv3.ngaysinh,nv3.luong);
nv3 = nv3.Next;
}
}
return table;
}
public static void PrintTable(DataTable table)
{
foreach (DataColumn column in table.Columns)
{
Console.Write($"{column.ColumnName,30}");
}
Console.WriteLine();
int number_cols = table.Columns.Count;
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < number_cols; i++)
{
Console.Write($"{row[i],30}");
}
Console.WriteLine();
}
}
public static DataTable RemoveStaffWithCode(NhanVien nv)
{
DataTable table4 = new DataTable();
if (nv == null)
{
Console.WriteLine("Danh sach rong - khong co gi de xoa");
}
else
{
NhanVien nv3 = nv;
if (nv3 != null)
{
table4.Columns.Add("MaNV", typeof(string));
table4.Columns.Add("Ten nhan vien ", typeof(string));
table4.Columns.Add("Gioi tinh", typeof(int));
table4.Columns.Add("Ngay sinh", typeof(DateTime));
table4.Columns.Add("Luong", typeof(double));
}
Console.Write("Nhap vao ma nhan vien bat ki: ");
string code = Console.ReadLine();
while (nv3 != null)
{
if (nv3.manv == code)
{
if (nv3 == nv)
{
nv = nv.Next;
}
else
{
NhanVien node = nv;
while (node.Next != nv3)
node = node.Next;
node.Next = nv3.Next;
}
break;
}
else { nv3 = nv3.Next; }
}
}
return table4;
}
public static int CountStaffWithSalariesGreaterThan15Million(NhanVien nv)
{
int count = 0;
if (nv == null)
{
Console.Write(" Danh sach rong - khong co gi de thong ke");
}
else
{
NhanVien nv3 = nv;
while (nv3 != null)
{
if (nv3.luong > 15000000)
{
count++;
}
nv3 = nv3.Next;
}
}
return count;
}
public static void ListStaffsWhoseBirthYearIsLessThanOrEqualTo1990(NhanVien nv)
{
if (nv == null)
{
Console.Write(" Danh sach rong ");
}
else
{
NhanVien nv3 = nv;
while (nv3 != null)
{
if (nv3.ngaysinh.Year <= 1990)
{
Console.Write(nv3.tennv + "\t");
nv3 = nv3.Next;
}
else
{
nv3 = nv3.Next;
}
}
}
}
static void Main(string[] args)
{
NhanVien nv = null;
Console.WriteLine("********************************MAIN MENU*****************************"); //tạo menu chính
Console.WriteLine("****CAC THAO TAC LAM VIEC VOI DANH SACH*****");
Console.WriteLine("1. NHAP DANH SACH");
Console.WriteLine("2. TEN CAC NHAN VIEN CO NAM SINH BE HON HOAC BANG 1990");
Console.WriteLine("3. SO LUONG NHAN VIEN CO LUONG LON HON 15 TRIEU DONG");
Console.WriteLine("4. XOA NHAN VIEN");
Console.WriteLine("5. SAP XEP CAC NHAN VIEN GIAM DAN THEO NAM SINH");
Console.WriteLine("6. THOAT");
Console.WriteLine();
int chon ;
do
{
Console.Write("\n NHAP LUA CHON CUA BAN VAO: ");
chon = int.Parse(Console.ReadLine());
switch (chon)
{
case 1:
NhapDS(ref nv);
break;
case 2:
Console.WriteLine("Ten cac nhan vien co nam sinh nho hon hoac bang 1990 la:");
ListStaffsWhoseBirthYearIsLessThanOrEqualTo1990(nv);
Console.WriteLine();
break;
case 3:
Console.WriteLine("So luong nhan vien co luog lon hon 15 trieu dong la: {0}", CountStaffWithSalariesGreaterThan15Million(nv));
break;
case 4:
DataTable d = RemoveStaffWithCode(nv);
PrintTable(d);
break;
case 5: break;
case 6: break;
default:
Console.WriteLine("\n vui long nhap lai");
break;
}
Console.WriteLine();
}
while (chon != 6);
Console.ReadKey();
}
}
}