| Таким будет уровень? |
|
|
Sunday, 14 May 2006 | Зэев Фрайман для раздела Ученье – свет С сентября мы в израильских школах начинаем переход на Java и С#, и при Институте им. Вайцмана в Реховоте (фактически – израильская Академия наук) работает команда, готовящая официальный учебник от имени министерства образования. В Интернете стали доступны части будущего учебника (выход обещают этим летом) – один пример из него я предлагаю вашему вниманию.Задача
В туристическом агентстве «Плати и езжай» предлагают 100 маршрутов экскурсий (пронумерованных от 1 до 100). В каждую группу могут быть включены до 50 человек и желающие могут записаться на нее только в том случае, если имеются свободные места.
Напиши программу для записи желающих на экскурсии: каждый вводит имя участника и номер экскурсии, которую он выбирает. Программа должна распечатать список экскурсий, отсортированный по числу записавшихся на него участников. Для каждой экскурсии программа должна указывать число записавшихся и имена всех записавшихся на нее.
class Trip
{
private final int MAX_PASSENGER_PER_TRIP =50;
private int tripNum;
private int passengersNum = 0;
private String[] passengers;
public void Trip(int tripNum)
{
this.passengers = new String[MAX_PASSENGER_PER_TRIP];
this.tripNum = tripNum;
}
public int getTripNum()
{
return this.tripNum;
}
public int getNumberOfPassengers()
{
return this.passengersNum;
}
public void printPassengers()
{
int i;
for (i= 0; i < this.passengersNum; i++)
{
System.out.println(passengers[i]);
}
}
public boolean addPassenger(String passenger)
{
if (this.passengersNum < this.MAX_PASSENGER_PER_TRIP-1)
{
this.passengers[this.passengersNum] = passenger;
this.passengersNum++;
return true;
} // if
return false;
} // addPassenger
}// class Trip
public class Main
{
public static void main(String[] args)
{
final int TRIPS_NUM = 100;
Trip[] tripsList = new Trip[TRIPS_NUM];
int passenger, trip;
String passengerName;
int passengerNum;
int passengerNumberOfTrips;
int tripNum;
int passTrips;
int num;
int i,r;
for (i = 0; i < TRIPS_NUM; i++)
{
tripsList[i] = new Trip(i + 1);
}
passengerNum = InputRequestor.requestInt("Insert the number of people");
for (passenger = 0; passenger < passengerNum; passenger++)
{
passengerName = InputRequestor.requestString("Insert the passenger mame");
passengerNumberOfTrips = InputRequestor.requestInt("Insert the number of trips the passenger wants to subscribe to");
for (trip = 0; trip < passengerNumberOfTrips; trip++)
{
tripNum = InputRequestor.requestInt("Insert the trip number);
tripsList[tripNum-1].addPassenger(passengerName);
} // for trip
} // for passenger
Trip temp;
for (i = 0; i < tripsList.length - 1; i++)
{
for (r = i + 1; r < tripsList.length; r++)
{
if (tripsList[i].getNumberOfPassengers() <=
tripsList[r].getNumberOfPassengers())
{
temp = tripsList[i];
tripsList[i] = tripsList[r];
tripsList[r] = temp;
} // if
} // for r
} // for i
for (i = 0; i < tripsList.length ; i++)
{
System.out.println("Trip " + tripsList[i].getTripNum() + " has "+ tripsList[i].getNumberOfPassengers() + " passengers");
tripsList[i].printPassengers();
} // for
} // main
} // class Main
|