Giáo trình Hệ điều hành - Chương 9: Xây dựng lớp đối tượng

pdf 79 trang huongle 7070
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ điều hành - Chương 9: Xây dựng lớp đối tượng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_he_dieu_hanh_chuong_9_xay_dung_lop_doi_tuong.pdf

Nội dung text: Giáo trình Hệ điều hành - Chương 9: Xây dựng lớp đối tượng

  1. Khoa CNTT LTHĐT Chƣơng 9 XÂY DỰNG LỚP ĐỐI TƢỢNG GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 1 ThS. Nguyễn Tấn Trần Minh Khang
  2. Khoa CNTT LTHĐT 0. MỤC TIÊU − Hiểu được sự phân loại phương thức. − Xây dựng được lớp đối tượng. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 2 ThS. Nguyễn Tấn Trần Minh Khang
  3. Khoa CNTT LTHĐT 1. PHÂN LOẠI PHƢƠNG THỨC Các phương thức của một lớp được chia thành 5 loại như sau: − Nhóm phương thức khởi tạo. − Nhóm phương thức cung cấp thông tin. − Nhóm phương thức cập nhật thông tin. − Nhóm phương thức xử lý tính toán. − Nhóm phương thức kiểm tra. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 3 ThS. Nguyễn Tấn Trần Minh Khang
  4. Khoa CNTT LTHĐT 1. PHÂN LOẠI PHƢƠNG THỨC Dữ Liệu Xử lý GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 4 ThS. Nguyễn Tấn Trần Minh Khang
  5. Khoa CNTT LTHĐT 2. CÁC LỚP ĐỐI TƢỢNG CẦN XÂY DỰNG − Lớp đối tượng đơn thức (CDonThuc). − Lớp đối tượng phân số (CPhanSo). − Lớp đối tượng hỗn số (CHonSo). − Lớp đối tượng số phức (CSoPhuc). − Lớp đối tượng điểm trong mặt phẳng Oxy (CDiem). − Lớp đối tượng điểm trong không gian Oxyz (CDiemKhongGian). − Lớp đối tượng đƣờng tròn trong mặt phẳng Oxy (CDuongTron). − Lớp đối tượng hình cầu trong không gian Oxyz (CHinhCau). − Lớp đối tượng tam giác (CTamGiac). − Lớp đối tượng ngày (CNgay). GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 5 ThS. Nguyễn Tấn Trần Minh Khang
  6. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. 8. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 6 ThS. Nguyễn Tấn Trần Minh Khang
  7. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 1. class CPhanSo 2. { 3. private: 4. int tu; 5. int mau; 6. public: 7. 8. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 7 ThS. Nguyễn Tấn Trần Minh Khang
  8. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 1. class CHonSo 2. { 3. private: 4. int nguyen; 5. int tu; 6. int mau; 7. public: 8. 9. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 8 ThS. Nguyễn Tấn Trần Minh Khang
  9. Khoa CNTT LTHĐT 5. LỚP ĐỐI TƢỢNG CSoPhuc 1. class CSoPhuc 2. { 3. private: 4. float thuc; 5. float ao; 6. public: 7. 8. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 9 ThS. Nguyễn Tấn Trần Minh Khang
  10. Khoa CNTT LTHĐT 6. LỚP ĐỐI TƢỢNG CDonThuc 1. class CDonThuc 2. { 3. private: 4. float a; 5. int n; 6. public: 7. 8. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 10 ThS. Nguyễn Tấn Trần Minh Khang
  11. Khoa CNTT LTHĐT 7. LỚP ĐỐI TƢỢNG CDiemKhongGian 1. class CDiemKhongGian 2. { 3. private: 4. float x; 5. float y; 6. float z; 7. public: 8. 9. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 11 ThS. Nguyễn Tấn Trần Minh Khang
  12. Khoa CNTT LTHĐT 8. LỚP ĐỐI TƢỢNG CHonSo 1. class CHonSo 2. { 3. private: 4. int Nguyen; 5. int Tu; 6. int Mau; 7. public: 8. 9. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 12 ThS. Nguyễn Tấn Trần Minh Khang
  13. Khoa CNTT LTHĐT 9. LỚP ĐỐI TƢỢNG CNgay 1. class CNgay 2. { 3. private: 4. int ng; 5. int th; 6. int nm; 7. public: 8. 9. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 13 ThS. Nguyễn Tấn Trần Minh Khang
  14. Khoa CNTT LTHĐT 10. LỚP ĐỐI TƢỢNG CTamGiac 1. class CTamGiac 2. { 3. private: 4. CDiem A; 5. CDiem B; 6. CDiem C; 7. public: 8. 9. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 14 ThS. Nguyễn Tấn Trần Minh Khang
  15. Khoa CNTT LTHĐT 11. LỚP ĐỐI TƢỢNG CDuongTron 1. class CDuongTron 2. { 3. private: 4. CDiem I; 5. float R; 6. public: 7. 8. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 15 ThS. Nguyễn Tấn Trần Minh Khang
  16. Khoa CNTT LTHĐT 12. LỚP ĐỐI TƢỢNG CHinhCau 1. class CHinhCau 2. { 3. private: 4. CDiemKhongGian I; 5. float R; 6. public: 7. 8. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 16 ThS. Nguyễn Tấn Trần Minh Khang
  17. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Hãy thiết kế và xây dựng lớp điểm dựa vào tất cả các kỹ thuật đã học trong các bài trước. Hơn nữa, việc thiết kế này đặt trọng tâm vào việc suy nghĩ các phương thức cho lớp điểm càng nhiều càng tốt. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 17 ThS. Nguyễn Tấn Trần Minh Khang
  18. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Thuộc tính: Hoành độ: kiểu số thực Tung độ: kiểu số thực − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức thiết lập mặc định. – Phương thức thiết lập khi biết đầy đủ thông tin. – Phương thức thiết lập sao chép. – Phương thức thiết lập khi biết hoành độ. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 18 ThS. Nguyễn Tấn Trần Minh Khang
  19. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Thuộc tính: Hoành độ: kiểu số thực Tung độ: kiểu số thực − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức khởi tạo mặc định. – Phương thức khởi tạo khi biết đầy đủ thông tin. – Phương thức khởi tạo dựa vào một đối tượng điểm khác. – Phương thức khởi tạo khi biết hoành độ. – Phương thức operator >>. – Phương thức nhập GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 19 ThS. Nguyễn Tấn Trần Minh Khang
  20. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Phương thức Nhóm phƣơng thức cung cấp thông tin – Phương thức lấy hoành độ. – Phương thức lấy tung độ. – Phương thức operator <<. – Phương thức xuất GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 20 ThS. Nguyễn Tấn Trần Minh Khang
  21. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Phương thức Nhóm phƣơng thức cập nhật thông tin: – Phương thức cập nhật hoành độ. – Phương thức cập nhật tung độ. – Phương thức operator =. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 21 ThS. Nguyễn Tấn Trần Minh Khang
  22. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Phương thức Nhóm phƣơng thức xử lý: – Phương thức tính khoảng cách giữa hai điểm – Phương thức phá hủy. – Phương thức operator>. – Phương thức operator =. – Phương thức operator<=. – Phương thức operator==. – Phương thức operator!=. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 22 ThS. Nguyễn Tấn Trần Minh Khang
  23. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Phương thức Nhóm phƣơng thức xử lý: – Phương thức tính khoảng cách theo hoành độ. – Phương thức tính khoảng cách theo tung độ. – Phương thức tính khoảng cách so với gốc tọa độ. – Phương thức tìm điểm đối xứng qua gốc tọa độ. – Phương thức tìm điểm đối xứng qua trục hoành. – Phương thức tìm điểm đối xứng qua trục tung. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 23 ThS. Nguyễn Tấn Trần Minh Khang
  24. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Phương thức Nhóm phƣơng thức xử lý: – Phương thức tìm điểm đối xứng qua đường phân giác thứ nhất. – Phương thức tìm điểm đối xứng qua đường phân giác thứ hai. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 24 ThS. Nguyễn Tấn Trần Minh Khang
  25. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem − Phương thức Nhóm phƣơng thức kiểm tra: – Phương thức kiểm tra điểm có thuộc phần tư thứ nhất hay không. – Phương thức kiểm tra điểm có thuộc phần tư thứ hai hay không. – Phương thức kiểm tra điểm có thuộc phần tư thứ ba hay không. – Phương thức kiểm tra điểm có thuộc phần tư thứ tư hay không. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 25 ThS. Nguyễn Tấn Trần Minh Khang
  26. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm khởi tạo 8. CDiem(); 9. CDiem(float,float); 10. CDiem(const CDiem&); 11. CDiem(float); 12. void KhoiTao(); 13. void KhoiTao(float,float); 14. void KhoiTao(CDiem); 15. void KhoiTao(float); 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 26 ThS. Nguyễn Tấn Trần Minh Khang
  27. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm khởi tạo 8. friend istream& operator >> 9. (istream &is,CDiem &P); 10. void Nhap(); 11. 12. 13. 14. 15. 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 27 ThS. Nguyễn Tấn Trần Minh Khang
  28. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm cung cấp 8. float LayX(); 9. float LayY(); 10. friend ostream& operator<< 11. (ostream &os,CDiem&P); 12. void Xuat(); 13. 14. 15. 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 28 ThS. Nguyễn Tấn Trần Minh Khang
  29. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm cập nhật 8. void cnX(float); 9. void cnY(float); 10. CDiem operator=(CDiem); 11. 12. 13. 14. 15. 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 29 ThS. Nguyễn Tấn Trần Minh Khang
  30. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm xử lý 8. float KhoangCach(CDiem); 9. ~CDiem(); 10. int operator>(CDiem); 11. int operator =(CDiem); 13. int operator<=(CDiem); 14. int operator==(CDiem); 15. int operator!=(CDiem); 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 30 ThS. Nguyễn Tấn Trần Minh Khang
  31. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm xử lý 8. float KhoangCachX(CDiem); 9. float KhoangCachY(CDiem); 10. float KhoangCachGoc(); 11. CDiem DoiXungGoc(); 12. CDiem DoiXungHoanh(); 13. CDiem DoiXungTung(); 14. CDiem DoiXungPg1(); 15. CDiem DoiXungPg2(); 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 31 ThS. Nguyễn Tấn Trần Minh Khang
  32. Khoa CNTT LTHĐT 3. LỚP ĐỐI TƢỢNG CDiem 1. class CDiem 2. { 3. private: 4. float x; 5. float y; 6. public: 7. // Nhóm kiểm tra 8. int ktThuoc1(); 9. int ktThuoc2(); 10. int ktThuoc3(); 11. int ktThuoc4(); 12. 13. 14. 15. 16. 17. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 32 ThS. Nguyễn Tấn Trần Minh Khang
  33. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Hãy thiết kế và xây dựng lớp phân số dựa vào tất cả các kỹ thuật đã học trong các bài trước. Hơn nữa, việc thiết kế này đặt trọng tâm vào việc suy nghĩ các phương thức cho lớp phân số càng nhiều càng tốt. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 33 ThS. Nguyễn Tấn Trần Minh Khang
  34. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Thuộc tính: Tử số: kiểu số nguyên Mẫu số: kiểu số nguyên − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức khởi tạo mặc định. – Phương thức khởi tạo khi biết đầy đủ thông tin. – Phương thức khởi tạo dựa vào một đối tượng phân số khác. – Phương thức khởi tạo khi biết tử số. – Phương thức nhập – Phương thức thiết lập mặc định. – Phương thức thiết lập khi biết đầy đủ thông tin. – Phương thức thiết lập sao chép. – Phương thức thiết lập khi biết tử số. – Phương thức operator >>. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 34 ThS. Nguyễn Tấn Trần Minh Khang
  35. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Phương thức Nhóm phƣơng thức cung cấp thông tin – Phương thức lấy tử. – Phương thức lấy mẫu. – Phương thức lấy phần thực của phần số. – Phương thức xuất – Phương thức operator <<. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 35 ThS. Nguyễn Tấn Trần Minh Khang
  36. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Phương thức Nhóm phƣơng thức cập nhật thông tin: – Phương thức cập nhật tử. – Phương thức cập nhật mẫu. – Phương thức operator >>. – Phương thức operator =. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 36 ThS. Nguyễn Tấn Trần Minh Khang
  37. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Phương thức Nhóm phƣơng thức xử lý: – Phương thức phá hủy. – Phương thức tổng hai phân số. – Phương thức hiệu hai phân số. – Phương thức tích hai phân số. – Phương thức thương hai phân số. – Phương thức so sánh hai phân số. – Phương thức tăng một phân số. – Phương thức giảm một phân số. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 37 ThS. Nguyễn Tấn Trần Minh Khang
  38. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Phương thức Nhóm phƣơng thức xử lý: – Phương thức operator +. – Phương thức operator -. – Phương thức operator *. – Phương thức operator /. – Phương thức operator +=. – Phương thức operator -=. – Phương thức operator *=. – Phương thức operator /=. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 38 ThS. Nguyễn Tấn Trần Minh Khang
  39. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Phương thức Nhóm phƣơng thức xử lý: – Phương thức operator . – Phương thức operator =. – Phương thức operator ==. – Phương thức operator !=. – Phương thức operator ++. – Phương thức operator . GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 39 ThS. Nguyễn Tấn Trần Minh Khang
  40. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo − Phương thức Nhóm phƣơng thức kiểm tra: – Phương thức kiểm tra phân số có nghĩa. – Phương thức kiểm tra phân số bằng 0. – Phương thức kiểm tra phân số khác 0. – Phương thức kiểm tra phân số âm. – Phương thức kiểm tra phân số dương. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 40 ThS. Nguyễn Tấn Trần Minh Khang
  41. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. private: 14. int tu; 15. int mau; 16. public: 17. // Nhóm khởi tạo 18. void KhoiTao(); 19. void KhoiTao(int,int); 20. void KhoiTao(CPhanSo); 21. void KhoiTao(int); 22. void Nhap(); 23. CPhanSo(); 24. CPhanSo(int, int); 25. CPhanSo(const CPhanSo&); 26. CPhanSo(int); 27. friend istream& operator>> (istream&, CPhanSo&); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 41 ThS. Nguyễn Tấn Trần Minh Khang
  42. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. 14. public: 15. // Nhóm cung cấp thông tin 16. int LayTu(); 17. int LayMau(); 18. float LayPhanThuc(); 19. void Xuat(); 20. friend ostream& operator<< (ostream&, CPhanSo); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 42 ThS. Nguyễn Tấn Trần Minh Khang
  43. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. 14. public: 15. // Nhóm cập nhật thông tin 16. int CapNhatTu(); 17. int CapNhatMau(); 18. CPhanSo operator= (const CPhanSo&) GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 43 ThS. Nguyễn Tấn Trần Minh Khang
  44. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. 14. public: 15. // Nhóm xử lý 16. ~CPhanSo(); 17. CPhanSo Tong(CPhanSo); 18. CPhanSo Hieu(CPhanSo); 19. CPhanSo Tich(CPhanSo); 20. CPhanSo Thuong(CPhanSo); 21. int SoSanh(CPhanSo); 22. CPhanSo TangMot(); 23. CPhanSo GiamMot(); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 44 ThS. Nguyễn Tấn Trần Minh Khang
  45. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. 14. public: 15. // Nhóm xử lý 16. CPhanSo operator+(CPhanSo); 17. CPhanSo operator-(CPhanSo); 18. CPhanSo operator*(CPhanSo); 19. CPhanSo operator/(CPhanSo); 20. CPhanSo operator+=(CPhanSo); 21. CPhanSo operator-=(CPhanSo); 22. CPhanSo operator*=(CPhanSo); 23. CPhanSo operator/=(CPhanSo); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 45 ThS . Nguyễn Tấn Trần Minh Khang
  46. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. 14. public: 15. // Nhóm xử lý 16. int operator >(CPhanSo); 17. int operator =(CPhanSo); 19. int operator<=(CPhanSo); 20. int operator==(CPhanSo); 21. int operator!=(CPhanSo); 22. CPhanSo operator++(); 23. CPhanSo operator (); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 46 ThS . Nguyễn Tấn Trần Minh Khang
  47. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CPhanSo 11. class CPhanSo 12. { 13. 14. public: 15. // Nhóm kiểm tra 16. int KTCoNghia(); 17. int KTBangKhong(); 18. int KTKhacKhong(); 19. int KTAm(); 20. int KTDuong(); 21. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 47 ThS. Nguyễn Tấn Trần Minh Khang
  48. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Hãy thiết kế và xây dựng lớp hỗn số dựa vào tất cả các kỹ thuật đã học trong các bài trước. Hơn nữa, việc thiết kế này đặt trọng tâm vào việc suy nghĩ các phương thức cho lớp hỗn số càng nhiều càng tốt. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 48 ThS. Nguyễn Tấn Trần Minh Khang
  49. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Thuộc tính: Phần nguyên: kiểu số nguyên Tử số: kiểu số nguyên Mẫu số: kiểu số nguyên − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức khởi tạo mặc định. – Phương thức khởi tạo khi biết đầy đủ thông tin. – Phương thức khởi tạo dựa vào một đối tượng hỗn số khác. – Phương thức khởi tạo khi biết phần nguyên. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 49 ThS. Nguyễn Tấn Trần Minh Khang
  50. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Thuộc tính: Phần nguyên: kiểu số nguyên Tử số: kiểu số nguyên Mẫu số: kiểu số nguyên − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức nhập. – Phương thức thiết lập mặc định. – Phương thức thiết lập khi biết đầy đủ thông tin. – Phương thức thiết lập sao chép. – Phương thức thiết lập khi biết phần nguyên. – Phương thức operator >>. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 50 ThS. Nguyễn Tấn Trần Minh Khang
  51. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Phương thức Nhóm phƣơng thức cung cấp thông tin – Phương thức lấy phần nguyên. – Phương thức lấy tử. – Phương thức lấy mẫu. – Phương thức lấy phần thực của hỗn số. – Phương thức xuất. – Phương thức operator <<. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 51 ThS. Nguyễn Tấn Trần Minh Khang
  52. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Phương thức Nhóm phƣơng thức cập nhật thông tin: – Phương thức cập nhật phần nguyên. – Phương thức cập nhật tử. – Phương thức cập nhật mẫu. – Phương thức operator >>. – Phương thức operator =. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 52 ThS. Nguyễn Tấn Trần Minh Khang
  53. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Phương thức Nhóm phƣơng thức xử lý: – Phương thức phá hủy. – Phương thức tổng hai số phức. – Phương thức hiệu hai số phức. – Phương thức tích hai số phức. – Phương thức thương hai số phức. – Phương thức so sánh hai số phức. – Phương thức tăng một số phức. – Phương thức giảm một số phức. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 53 ThS. Nguyễn Tấn Trần Minh Khang
  54. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Phương thức Nhóm phƣơng thức xử lý: – Phương thức operator +. – Phương thức operator -. – Phương thức operator *. – Phương thức operator /. – Phương thức operator +=. – Phương thức operator -=. – Phương thức operator *=. – Phương thức operator /=. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 54 ThS. Nguyễn Tấn Trần Minh Khang
  55. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Phương thức Nhóm phƣơng thức xử lý: – Phương thức operator . – Phương thức operator =. – Phương thức operator ==. – Phương thức operator !=. – Phương thức operator ++. – Phương thức operator . GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 55 ThS. Nguyễn Tấn Trần Minh Khang
  56. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo − Phương thức Nhóm phƣơng thức kiểm tra: – Phương thức kiểm tra số phức có nghĩa. – Phương thức kiểm tra số phức bằng 0. – Phương thức kiểm tra số phức khác 0. – Phương thức kiểm tra số phức âm. – Phương thức kiểm tra số phức dương. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 56 ThS. Nguyễn Tấn Trần Minh Khang
  57. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. private: 14. int nguyen; 15. int tu; 16. int mau; 17. public: 18. // Nhóm khởi tạo 19. void KhoiTao(); 20. void KhoiTao(int,int,int); 21. void KhoiTao(CHonSo); 22. void KhoiTao(int); 23. void Nhap(); 24. CHonSo(); 25. CHonSo(int, int,int); 26. CHonSo(const CHonSo&); 27. CHonSo(int); 28. friend istream& operator>> (istream&, CHonSo&); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 57 ThS. Nguyễn Tấn Trần Minh Khang
  58. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. 14. public: 15. // Nhóm cung cấp thông tin 16. int LayPhanNguyen(); 17. int LayTu(); 18. int LayMau(); 19. float LayPhanThuc(); 20. void Xuat(); 21. friend ostream& operator<< (ostream&, CHonSo); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 58 ThS. Nguyễn Tấn Trần Minh Khang
  59. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. 14. public: 15. // Nhóm cập nhật thông tin 16. int CapNhatPhanNguyen(); 17. int CapNhatTu(); 18. int CapNhatMau(); 19. CHonSo operator= (const CHonSo&) GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 59 ThS. Nguyễn Tấn Trần Minh Khang
  60. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. 14. public: 15. // Nhóm xử lý 16. ~CHonSo(); 17. CHonSo Tong(CHonSo); 18. CHonSo Hieu(CHonSo); 19. CHonSo Tich(CHonSo); 20. CHonSo Thuong(CHonSo); 21. int SoSanh(CHonSo); 22. CHonSo TangMot(); 23. CHonSo GiamMot(); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 60 ThS. Nguyễn Tấn Trần Minh Khang
  61. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. 14. public: 15. // Nhóm xử lý 16. CHonSo operator+(CHonSo); 17. CHonSo operator-(CHonSo); 18. CHonSo operator*(CHonSo); 19. CHonSo operator/(CHonSo); 20. CHonSo operator+=(CHonSo); 21. CHonSo operator-=(CHonSo); 22. CHonSo operator*=(CHonSo); 23. CHonSo operator/=(CHonSo); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 61 ThS . Nguyễn Tấn Trần Minh Khang
  62. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. 14. public: 15. // Nhóm xử lý 16. int operator >(CHonSo); 17. int operator =(CHonSo); 19. int operator<=(CHonSo); 20. int operator==(CHonSo); 21. int operator!=(CHonSo); 22. CHonSo operator++(); 23. CHonSo operator (); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 62 ThS . Nguyễn Tấn Trần Minh Khang
  63. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CHonSo 11. class CHonSo 12. { 13. 14. public: 15. // Nhóm kiểm tra 16. int KTCoNghia(); 17. int KTBangKhong(); 18. int KTKhacKhong(); 19. int KTAm(); 20. int KTDuong(); 21. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 63 ThS. Nguyễn Tấn Trần Minh Khang
  64. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Hãy thiết kế và xây dựng lớp hỗn số dựa vào tất cả các kỹ thuật đã học trong các bài trước. Hơn nữa, việc thiết kế này đặt trọng tâm vào việc suy nghĩ các phương thức cho lớp hỗn số càng nhiều càng tốt. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 64 ThS. Nguyễn Tấn Trần Minh Khang
  65. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Thuộc tính: Phần thực: kiểu số nguyên Phần ảo: kiểu số nguyên − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức khởi tạo mặc định. – Phương thức khởi tạo khi biết đầy đủ thông tin. – Phương thức khởi tạo dựa vào một đối tượng số phức khác. – Phương thức khởi tạo khi biết phần thực. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 65 ThS. Nguyễn Tấn Trần Minh Khang
  66. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Thuộc tính: Phần nguyên: kiểu số nguyên Tử số: kiểu số nguyên Mẫu số: kiểu số nguyên − Phương thức Nhóm phƣơng thức khởi tạo: – Phương thức nhập. – Phương thức thiết lập mặc định. – Phương thức thiết lập khi biết đầy đủ thông tin. – Phương thức thiết lập sao chép. – Phương thức thiết lập khi biết phần nguyên. – Phương thức operator >>. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 66 ThS. Nguyễn Tấn Trần Minh Khang
  67. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Phương thức Nhóm phƣơng thức cung cấp thông tin – Phương thức lấy phần thực. – Phương thức lấy phần ảo. – Phương thức xuất. – Phương thức operator <<. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 67 ThS. Nguyễn Tấn Trần Minh Khang
  68. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Phương thức Nhóm phƣơng thức cập nhật thông tin: – Phương thức cập nhật phần thực. – Phương thức cập nhật phần ảo. – Phương thức operator >>. – Phương thức operator =. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 68 ThS. Nguyễn Tấn Trần Minh Khang
  69. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Phương thức Nhóm phƣơng thức xử lý: – Phương thức phá hủy. – Phương thức tổng hai số phức. – Phương thức hiệu hai số phức. – Phương thức tích hai số phức. – Phương thức thương hai số phức. – Phương thức so sánh hai số phức. – Phương thức tăng một số phức. – Phương thức giảm một số phức. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 69 ThS. Nguyễn Tấn Trần Minh Khang
  70. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Phương thức Nhóm phƣơng thức xử lý: – Phương thức operator +. – Phương thức operator -. – Phương thức operator *. – Phương thức operator /. – Phương thức operator +=. – Phương thức operator -=. – Phương thức operator *=. – Phương thức operator /=. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 70 ThS. Nguyễn Tấn Trần Minh Khang
  71. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Phương thức Nhóm phƣơng thức xử lý: – Phương thức operator . – Phương thức operator =. – Phương thức operator ==. – Phương thức operator !=. – Phương thức operator ++. – Phương thức operator . GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 71 ThS. Nguyễn Tấn Trần Minh Khang
  72. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc − Phương thức Nhóm phƣơng thức kiểm tra: – Phương thức kiểm tra số phức bằng 0. – Phương thức kiểm tra số phức khác 0. – Phương thức kiểm tra số phức âm. – Phương thức kiểm tra số phức dương. GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 72 ThS. Nguyễn Tấn Trần Minh Khang
  73. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. private: 14. int thuc; 15. int ao; 16. public: 17. // Nhóm khởi tạo 18. void KhoiTao(); 19. void KhoiTao(int,int); 20. void KhoiTao(CSoPhuc); 21. void KhoiTao(int); 22. void Nhap(); 23. CSoPhuc(); 24. CSoPhuc(int, int); 25. CSoPhuc(const CSoPhuc&); 26. CSoPhuc(int); 27. friend istream& operator>> (istream&, CSoPhuc&); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 73 ThS. Nguyễn Tấn Trần Minh Khang
  74. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. 14. public: 15. // Nhóm cung cấp thông tin 16. int LayThuc(); 17. int LayAo(); 18. void Xuat(); 19. friend ostream& operator<< (ostream&, CSoPhuc); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 74 ThS. Nguyễn Tấn Trần Minh Khang
  75. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. 14. public: 15. // Nhóm cập nhật thông tin 16. int CapNhatThuc(); 17. int CapNhatAo(); 18. CSoPhuc operator= (const CSoPhuc&) GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 75 ThS. Nguyễn Tấn Trần Minh Khang
  76. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. 14. public: 15. // Nhóm xử lý 16. ~CSoPhuc(); 17. CSoPhuc Tong(CSoPhuc); 18. CSoPhuc Hieu(CSoPhuc); 19. CSoPhuc Tich(CSoPhuc); 20. CSoPhuc Thuong(CSoPhuc); 21. int SoSanh(CSoPhuc); 22. CSoPhuc TangMot(); 23. CSoPhuc GiamMot(); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 76 ThS. Nguyễn Tấn Trần Minh Khang
  77. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. 14. public: 15. // Nhóm xử lý 16. CSoPhuc operator+(CSoPhuc); 17. CSoPhuc operator-(CSoPhuc); 18. CSoPhuc operator*(CSoPhuc); 19. CSoPhuc operator/(CSoPhuc); 20. CSoPhuc operator+=(CSoPhuc); 21. CSoPhuc operator-=(CSoPhuc); 22. CSoPhuc operator*=(CSoPhuc); 23. CSoPhuc operator/=(CSoPhuc); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 77 ThS . Nguyễn Tấn Trần Minh Khang
  78. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. 14. public: 15. // Nhóm xử lý 16. int operator >(CSoPhuc); 17. int operator =(CSoPhuc); 19. int operator<=(CSoPhuc); 20. int operator==(CSoPhuc); 21. int operator!=(CSoPhuc); 22. CSoPhuc operator++(); 23. CSoPhuc operator (); GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 78 ThS . Nguyễn Tấn Trần Minh Khang
  79. Khoa CNTT LTHĐT 4. LỚP ĐỐI TƢỢNG CSoPhuc 11. class CSoPhuc 12. { 13. 14. public: 15. // Nhóm kiểm tra 16. int KTBangKhong(); 17. int KTKhacKhong(); 18. int KTAm(); 19. int KTDuong(); 20. }; GV. Nguyễn Sơn Hoàng Quốc Chương 9 - 79 ThS. Nguyễn Tấn Trần Minh Khang