Bai 8 4

3 1 0
Bai 8 4

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

Thông tin tài liệu

Microsoft Word Bai 8 4 doc Trang 1 MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 8 4 Xây dựng chương trình ghi/₫ọc hệ thống ₫ối tượng I Mục tiêu Giúp SV làm quen với cách thức viết code ₫ể ghi/₫ọc hệ[.]

Trang MƠN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài thực hành số 8.4 : Xây dựng chương trình ghi/₫ọc hệ thống ₫ối tượng I Mục tiêu : ƒ Giúp SV làm quen với cách thức viết code ₫ể ghi/₫ọc hệ thống ₫ối tượng gồm nhiều ₫ối tượng có mối quan hệ tham khảo lẫn cho dễ dàng, sáng, an toàn tin cậy II Nội dung : ƒ Viết code ₫ể ghi/₫ọc ₫ối tượng b có trạng thái cụ thể hình vẽ ₫ây III Chuẩn ₫ầu : ƒ Sinh viên nắm vững lập trình thành thạo ₫oạn code ₫ể ₫ọc/ghi ₫ối tượng cần thiết chương trình IV Qui trình : Giả sử ta có hệ thống ₫ối tượng với trạng thái mối quan hệ chúng cụ thể sau Lưu ý chúng có mối quan hệ bao gộp dạng vòng : Chạy VS Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project Mở rộng mục Visual C# TreeView "Project Types", chọn mục Windows, chọn icon "Console Application" listbox "Templates" bên phải, thiết lập thư mục chứa Project listbox "Location", nhập tên Project vào textbox "Name:" (td WRObject), click button OK ₫ể tạo Project theo thông số ₫ã khai báo Ngay sau Project vừa ₫ược tạo ra, cửa sổ soạn code cho chương trình ₫ược hiển thị Thêm lệnh using sau ₫ây vào ₫ầu file : using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; Viết code cho hàm Main hàm dịch vụ khác sau : class Program { static String fbuf; static void Main(string[] args) { //₫iểm nhập chương trình //xây dựng hệ thống ₫ối tượng ghi lên file Create_SaveObject(); //₫ọc lại hệ thống ₫ối tượng Trang //ReadObject(); } //hàm xây dựng hệ thống ₫ối tượng ghi lên file public static void Create_SaveObject() { //khở tạo ₫ối tượng b theo hình silde 24 B b = new B(); b.init(2,2.345); b.Setba(1,1.234,b); b.Setpba(3,3.1416,b); b.Setpba1(4,4.567,b); //ghi ₫ối tượng b dùng kỹ thuật Serialization try { //1 ₫ịnh nghĩa ₫ối tượng FileStream miêu tả file chứa kết FileStream fs = new FileStream("c:\\data.obj", FileMode.Create); //2 tạo ₫ối tượng BinaryFormatter phục vụ ghi ₫ối tượng BinaryFormatter formatter = new BinaryFormatter(); //3 gọi tác vụ Serialize formatter ₫ể ghi ₫ối tượng formatter.Serialize(fs,b); //4 ₫óng file lại fs.Flush(); fs.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } //hàm ₫ọc ₫ối tượng b dùng kỹ thuật Serialization public static void ReadObject() { try { //1 ₫ịnh nghĩa ₫ối tượng FileStream miêu tả file chứa liệu ₫ã có FileStream fs = new FileStream("c:\\data.obj", FileMode.Open); //2 tạo ₫ối tượng BinaryFormatter phục vụ ₫ọc ₫ối tượng BinaryFormatter formatter = new BinaryFormatter(); //3 gọi tác vụ Deserialize ₫ể ₫ọc ₫ối tượng từ file vào B b = (B) formatter.Deserialize(fs); //4 ₫óng file lại fs.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } //hết hàm Main } //hết class program Ấ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 A.cs ₫ể tạo file ₫ặc tả class A Khi cửa sổ hiển thị mã nguồn class A hiển thị, ₫ặc tả class A ₫oạn code ₫ây : //thêm lệnh using sau ₫ầu file using System.Runtime.Serialization; namespace WRObject { [Serializable] public class A { //₫ịnh nghĩa thuộc tính liệu private int intA1; private double dblA2; private B pab; //₫ịnh nghĩa tác vụ public A() {} public void init(int a1, double a2, B p) { this.intA1 = a1; Trang this.dblA2 = a2; this.pab = p; } } } Ấ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 B.cs ₫ể tạo file ₫ặc tả class B Khi cửa sổ hiển thị mã nguồn class B hiển thị, ₫ặc tả class B ₫oạn code ₫ây : //thêm lệnh using sau ₫ầu file using System.Runtime.Serialization; namespace WRObject { [Serializable] public class B { //₫ịnh nghĩa thuộc tính liệu private int intB1; private double dblB2; private A ba; private A pba; private A pba1; //₫ịnh nghĩa tác vụ public B() { } public void init(int b1, double b2) { this.intB1 = b1; this.dblB2 = b2; ba = new A(); pba = new A(); pba1 = new A(); } public void Setba (int a1, double a2, B b) { this.ba.init (a1,a2,b); } public void Setpba (int a1, double a2, B b) { this.pba.init (a1,a2,b); } public void Setpba1 (int a1, double a2, B b) { this.pba1.init (a1,a2,b); } } //hết class B } //hết namespace WRObject Chọn menu Debug.Start Debugging ₫ể dịch chạy ứng dụng Hệ thống ₫ối tượng ₫ược tạo lưu lên file c:\data.obj Hiển thị cửa sổ soạn mã nguồn file Program.cs, thích lệnh gọi Create_SaveObject(); bỏ thích lệnh gọi ReadObject(); Dời chuột lệnh "B b = (B) formatter.Deserialize(fs);" hàm ReadObject(), click chuột vào lệnh trái lệnh ₫ể thiết lập ₫iểm dừng Chọn menu Debug.Start Debugging ₫ể dịch chạy ứng dụng Ứng dụng dừng lệnh dừng Dời chuột biến b, ta thấy cửa sổ hiển thị giá trị biến lúc null Ấn F10 ₫ể thực ₫úng lệnh dừng lại, dời chuột biến b, mở rộng phân cấp miêu tả nội dung biến b thấy chứa ₫úng thơng tin slide 14, nghĩa chương trình ₫ã ₫ọc ₫ược tồn hệ thống ₫ối tượng ₫ã lưu giữ trước ₫ây

Ngày đăng: 09/04/2023, 06:40

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan