[OOP] - Bài Tập Phân Số - Overload Toán Tử


Diễn đàn chia sẻ kiến thức, kinh nghiệm về IT và cuộc sống!
 
Trang ChínhGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập
Top posters
Sakura (1124)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
hotboy (705)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
Già Làng (373)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
con_ca_nho90 (289)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
that_true (154)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
theanhkkt (143)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
phamay (137)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
lovelonelyman (134)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
o0ovioletstaro0o (128)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
stevenhung (122)
[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_lcap[OOP] - Bài Tập Phân Số - Overload Toán Tử Voting_bar[OOP] - Bài Tập Phân Số - Overload Toán Tử Vote_rcap 
Âm - Dương lịch
Clock
Logo
11TH02 Pro!
Liên kết
Tin tức 60s
Tin công nghệ
Thời sự 24h
Game Moblie

Share
 

 [OOP] - Bài Tập Phân Số - Overload Toán Tử

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Sakura

[OOP] - Bài Tập Phân Số - Overload Toán Tử Stars7
Sakura

Thú CƯng : [OOP] - Bài Tập Phân Số - Overload Toán Tử I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 34
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[OOP] - Bài Tập Phân Số - Overload Toán Tử Empty
Bài gửiTiêu đề: [OOP] - Bài Tập Phân Số - Overload Toán Tử   [OOP] - Bài Tập Phân Số - Overload Toán Tử I_icon_minitime20/7/2010, 09:04

Đây là bài tập bữa thực hành cô cho!
thiết kế 1 Class PHANSO, thực hiện các thao tác nhập xuất, tối giản, đổi ra số thực và overload các toán tử ( +, -, *, /), và mình đã làm quá trời toán tử luôn rồi, có cả +=, -=, *=, /=, ==, !=, >, <, >=, <=, >>, << và .... Minh họa cực kỳ dề hiểu!
CODE:
Code:
#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;
int USCLN(int a, int b)
{
 while(a != 0 && b != 0)
 {
  if(a > b)
  a = a - b;
  else
  b = b - a;
 }
 return a + b;
}
class PHANSO
{
private:
 int tu;
 int mau;
public:
 friend ostream &operator<<(ostream &stream, PHANSO ob);
 friend istream &operator>>(istream &stream, PHANSO &ob);
 PHANSO()
 {
  this->tu = 0;
  this->mau = 1;
 }
 void ToiGian()
 {
  int usc = USCLN(abs(this->tu), abs(this->mau));
  this->tu = this->tu / usc;
  this->mau = this->mau / usc;
 }
 float DinhTri()
 {
  return (float)this->tu / (float)this->mau;
 }
 void Input()
 {
  cout<<"\nNhap Tu: ";
  cin>>this->tu;
  do
  {
  cout<<"Nhap Mau: ";
  cin>>this->mau;
  }while(this->mau == 0);
 }
 void Output()
 {
  cout<<this->tu<<"/"<<this->mau<<endl;
 }
 void operator= (PHANSO A)
 {
  this->tu = A.tu;
  this->mau = A.mau;
 }
 PHANSO operator+ (PHANSO A)
 {
  PHANSO C;
  C.tu = this->tu * A.mau + this->mau * A.tu;
  C.mau = this->mau * A.mau;
  return C;
 }
 void operator+= (PHANSO A)
 {
  this->tu = this->tu * A.mau + this->mau * A.tu;
  this->mau = this->mau * A.mau;
 }
 PHANSO operator- (PHANSO A)
 {
  PHANSO C;
  C.tu = this->tu * A.mau - this->mau * A.tu;
  C.mau = this->mau * A.mau;
  return C;
 }
 void operator-= (PHANSO A)
 {
  this->tu = this->tu * A.mau - this->mau * A.tu;
  this->mau = this->mau * A.mau;
 }
 PHANSO operator* (PHANSO A)
 {
  PHANSO C;
  C.tu = this->tu * A.tu;
  C.mau = this->mau * A.mau;
  return C;
 }
 void operator*= (PHANSO A)
 {
  this->tu = this->tu * A.tu;
  this->mau = this->mau * A.mau;
 }
 PHANSO operator/ (PHANSO A)
 {
  PHANSO C;
  C.tu = this->tu * A.mau;
  C.mau = this->mau * A.tu;
  return C;
 }
 void operator/= (PHANSO A)
 {
  this->tu = this->tu * A.mau;
  this->mau = this->mau * A.tu;
 }
 bool operator== (PHANSO A)
 {
  if(this->tu * A.mau == this->mau * A.tu)
  return true;
  return false;
 }
 bool operator!= (PHANSO A)
 {
  if(this->tu * A.mau != this->mau * A.tu)
  return true;
  return false;
 }
 bool operator> (PHANSO A)
 {
  if(this->tu * A.mau > this->mau * A.tu)
  return true;
  return false;
 }
 bool operator< (PHANSO A)
 {
  if(this->tu * A.mau < this->mau * A.tu)
  return true;
  return false;
 }
 bool operator>= (PHANSO A)
 {
  if(this->tu * A.mau >= this->mau * A.tu)
  return true;
  return false;
 }
 bool operator<= (PHANSO A)
 {
  if(this->tu * A.mau <= this->mau * A.tu)
  return true;
  return false;
 }
};
ostream &operator<<(ostream &stream, PHANSO PS)
{
 stream << PS.tu << "/" << PS.mau;
 return stream;
}
istream &operator>>(istream &stream, PHANSO &PS)
{
  cout << "\nNhap Tu: ";
  stream >> PS.tu;
  do
  {
  cout << "Nhap Mau: ";
  stream >> PS.mau;
  }while(PS.mau == 0);
  return stream;
}

int main()
{
 cout<<"-----BAI TAP CAI DAT LOP PHAN SO VA CAS PHEP TOAN CO BAN-------\n\n";
 cout<<"\n----------------Programming By Edward_Thien -------------------\n\n\n";
 //Cac Khai Bao Doi Tuong
 PHANSO A, B, C, D, E;
 PHANSO TONG, HIEU, TICH, THUONG;
 //Cac Phuong Thuc In, Out
 cout<<"\n--- Cac Phuong Thuc In, Out ---\n";
 cout<<"\nNhap Phan So A: ";
 A.Input();
 A.Output();
 cout<<"\nNhap Phan So B: ";
 B.Input();
 B.Output();
 //Phuong Thuc Gan
 cout<<"\n------- Phuong Thuc Gan C = A ----------\n";
 C = A;
 cout<<"\nC = A = ";
 C.Output();
 //Phuong Thuc Dinh Tri
 cout<<"\n-------- Phuong Thuc Dinh Tri ------------\n";
 cout<<"\nPhan So C Co Gia Tri = "<<C.DinhTri();
 //Cac Phep Toan So Sanh
 cout<<"\n-------- Cac Phep Toan So Sanh ------------\n";
 if(A > B)
  cout<<"\nPhan So A > Phan So B\n";
 else if(A < B)
  cout<<"\nPhan So A < Phan So B\n";
 else if(A == B)
  cout<<"\nPhan So A == Phan So B\n";
 //Cac Phep Toan Co Ban 2 Ngoi
 cout<<"\n---------- Cac Phep Toan Co Ban 2 Ngoi ----------\n";
 TONG = A + B;
 TONG.ToiGian();
 cout<<"\nTONG = A + B = ";
 TONG.Output();
 HIEU = A + B;
 HIEU.ToiGian();
 cout<<"\nHIEU = A - B = ";
 HIEU.Output();
 TICH = A * B;
 TICH.ToiGian();
 cout<<"\nTICH = A * B = ";
 TICH.Output();
 THUONG = A / B;
 THUONG.ToiGian();
 cout<<"\nTHUONG = A / B = ";
 THUONG.Output();
 //Cac Phep Toan Phuc Hop
 cout<<"\n-------- Cac Phep Toan Phuc Hop ----------\n";
 TONG += A;
 TONG.ToiGian();
 cout<<"\nTONG += A = ";
 TONG.Output();
 HIEU -= A;
 HIEU.ToiGian();
 cout<<"\nHIEU -= A = ";
 HIEU.Output();
 TICH *= A;
 TICH.ToiGian();
 cout<<"\nTICH *= A = ";
 TICH.Output();
 THUONG /= A;
 THUONG.ToiGian();
 cout<<"\nTHUONG /= A = ";
 THUONG.Output();
 //Overload Toan Tu >> & <<
 cout<<"\n------- Overload Toan Tu >> & << --------\n";
 cout<<"\nNhap Phan So D: ";
 cin>>D;
 cout<<D;
 cout<<"\nNhap Phan So E: ";
 cin>>E;
 cout<<E;
 cout<<"\n\n------------------------------KET THUC----------------------------------\n\n";
 _getch();
 return 0;
}
Về Đầu Trang Go down
Sakura

[OOP] - Bài Tập Phân Số - Overload Toán Tử Stars7
Sakura

Thú CƯng : [OOP] - Bài Tập Phân Số - Overload Toán Tử I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 34
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[OOP] - Bài Tập Phân Số - Overload Toán Tử Empty
Bài gửiTiêu đề: Re: [OOP] - Bài Tập Phân Số - Overload Toán Tử   [OOP] - Bài Tập Phân Số - Overload Toán Tử I_icon_minitime20/7/2010, 09:09

để thử nốt cách này coi cái nào đẹp nha anh em! (Sorry Spam)[size=9]
ai muốn đẹp thì down file CPP này về nha!
[You must be registered and logged in to see this link.]
chạy trên Visual C++ mới thấy đẹp!
[/size]
Về Đầu Trang Go down
hotboy

[OOP] - Bài Tập Phân Số - Overload Toán Tử Stars7
hotboy

Thú CƯng : [OOP] - Bài Tập Phân Số - Overload Toán Tử Hippopotamus-icon
Nam Aries

Số bài viết : 705
Điểm : 1043
Được cảm ơn : 9
Ngày sinh : 21/03/1990
Tham gia ngày : 13/05/2010
Tuổi : 34
Đến từ : BDU

[OOP] - Bài Tập Phân Số - Overload Toán Tử Empty
Bài gửiTiêu đề: Re: [OOP] - Bài Tập Phân Số - Overload Toán Tử   [OOP] - Bài Tập Phân Số - Overload Toán Tử I_icon_minitime20/7/2010, 11:51

Code:
friend ostream &operator<<(ostream &stream, PHANSO ob);
 friend istream &operator>>(istream &stream, PHANSO &ob);
2 cái này là gì z

sao k cho thêm mấy cái chú thích cho dễ hiểu
mấy bửa nay toàn học bài thi nên chưa có coi mấy cái này nên nhìn thấy chóng mặt quá [You must be registered and logged in to see this image.]
Về Đầu Trang Go down
Sakura

[OOP] - Bài Tập Phân Số - Overload Toán Tử Stars7
Sakura

Thú CƯng : [OOP] - Bài Tập Phân Số - Overload Toán Tử I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 34
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[OOP] - Bài Tập Phân Số - Overload Toán Tử Empty
Bài gửiTiêu đề: Re: [OOP] - Bài Tập Phân Số - Overload Toán Tử   [OOP] - Bài Tập Phân Số - Overload Toán Tử I_icon_minitime20/7/2010, 13:13

đó là cách để Overload toán tử cin>> và cout<< đó mà, ta phải kết hợp cả class PHANSO và cái lớp IO nữa mới đc - đó là lý do dùng hàm bạn, mới tham khảo thôi, cô chưa dạy nên nhiều khi mình nói không chính xác lắm!
Về Đầu Trang Go down
Sponsored content




[OOP] - Bài Tập Phân Số - Overload Toán Tử Empty
Bài gửiTiêu đề: Re: [OOP] - Bài Tập Phân Số - Overload Toán Tử   [OOP] - Bài Tập Phân Số - Overload Toán Tử I_icon_minitime

Về Đầu Trang Go down
 

[OOP] - Bài Tập Phân Số - Overload Toán Tử

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

 Similar topics

-
» Đối tượng toàn cục - Constructor vs Destructor
» [AI] Bài Toán Sắp Lịch Thi Đấu
» đề thi mẫu PTTKTT
» Tài liệu AN TOÀN MẠNG
» Source Bài Toán Giải Tam Giác

Permissions in this forum:Bạn không có quyền trả lời bài viết
IT World! :: HỌC TẬP :: Học Kỳ IV :: Lập Trình Hướng Dối Tượng(OOP)-