Giáo trình Hệ điều hành - Chương 14: Ứng dụng đa xạ

pdf 37 trang huongle 4110
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 14: Ứng dụng đa xạ", để 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_14_ung_dung_da_xa.pdf

Nội dung text: Giáo trình Hệ điều hành - Chương 14: Ứng dụng đa xạ

  1. Khoa CNTT LTHĐT Chương 14 ỨNG DỤNG ĐA XẠ ThS. Nguyễn Tấn Chương 14 - 1 Trần Minh Khang
  2. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Bài toán: Một cái máy có nhiều chi tiết. Mỗi chi tiết máy có thể là chi tiết đơn hoặc là chi tiết phức. Chi tiết đơn: là chi tiết không chứa bên trong nó chi tiết khác. Thông tin của chi tiết đơn bao gồm: mã số chi tiết, giá tiền. Chi tiết phức: là chi tiết chứa bên trong nó nhiều chi tiết thành phần, mỗi một chi tiết thành phần này có thể là chi tiết đơn hoặc là chi tiết phức. Thông tin của chi tiết phức bao gồm: mã số chi tiết, số lượng chi tiết thành phần, danh sách các chi tiết thành phần. Giá tiền của chi tiết phức bằng tổng giá tiền của các chi tiết thành phần. ThS. Nguyễn Tấn Chương 14 - 2 Trần Minh Khang
  3. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Yêu cầu: Thiết kế các lớp thích hợp để thực hiện các yêu cầu sau: Nhập các chi tiết cho máy. Tìm kiếm một chi tiết máy theo mã số. Tính tiền cho một chi tiết máy, hoặc cho máy. Xuất các chi tiết máy. Đếm số lượng chi tiết đơn có trong cái máy. ThS. Nguyễn Tấn Chương 14 - 3 Trần Minh Khang
  4. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Sơ đồ lớp sơ bộ Có CMay CChiTiet CChiTietDon CChiTietPhuc ThS. Nguyễn Tấn Chương 14 - 4 Trần Minh Khang
  5. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY MaSo Sơ đồ lớp chi tiết Nhap() Có CMay CChiTiet Xuat() float TinhTien() n public CChiTiet TimKiem(long) CChiTiet ds[100] Nhap() CChiTietDon CChiTietPhuc Xuat() MaSo MaSo float TinhTien() GiaTien n Nhap() CChiTiet ds[100] Xuat() Nhap() CChiTiet TimKiem(long) float TinhTien() Xuat() CChiTiet TimKiem(long) float TinhTien() CChiTiet TimKiem(long) ThS. Nguyễn Tấn Chương 14 - 5 Trần Minh Khang
  6. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTiet 2. { 3. protected: 4. long maso; 5. public: 6. void Nhap(); 7. void Xuat(); 8. float TinhTien(); 9. CChiTiet TimKiem(long); 10. }; ThS. Nguyễn Tấn Chương 14 - 6 Trần Minh Khang
  7. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTietDon:public CChiTiet 2. { 3. protected: 4. float giatien; 5. public: 6. void Nhap(); 7. void Xuat(); 8. float TinhTien(); 9. CChiTiet TimKiem(long); 10. }; ThS. Nguyễn Tấn Chương 14 - 7 Trần Minh Khang
  8. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTietPhuc:public CChiTiet 2. { 3. protected: 4. int n; 5. CChiTiet ds[100]; 6. public: 7. void Nhap(); 8. void Xuat(); 9. float TinhTien(); 10. CChiTiet TimKiem(long); 11. }; ThS. Nguyễn Tấn Chương 14 - 8 Trần Minh Khang
  9. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CMay 2. { 3. protected: 4. int n; 5. CChiTiet ds[100]; 6. public: 7. void Nhap(); 8. void Xuat(); 9. float TinhTien(); 10. CChiTiet TimKiem(long); 11. }; ThS. Nguyễn Tấn Chương 14 - 9 Trần Minh Khang
  10. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. void CChiTiet::Nhap() 2. { 3. return; 4. } ThS. Nguyễn Tấn Chương 14 - 10 Trần Minh Khang
  11. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. void CChiTiet::Xuat() 2. { 3. return; 4. } ThS. Nguyễn Tấn Chương 14 - 11 Trần Minh Khang
  12. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. float CChiTiet::TinhTien() 2. { 3. return 0; 4. } ThS. Nguyễn Tấn Chương 14 - 12 Trần Minh Khang
  13. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. CChiTiet CChiTiet::TimKiem(long ms) 2. { 3. if() 4. return 5. else 6. return 7. } ThS. Nguyễn Tấn Chương 14 - 13 Trần Minh Khang
  14. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. void CChiTietDon::Nhap() 2. { 3. print(“Nhap ma so:”); 4. scanf(“%ld”,&maso); 5. float temp; 6. printf(“Nhap gia tien:”); 7. scanf(“%f”,&temp); 8. giatien = temp; 9. } ThS. Nguyễn Tấn Chương 14 - 14 Trần Minh Khang
  15. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. void CChiTietDon::Xuat() 2. { 3. printf(“(%ld(%8.3f))”, maso,giatien); 4. } ThS. Nguyễn Tấn Chương 14 - 15 Trần Minh Khang
  16. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. float CChiTietDon::TinhTien() 2. { 3. return giatien; 4. } ThS. Nguyễn Tấn Chương 14 - 16 Trần Minh Khang
  17. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. CChiTiet CChiTietDon::TimKiem(long ms) 2. { 3. if() 4. return 5. else 6. return 7. } ThS. Nguyễn Tấn Chương 14 - 17 Trần Minh Khang
  18. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. float CChiTietPhuc::TinhTien() 2. { 3. float s = 0; 4. for(int i=0;i<n;i++) 5. s=s+ds[i].TinhTien(); 6. return s; 7. } ThS. Nguyễn Tấn Chương 14 - 18 Trần Minh Khang
  19. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTietPhuc:public CChiTiet 2. { 3. protected: 4. int n; 5. CChiTiet* ds[100]; 6. public: 7. void Nhap(); 8. void Xuat(); 9. float TinhTien(); 10. CChiTiet TimKiem(long); 11. }; ThS. Nguyễn Tấn Chương 14 - 19 Trần Minh Khang
  20. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CMay 2. { 3. protected: 4. int n; 5. CChiTiet* ds[100]; 6. public: 7. void Nhap(); 8. void Xuat(); 9. float TinhTien(); 10. CChiTiet TimKiem(long); 11. }; ThS. Nguyễn Tấn Chương 14 - 20 Trần Minh Khang
  21. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. float CChiTietPhuc::TinhTien() 2. { 3. float s = 0; 4. for(int i=0;i TinhTien(); 6. return s; 7. } ThS. Nguyễn Tấn Chương 14 - 21 Trần Minh Khang
  22. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 11. class CChiTiet 12. { 13. protected: 14. long maso; 15. public: 16. virtual void Nhap(); 17. virtual void Xuat(); 18. virtual float TinhTien(); 19. virtual CChiTiet TimKiem(long); 20. }; ThS. Nguyễn Tấn Chương 14 - 22 Trần Minh Khang
  23. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. float CChiTietPhuc::TinhTien() 2. { 3. float s = 0; 4. for(int i=0;i TinhTien(); 6. return s; 7. } ThS. Nguyễn Tấn Chương 14 - 23 Trần Minh Khang
  24. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. void CChiTietPhuc::Xuat() 2. { 3. printf(“\n Ma so:%ld”, maso); 4. for(int i=0;i Xuat(); 6. } ThS. Nguyễn Tấn Chương 14 - 24 Trần Minh Khang
  25. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTiet 2. { 3. protected: 4. long maso; 5. public: 6. virtual void Nhap(); 7. virtual void Xuat(); 8. virtual float TinhTien(); 9. virtual CChiTiet*TimKiem(long); 10. }; ThS. Nguyễn Tấn Chương 14 - 25 Trần Minh Khang
  26. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTietDon:public CChiTiet 2. { 3. protected: 4. float giatien; 5. public: 6. void Nhap(); 7. void Xuat(); 8. float TinhTien(); 9. CChiTiet*TimKiem(long); 10. }; ThS. Nguyễn Tấn Chương 14 - 26 Trần Minh Khang
  27. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CChiTietPhuc:public CChiTiet 2. { 3. protected: 4. int n; 5. CChiTiet* ds[100]; 6. public: 7. void Nhap(); 8. void Xuat(); 9. float TinhTien(); 10. CChiTiet*TimKiem(long); 11. }; ThS. Nguyễn Tấn Chương 14 - 27 Trần Minh Khang
  28. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Khai báo lớp 1. class CMay 2. { 3. protected: 4. int n; 5. CChiTiet* ds[100]; 6. public: 7. void Nhap(); 8. void Xuat(); 9. float TinhTien(); 10. CChiTiet*TimKiem(long); 11. }; ThS. Nguyễn Tấn Chương 14 - 28 Trần Minh Khang
  29. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. CChiTiet*CChiTiet::TimKiem(long ms) 2. { 3. if(maso==ms) 4. return this; 5. else 6. return NULL; 7. } ThS. Nguyễn Tấn Chương 14 - 29 Trần Minh Khang
  30. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. CChiTiet*CChiTietDon::TimKiem(long ms) 2. { 3. if(maso==ms) 4. return this; 5. else 6. return NULL; 7. } ThS. Nguyễn Tấn Chương 14 - 30 Trần Minh Khang
  31. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. CChiTiet*CChiTietPhuc::TimKiem(long ms) 2. { 3. if(maso==ms) 4. return this; 5. for(int i=0;i TimKiem(ms); 8. if(kq!=NULL) 9. return kq; 10. } 11. return NULL; 12. } ThS. Nguyễn Tấn Chương 14 - 31 Trần Minh Khang
  32. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY 1. void CChiTietPhuc::Nhap() 2. { 3. printf(“Nhap ma so:”); 4. scanf(“%ld”,&maso); 5. printf(“Nhap n:”); 6. scanf(“%d”,&n); 7. for(int i=0;i Nhap(); 11. } 12. } ThS. Nguyễn Tấn Chương 14 - 32 Trần Minh Khang
  33. Khoa CNTT LTHĐT 11. void CChiTietPhuc::Nhap() 12. { 13. printf(“Nhap ma so:”); 14. scanf(“%ld”,&maso); 15. printf(“Nhap n:”); 16. scanf(“%d”,&n); 17. int loai; 18. for(int i=0;i Nhap(); 30. } 31. } ThS. Nguyễn Tấn Chương 14 - 33 Trần Minh Khang
  34. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. float CMay::TinhTien() 2. { 3. float s = 0; 4. for(int i=0;i TinhTien(); 6. return s; 7. } ThS. Nguyễn Tấn Chương 14 - 34 Trần Minh Khang
  35. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 1. void CMay::Xuat() 2. { 3. for(int i=0;i Xuat(); 5. } ThS. Nguyễn Tấn Chương 14 - 35 Trần Minh Khang
  36. Khoa CNTT LTHĐT 1. BÀI TOÁN CHI TIẾT MÁY Định nghĩa phương thức 11. CChiTiet*CMay::TimKiem(long ms) 12. { 13. for(int i=0;i TimKiem(ms); 16. if(kq!=NULL) 17. return kq; 18. } 19. return NULL; 20. } ThS. Nguyễn Tấn Chương 14 - 36 Trần Minh Khang
  37. Khoa CNTT LTHĐT 11. void CMay::Nhap() 12. { 13. printf(“Nhap n:”); 14. scanf(“%d”,&n); 15. int loai; 16. for(int i=0;i Nhap(); 28. } 29. } ThS. Nguyễn Tấn Chương 14 - 37 Trần Minh Khang