Microsoft Word Bai 10 2 doc Trang 1 MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 10 2 Xây dựng class tổng quát hóa “Stack các giá trị” I Mục tiêu Giúp SV làm quen với việc xây dựng class tổng quát h[.]
Trang MƠN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 10.2 : Xây dựng class tổng quát hóa “Stack giá trị” I Mục tiêu : Giúp SV làm quen với việc xây dựng class tổng quát hóa có dùng giá trị thuộc kiểu II Nội dung : Viết code miêu tả class tổng quát hóa “Stack giá trị bất kỳ” cung cấp tác vụ push() pop() ₫ể cất/lấy lại giá trị ₫ỉnh stack Viết chương trình nhỏ thử dùng class tổng quát hóa “Stack giá trị bất kỳ” ₫ể tạo tự ₫ộng class Stack số nguyên Stack số thực, thử sử dụng class cụ thể III Chuẩn ₫ầu : Sinh viên nắm vững việc ₫ặc tả class tổng quát hóa có dùng giá trị thuộc kiểu IV Qui trình : Chạy VS Net, chọn menu File.Open.Project ₫ể hiển thị cửa sổ duyệt file Duyệt tìm file *.sln quản lý Project "AnyStackApp" có sẵn từ thực hành 8.1 ₫ể mở lại Project Ấn phải chuột vào phần tử gốc Project cửa sổ Solution Explorer, chọn option Add.Class, ₫ặt tên ValueStack.cs ₫ể tạo file ₫ặc tả class tổng quát hóa ValueStack Khi cửa sổ hiển thị mã nguồn class ValueStack hiển thị, copy code ₫ã viết class IntStack, dán code vào thân ValueStack, hiệu chỉnh lại sau (phần màu ₫ỏ phần thay ₫ổi so với class IntStack) : //₫ịnh nghĩa class tổng quát hóa : Stack giá trị thuộc kiểu T namespace AnyStackApp { public class ValueStack { private T[] data; //danh sách phần tử stack private int top; // số phần tử ₫ỉnh stack private int max; // số lượng max hành stack // khai báo miêu tả số lượng phần tử cần thêm lần thiếu stack private int GROWBY = 4; //hàm constrcutor public ValueStack () { top = 0; max =GROWBY; data = (T[])new T[max]; } //hàm push phần tử vào ₫ỉnh public bool push(T newVal) { T[] newdata; if (top==max) { //nếu ₫ầy stack //xin cấp phát lại vùng nhớ lớn GROWBY phần tử sơ với stack hành try { newdata = (T[])new T[GROWBY+max]; } catch (Exception e){ //System.out.println("He thong het cho roi!!!"); return false; } //di chuyển stack hành stack for (int i = 0; i