Bài thực hành buổi 7 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

default Bài thực hành buổi 7 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan

Bài gửi by augustion_ptn on Mon Oct 10, 2011 7:33 pm

1. Thừa kế đơn
Class Diem có các thông tin chung về 1 điểm trong trục tọa độ Oxy
Class DiemMau có đầy đủ thông tin như một điểm, ngoài ra có thể thông tin về màu sắc của điểm đó.
 Class DiemMau sẽ thừa kế các đặc điểm của class Diem (-> tiết kiểm thời gian lập trình, tái dụng dụng code) và có thêm đặc điểm riêng Mau
Code:
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<string.h>
using namespace std;
class Diem
{
      int x, y;
      public:
            void GanDiem(int h, int t)
            {
                  x=h;
                  y=t;
            }
            void HienDiem()
            {
                  cout<<"("<<x<<","<<y<<")";
            }
            void DoiDiem(int dx, int dy)
            {
                  x+=dx;
                  y+=dy;
            }
};
//PUBLIC: toan bo ham/thuoc tinh cua DIEM duoc gan cho DIEMMAU nhu la public
//=> o ngoai co the su dung cac ham/thuoc tinh nay thong qua doi tuong DiemMau
//PRIVATE: toan bo ham/thuoc tinh cua DIEM duoc gan cho DIEMMAU nhu la private
//=> o ngoai khong the su dung cac ham/thuoc tinh nay thong qua doi tuong DiemMau
class DiemMau: public Diem
{
      int mau;
      public:
            void KTao(int h, int t, int m)
            {
                  GanDiem(h,t);
                  mau=m;
            }
            void Hien()
            {
                  HienDiem();
                  cout<<mau;
            }
};
int main()
{
    DiemMau a;
    a.KTao(2,5,0);
    a.HienDiem(); //Ham cua class Diem
    cout<<endl;
    a.DoiDiem(7,8);
    a.Hien();    //Ham cua class DiemMau
    getch();
}
Class SinhVien có các thông tin chung về 1 sinh viên
Class SinhVienNuocNgoai ngoài thông tin một sinh viên thường phải có, còn thông tin về quốc tịch, hộ chiếu, passport ...
 Class SinhVienNuocNgoai sẽ thừa kế các đặc điểm của class SinhVien (-> tiết kiểm thời gian lập trình, tái dụng dụng code) và có thêm đặc điểm riêng.
Code:
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<string.h>
using namespace std;
class sinhvien
{
      private:
              char masv[10];
              char* tensv;
              int namsinh;
      public:
            void Nhap();
            void In();
      sinhvien();
      ~sinhvien();
};
void sinhvien::Nhap()
{
    cout<<"\nMa sinh vien: ";
    cin>>masv;
    cout<<"\nTen sinh vien: ";
    cin.ignore();
    cin.getline(tensv,50);
    cout<<"\nNam sinh: ";
    cin>>namsinh;
};
void sinhvien::In()
{
    cout<<"\n"<<masv<<":"<<tensv<<"(NS: "<<namsinh<<")";
};
sinhvien::sinhvien()
{
    strcpy(masv,"");
    int t = 50;
    tensv=new char[t];
    namsinh=0;
};
sinhvien::~sinhvien()
{
    delete[] tensv;
}
class SinhVienNuocNgoai:public sinhvien
{
      char* nuoc;
      char sopassport[12];
      public:
      //Sinh vien() goi ham khoi tao sinhvien truoic khi khoi tao cac thuoc tinh khac cua sinh vien nuoc ngoai
      SinhVienNuocNgoai():sinhvien()
      {
            nuoc=new char[30];
            strcpy(sopassport,"");
      };
      ~SinhVienNuocNgoai()
      {
            delete[] nuoc;
      };
      void NhapTTSVNN()
      {
          Nhap();
          cout<<"\nQuoc Tich: ";
          cin.ignore();
          cin.getline(nuoc,50);
          cout<<"\nSo passport: ";
          cin>>sopassport;
      };
      void InTTSVNN()
      {
          In();
          cout<<"\nQuoc Tich: "<<nuoc;
          cout<<"\nSo passport: "<<sopassport;
      };
};
int main()
{
    SinhVienNuocNgoai a;
    a.NhapTTSVNN();
    a.InTTSVNN();
    getch();
}
Bài tự làm:
Bài 1:
Xây dựng class
o SinhVien(mã số, họ tên, năm sinh, mã lớp, điểm trung bình) và hàm NhapTT(), InTT()
o CanBo(mã số, họ tên, năm sinh, hệ số lương, chuyên môn) và hàm NhapTT(), InTT()
Phân tích điểm chung để xây dựng class Nguoi, và class SinhVien, CanBo thừa kế điểm chung này thay vì phải lập trình lại
Chương trình cho phép nhập và in thông tin một sinh viên, một giáo viên
Bài 2:
Xây dựng class
o MayTinh (mã, tên, năm sản xuất, năm bảo hành) và hàm NhapTT(), InTT()
o DungCuHocTap (mã, tên, năm sản xuất, chất liệu) và hàm NhapTT(), InTT()
Phân tích điểm chung để xây dựng class DoVat, và class MayTinh, DungCuHocTap thừa kế điểm chung này thay vì phải lập trình lại
Chương trình cho phép nhập và in thông tin n máy tính và n dụng cụ học tập.
Bài 3:
Xây dựng class
o PhongLyThuyet (mã, tên, số chỗ ngồi, số cửa sổ, tên máy chiếu) và hàm NhapTT(), InTT()
o PhongThucHanh (mã, tên, số chỗ ngồi, số máy lạnh, hiệu máy tính) và hàm NhapTT(), InTT()
Phân tích điểm chung để xây dựng class Phong, và class PhongLyThuyet, PhongThucHanh thừa kế điểm chung này thay vì phải lập trình lại
Chương trình cho phép nhập và in thông tin 1 phòng lý thuyết và một phòng thực hành. Bài tập lớn
Phân tích theo hướng đối tượng, có áp dụng các tính chất bao gói, thừa kế, đa hình và ảo hóa để giải quyết công việc sau.
Xây dựng chương trình quản lý thông tin sinh viên, lớp học và giáo viên chủ nhiệm trong các trường học
Sinhvien (mã số, họ tên, năm sinh, điểm trung bình)
CanBo(mã sô, họ tên, năm sinh, hệ số lương, chuyên môn)
LopHoc(mã lớp, tên lớp, sỉ số, danh sách sinh viên trong lớp, thông tin 1 cán bộ là giáo viên chủ nhiệm lớp)
Chương trình cho phép nhập/in thông tin của n lớp, biết rằng danh sách sinh viên trong 1 lớp phải được sắp tự động theo thứ tự điểm trung bình giảm dần.

augustion_ptn

Posts : 634
Thanked : 100
Gia Nhập 27/08/2010

Tài Sản
Thú nuôi:

http://thanhnhancomputer.freevnn.com

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết