GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
5 posters
k4info :: Khu vực học tập :: Học Tập :: Thư viện :: C++
Trang 1 trong tổng số 1 trang
GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
GIẢI ĐỀ THI C++ NHÓM 2
Đề lẻ:
Cho class Nguoi sau:
- Code:
class Nguoi{
private:
char ma_so[10];
char *ho_ten;
int nam_sinh;
public:
Nguoi();
~Nguoi();
void NhapTT();
void InTT();
};
Nguoi::Nguoi(){
strcpy(ma_so,"");
ho_ten = new char[100];
nam_sinh = 0;
};
Nguoi::~Nguoi() {
delete[] ho_ten;
}
void Nguoi::NhapTT(){
cout<<"\n Ma so:";
cin>>ma_so;
cout<<"Ho ten:";
cin.ignore();
cin.getline(ho_ten,100);
cout<<"Nam sinh:";
cin>>nam_sinh;
};
void Nguoi::InTT(){
cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";
};
Trên cơ sở class Nguoi làm các yêu cầu sau: Xây dựng 1 class sinh viên viên thường hướng các thuộc tính của class Nguoi và cho phép nhập điểm trung bình. Xây dựng 1 class lớp học có các thuộc tính mã lớp, tên lớp và danh sách sinh viên cho phép nhập n sinh viên và sắp xếp danh sách sinh viên sau khi nhập xong theo thứ tự điểm trung bình giảm dần.
Lưu ý: Đề còn yêu cầu làm thêm hàm khởi tạo và hàm cấp phát bộ nhớ và thu hồi vùng nhớ cho class sinhvien và class lophoc
BÀI GIẢI:
- Code:
/* Ten: Phan Chi Tam
MSSV:xxxxxxxxxxxx
May: 43 */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
class Nguoi{
private:
char ma_so[10];
char *ho_ten;
int nam_sinh;
public:
Nguoi();
~Nguoi();
void NhapTT();
void InTT();
};
Nguoi::Nguoi(){
strcpy(ma_so,"");
ho_ten = new char[100];
nam_sinh = 0;
};
Nguoi::~Nguoi() {
delete[] ho_ten;
}
void Nguoi::NhapTT(){
cout<<"\n Ma so:";
cin>>ma_so;
cout<<"Ho ten:";
cin.ignore();
cin.getline(ho_ten,100);
cout<<"Nam sinh:";
cin>>nam_sinh;
};
void Nguoi::InTT(){
cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";
};
class sinhvien: public Nguoi{
float tb;
public:
float getTB() {return tb;}
sinhvien()
{
Nguoi();
tb=0;
}
void NhapSV(char* str="")
{
cout<<str;
NhapTT();
cout<<"Nhap diem trung binh: "; cin>>tb;
}
void InSV(char* str="")
{
cout<<str;
InTT(); cout<<" | DTB:"<<tb;
}
friend class lophoc;
};
class lophoc{
char ml[10];
char* tl;
int slsv;
sinhvien dssv[200];
public:
lophoc()
{
strcpy(ml,"");
tl = new char[100];
slsv=0;
}
~lophoc() { delete[] tl;}
void NhapL(char* str="")
{
cout<<str;
cout<<"\nNhap ma lop: "; cin>>ml;
cin.ignore();
cout<<"\nNhap ten lop: "; cin.getline(tl,100);
cout<<"\nNhap so luong sinh vien: "; cin>>slsv;
for(int i=0; i<slsv;i++)
{ dssv[i].NhapSV(); }
}
void InL(char* str="")
{ cout<<str;
cout<<"\n "<<ml<<" | "<<tl<<" | SS:"<<slsv;
cout<<"\n-----====Danh sach sinh vien cua lop====---- ";
for(int i=0; i<slsv; i++)
{dssv[i].InSV();}
}
void SapXep(char* str="")
{
cout<<str;
sinhvien temp;
for (int i=0; i<slsv; i++)
for(int j=i+1; j<=slsv; j++)
if(dssv[i].getTB() < dssv[j].getTB())
{
temp=dssv[i];
dssv[i]=dssv[j];
dssv[j]=temp;
}
}
};
int main()
{
lophoc a;
a.NhapL("\n------====Nhap thong tin lop====-----");
a.SapXep();
a.InL("\n---***---In thong tin lop---***---");
getch();
}
Mình làm đề lẻ nên mình chỉ sửa được đề lẻ thôi, các bạn tập hợp đề lên đây hoặc vào lớp mình hỏi các đề khác rồi giải sau. Chúc tất cả anh em đạt điểm số cao nhất
Được sửa bởi Admin ngày Tue Oct 18, 2011 11:32 am; sửa lần 4.
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
Cách 2:
- Code:
/* Ten: Phan Chi Tam
MSSV:xxxxxxxxxxxxx
May: 43 */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
class Nguoi{
private:
char ma_so[10];
char *ho_ten;
int nam_sinh;
public:
Nguoi();
~Nguoi();
void NhapTT();
void InTT();
};
Nguoi::Nguoi(){
strcpy(ma_so,"");
ho_ten = new char[100];
nam_sinh = 0;
};
Nguoi::~Nguoi() {
delete[] ho_ten;
}
void Nguoi::NhapTT(){
cout<<"\n Ma so:";
cin>>ma_so;
cout<<"Ho ten:";
cin.ignore();
cin.getline(ho_ten,100);
cout<<"Nam sinh:";
cin>>nam_sinh;
};
void Nguoi::InTT(){
cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";
};
class sinhvien: public Nguoi{
float tb;
public:
sinhvien()
{
Nguoi();
tb=0;
}
void NhapSV(char* str="")
{
cout<<str;
NhapTT();
cout<<"Nhap diem trung binh: "; cin>>tb;
}
void InSV(char* str="")
{
cout<<str;
InTT(); cout<<" | DTB:"<<tb;
}
friend class lophoc;
};
class lophoc{
char ml[10];
char* tl;
int slsv;
sinhvien dssv[200];
public:
lophoc()
{
strcpy(ml,"");
tl = new char[100];
slsv=0;
}
~lophoc() { delete[] tl;}
void NhapL(char* str="")
{
cout<<str;
cout<<"\nNhap ma lop: "; cin>>ml;
cin.ignore();
cout<<"\nNhap ten lop: "; cin.getline(tl,100);
cout<<"\nNhap so luong sinh vien: "; cin>>slsv;
for(int i=0; i<slsv;i++)
{ dssv[i].NhapSV(); }
}
void InL(char* str="")
{ cout<<str;
cout<<"\n "<<ml<<" | "<<tl<<" | SS:"<<slsv;
cout<<"\n-----====Danh sach sinh vien cua lop====---- ";
for(int i=0; i<slsv; i++)
{dssv[i].InSV();}
}
void SapXep(char* str="")
{
cout<<str;
sinhvien temp;
for (int i=0; i<slsv; i++)
for(int j=i+1; j<=slsv; j++)
if(dssv[i].tb < dssv[j].tb)
{
temp=dssv[i];
dssv[i]=dssv[j];
dssv[j]=temp;
}
}
};
int main()
{
lophoc a;
a.NhapL("\n------====Nhap thong tin lop====-----");
a.SapXep();
a.InL("\n---***---In thong tin lop---***---");
getch();
}
Được sửa bởi Admin ngày Mon Oct 17, 2011 10:39 pm; sửa lần 1.
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
Lưu ý tên sinh cuối danh sách sau khi sắp xếp khi chạy demo, hình demo mình up ở trên bị lỗi là do class Nguoi của Cô bi lỗi ở getline(ho_ten,100). Hàm Nguoi cô đưa sao làm y vậy không dám sửa, mà sửa làm gì mắc công .
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
hay quá bác
TeamCook- Posts : 114
Thanked : 11
27/08/2011
Tài Sản
Thú nuôi:
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
Đề 4 của nhóm 1 yêu cầu nhập và in n phòng thực hành lận nhỉ.
Cô ác vl.
Cô ác vl.
shippou777- Posts : 460
Thanked : 8
11/10/2011
Tài Sản
Thú nuôi:
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
shippou777 đã viết:Đề 4 của nhóm 1 yêu cầu nhập và in n phòng thực hành lận nhỉ.
Cô ác vl.
Đề là gì mình muốn tham khảo giải với bạn post lên đây được không!
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
Admin đã viết:
Đề là gì mình muốn tham khảo giải với bạn post lên đây được không!
Đề y chang nhau thôi. Mình không co save lại, nhớ sau ghi vậy.
-Cho trước cái class DoVat(mã số,tên,năm sx).
-Yêu cầu:
+ Tạo class DungCu (+thêm chất liệu,số lượng) kế thừa class DoVat
+Xây dựng class PhongThucHanh (mã số,tên, nhập vào n DungCu)
+Có dùng hàm xây dựng, hàm hủy, cấp phát vùng nhớ...
+Nhập n PhongThucHanh và In thông tin trong đó danh sách DungCu được sắp xếp theo thứ tự số lượng giảm dần.
+ Còn cái gì nữa không nhớ....
shippou777- Posts : 460
Thanked : 8
11/10/2011
Tài Sản
Thú nuôi:
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
Đề y chang nhau thôi. Mình không co save lại, nhớ sau ghi vậy.
-Cho trước cái class DoVat(mã số,tên,năm sx).
-Yêu cầu:
+ Tạo class DungCu (+thêm chất liệu,số lượng) kế thừa class DoVat
+Xây dựng class PhongThucHanh (mã số,tên, nhập vào n DungCu)
+Có dùng hàm xây dựng, hàm hủy, cấp phát vùng nhớ...
+Nhập n PhongThucHanh và In thông tin trong đó danh sách DungCu được sắp xếp theo thứ tự số lượng giảm dần.
+ Còn cái gì nữa không nhớ....
Bài Giải
- Code:
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<string.h>
class dovat {
char ms[10];
char* tdv;
int nsx;
public:
dovat()
{
strcpy(ms,"");
tdv = new char[100];
nsx=0;
}
~dovat() {delete[] tdv;}
void NhapDV(char* str="")
{
cout<<str;
cout<<"\nNhap ma so do vat:"; cin>>ms;
cin.ignore();
cout<<"\nNhap ten do vat:"; cin.getline(tdv,100);
cout<<"\nNhap nam san xuat:"; cin>>nsx;
}
void InDV(char* str="")
{
cout<<str;
cout<<"\n"<<ms<<" | "<<tdv<<" | (NSX:"<<nsx<<")";
}
};
class dungcu : public dovat {
char* cl;
int sl;
public:
int getSL() {return sl;}
dungcu()
{
dovat();
cl = new char[50];
sl=0;
}
void NhapDC(char* str="")
{
cout<<str;
NhapDV();
cin.ignore();
cout<<"\nChat lieu:"; cin.getline(cl,50);
cout<<"\nSo luong: "; cin>>sl;
}
void InDC(char* str="")
{
cout<<str;
InDV();
cout<<" | "<<cl<<" | SL:"<<sl;
}
friend class phongthuchanh;
};
class phongthuchanh {
char mp[10];
char* tp;
int sldc;
dungcu dsdc[200];
public:
phongthuchanh()
{
strcpy(mp,"");
tp= new char[100];
sldc=0;
}
void NhapPTH(char* str="")
{
cout<<str;
dungcu temp;
cout<<"\nMa phong:"; cin>>mp;
cin.ignore();
cout<<"\nTen phong:"; cin.getline(tp,100);
cout<<"\nBao nhieu loai dung cu:"; cin>>sldc;
for(int i=0;i<sldc;i++)
{dsdc[i].NhapDC();}
for(int i=0; i<sldc;i++)
for(int j=i+1; j<=sldc;j++)
if(dsdc[i].getSL() < dsdc[j].getSL())
{
temp=dsdc[i];
dsdc[i]=dsdc[j];
dsdc[j]=temp;
}
}
void InPTH(char* str="")
{
cout<<str;
cout<<"\n"<<mp<<" | "<<tp<<" | (SDC:"<<sldc<<")";
cout<<"\nDanh sach dung cu trong phong:";
for(int i=0;i<sldc;i++)
{dsdc[i].InDC();}
}
};
int main()
{
phongthuchanh a[200];
int n;
cout<<"\nNhap so luong phong thuc hanh:"; cin>>n;
for(int i=0;i<n;i++)
{a[i].NhapPTH();}
for(int i=0;i<n;i++)
{a[i].InPTH();}
getch();
}
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
Đối với bài mình để áp dụng cho nhập n phòng học thì làm theo cách sau:
- Code:
/* Ten: Phan Chi Tam
MSSV:xxxxxxxxxxxx
May: 43 */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
class Nguoi{
private:
char ma_so[10];
char *ho_ten;
int nam_sinh;
public:
Nguoi();
~Nguoi();
void NhapTT();
void InTT();
};
Nguoi::Nguoi(){
strcpy(ma_so,"");
ho_ten = new char[100];
nam_sinh = 0;
};
Nguoi::~Nguoi() {
delete[] ho_ten;
}
void Nguoi::NhapTT(){
cout<<"\n Ma so:";
cin>>ma_so;
cout<<"Ho ten:";
cin.ignore();
cin.getline(ho_ten,100);
cout<<"Nam sinh:";
cin>>nam_sinh;
};
void Nguoi::InTT(){
cout<<"\n "<<ma_so<<" : "<<ho_ten<<" (nam sinh:"<<nam_sinh<<")";
};
class sinhvien: public Nguoi{
float tb;
public:
float getTB() {return tb;}
sinhvien()
{
Nguoi();
tb=0;
}
void NhapSV(char* str="")
{
cout<<str;
NhapTT();
cout<<"Nhap diem trung binh: "; cin>>tb;
}
void InSV(char* str="")
{
cout<<str;
InTT(); cout<<" | DTB:"<<tb;
}
friend class lophoc;
};
class lophoc{
char ml[10];
char* tl;
int slsv;
sinhvien dssv[200];
public:
lophoc()
{
strcpy(ml,"");
tl = new char[100];
slsv=0;
}
~lophoc() { delete[] tl;}
void NhapL(char* str="")
{
cout<<str;
cout<<"\nNhap ma lop: "; cin>>ml;
cin.ignore();
cout<<"\nNhap ten lop: "; cin.getline(tl,100);
cout<<"\nNhap so luong sinh vien: "; cin>>slsv;
for(int i=0; i<slsv;i++)
{ dssv[i].NhapSV(); }
sinhvien temp;
for (int i=0; i<slsv; i++)
for(int j=i+1; j<=slsv; j++)
if(dssv[i].getTB() < dssv[j].getTB())
{
temp=dssv[i];
dssv[i]=dssv[j];
dssv[j]=temp;
}
}
void InL(char* str="")
{ cout<<str;
cout<<"\n "<<ml<<" | "<<tl<<" | SS:"<<slsv;
cout<<"\n-----====Danh sach sinh vien cua lop====---- ";
for(int i=0; i<slsv; i++)
{ dssv[i].InSV();}
}
};
int main()
{
lophoc a[200];
int n;
cout<<"\nNhap so luong lop:"; cin>>n;
for(int i=0;i<n;i++)
{ a[i].NhapL();}
for(int i=0;i<n;i++)
{ a[i].InL();}
getch();
}
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
rầu quá thu 7 e thi ma chua biet gi hết:((
mtuanmt- Posts : 4
Thanked : 0
11/09/2012
Re: GIẢI ĐỀ THI C++ NHÓM 2 NGÀY 17/10!
tao cũng thế!!!mtuanmt đã viết:rầu quá thu 7 e thi ma chua biet gi hết:((
pht0991- Posts : 222
Thanked : 3
24/02/2011
Tài Sản
Thú nuôi:
Similar topics
» Bài tập thầy giải buổi cuối ngày 20/11
» VẤN ĐỀ NAN GIẢI
» BÀI GIẢI ĐỀ THI C++(ĐỀ 1)
» giai gap dum bai tap c++
» Tài liệu lập trình Web cho ngày mai 28/3
» VẤN ĐỀ NAN GIẢI
» BÀI GIẢI ĐỀ THI C++(ĐỀ 1)
» giai gap dum bai tap c++
» Tài liệu lập trình Web cho ngày mai 28/3
k4info :: Khu vực học tập :: Học Tập :: Thư viện :: C++
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|