Nội dung tài liệu: Một số bài tập mẫu môn kĩ thuật lập trình, Trích từ đề thi các năm Đại học bách khoa Đà Nẵng. Tài liệu ôn thi năm 2015.
Trang 2cout<<"\nten doi bong : "; os<<n.name;
cout<<"\nso tran thang : "; os<<n.tranthang;
cout<<"\nso tran thua : "; os<<n.tranthua;
cout<<"\nso tran thua : "; os<<n.tranhoa;
cout<<"\nso ban thang : "; os<<n.banthang;
cout<<"\nso ban thua : "; os<<n.banthua;
}
friend istream& operator >> (istream& is, doibong& x) {
cout<<"\nten doi bong: "; is>>x.name;
cout<<"\nso tran thang: "; is>>x.tranthang;
cout<<"\nso tran thua : "; is>>x.tranthua;
cout<<"\nso tran hoa : "; is>>x.tranhoa;
cout<<"\nso ban thang : "; is>>x.banthang;
cout<<"\nso ban thua : "; is>>x.banthua;
Trang 3cin>>a;
cout<<a;
cout<<"\n\ntong diem cua doi bong la : "<<a.tongdiem(); cout<<"\n\nhieu so ban thang thua la : "<<a.hieusobanthang(); getch();
a Viết hàm tạo đối tượng, tạo 1 đồi tượng, 2 đối tượng
b Hàm set,get để nhập xuất sô phức
c Quá tải toán tử +,-,*,/ để tính +,-,*,/ số phức
d Quá tải toán tử == để so sánh 2 số phức
e Cho ví dụ trong cụ thể trong main
Trang 7Khi tạo mặc định hai số phức không bằng nhau được kết quả:
Số phức a=2+4i
Số phức b=5+8i
Khi tạo cho hai số phức bằng nhau thì ta được kết quả:
Trang 8a viết hàm tạo, hàm hủy
b viết toán tử xuất
c viết toán tử nhập
d viết toán tử + để tính tổng trở tương đương //
e viết hàm tính trở 2 tụ nối tiếp
Trang 9friend istream& operator >>(istream& is, linhkien& a) {
os<<"\nlinh kien : "<<a.name;
os<<"\ngia tri : "<<a.value;
}
};
class tudien: public linhkien
{
Trang 11Một số đề thi :
Đề thầy Viễn khóa 09
Cau1: Viết lưu đồ thuật toàn và viết chương trình chính tính tổng dãy sỗ:
s=1+ 1/6+ +1/(n*n+4n+1)
Lưu ý sử dụng lệnh do/while Viết các hàm nhập, hàm tính toán và hàm xuất.
//Đề 1 tương tự nhưng là lệnh while do Câu 2: Viết chương trình nhập mảng float A[20] có các hàm nhập và xuất giá trị nhỏ nhất của mảng Câu 3: Viết chương trình thông tin đôi bóng theo cấu trúc lớp sau:
b.Khai báo toán tử quá tải nhập, xuất.
c.viết hàm tính tổng điểm của đội bóng (thắng 3đ,hòa 1đ, thua 0) d.Viết hàm tính hiêu-số bàn thắng thua của đội
câu 1 là nhập xuất ma trận, với chuyển ma trận đó thành ma trận hoán vị
Trang 12Mảng 2 chiều SOPHUC A[m,n]
Vẽ lưu đồ, nhập, xuất mảng 2 chiều viết hàm đảo Halminton ( thầy có cho ví dụ,
a viết hàm tạo, hàm hủy
b viết toán tử xuất
c viết toán tử nhập
d viết toán tử + để tính tổng trở tương đương //
e viết hàm tính trở 2 tụ nối tiếp
Trang 13g Viết hàm tạo đối tượng, tạo 1 đồi tượng, 2 đối tượng.
h Hàm set,get để nhập xuất sô phức
i Quá tải toán tử +,-,*,/ để tính +,-,*,/ số phức
j Quá tải toán tử == để so sánh 2 số phức
k Cho ví dụ trong cụ thể trong main
l Một câu mảng số phức ko nhớ
Một số chương trình tham khảo
Chương trình nhập và in danh sách sinh viên trên ghi/đọc đồng thời
cout << "Nhập tên file: "; cin >> fname;
f.open(fname, ios::in | ios::out | ios::noreplace) ;
if (f.bad()) {
Trang 14while (1) {
stt++;
cout << "\nNhập sinh viên thứ " << stt ;
cout << "\nHọ tên: "; cin.ignore() ; cin.getline(hoten, 25);
if (hoten[0] = 0) break;
cout << "\nTuổi: "; cin >> tuoi;
cout << "\nĐiểm: "; cin >> diem;
f << setw(24) << hoten << endl;
f << setw(4) << tuoi << set(8) << diem ;
cout << "Danh sách sinh viên đã nhập\n" ;
cout << setprecision(1) << setiosflags(ios::showpoint) ;while (1) {
cout << "\nSinh viên thứ " << stt ;
cout << "\nHọ tên: " << hoten;
cout << "\nTuổi: " << setw(4) << tuoi;
cout << "\nĐiểm: " << setw(8) << diem;
}
f.close();
getch();
}
Trang 15Chương trình sao chép file ở trên có thể sử dụng các phương thức mới này
fstream fnguon("DATA1", ios::in | ios::binary);
fstream fdich("DATA2", ios::out | ios::binary);
Trang 16static int size;
cout << "danh sach da co Co tao lai (C/K) ?";
char traloi = getch();
cout << "\nSinh viên thứ: " << sosv+1;
cout << "\nHọ tên: "; cin.ignore(); cin.getline(x.hoten);
if (x.hoten[0] == 0) break;
cout << "\nTuổi: "; cin >> x.tuoi;
cout << "\nĐiểm: "; cin >> x.diem;
f.write((char*)(&x), size);
sosv++;
}
Trang 17cout << "danh sach chua co Tao moi (C/K) ?";
char traloi = getch();
cout << "\nBổ sung sinh viên thứ: " << stt+1;
cout << "\nHọ tên: "; cin.ignore(); cin.getline(x.hoten);
if (x.hoten[0] == 0) break;
cout << "\nTuổi: "; cin >> x.tuoi;
cout << "\nĐiểm: "; cin >> x.diem;
Trang 18if (stt < 1 || stt > sosv) break;
f.seekg((stt-1) * size, ios::beg);
f.read((char*)(&x), size);
cout << "\nHọ tên: " << x.hoten;
cout << "\nTuổi: " << x.tuoi;
cout << "\nĐiểm: " << x.diem;
cout << "Có sửa không (C/K) ?";
cout << "\n1: Tạo danh sách sinh viên";
cout << "\n2: Bổ sung danh sách";
cout << "\n3: Xem – sửa danh sách";
else if (chon == 2) SV.bosung();
else if (chon == 3) SV.xemsua();
else break;
}
}
Trang 19Nội dung chương trình là nhập một ma trận vuông cấp n và một véc tơ cấp n,
sau đó thực hiện phép nhân ma trận với véc tơ vừa nhập.
friend void in(const VT &x);
friend VT tich(const MT &a, const VT &x) ;
friend VT tich(const MT &a, const VT &x);
friend void in(const MT &a);
Trang 20for (int i = 1; i< = n ; ++i)
Trang 21Chương trình đưa vào các hàm toán tử:
operator- có một đối dùng để đảo dấu một đa thức
operator+ có 2 đối dùng để cộng 2 đa thức
operator- có 2 đối dùng để trừ 2 đa thức
operator* có 2 đối dùng để nhân 2 đa thức
operator^có 2 đối dùng để tính giá đa thức tại x
ơperator<< có 2 đối dùng để in đa thức
ơperator>> có 2 đối dùng để nhập đa thức
Chương trình sẽ nhập 4 đa thức: p, q, r, s Sau đó tính đa thức:
double a[20];// Mang chua cac he so da thuc a0, a1,
int n ;// Bac da thuc
};
ostream& operator<< (ostream& os, DT d);
istream& operator>> (istream& is, DT &d);
DT operator-(const DT& d);
DT operator+(DT d1, DT d2);
DT operator-(DT d1, DT d2);
DT operator*(DT d1, DT d2);
double operator^(DT d, double x);// Tinh gia tri da thuc
ostream& operator<< (ostream& os, DT d)
Trang 22os << " Cac he so (tu ao): '' ;
for (int i=0 ;i<= d.n ;++i)
cout << ''Nhap cac he so da thuc:" ;
for (int i=0 ;i<=d.n ;++i)
for (i=0;i<=k ;++i)
if (i<=d1.n && i<=d2.n) d.a[i] = d1.a[i] + d2.a[i];else if (i<=d1.n) d.a[i] = d1.a[i];
else d.a[i] = d2.a[i];
Trang 23for (i=0;i<=k;++i) d.a[i] = 0;
for (i=0 ;i<= d1 n ;++i)