Программирование >>  Дополнительные возможности наследования 

1 ... 151 152 153 [ 154 ] 155 156 157 ... 265


214; int New = pPart->GetPartNumber(); 215: int Next = 0; 216; itsCount++; 217:

218; if (IpHead) 219: {

220; pHead = pNode;

221: return;

222; } 223;

224; если это значение меньше головного узла, 225; то текущий узел становится головным 226; if (pHead->GetPart()->GetPartNumber() > New) 227: {

228: pNDde->SetNext(pHead);

229; pHead = pNode;

230; return;

231; }

232;

233: for (;;) 234; {

235; если нет следующего, вставляется текущий

236; If (!pCurrBnt->GetNext())

237; {

238: pCurrent->SetNext(pNode);

239: return;

240; }

241:

242: если текущий больше предыдущего, но меньше следующего, то вставляем

243: здесь. Иначе присваиваем значение указателя Next

244: pNext = pCurrent->GetNext();

245: Next = pNext->GetPart()->GetPartNumber();

246: if (Next > New)

247; {

248: pCurrent->SetNext(pNode);

249: pNode->SetNext(pNext);

250: return;

251: }

252: pCurrent = pNext;

253: }

254: }

255:

256:

257:

258: class PartsCatalog : private PartsList

259: {

260: public:

261: void Insert(Part ):

262: int Exists(int PartNumber);

263: Part * Get(int PartNumber);



264 265 266 267 268 269 270 271 272 273 274 275 276 277 27В 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313

operator+(const PartsCatalog &);

void ShowAllO { Iterate(Part; iDlsplay); } private: } ;

void PartsCatalog::Insert(Part * newPart) {

int partNumber = newPart->GetPartNumber(); int offset;

if (!Find(offset, partNumber)) PartsList::Insert(newPart); else {

cout << partNumber << was the ;

switch (offset)

case 0 case 1 case 2

cout << first ; break; cout second ; break; cout third ; break; default: cout offset+1 th ;

cout << entry. Rejected!\ n ;

int PartsCatalog::Exlsts(int PartNumber) {

int offset;

Find(offset,PartNumber); return offset;

Part * PartsCatalog::Get(int PartNumber) {

int offset;

return (Find(offset, PartNumber));

int mainO {

PartsCatalog pc; Part . pPart = 0; int PartNumber; int value; int choice;

while (1) {



314: cout (O)Quit (1)Car (2)Plane: ;

315: cin choice;

316;

317; if (!choice) 318: break;

319:

320: cout New PartNumber?: ;

321: cin PartNumber;

322:

323: if (choice == 1) 324: {

325: cout Model Year?: ;

326: cin value;

327: pPart = new CarPart(value,PartNumber);

328: } 329: else 330: (

331: cout Engine Number?: ;

332: cin value;

333: pPart = new AirPlanePart(value,PartNumber);

334: }

335: pc.Insert(pPart); 336: }

337: pc. ShowAllO; 338: return 0; ,339: }

(O)Quit (1)Car (2)Plane: 1

New PartNumber?: 1234

Model Year: 94

(O)Quit (1)Car (2)Plane: 1

New PartNumber?: 4434

Model Year: 93

(O)Quit (1)Car (2)Plane: 1

New PartNumber: 1234

Model Year: 94

1234 was the first entry. Rejected!

(O)Quit (l)Gar (2)Plane: 1

New PartNumber?: 2345

Model Year: 93

(O)Quit (1)Car (2)Plane: 0

Part Number: 1234 Model Year: 94

Part Number: 2345 Model Year: 93

Part Number: 4434 Model Year: 93



1 ... 151 152 153 [ 154 ] 155 156 157 ... 265

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика