14/01/2014

Demo lập trình hướng đối tượng với C#


using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;

namespace OOP
{
    public class Huyen : IComparable<Huyen>
    {
        #region Properties
        public int ID { get; set; }
        public string Name { get; set; }
        #endregion

        #region Methods
        public Huyen() { ID = 0; Name = ""; }
        public Huyen(int _id, string _name) { ID = _id; Name = _name; }

        public override string ToString()
        {
            return "ID = " + ID + ", Name = " + Name;
        }

        public override bool Equals(object obj)
        {
            Huyen h = (Huyen)obj;
            return h.Name.Equals(Name);
        }
        public override int GetHashCode()
        {
            return base.GetHashCode();
        }

        public int CompareTo(Huyen h)
        {
            return this.Name.CompareTo(h.Name);
        }
        #endregion
    }

    /// <summary>
    /// Lớp ListHuyen
    /// </summary>
    public class ListHuyen
    {
        List<Huyen> listHuyen;
        public ListHuyen()
        {
            listHuyen = new List<Huyen>();
        }
        public void Add(Huyen h)
        {
            listHuyen.Add(h);
            return;
        }
        public void Add(int _id, string _name)
        {
            listHuyen.Add(new Huyen(_id, _name));
            return;
        }
        public bool DeleteByID(int _id)
        {
            foreach (Huyen h in listHuyen)
                if (h.ID == _id)
                {
                    listHuyen.Remove(h);
                    return true;
                }
            return false;
        }
        public bool DeleteByID(Huyen _h)
        {
            foreach (Huyen h in listHuyen)
                if (h.ID == _h.ID)
                {
                    listHuyen.Remove(h);
                    return true;
                }
            return false;
        }
        public bool Update(Huyen _h)
        {
            for (int i = 0; i < listHuyen.Count; i++)
                if (listHuyen[i].ID == _h.ID)
                {
                    listHuyen[i].Name = _h.Name;
                    return true;
                }
            return false;
        }
        public DataTable GetHuyenList()
        {
            DataTable table = new DataTable();
            table.Columns.Add("ID", typeof(int));
            table.Columns.Add("Name", typeof(string));
            foreach (Huyen h in listHuyen)
                table.Rows.Add(h.ID, h.Name);
            return table;
        }
        public void Sort()
        {
            this.listHuyen.Sort();
        }
    }
}



//.........................................................................................................................
using System;
using System.Collections.Generic;

namespace OOP
{
    /// <summary>
    /// Class CollectionHuyen được thừ kế từ lớp Huyện
    /// </summary>
    class CollectionHuyen : List<Huyen>
    {
        public CollectionHuyen()
        {

        }
       
        public override string ToString()
        {
            string s = "";
            foreach (Huyen h in this)
            {
                s += h.ToString() + "\n";
            }
            return s;
        }
    }
}

//.........................................................................................................................
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OOP
{
    public class Person
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        /// <summary>
        /// Hàm tạo không đối
        /// </summary>
        public Person()
        {
            ID = 0; Name = ""; Age = 0;
        }
        /// <summary>
        /// Hàm tạo có hai đối số
        /// </summary>
        /// <param name="_name">Full Name</param>
        /// <param name="_Age">Tuổi >0, <100</param>
        public Person(int _ID, string _name, int _Age)
        {
            ID = _ID; Name = _name; Age = _Age;
        }
        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
        public override bool Equals(Object ob)
        {
            if (ob == null)
                return false;
            Person p = (Person)ob;
            if (ID == p.ID && Name.Equals(p.Name) && Age == p.Age)
                return true;
            return false;
        }
    }
    /// <summary>
    /// Sắp xếp theo tên và
    /// </summary>
    public class PersonNameComparer : IComparer<Person>
    {
        public int Compare(Person x, Person y)
        {
            return x.Name.CompareTo(y.Name);
        }
    }
    public class PersonAgeComparer : IComparer<Person>
    {
        public int Compare(Person x, Person y)
        {
            return x.Age.CompareTo(y.Age);
        }
    }
    public class PersonName_AgeComparer : IComparer<Person>
    {
        public int Compare(Person x, Person y)
        {
            return x.Age.CompareTo(y.Age);
        }
    }
}


//.........................................................................................................................
//file frmmain.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Combobox_DB
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        ListHuyen ListHuyen = new ListHuyen();
        CollectionHuyen CollectionHuyen = new CollectionHuyen();
        List<Person> listPerson = new List<Person>();


        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                int id;
                int.TryParse(listBoxHuyen.SelectedValue.ToString(), out id);

                ListHuyen.DeleteByID(id);
                DisplayDataHuyen();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }



        private void btnPerson_Click(object sender, EventArgs e)
        {
            Person h1 = new Person(1, "Nguyễn Văn A", 20);
            Person h2 = new Person(2, "Nguyễn Văn C", 21);
            Person h3 = new Person(3, "Nguyễn Văn B", 22);
            Person h4 = new Person(4, "Nguyễn Văn D", 23);
            Person h5 = new Person(1, "Nguyễn Văn A", 24);

            listPerson.Add(h1);
            listPerson.Add(h2);
            listPerson.Add(h3);
            listPerson.Add(h4);
            listPerson.Sort(new PersonAgeComparer());

            DisplayDataPerson();
        }
        void DisplayDataPerson()
        {
            listBoxPerson.DataSource = null;
            listBoxPerson.Items.Clear();

            listBoxPerson.DisplayMember = "Name";
            listBoxPerson.ValueMember = "ID";
            listBoxPerson.DataSource = this.listPerson;
        }
        void DisplayDataHuyenCol()
        {
            listBoxHuyenColection.DataSource = null;
            listBoxHuyenColection.Items.Clear();

            listBoxHuyenColection.DisplayMember = "Name";
            listBoxHuyenColection.ValueMember = "ID";
            this.listBoxHuyenColection.DataSource = this.CollectionHuyen;
        }
        void DisplayDataHuyen()
        {
            listBoxHuyen.DataSource = null;
            listBoxHuyen.Items.Clear();

            listBoxHuyen.DisplayMember = "Name";
            listBoxHuyen.ValueMember = "ID";
            this.listBoxHuyen.DataSource = ListHuyen.GetHuyenList();
        }
        private void btnHuyenCol_Click(object sender, EventArgs e)
        {
            Huyen h1 = new Huyen(1, "Định hóa");
            Huyen h2 = new Huyen(1, "Phổ Yên");
            Huyen h3 = new Huyen(1, "Phú Bình");
            Huyen h4 = new Huyen(1, "Bạch Thông");

            CollectionHuyen.Add(h1);
            CollectionHuyen.Add(h2);
            CollectionHuyen.Add(h3);
            CollectionHuyen.Add(h4);
            DisplayDataHuyenCol();
        }
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            Huyen h1 = new Huyen(1, "Định hóa");
            Huyen h2 = new Huyen(1, "Phổ Yên");
            Huyen h3 = new Huyen(1, "Phú Bình");
            Huyen h4 = new Huyen(1, "Bạch Thông");

            ListHuyen.Add(h1);
            ListHuyen.Add(h2);
            ListHuyen.Add(h3);
            ListHuyen.Add(h4);

            DisplayDataHuyen();
        }

        private void btnSort_Click(object sender, EventArgs e)
        {
            ListHuyen.Sort();
            DisplayDataHuyen();
        }

        private void btnSortPerson_Click(object sender, EventArgs e)
        {
            listPerson.Sort(new PersonNameComparer());
            DisplayDataPerson();
        }

    }
}

No comments:

Post a Comment