Назад | Начало урока | Вперед
Содержание

Глава 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;

Подсказка


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz