1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu luyện tập C# (P2) pptx

25 615 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 1,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Quản lý các lớp hình học Mục tiêu: Giúp học viên nắm rõ cách xây dựng class niêm phong Sealed trong C# Công việc thực hiện: 1.. Xây dựng class niêm phong Sealed NHAN_VIEN với các yêu cầu

Trang 1

public override double Dien_tich() {

return mBan_kinh * mBan_kinh * PI;

} public override double Chu_vi() {

return 2 * mBan_kinh * PI;

}

4 Thực hiện các bước tương tự để xây dựng lớp HINH_CHU_NHAT được dẫn xuất từ lớp HINH_HOC

5 Khai báo trong phương thức Main:

Console.WriteLine("CHON LOAI HINH HOC");

Console.WriteLine("1 Hinh tron");

Console.WriteLine("2 Hinh chu nhat");

Console.Write("Ban chon loai nao: ");

int loai = int.Parse(Console.ReadLine());

Console.WriteLine("");

if (loai == 1) {

Console.Write("Nhap ban kinh cho hinh tron: ");

double bankinh = double.Parse(Console.ReadLine());

HINH_TRON HT = new HINH_TRON(bankinh);

Console.WriteLine("");

Console.WriteLine("Dien tich hinh tron: {0}", HT.Dien_tich());

Console.WriteLine("Chu vi hinh tron: {0}", HT.Chu_vi());

} else { Console.Write("Nhap chieu dai hinh chu nhat: ");

double chieudai = double.Parse(Console.ReadLine());

Console.Write("Nhap chieu rong hinh chu nhat: ");

double chieurong = double.Parse(Console.ReadLine());

HINH_CHU_NHAT HCN = new HINH_CHU_NHAT(chieudai, chieurong); Console.WriteLine("");

Console.WriteLine("Dien tich hinh chu nhat: {0}", HCN.Dien_tich());

Console.WriteLine("Chu vi hinh chu nhat: {0}", HCN.Chu_vi());

} Console.ReadLine();

6 Thực thi chương trình và ghi nhận kết quả:

(hình 5.2)

Trang 2

5.3 Quản lý các lớp hình học

Mục tiêu: Giúp học viên nắm rõ cách xây dựng class niêm phong (Sealed) trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Lop_niem_phong

2 Xây dựng class niêm phong (Sealed) NHAN_VIEN với các yêu cầu (có thể sử dụng lại lớp NHAN_VIEN trong bài 4.4):

Biến thành viên (Field): lưu trữ thông tin về nhân viên bao gồm: Họ tên nhân viên, Ngày vào làm, Hệ số lương và Lương cơ bản (Lương cơ bản được khai báo static và có giá trị mặc định là 450000)

static double mLuong_co_ban = 450000;

Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class bao gồm: Họ tên, Hệ số lương và Ngày vào làm Bổ sung thêm thuộc tính Thâm niên (chỉ cho phép đọc dữ liệu)

public int Tham_nien {

get { return DateTime.Today.Year - mNgay_vao_lam.Year; } }

Phương thức khởi tạo (Contructor): với 3 tham số Họ tên, Hệ số lương và Ngày vào làm để khởi tạo giá trị cho các biến thành viên tương ứng

Các phương thức tính toán:

 Phương thức tính tiền thưởng (Tien_thuong): tính tiền thưởng cho nhân viên dựa vào thâm niên theo công thức:

Tiền thưởng = Thâm niên * 500000

 Phương thức tính tiền lương (Tien_luong): tính tiền lương cho nhân viên dựa vào lương cơ bản và hệ số lương theo công thức:

Tiền lương = Lương cơ bản * Hệ số lương

3 Xây dựng lớp NHAN_VIEN_VAN_PHONG kế thừa từ lớp NHAN_VIEN với khai báo như sau:

class NHAN_VIEN_VAN_PHONG: NHAN_VIEN {

protected int mSo_ngay_vang;

protected static int mDinh_muc_vang = 3;

protected static double mDon_gia_phat = 100000;

public int So_ngay_vang {

get { return mSo_ngay_vang; } set { mSo_ngay_vang = value; } }

public static int Dinh_muc_vang {

get { return mDinh_muc_vang; } set { mDinh_muc_vang = value; } }

public static double Don_gia_phat {

get { return mDon_gia_phat; }

Trang 3

set { mDon_gia_phat = value; } }

}

4 Biên dịch ứng dụng và ghi nhận lỗi xảy ra

(hình 5.3)

5.4 Quản lý danh sách máy tính

Mục tiêu: Giúp học viên nắm rõ cách xây dựng class kế thừa trong C# Yêu cầu thực hiện:

1 Xây dựng chương trình quản lý danh sách các đối tượng máy tính để bàn và máy tính xách tay:

2 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Quan_ly_may_tinh

3 Xây dựng class MAY_TINH với các yêu cầu:

Biến thành viên (Field): lưu trữ thông tin về Số hiệu, Đơn giá, Hãng sản xuất Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class Phương thức khởi tạo (Constructor): với 3 tham số: Số hiệu, Đơn giá và Hãng sản xuất để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH

Phương thức tính toán: cài đặt phương thức tính Hiển thị thông tin của máy tính (Hien_thi_thong_tin) cho phép ghi đè (virtual) trả về chuỗi gồm các thông tin: Số hiệu, Đơn giá và Hãng sản xuất

4 Xây dựng class MAY_TINH_DE_BAN được dẫn xuất từ lớp MAY_TINH với các yêu cầu:

Biến thành viên (Field): lưu trữ thông tin về CPU, RAM Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class Phương thức khởi tạo (Constructor): với 5 tham số: Số hiệu, Đơn giá, Hãng sản xuất để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH và CPU, RAM để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH_DE_BAN

Phương thức tính toán: cài đặt lại phương thức tính Hiển thị thông tin của máy tính (Hien_thi_thong_tin) trả về chuỗi gồm các thông tin: Số hiệu, Đơn giá, Hãng sản xuất, CPU và RAM

5 Xây dựng class MAY_TINH_XACH_TAY được dẫn xuất từ lớp MAY_TINH với các yêu cầu:

Biến thành viên (Field): lưu trữ thông tin về Trọng lượng, Thời gian PIN, Kích thước màn hình Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class

Phương thức khởi tạo (Constructor): với 6 tham số: Số hiệu, Đơn giá, Hãng sản xuất để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH và Trọng lượng, Thời gian PIN, Kích thước màn hình để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class

MAY_TINH_XACH_TAY

Phương thức tính toán: cài đặt lại phương thức tính Hiển thị thông tin của máy tính (Hien_thi_thong_tin) trả về chuỗi gồm các thông tin: Số hiệu, Đơn giá, Hãng sản xuất, Trọng lượng, Thời gian PIN và Kích thước màn hình

Trang 4

6 Khai báo trong phương thức Main:

Khai báo mảng MAY_TINH để chứa danh sách máy tính MAY_TINH[] dsmaytinh = new MAY_TINH[3];

Khởi tạo danh sách các máy tính MAY_TINH_DE_BAN mt1 = new MAY_TINH_DE_BAN("D2122", "Dell",

Console.WriteLine("========================================="); if (obj is MAY_TINH_DE_BAN)

{ Console.WriteLine(((MAY_TINH_DE_BAN)obj).Ten_goi());

Console.WriteLine(((MAY_TINH_DE_BAN)obj).Hien_thi_thong_tin()); }

else { Console.WriteLine(((MAY_TINH_XACH_TAY)obj).Ten_goi());

Console.WriteLine(((MAY_TINH_XACH_TAY)obj)

Hien_thi_thong_tin());

} Console.WriteLine("=========================================");

}

(hình 5.4)

Trang 5

BÀI 6: Lớp giao tiếp (Interface)

Giúp học viên thành thạo trong việc xây dựng các lớp giao tiếp trong C#

6.1 Quản lý đối tượng hình học

Mục tiêu: Giúp học viên nắm rõ cách cài đặt lớp giao tiếp trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là So_sanh_hinh_hoc Cài đặt interface IComparable để gọi phương thức Sort cho phép sắp xếp mảng hình học theo chu vi (diện tích) tăng đần (giảm dần)

2 Xây dựng lớp hình học với các phương thức cho phép kế thừa như sau:

class HINH_HOC {

public virtual float ChuVi(){

return 0;

} public virtual float DienTich(){

return 0;

} public virtual void Ten(){

} }

3 Xây dựng lớp HINH_TRON kế thừa từ lớp HINH_HOC với các thuộc tính và phương thức sau:

class HINH_TRON : HINH_HOC {

return 2 * r;

} public override float DienTich() {

return (float)Math.PI * r * r;

} public override void Ten() {

Console.WriteLine("Hinh Tron");

} }

4 Xây dựng lớp HINH_CHU_NHAT kết thừa từ lớp HINH_HOC với các thuộc tính và phương thức như sau:

class HINH_CHU_NHAT : HINH_HOC {

public float mChieu_dai, mChieu_rong;

public ChuNhat(float pChieu_dai, float pChieu_rong)

Trang 6

{ mChieu_dai = mChieu_dai;

mChieu_rong = pChieu_rong;

} public override float ChuVi() {

return (mChieu_dai + mChieu_rong) * 2;

} public override float DienTich() {

return mChieu_dai * mChieu_rong;

} public override void Ten() {

Console.WriteLine("Hinh Chu nhat");

} }

5 Cài đặt cho interface IComparable trong lớp HINH_HOC Khai báo ICompare trong khai báo lớp

class HINH_HOC : Icomparable {

… }

Cài đặt cho phương thức CompareTo, có thể so sánh theo Chu vi hay Diện tích class HINH_HOC : Icomparable

{

… public int CompareTo(object obj) {

HinhHoc hh = (HinhHoc)obj;

//if (ChuVi() > hh.ChuVi())

//else if (ChuVi() < hh.ChuVi()) // return -1;

if (DienTich() > hh.DienTich())

else if (DienTich() < hh.DienTich()) return -1;

return 0;

} }

6 Khai báo và khởi tạo trong phương thức Main:

Tạo mảng hinhhoc kiểu HINH_HOC gồm4 phần tử HinhHoc[] hinhhoc = new HinhHoc[4];

Khởi tạo các phần tử:

hinhhoc[0] = new HINH_TRON(3);

hinhhoc[1] = new HINH_TRON(5);

hinhhoc[2] = new HINH_CHU_NHAT(3, 5);

hinhhoc[3] = new HINH_CHU_NHAT(7, 9);

Trang 7

Gọi phương thức Array.Sort để sắp xếp mảng Array.Sort(hinhhoc);

Duyệt mảng, in tên, chu vi, diện tích của các đối tượng hình học có trong mảng hinhhoc

for (int i = 0; i < hinhhoc.Length; i++) {

hinhhoc[i].Ten();

Console.WriteLine("Chu vi: {0}", hinhhoc[i].Chu_vi());

Console.WriteLine("Dien tich: {0}", hinhhoc[i].Dien_tich()); Console.WriteLine("");

} Console.ReadLine();

(hình 6.1)

6.2 Xử lý phân số

Mục tiêu: Giúp học viên nắm rõ cách cài đặt lớp giao tiếp trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Xu_ly_phan_so

2 Tạo interface IMyNhapXuat, khai báo hàm nhập, hàm xuất phân số ra màn hình Console

interface INhapXuat {

int mTu_so;

int mMau_so;

public PHAN_SO(){

} public PHAN_SO(int pTuso, int pMauso) {

mTu_so = pTuso;

mMau_so = pMauso;

}

Trang 8

4 Cài đặt Interface INhapXuat cho lớp PHAN_SO:

class PHAN_SO: INhapXuat {

public void Nhap() {

Console.WriteLine("{0}/{1}", mTu_so, mMau_so);

} }

5 Cài đặt thêm Interface IComparable cho lớp PHAN_SO:

class PHAN_SO: INhapXuat, IComparable {

public int CompareTo(object obj) {

PHAN_SO p = (PHAN_SO)obj;

double giatri1 = 1.0 * mTu_so / mMau_so;

double giatri2 = 1.0 * p.mTu_so / p.mMau_so; if (giatri1 > giatri2)

return 1;

else if (giatri1 < giatri2) return -1;

else return 0;

} }

6 Khai báo và khởi tạo đối tượng trong phương thức Main:

Khai báo mảng p kiểu PHAN_SO có 2 phần tử:

PHAN_SO[] p = new PHAN_SO[2];

Duyệt mảng và nhập giá trị ch otừng phần tử:

for (int i = 0; i < p.Length; i++) {

Trang 9

{ p[i].Xuat();

} Console.ReadLine();

7 Biên dịch và thực thi chương trình:

(hình 6.2)

Trang 10

BÀI 7: Xử lý nhập/xuất dữ liệu

(Input/Output)

Giúp học viên thành thạo trong việc sử dụng các lớp đối tượng để truy xuất hệ thống tập tin, thư mục trong C#

7.1 Thao tác tập tin và thư mục

Mục tiêu: Giúp học viên nắm rõ cách duyệt thư mục trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Thao_tac_tap_tin_thu_muc

2 Tham chiếu đến Namespace System.IO để sử dụng các lớp thao tác với hệ thống tập tin, thư mục using System.IO;

3 Xây dựng phương thức Đọc nôi dung của thư mục như sau:

public void Doc_thu_muc(string duongdan) {

Console.WriteLine("\n Ten tap tin/thu muc Loai Ngay tao"); string[] thu_muc = Directory.GetDirectories(duongdan);

foreach (string tm in thu_muc) {

Console.WriteLine("{0,26} <Thu muc> {1,24} ", Path.GetFileName(tm),

Directory.GetCreationTime(tm).ToString("dd/MM/yyyy HH:mm:ss"));

} string[] tap_tin = Directory.GetFiles(duongdan);

foreach (string tt in tap_tin) {

Console.WriteLine("{0,26} {1,24} ", Path.GetFileName(tt),

Directory.GetCreationTime(tt).ToString("dd/MM/yyyy HH:mm:ss"));

} }

4 Khai báo trong phương thức Main Console.Write("\nNhap duong dan thu muc can doc: ");

string duongdan = Console.ReadLine();

Program p = new Program();

p.Doc_thu_muc(duongdan);

Console.ReadLine();

5 Biên dịch và thực thi chương trình

Trang 11

(hình 7.1)

7.2 Thao tác tập tin và thư mục

Mục tiêu: Giúp học viên nắm rõ cách truy xuất thông tin của tập tin và thư mục trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Thong_tin_tap_tin_thu_muc

2 Xử lý nhập vào đường dẫn của thư mục cần truy xuất (ví dụ: C:\)

3 Duyệt qua từng thư mục và tập tin trong đường dẫn được chỉ định sau đó xuất ra thông tin về các thuộc tính

(hình 7.2)

Trang 12

7.3 Truy xuất nội dung tập tin

Mục tiêu: Giúp học viên nắm rõ cách truy xuất nội dung của tập tin trong C# Yêu cầu thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Doc_tap_tin 2 Xử

lý nhập vào đường dẫn của tập tin cần truy xuất (ví dụ: C:\boot.ini)

3 Kiểm tra xem tập tin đó có tồn tại hay không? Nếu không tồn tại thì xuất thông báo lỗi, ngược lại xuất ra màn hình các thông tin:

Kích thước của tập tin Ngày giờ tạo tập tin Ngày giờ truy xuất cuối cùng Các thuộc tính được thiết lập cho tập tin Nội dung của tập tin

(hình 7.3)

7.4 Tạo tập tin

Mục tiêu: Giúp học viên nắm rõ cách tạo và truy xuất tập tin trong C# Yêu cầu thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Tao_tap_tin

2 Xử lý nhập vào đường dẫn của tập tin cần truy xuất (ví dụ: C:\boot.ini)

3 Kiểm tra xem tập tin đó có tồn tại hay không? Nếu tồn tại thì xuất thông báo hỏi người dùng có đồng ý ghi đè lên nội dung đã có hay không (hình 7.4a)

(hình 7.4a)

4 Nếu không đồng ý ghi đè thì thoát khỏi chương trình Nếu tập tin chưa tồn tại hoặc người dùng xác nhận đồng ý (Y) thì xuất thông báo nhập nội dung cho tập tin như (hình 7.4b)

Trang 14

BÀI 8: Collections và Generic

Giúp học viên thành thạo trong việc sử dụng các đối tượng Collection cũng như xây dựng kiểu Generic trong C#

8.1 Quản lý danh sách học viên

Mục tiêu: Giúp học viên nắm rõ cách sử dụng đối tượng ArrayList trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Quan_ly_hoc_vien

2 Khai báo Namespace System.Collections

3 Khởi tạo ArrayList chứa danh sách tên các học viên trong lớp ArrayList hocvien = new ArrayList();

hocvien.Add(hocvienmoi[i]);

} } hocvien.Sort();

Cách 2: dùng phương thức Insert để chèn vào đúng vị trí trong danh sách for (int i = 0; i < hocvienmoi.Count; i++){

if (hocvien.Contains(hocvienmoi[i])){

Console.WriteLine("Co " + hocvienmoi[i]);

} else{

for (int j = 0; j < hocvien.Count; j++){

int kq = hocvien[j].ToString().CompareTo(hocvienmoi[i].ToString()); if (j == hocvien.Count - 1 && kq == -1){

Trang 15

6 Duyệt danh sách các học viên và xuất ra màn hình for (int i = 0; i < hocvien.Count; i++) Console.WriteLine(hocvien[i]);

(hình 8.1)

8.2 Quản lý danh sách học viên

Mục tiêu: Giúp học viên nắm rõ cách sử dụng đối tượng SortedList trong C# Công việc thực hiện:

1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Quan_ly_hoc_vien_sortedlist

2 Khai báo Namespace System.Collections

3 Tạo mảng chuỗi danh sách học viên trong lớp string[] hocvien ={"Anh", "Bao", "Chi", "Dung", "Linh", "Tai"};

4 Tạo mảng chuỗi danh sách học viên mới string[] hocvienmoi ={"An", "Hoa", "Yen"};

5 Khởi tạo SortedList chứa danh sách các học viên trong lớp SortedList s = new SortedList();

6 Thêm danh sách học viên trong lớp vào SortedList for (int i = 0; i < hocvien.Length; i++) s.Add(hocvien[i], hocvien[i]);

7 Thêm danh sách học viên mới vào SortedList for (int i = 0; i < hocvienmoi.Length; i++) s.Add(hocvienmoi[i], hocvienmoi[i]);

Ngày đăng: 05/07/2014, 19:20

TỪ KHÓA LIÊN QUAN

w