Здравствуйте. Заранее извиняюсь за такое название, но в моем случае не придумал ничего лучше.
Задание: создать систему бронирования, в которую входят добавление поездов, вагонов и оформление брони. Поезда и вагоны создаются нормально. К примеру есть поезд №22, у него вагоны 1 и 2. Есть поезд №23, у него вагон №6. При выборе поезда, я должен выбрать в каком вагоне надо бронировать. У меня при выборе поезда №22, доступны для выбора все вагоны, а не только те которые ему принадлежат. Проблема в том, что я не знаю как привязать вагоны к поездам. Чтобы были доступны только вагоны, которые есть в конкретном поезде. Что-то вроде этого: 1) поезд №22 --> 1) вагон 1 2) вагон 2 ------------------------------------- 2) поезд №23 --> 1) вагон 6.
Создание вагона:
| Код | case 1: { if (traincount != 0) { int newidtrain_i; l3: try { Console.Clear(); Console.WriteLine("viberite poezd"); for (int o = 0; o < traincount; o++) { Console.WriteLine(o + 1 + ") " + train[o].nametra); } Console.Write("vash vibor: "); string s = Console.ReadLine(); int y = Convert.ToInt16(s); y--; if (y >= traincount) { Exception ex = new Exception(); throw ex; } newidtrain_i = y; } catch { message("neverniy index"); goto l3; } Console.Clear(); Console.WriteLine("vvedite dannie o novom vagone: "); Console.Write("nomer: "); string tmp; tmp = Console.ReadLine(); int name = Convert.ToInt16(tmp); int occ = 0; bool isis = false; for (int i = 0; i < coachcount; i++) { if (coach[i].namecoa == name) { isis = true; break; } } if (!isis) { coach[coachcount] = new Coaches(); coach[coachcount].addcoach(name); coach[coachcount].addocc(occ); coach[coachcount].checkocc(); coachcount++; message("vagon dobavlen"); } else { message("uje est' vagon s takim nomerom"); } Systry(2); } else { message("v sisteme netu poezdov"); Systry(2); } break; }
|
Бронирование:
| Код | case 1: { if ((traincount != 0) & (coachcount != 0)) { //выбор poezda int newidtrain_i; l3: try { Console.Clear(); Console.WriteLine("viberite poezd: "); for (int o = 0; o < traincount; o++) { Console.WriteLine(o + 1 + ") " + train[o].nametra); } Console.Write("vash vibor: "); string s = Console.ReadLine(); int y = Convert.ToInt16(s); y--; if (y >= traincount) { Exception ex = new Exception(); throw ex; } newidtrain_i = y; } catch { message("neverniy index"); goto l3; } int idcoach; l11: try { Console.Clear(); Console.WriteLine("viberite vagon dlya bronirovaniya: "); for (int i = 0; i < coachcount; i++) { Console.WriteLine((i + 1) + ") " + coach[i].namecoa); } Console.WriteLine(); Console.Write("vash vibor: "); string v = Console.ReadLine(); int y = Convert.ToInt16(v); if (y > coachcount) { Exception ex = new Exception(); throw ex; } idcoach = y - 1; } catch { message("nevernie dannie"); goto l11; } Console.Clear(); Console.Write("vvedite imya: "); string clname = Console.ReadLine(); Console.Clear(); Console.Write("vvedite familiyu: "); string clsurname = Console.ReadLine(); int maxseats = coach[idcoach].maxsea; if (coach[idcoach].occ >= 0 & coach[idcoach].occ < maxseats) { res[rescount] = new ResSeat(); res[rescount].addres(newidtrain_i, idcoach, newdate, clname, clsurname); coach[idcoach].occ++; coach[idcoach].checkocc(); //!!! rescount++; message("zabronirovano"); Systry(3); } else { message("svobodnih mest net"); Systry(3); } } else { Console.Clear(); Console.WriteLine("v sisteme nedostatochno info"); Console.ReadLine(); Systry(3); } break; }
|
На всякий случай для понимания прикрепил проект.
Заранее спасибо. |