Bài giảng Lý thuyết hệ điều hành - Chương 10: Ứng dụng đa xạ - Nguyễn Tấn

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.

pdf38 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: yen2110 | Lượt xem: 341 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Lý thuyết hệ điều hành - Chương 10: Ứng dụng đa xạ - Nguyễn Tấn, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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.
Chương 14 - 4
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
1. BÀI TOÁN CHI TIẾT MÁY
 Sơ đồ lớp sơ bộ
CChiTiet
CChiTietPhucCChiTietDon
CMay
Có
Chương 14 - 5
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
1. BÀI TOÁN CHI TIẾT MÁY
 Sơ đồ lớp chi tiết
CChiTiet
CChiTietPhucCChiTietDon
CMay
Có
MaSo
GiaTien
MaSo
n
CChiTiet ds[100]
MaSo
n
CChiTiet ds[100]
public
Nhap()
Nhap()
Nhap()
Nhap()
Xuat()
Xuat()
Xuat()
Xuat()
CChiTiet TimKiem(long)
CChiTiet TimKiem(long)
CChiTiet TimKiem(long)
CChiTiet TimKiem(long)
float TinhTien()
float TinhTien()
float TinhTien()
float TinhTien()
Chương 14 - 6
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 7
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 8
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 9
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 10
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 11
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 12
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 13
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 14
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 15
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 16
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 17
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 18
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 19
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 20
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 21
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 22
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 23
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 24
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
5. ds[i]->Xuat();
6. }
Chương 14 - 25
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 26
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 27
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 28
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 29
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
1. BÀI TOÁN CHI TIẾT MÁY
 Sơ đồ lớp chi tiết
CChiTiet
CChiTietPhucCChiTietDon
CMay
Có
MaSo
GiaTien
MaSo
n
CChiTiet ds[100]
MaSo
n
CChiTiet ds[100]
public
Nhap()
Nhap()
Nhap()
Nhap()
Xuat()
Xuat()
Xuat()
Xuat()
CChiTiet *TimKiem(long)
CChiTiet *TimKiem(long)
CChiTiet*TimKiem(long)
CChiTiet *TimKiem(long)
float TinhTien()
float TinhTien()
float TinhTien()
float TinhTien()
Chương 14 - 30
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 31
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 32
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
6. {
7. CChiTiet*kq=ds[i]->TimKiem(ms);
8. if(kq!=NULL)
9. return kq;
10. }
11. return NULL;
12.}
Chương 14 - 33
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
8. {
9. printf(“Nhap a[%d]:”,i);
10. ds[i]->Nhap();
11. }
12.}
Chương 14 - 34
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
19. {
20. printf(“Nhap loai chi tiet 
(0.Don, 1. Phuc):”);
21. scanf(“%d”,&loai);
22. switch(loai)
23. {
24. case 0:ds[i]=new CChiTietDon;
25. break;
26. case 1:ds[i]=new CChiTietPhuc;
27. break; 
28. }
29. ds[i]->Nhap();
30. }
31.}
Chương 14 - 35
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
5. s=s+ds[i]->TinhTien();
6. return s;
7. }
Chương 14 - 36
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
4. ds[i]->Xuat();
5. }
Chương 14 - 37
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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<n;i++)
14. {
15. CChiTiet*kq=ds[i]->TimKiem(ms);
16. if(kq!=NULL)
17. return kq;
18. }
19. return NULL;
20.}
Chương 14 - 38
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
11.void CMay::Nhap()
12.{
13. printf(“Nhap n:”);
14. scanf(“%d”,&n);
15. int loai;
16. for(int i=0;i<n;i++)
17. {
18. printf(“Nhap loai chi tiet 
(0.Don, 1. Phuc):”);
19. scanf(“%d”,&loai);
20. switch(loai)
21. {
22. case 0:ds[i]=new CChiTietDon;
23. break;
24. case 1:ds[i]=new CChiTietPhuc;
25. break; 
26. }
27. ds[i]->Nhap();
28. }
29.}

File đính kèm:

  • pdfbai_giang_ly_thuyet_he_dieu_hanh_chuong_10_ung_dung_da_xa_ng.pdf