Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

BÀI CỦA BÌNH :

1. #include <iostream>
2. #include <string.h>
3. using namespace std;
4.
5. class VDV{
6. protected:
7. char TenVDV[30],DVTD[30];
8. int SoHC,Tuoi;
9. public:
10.
11. VDV(char TenVDV[30]="",int SoHC=0,int Tuoi=0,char
DVTD[30]="")
12. {
13. strcpy(this->TenVDV,"Chua nhap");
14. strcpy(this->DVTD,"Chua nhap");
15. this->Tuoi=this->SoHC=0;
16. }
17.
18. ~VDV(){
19. }
20.
21. virtual void Nhap()
22. {
23. cout <<"Nhap ten VDV: "; fflush(stdin);
cin.getline(TenVDV,30);
24. cout <<"Nhap tuoi VDV: "; cin >>Tuoi;
25. cout <<"Nhap so huy chuong: "; cin >>SoHC;
26. cout <<"Nhap don vi thi dau: "; fflush(stdin);
cin.getline(DVTD,30);
27. }
28.
29. virtual void Xuat()
30. {
31. cout <<"Ten VDV: "<<TenVDV<<endl;
32. cout <<"Tuoi: "<<Tuoi<<endl;
33. cout <<"So huy chuong: "<<SoHC<<endl;
34. cout <<"Don vi thi dau: "<<DVTD<<endl;
35. }
36.
37. char* GetTen()
38. {
39. return TenVDV;
40. }
41. int GetHC()
42. {
43. return SoHC;
44. }
45. };
46.
47. class VDVVO : public VDV{
48. protected:
49. char NDTD[20];
50. int HangCan;
51. public:
52. VDVVO(char TenVDV[30]="",int SoHC=0,int Tuoi=0,char
DVTD[30]="",int HangCan=0,char NDTD[20]="") :
VDV(TenVDV,SoHC,Tuoi,DVTD)
53. {
54. this->HangCan=0;
55. strcpy(this->NDTD,"Chua nhap");
56. }
57.
58. ~VDVVO()
59. {
60. }
61.
62. friend istream& operator>>(istream& in,VDVVO &a)
63. {
64. a.Nhap();
65. cout <<"Nhap hang can: "; cin >>a.HangCan;
66. cout <<"Nhap noi dung thi dau: "; fflush(stdin);
in.getline(a.NDTD,20);
67. }
68.
69. int Thuong()
70. {
71. return SoHC*10000000;
72. }
73.
74. friend ostream& operator<<(ostream& out,VDVVO a)
75. {
76. a.Xuat();
77. out <<"Hang can: "<<a.HangCan<<endl;
78. out <<"Noi dung thi dau: "<<a.NDTD<<endl;
79. out <<"Thuong: "<<a.Thuong()<<endl;
80. }
81.
82. bool operator==(VDV& b)
83. {
84. return strcmpi(this->TenVDV,"Anh")==0;
85. }
86.
87. int GetHangCan()
88. {
89. return HangCan;
90. }
91. };
92.
93. void NhapDL(VDVVO A[],int n)
94. {
95. for(int i=0;i<n;i++)
96. {
97. cout <<"VDV "<<i+1<<": "<<endl;
98. cin >>A[i];
99. }
100. }
101.
102. void XuatDL(VDVVO A[],int &n)
103. {
104. cout <<"\nDANH SACH VDV:"<<endl;
105. for(int i=0;i<n;i++)
106. {
107. cout <<"VDV "<<i+1<<":"<<endl;
108. cout <<A[i]<<endl;
109. }
110. }
111.
112. void TenAnh(VDVVO A[],int &n)
113. {
114. cout <<"\nDANH SACH VDV CO TEN ANH:"<<endl;
115. for(int i=0;i<n;i++)
116. {
117. if(strcmpi(A[i].GetTen(),"Anh")==0)
118. {
119. cout <<A[i]<<endl;
120. }
121. }
122. }
123.
124. void Max(VDVVO A[],int &n)
125. {
126. int max=A[0].GetHC();
127. int vitri=0;
128. for(int i=0;i<n;i++)
129. {
130. if(max<A[i].GetHC())
131. {
132. max=A[i].GetHC();
133. vitri=i;
134. }
135. else
136. {
137. max=max;
138. }
139. }
140. cout <<"\nVDV CO SO HUY CHUONG CAO NHAT:"<<endl;
141. cout <<"VDV"<<vitri+1<<":"<<endl;
142. cout <<A[vitri]<<endl;
143. }
144.
145. void SapXep(VDVVO A[],int &n)
146. {
147. cout <<"\nDANH SACH VDV SAP XEP THEO HANG CAN GIAM
DAN:"<<endl;
148. for(int i=0;i<n-1;i++)
149. {
150. for(int j=i+1;j<n;j++)
151. {
152. if(A[i].GetHangCan()<A[j].GetHangCan())
153. {
154. swap(A[i],A[j]);
155. }
156. }
157. }
158. XuatDL(A,n);
159. }
160.
161. void Xoa(VDVVO A[], int &n)
162. {
163. int k;
164. cout <<"Nhap vi tri can xoa: "; cin >>k;
165. for(int i=k-1;i<n;i++)
166. {
167. A[i]=A[i+1];
168. }
169. n--;
170. cout <<"\nDANH SACH SAU KHI XOA VDV "<<k<<":"<<endl;
171. XuatDL(A,n);
172. }
173.
174. void Them(VDVVO A[],int &n){
175. int k;
176. cout <<"Nhap vi tri can them VDV: ";
177. cin >>k;
178. for(int i=n; i>k-1; i--){
179. A[i] = A[i-1];
180. }
181. cin >>A[k-1];
182. n++;
183. cout <<"\nDANH SACH VDV SAU KHI THEM:"<<endl;
184. XuatDL(A,n);
185. }
186. int main()
187. {
188. char TiepTuc;
189. int n;
190. VDVVO A[10000];
191. do{
192. cout <<"------------------
MENU--------------------"<<endl
193. <<"1.Nhap danh sach VDV."<<endl
194. <<"2.Xuat danh sach VDV."<<endl
195. <<"3.Tim VDV co ten la Anh."<<endl
196. <<"4.Tim VDV co nhieu huy chuong nhat."<<endl
197. <<"5.Sap xep danh sach hang can giam dan."<<endl
198. <<"6.Xoa VDV."<<endl
199. <<"7.Them VDV."<<endl
200. <<"------------------------------------------"<<endl
;
201.
202. int LuaChon;
203. cout <<"Nhap lua chon:";
204. cin >>LuaChon;
205. switch(LuaChon)
206. {
207. case 1:{
208. cout <<"Nhap so luong VDV: "; cin >>n;
209. NhapDL(A,n);
210. break;
211. }
212. case 2:{
213. XuatDL(A,n);
214. break;
215. }
216. case 3:{
217. TenAnh(A,n);
218. break;
219. }
220. case 4:{
221. Max(A,n);
222. break;
223. }
224. case 5:{
225. SapXep(A,n);
226. break;
227. }
228. case 6:{
229. Xoa(A,n);
230. break;
231. }
232. case 7:{
233. Them(A,n);
234. break;
235. }
236. }
237.
238. cout<<"Nhap y hoac Y de tiep tuc,Nhap phim bat ky de
thoat: ";
239. cin>>TiepTuc;
240. }while(TiepTuc=='y'||TiepTuc=='Y');
241. return 0;
242. }

You might also like