nguyenvantho Tổng Thống
Bài gửi : 376 Age : 35 Đến từ : DHSP HUE Tổng điêm: : 452 Được cảm ơn: : 29 Tham gia: : 14/01/2009
| Tiêu đề: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Sun 19 Apr 2009 - 6:15 | |
| CÁC BÀI TẬP TRONG SÁCH (Các bạn up lên để cùng tranh luận nhé) | |
|
nguyenvantho Tổng Thống
Bài gửi : 376 Age : 35 Đến từ : DHSP HUE Tổng điêm: : 452 Được cảm ơn: : 29 Tham gia: : 14/01/2009
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Sun 19 Apr 2009 - 16:44 | |
| Bài 1: Class Time - Code:
-
Class Time { int h,m,s; // khai báo thuộc tính giờ phút và giây public: time() // hàm tạo mặc định {h=m=s=0 } time(int gio; int phut; int giay) // hàm tạo { h=gio; m=phut; s=giay; } void normalize() // hàm chuẩn hoá dữ liệu { if (h>=24) h=h%24; if (m>=60) { h=h+m/60 // giờ bằng h và số phút chia lấy nguyên cho 60 m=m%60 } if (s>=60) { m=m+s/60 s=s%60 } } void advance( int gio; int phut; int giay) // hàm tăng thời gian hiện tại { h=h+gio; if (h>=24) h=h%24; m=m+phut; if (m>=60) { h=h+m/60; m=m%60; } s=s+giay; if (s>=60) { m=m+s/60; s=s%60; } } void reset( int gio; int phut; int giay) { h=gio; m=phut; s=giay; } void print() { cout <<" ngay hien tai: " << h<<" : "<<m<<" : " << s; } Bài này mình thiếu hàm truy cập các bạn viết và sửa giùm nhé mình sẽ dựa trên cơ sỏ đó đính chính lại sau. | |
|
nguyenvantho Tổng Thống
Bài gửi : 376 Age : 35 Đến từ : DHSP HUE Tổng điêm: : 452 Được cảm ơn: : 29 Tham gia: : 14/01/2009
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Sun 19 Apr 2009 - 17:21 | |
| Bài tập 2: Class date
- Code:
-
Class date { int d,m,y; // khai báo thuộc tính ngày tháng năm là private public: date() { d=m=y=0 } date( int ngay; int thang ; int nam) { d=ngay; m=thang; y=nam; } int daysIn( int thang) // ham nay tra ve so ngay trong thang bat ky { switch thang%12 { case 1: return 31; breack; case 2 : //de xem da nam nhuan tinh nhu the nao nhi case 3 : return 31 ; breack; case 4 : return 30; breack; case 5 : return 31; breack; case 6 : return 30; breack; case 7 : return 31; breack; case 8 :return 31 ; breack; case 9 : return 30; breack; case 10 : return 31; breack; case 11: return 30 ; breack; case 12 : return 31; breack; } } void normalize() { if ( d>=daysIn(m)) { m=m+d/daysIn(m); d=d%daysIn(m); } if ( m>12) { y++; m=m%12; } if (y<1) y=1; } void advance( int ngay; int thang; int nam) { d=d+ngay; if (d>daysIn(m)) { m=m+d/daysIn(m); d=d%daysIn(m); } m=m+thang; if ( m>12) { y=y+m/12; m=m%12; } y=y+nam; } void reset( int ngay; int thang; int nam) { d=ngay; m=thang; y=nam; } void print() { cout<<"ngay hien tai:"<<d<<":"<<m<<":"<<y; } }
| |
|
nguyenvantho Tổng Thống
Bài gửi : 376 Age : 35 Đến từ : DHSP HUE Tổng điêm: : 452 Được cảm ơn: : 29 Tham gia: : 14/01/2009
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Sun 19 Apr 2009 - 18:35 | |
| bài tập 4 trang 77 về lớp Đa Thức: - Code:
-
#include <iostream.h> #include <conio.h> #include <math.h>
class DT { private: int n; double *a; public: DT() { this->n=0; this->a=NULL; } DT(int n1) { this->n=n1; this->a=new double[n1+1]; } friend ostream& operator<<(ostream& os,const DT &d); friend istream& operator>>(istream& is,DT &d); DT operator-(); DT operator+(const DT &d2); DT operator-(DT d2); DT operator*(const DT &d2); double operator^(const double &x); double operator[](int i) { if(i<0) return double(n); else return a[i]; } }; // Ham tinh gia tri da thuc. double F(DT d,double x) { double s=0.0,t=1.0; int n; n=int(d[-1]); for(int i=0;i<=n;i++) { s+=d[i]*t; t*=x; } return s; } ostream& operator<<(ostream& os,const DT &d) { os<<"- Cac he so (tu ao) : "; for(int i=0;i<=d.n;i++) os<<d.a[i]<<" "; return os; } istream& operator>>(istream& is,DT &d) { if(d.a!=NULL) delete d.a; cout<<" - Bac da thuc : "; cin>>d.n; d.a=new double[d.n++]; cout<<" Nhap cac he so da thuc : \n"; for(int i=0;i<=d.n;i++) { cout<<" He so bac "<<i<<" = "; is>>d.a[i]; } return is; } DT DT::operator-() { DT p(this->n); for(int i=0;i<=n;i++) p.a[i]=-a[i]; return p; } DT DT::operator+(const DT &d2) { int k,i; k=n>d2.n?n:d2.n; DT d(k); for(i=0;i<=k;i++) if(i<=n&&i<=d2.n) d.a[i]=a[i]+d2.a[i]; else if(i<=n) d.a[i]=a[i]; else d.a[i]=d2.a[i]; i=k; while(i>0&&d.a[i]==0.0) i--; d.n=i; return d; } DT DT::operator-(DT d2) { return (*this+(-d2)); } DT DT::operator*(const DT &d2) { int k,i,j; DT d(k); for(i=0;i<=k;i++) for(i=0;i<=n;i++) for(j=0;j<=d2.n;j++) d.a[i+j]+=a[i]*d2.a[j]; return d; } double DT::operator^(const double &x) { double s=0.0,t=1.0; for(int i=0;i<=n;i++) { s+=a[i]*t; t*=x; } return s; } void main() { DT p,q,r,s,f; double x1,x2,g1,g2; clrscr(); cout<<"\n Nhap da thuc P : "; cin>>p; cout<<"\n Da thuc P : "<<p; cout<<"\n Nhap da thuc Q : "; cin>>q; cout<<"\n Da thuc Q : "<<q; cout<<"\n Nhap da thuc r "<<r; cout<<"\n Nhap da thuc S : "; cin>>s; cout<<"\n Da thuc S : "<<s; f=-(p+q)*(r-s); cout<<"\n Nhap so thuc X1 : "; cin>>x1; cout<<"\n Nhap so thuc X2 : "; cin>>x2; g1=f^x1; g2=F(f,x2); cout<<"\n Da thuc f : "<<f; cout<<"\n f("<<x1<<") = "<<g1; cout<<"\n f("<<x2<<") = "<<g2; getch(); }
Được sửa bởi nguyenvantho ngày Mon 20 Apr 2009 - 14:40; sửa lần 1. | |
|
nguyenvantho Tổng Thống
Bài gửi : 376 Age : 35 Đến từ : DHSP HUE Tổng điêm: : 452 Được cảm ơn: : 29 Tham gia: : 14/01/2009
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Sun 19 Apr 2009 - 21:26 | |
| - Code:
-
Class String { char A[255]; // khai báo mảng 255 ki tự kiểu char; int i; // một biến i quản lý độ dài hiện thời của mảng string; string() { } string( int A[], int i) { for (int j=1; j<i; j++) A[j]=""; } // cái hàm truy cập sao mà quên mất; void print() // hàm này hiển thị một chuỗi string; | |
|
vulongquoc Trung úy
Bài gửi : 90 Age : 36 Đến từ : Đại học Sư Phạm Huế Tổng điêm: : 155 Được cảm ơn: : 7 Tham gia: : 12/02/2009
| Tiêu đề: class ngay thang Mon 20 Apr 2009 - 6:09 | |
| mình vừa sữ lại: - Code:
-
#include<iostream.h> #include<conio.h> #include<stdio.h> class date { int d,m,y; // khai báo thu?c tính ngày tháng nam là private public: date() { d=m=y=0; } date(int ngay,int thang,int nam) { d=ngay; m=thang; y=nam; } int daysIn( int thang, int nam) // ham nay tra ve so ngay trong thang bat ky { switch (thang%12) //[color=red][size=24]cach khai bao o day bao loi ma tim khong ra[/size][/color] { case 1: return 31; breack; case 2 :if(nam%4==0) return 29;else return 28;breack; //de xem da nam nhuan tinh nhu the nao nhi case 3 : return 31 ; breack; case 4 : return 30; breack; case 5 : return 31; breack; case 6 : return 30; breack; case 7 : return 31; breack; case 8 :return 31 ; breack; case 9 : return 30; breack; case 10 : return 31; breack; case 11: return 30 ; breack; case 12 : return 31; breack; } } void normalize() { if ( d>=daysIn(m)) { m=m+d/daysIn(m); d=d%daysIn(m); } if ( m>12) { y++; m=m%12; } if (y<1) y=1; } void advance( int ngay,int thang,int nam) { d=d+ngay; if (d>daysIn(m)) { m=m+d/daysIn(m); d=d%daysIn(m); } m=m+thang; if ( m>12) { y=y+m/12; m=m%12; } y=y+nam; } void reset( int ngay,int thang,int nam) { d=ngay; m=thang; y=nam; } void print() { cout<<"ngay hien tai:"<<d<<":"<<m<<":"<<y; } } Lần sau nhớ đừng để lỗi ở hàm nha, nhầm lẫn giữa chấm phẩy với châm. | |
|
nguyenvantho Tổng Thống
Bài gửi : 376 Age : 35 Đến từ : DHSP HUE Tổng điêm: : 452 Được cảm ơn: : 29 Tham gia: : 14/01/2009
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Mon 20 Apr 2009 - 14:39 | |
| Hàm truy cập không có à viết cái hàm truy cập đi? Hôm trước thầy nói mà sao quên mất về nhà nghĩ mãi không viết ra hình như là set() và Get() gì đó mà không biết viết như thế nào! Tìm hiểu giùm nhé! | |
|
cth52hau Binh nhì
Bài gửi : 5 Tổng điêm: : 5 Được cảm ơn: : 0 Tham gia: : 23/06/2012
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) Sat 23 Jun 2012 - 8:32 | |
| | |
|
Sponsored content
| Tiêu đề: Re: MỤC BÀI TẬP VỀ "LỚP" TRONG C++(GIÁO TRÌNH) | |
| |
|