1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu ĐỀ VÀ ĐÁP ÁN MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG pdf

16 9,9K 261

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 108 KB

Nội dung

Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT Bài 1:Xây dựng lớp PHÂN SỐ gồm các phương thức nhập phân số,cộng trừ nhân chia phân số. Trên cơ sở lớp đã xây dựng viết chương trình thực hiện: nhập 5 phân số q,p,z,u,v; tính phân số s=(p-q*z)/(u+v) Bài Làm # include <iostream.h> # include <conio.h> # include <math.h> class phanso { int tu,mau; public: void in(); void nhap(); friend phanso nhan(phanso p1,phanso p2); friend phanso tru(phanso p1,phanso p2); friend phanso cong(phanso p1,phanso p2); friend phanso chia(phanso p1,phanso p2); friend phanso rutgon(phanso p1); friend int uscln(int x,int y); }; int uscln(int x,int y) { int min; x=abs(x); y=abs(y); if(x<y) min=x; else min=y; for(int i=min;i>=1;i--) if(x%i==0&&y%i==0) break; return i; } phanso rutgon(phanso p) { int a; a=uscln(p.tu,p.mau); p.tu=p.tu/a; p.mau=p.mau/a; return p; } void phanso::nhap() { cout<<"\n nhap tu phan so:";cin>>tu; cout<<"\n nhap mau phan so:";cin>>mau; } void phanso::in() { - 1 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT cout<<tu<<"/"<<mau; } phanso nhan(phanso p1,phanso p2) { phanso p; p.tu=p1.tu*p2.tu; p.mau=p1.mau*p2.mau; return rutgon(p); } phanso tru(phanso p1,phanso p2) { phanso p; p.tu=p1.tu*p2.mau-p1.mau*p2.tu; p.mau=p1.mau*p2.mau; return rutgon(p); } phanso cong(phanso p1,phanso p2) { phanso p; p.tu=p2.mau*p1.tu+p1.mau*p2.tu; p.mau=p1.mau*p2.mau; return rutgon(p); } phanso chia(phanso p1,phanso p2) { phanso p; p.tu=p1.tu*p2.mau; p.mau=p1.mau*p2.tu; return p; } void main() {clrscr(); phanso q,p,u,z,v,a,b,c,s; cout<<"\n nhap phan so p:"; p.nhap(); cout<<"\n nhap phan so q:"; q.nhap(); cout<<"\n nhap phan so z:"; z.nhap(); cout<<"\n nhap phan so u:"; u.nhap(); cout<<"\n nhap phan so v:"; v.nhap(); a=cong(u,v); cout<<"\n cong="; a.in(); b=nhan(q,z); cout<<"\n tich="; - 2 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT b.in(); c=tru(p,b); cout<<"\n tru="; c.in(); s=chia(c,a); cout<<"\n ket qua phan so s="; s.in(); getch(); } Bài 2: Xây dựng một lớp diểm gồm các thuộc tính :hoành độ x,tung độ y.các phương thức gồm nhập, in toạ độ,độ dài hai điểm ; Viết chương trình nhập toạ độ một dãy điểm ,sau đó tìm một cặp điểm xa nhất Lời giải # include <iostream.h> # include <conio.h> # include <iomanip.h> # include <math.h> class diem { private: int x,y; public: void nhap(); void in(); double dodai(diem a); }; void diem::nhap() { cout<<"\n nhap hoanh do:";cin>>x; cout<<"\n nhap tung do:";cin>>y; } void diem::in() { cout<<"\n \t"<<x<<setw(5)<<y; } double diem::dodai(diem a) { return sqrt(pow(x-a.x,2)+pow(y-a.y,2)); } void main() { clrscr(); int n; diem *a=new diem[n+1]; cout<<"\n nhap vao so luong diem:";cin>>n; for(int i=1;i<=n;i++) { - 3 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT cout<<"\n nhap vao toa do diem:"<<i; a[i].nhap(); } double max=a[1].dodai(a[2]); int imax=1,jmax=2; for(i=1;i<n;i++) for(int j=i+1;j<=n;j++) if(a[i].dodai(a[j])>max) { max=a[i].dodai(a[j]); imax=i; jmax=j; } cout<<"\n cap diem xa nhau nhat la:"; cout<<"\n dinh thu:"<<imax; a[imax].in(); cout<<"\n dinh thu :"<<jmax; a[jmax].in(); cout<<"\n voi khoang cach la:"<<a[imax].dodai(a[jmax]); getch(); } Bài 3: Với lớp điểm đã xây dựng ở bài trước hãy xây dựng nhập dãy điểm sau đó tìm tam giác có diện tích chu vi lớn nhất có các đỉnh là các điểm vừa nhập Trả lời # include <iostream.h> # include <conio.h> # include <iomanip.h> # include <math.h> class diem { private: int x,y; public: void nhap(); void in(); double dodai(diem d); friend double dientich(diem d1,diem d2,diem d3); friend double chuvi(diem d1,diem d2,diem d3); }; void diem::nhap() { cout<<"\n nhap hoanh do:";cin>>x; cout<<"\n nhap tung do:";cin>>y; } void diem::in() { - 4 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT cout<<"\n \t"<<x<<setw(5)<<y; } double diem::dodai(diem d) { return sqrt(pow(x-d.x,2)+pow(y-d.y,2)); } double dientich(diem d1,diem d2,diem d3) { double a,b,c,p; a=d1.dodai(d2); b=d2.dodai(d3); c=d3.dodai(d1); p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } double chuvi(diem d1,diem d2,diem d3) { double a,b,c; a=d1.dodai(d2); b=d2.dodai(d3); c=d3.dodai(d1); return (a+b+c); } void main() { clrscr(); int n; diem *d=new diem[n+1]; cout<<"\n nhap vao so luong diem:";cin>>n; for(int i=1;i<=n;i++) { cout<<"\n nhap vao toa do diem:"<<i; d[i].nhap(); } double max=dientich(d[1],d[2],d[3]); double max1=chuvi(d[1],d[2],d[3]); int imax=1,jmax=2,kmax=3; for (i=1;i<n-1;i++) for (int j=i+1;j<n;j++) for (int k=j+1;k<=n;k++) if (dientich(d[i],d[j],d[k])>max&&chuvi(d[1],d[2],d[3])>max1) { max=dientich(d[1],d[2],d[3]); max1=chuvi(d[1],d[2],d[3]); imax=i; jmax=j; kmax=k; - 5 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT } cout<<"\n tam giac co chu vi va dien tich lon nhat la:"; cout<<"\n dinh thu:"<<imax; d[imax].in(); cout<<"\n dinh thu :"<<jmax; d[jmax].in(); cout<<"\n dinh thu :"<<kmax; d[kmax].in(); cout<<"\n voi dien tich:"<<dientich(d[imax],d[jmax],d[kmax]); cout<<"\n voi chu vi la:"<<chuvi(d[imax],d[jmax],d[kmax]); getch(); } Bài 4: Tạo lớp điểm gồm các thuộc tính :hoành độ x,tung độ y;các phương thức bao gồm :nhập toạ độ ,in toạ độ . viết chương trình cho phép nhập toạ độ hai điểm A,B thuộc lớp điểm a: Tính giá trị hàm số F(x,y)=3x+12y tại A,B. b: Tính độ dài 0A 0B (với 0 là gốc toạ độ mặt phẳng 0xy) Bài làm : # include <iostream.h> # include <conio.h> # include <math.h> # include <iomanip.h> class diem{ int x,y; public: void nhap() { cout<<"\n nhap hoanh do="; cin>>x; cout<<"\n nhap tung do=";cin>>y; } void in() { cout<<endl<<setw(10)<<x<<setw(10)<<y; } friend double f(diem d){ return (3*d.x+12*d.y); } ; friend double dodai(diem d){ return (sqrt(pow(d.x,2)+pow(d.y,2))); } ; } ; void main(){ clrscr(); diem A,B; A.nhap(); B.nhap(); - 6 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT A.in(); B.in(); float FA,FB,OA,OB; FA=f(A); FB=f(B); OA=dodai(A); OB=dodai(B); cout<<"\n ham so tai A="<<FA; cout<<"\n ham so tai B="<<FB; cout<<"\n do dai OA="<<OA; cout<<"\n do dai OB="<<OB; getch(); } Bài 5: Xây dựng 2 lớp VT (vecto),MT(ma trận)và 3 hàm bạn để hực hiện thao tác trên hai lớp này : -hàm bạn với vecto dùng để in một vecto -hàm bạn với lớp MT dùng để in một ma trận viết chương trình nhập vào một ma trận vuông cấp n một vecto cấp n,sau đó thực hiện phép nhân ma trận với vecto vừa nhập Bài Làm: # include <iostream.h> # include <math.h> # include <iomanip.h> # include <conio.h> class matran; class vt; class matran { int n,a[100][100]; public: void nhapmt(); friend void inmt(matran a); friend vt tich(matran a,vt b); }; class vt { int n,b[100]; public: void nhapvt(); friend void invt(vt b); friend vt tich(matran a,vt b); }; void matran::nhapmt() { cout<<"\n Nhap ma tran vuong:"; cin>>n; for(int i=1;i<=n;i++) - 7 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT for(int j=1;j<=n;j++) { cout<<"\n Nhap A["<<i<<","<<j<<"]="; cin>>a[i][j]; } } void inmt(matran a) { for(int i=1;i<=a.n;i++) {cout<<"\n"; for(int j=1;j<=a.n;j++) cout<<setw(5)<<a.a[i][j]; } } void vt::nhapvt() { cout<<"\n nhap do dai vecto:"; cin>>n; for(int i=1;i<=n;i++) { cout<<"\n Nhap B["<<i<<"]="; cin>>b[i]; } } void invt(vt b) { for(int i=1;i<=b.n;i++) cout<<setw(5)<<b.b[i]; } vt tich(matran a,vt b) { int n=a.n; vt c; if(n!=b.n) return b; c.n=n; for(int i=1;i<=n;i++) { c.b[i]=0; for(int j=1;j<=n;j++) c.b[i]+=a.a[i][j]*b.b[i]; } return c; } void main() { clrscr(); - 8 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT matran a; vt b,c; a.nhapmt(); cout<<"\n Ma tran vua nhap la:"; inmt(a); b.nhapvt(); cout<<"\n Vecto vua nhap la:"; invt(b); cout<<"\n Ket qua phep nhan ma tran va Vector la:"; c=tich(a,b); invt(c); getch(); } Bài 6 :Tạo một lớp sinh viên có các phương thức thuộc tính Phương thức :nhập xuất tính DTB Thuộc tính :họ tên ,điểm, địa chỉ . Tạo cơ sở dữ liệu lưu 20 sv thuộc lớp vừa tạo. Tính SV có điểm trung bình cao nhất . In sinh viên theo thứ tự tăng dần của điểm trung bình Bài Làm: # include <iostream.h> # include <conio.h> # include <math.h> # include <iomanip.h> # include <stdio.h> class sv { private: char hoten[30]; float dt,dl,dh,dtb; public: void nhap(); void in(); float diemtb(); }; void sv::nhap() { cout<<"\n nhap vao ho ten:"; gets(hoten); cout<<"\n Nhap diem 3 mon Toan,Ly,Hoa:"; cin>>dt>>dl>>dh; } void sv::in() { cout<<"\n"<<hoten<<setw(10)<<"\n Diem TB:"<<dtb; } float sv::diemtb() { - 9 - Trường Cao Đẳng Bách Khoa Hưng Yên CĐ 5.2 - K3 - CNTT dtb=(dt+dl+dh)/3; return dtb; } void main() { clrscr(); int n; sv ds[20]; cout<<"\n nhap vao so luong sv";cin>>n; for(int i=1;i<=n;i++) { cout<<"\n nhap thong tin sinh vien thu:"<<i; ds[i].nhap(); } float max=ds[1].diemtb(); for(i=1;i<=n;i++) if(ds[i].diemtb()>=max) max=ds[i].diemtb(); cout<<"\n sinh vien co diem trung binh cao nhat la:"; for(i=1;i<=n;i++) if(ds[i].diemtb()==max) ds[i].in(); {for(i=1;i<n-1;i++) for(int j=i+1;j<=n;j++) if(ds[i].diemtb()>=ds[j].diemtb()) { sv tg=ds[i]; ds[i]=ds[j]; ds[j]=tg; } cout<<"\n danh sach sinh vien SX theo diem tb tang dan la:"; for(i=1;i<=n;i++) ds[i].in(); } getch(); } Bai 7 :Xây dựng lớp sinh viên để quản lý họ tên,năm sinh ,diểm thi 9 môn học của các sinh viên Cho biết sinh viên nào được làm khoá luận tốt nghiệp, bao nhiêu sinh viên thi tốt nghiệp bao nhiêu sinh viên thi lại .tiêu chuẩn xét như sau:sinh viên làm khoá luận phải có điểm trung bình từ 7 trở lên,trong đó không có môn nào dưới 5. Sinh viên thi tốt nghiệp khi có DTB nhỏ hơn 7 ,điểm các môn không dưới dưới 5 Sinh viên thi lại môn dưới 5 Bài Làm: # include <iostream.h> # include <conio.h> # include <math.h> # include <iomanip.h> - 10 - [...]... lí điểm thi vào trường Cao Đẳng Bách Khoa của các thí sinh, hãy xây dựng lớp THISINH mô tả các thí sinh bao gồm các thuộc tính các phương thức sau: • Tên thí sinh • Điểm 3 môn Toan,Lý,Hoá • Nhập thông tin của thí sinh gồm tên điểm 3 môn Toán, Lý , Hoá • In thông tin của thí sinh gồm tên điểm 3 môn • Tính tổng điểm thi của thi sinh, trên cơ sở lớp đã xây dựng được, viết chương trình làm các... tất cả các sinh viên, điểm trung bình Trong đó điểm trung bình bằng( co bản +cơ sở+ngoại ngữ)/3 b) In ra tất cả các sinh viên loại giỏi, sinh viên được xếp loại giỏi nếu có điểm trung bình>=8 các môn còn lại đều >=5 c) Tìm sinh viên với mã số sinh viên được nhập từ bàn phìm Bài Làm: # include # include # include # include # include class SV... if(ds[i].kt()==0) { cout . sinh. • Điểm 3 môn Toan,Lý,Hoá • Nhập thông tin của thí sinh gồm tên và điểm 3 môn Toán, Lý , Hoá. • In thông tin của thí sinh gồm tên và điểm 3 môn • Tính. loại giỏi, sinh viên được xếp loại giỏi nếu có điểm trung bình>=8 và các môn còn lại đều >=5. c) Tìm sinh viên với mã số sinh viên được nhập từ bàn

Ngày đăng: 14/12/2013, 13:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w