Глава 6
Задача 6.17 "Онлайновое бронирование номеров."
Модифицируйте программы 4.12 и 4.13 так, чтобы во время их работы забронированные номера хранились в массиве или хеш-таблице.
Решение 1
Программа один раз считывает из файла в массив, затем работает с массивом. Эта программа интерактивна. Выбор клиента запоминается в переменных, и далее программа ищет в массиве первый подходящий вариант. Результат не сохраняет.
Это новый вариант программы 4.12 Эта программа экономичней, так как дорогостоящая операция считывания из файла делается только один раз, затем идет работа с массивом.
Код программы:
import java.io.*;
import javagently.*;
//import myutilities.*;
class HotelRooms {
int len = 10;
Room f[] = new Room[len];
HotelRooms() throws IOException {
Display d = new Display ("Hotel information");
d.prompt("Value of peoples",1);
d.prompt("Enter the name", "Peter Brown");
Stream fin = new Stream(System.in);
try {
fin = Filer.open("data.txt");
}
catch (FileNotFoundException e) {
System.out.println("Five tries up");
System.out.println("Connecting to keyboard by default");
}//try
try {
for (int i = 0;i < f.length;i++) {
f[i] = new Room(2,3,10);
f[i].number = fin.readInt();
f[i].piples = fin.readInt();
f[i].area = fin.readInt();
//f[i].write();
}
}
catch (EOFException e) {
System.out.println(" All data is reading ");
}//try
for (int j = 0;j < f.length;j++) {
f[j].write();
}
for (; ;) {
d.ready("\nPress ready when peoples entered");
int pip = d.getInt("Value of peoples");
String name = d.getString("Enter the name");
for (int i = 0;i < f.length;i++) {
if(f[i].piples == pip){
d.println("Dear "+ name + "! Your room is: ");
d.println("number: "+ f[i].number + ";"+
" for: "+ f[i].piples + " peoples;"+
" area: "+ f[i].area + " square meter;");
break;
}
if(f[i].piples > pip){
d.println("Dear "+ name + "! Sorry! 1-place room is absence. ");
d.println("Your room is number: "+ f[i].number + ";"+
" for: "+ f[i].piples + " peoples;"+"\n"+
" area: "+ f[i].area + " square meter;");
break;
}
}
}//for
}//end construct
public static void main (String [ ] args)throws IOException {
new HotelRooms ();
}
}
class Room{
int number;//number of room
int piples;//volume to piples
int area;// area of room
//boolean bul; //rezerved or free
Room(int n,int pip,int ar){
number = n;
piples = pip;
area = ar;
}
void write () {
System.out.println("number: "+ number + ";"+
" piples: "+ piples + ";"+
" area: "+ area + " square meter;");
}
}
Результат :
number: 1; piples: 2; area: 20 square meter;
number: 2; piples: 2; area: 22 square meter;
number: 3; piples: 2; area: 21 square meter;
number: 4; piples: 3; area: 24 square meter;
number: 5; piples: 3; area: 26 square meter;
number: 6; piples: 3; area: 25 square meter;
number: 7; piples: 4; area: 31 square meter;
number: 8; piples: 4; area: 34 square meter;
number: 9; piples: 4; area: 35 square meter;
number: 10; piples: 4; area: 30 square meter;
Назад |
Начало урока |
Вверх |
Вперед
Содержание