Mình có 1 bài tập như sau: xây dựng lớp phân số gồm các thuộc tính : tử số & mẫu số, các phương thức là: nhập phân số, kiểm tra tính hợp lệ của phân số, in phân số ra màn hình, cộng, trừ, nhân, chia, hai phân số bất kì trong n phân số được nhập vào.
Mình làm 1 hồi xong bài này rồi build thì thấy 25 lỗi. các dạng lỗi là:
(lỗi 1) 'in' : function does not take 1 parameters.
(lỗi 2) '-=' : left operand must be l-value.
(lỗi 3) '/=' : illegal, right operand has type 'int (__thiscall ps::*)(void)'.
(lỗi 4) '=' : left operand must be l-value.
Bấy nhiêu lỗi đó thui, mình sửa không được. Các bạn sửa giúp mình và giải thích tại sao lại sửa như thế nhá!
Dưới đây là các file:
class.h
Mã:
#pragma once class ps { int ts_,ms_;public: ps(void); ~ps(void); void tm(int ts,int ms); int tuso(); int mauso();};
class.cpp
Mã:
#include "class.h"#include <iostream> ps::ps(void) { ts_,ms_;}ps::~ps(void) {}void ps::tm(int ts,int ms) { this->ts_ = ts; this->ms_ = ms;}int ps::tuso() { return this->ts_;}int ps::mauso() { return this->ms_;}
file.cpp
Mã:
#include <iostream>#include <conio.h>#include "class.h" void nhap(ps *pS, int n);void in(ps *pS, int n);ps rutgon(ps Ps);ps operator+(ps ps1,ps ps2);ps operator-(ps ps1,ps ps2);ps operator*(ps ps1,ps ps2);ps operator/(ps ps1,ps ps2); int main() { int n,a,b; aa:std::cout << "Nhap vao so luong phan so: "; std::cin >> n; ps *Ps = new ps[n+1]; if (Ps == NULL) { std::cout << "Cap phat bo nho bi loi! "; getch(); system("cls"); goto aa; } nhap(Ps,n); std::cout << "
Cac phan so vua nhap:
"; for (int i = 1; i <= n; i++) { in(Ps[i]);// (lỗi 1) std::cout << '
'; } std::cout << "
Ban muon thuc hien phep tinh voi cac phan so nao? (<Gia tri ps1><dau cach><gia tri ps2>) "; std::cin >> a >> b; in(Ps[a]); std::cout << " + "; in(Ps[b]); std::cout << " = "; in(Ps[a] + Ps[b]); std::cout << '
';//(lỗi 1) in(Ps[a]); std::cout << " - "; in(Ps[b]); std::cout << " = "; in(Ps[a] - Ps[b]); std::cout << '
';//(lỗi 1) in(Ps[a]); std::cout << " * "; in(Ps[b]); std::cout << " = "; in(Ps[a] * Ps[b]); std::cout << '
';//(lỗi 1) if (Ps[b].tuso() == 0) std::cout << "Phep chia bi loi
"; else{ in(Ps[a]); std::cout << " / "; in(Ps[b]); std::cout << " = "; in(Ps[a] / Ps[b]); std::cout << '
';//(lỗi 1)} getch(); return 0;} void nhap(ps *pS, int n) { int t,m; for (int i = 1; i <= n; i++) { t:std::cout << "Nhap phan so thu " << i << "<tu so><dau cach><mauso> : "; std::cin >> t >> m; while (m == 0) { std::cout << "Mau so khong the bang 0 vui long nhap lai.
"; goto t; } pS[i].tm(t,m); }}void in(ps &pS) { std::cout << pS.tuso() << "/" << pS.mauso();}ps rutgon(ps Ps) { ps ps1 = Ps; while (ps1.tuso() != ps1.mauso()) { if (ps1.tuso() > ps1.mauso()) ps1.tuso() -=ps1.mauso();// (lỗi 2) else ps1.mauso() -= ps1.tuso();// (lỗi 2) } Ps.tuso() /= ps1.tuso();// (lỗi 3) Ps.mauso() /= ps1.mauso(); //(lỗi 3) return Ps;}ps operator+ (ps ps1, ps ps2) { ps Ps; Ps.tuso() = ps1.tuso() * ps2.mauso() + ps2.tuso() * ps1.mauso();// (lỗi 4) Ps.mauso() = ps1.mauso() * ps2.mauso(); // (lỗi 4) return rutgon(Ps);}ps operator- (ps ps1, ps ps2) { ps Ps; Ps.tuso() = ps1.tuso() * ps2.mauso() - ps2.tuso() * ps1.mauso();// (lỗi 4) Ps.mauso() = ps1.mauso() * ps2.mauso(); // (lỗi 4) return rutgon(Ps);}ps operator* (ps ps1, ps ps2) { ps Ps; Ps.tuso() = ps1.tuso() * ps2.tuso();// (lỗi 4) Ps.mauso() = ps1.mauso() * ps2.tuso(); // (lỗi 4) return rutgon(Ps);}ps operator/ (ps ps1, ps ps2) { ps Ps; Ps.tuso() = ps1.tuso() * ps2.mauso(); // (lỗi 4) Ps.mauso() = ps1.mauso() * ps2.tuso();// (lỗi 4) return rutgon(Ps);}
Mong các bạn giúp mình.
View more random threads:
NGUỒN SỈ ÁO KHOÁC DENIM NỮ TPHCM CHẤT LƯỢNG CAO Bạn muốn nhập sỉ áo khoác denim nữ để bắt đầu việc buôn bán Online phong cách nhưng lại chưa có kinh nghiệm, muốn sắm xưởng sỉ xống áo vừa có thể giải...
Xưởng sỉ áo khoác jeans denim giá...