Java / LR_7
.docМіністерство освіти і науки України
ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД
«НАЦІОНАЛЬНИЙ ГІРНИЧИЙ УНІВЕРСИТЕТ»
ІНСТИТУТ ЕЛЕКТРОЕНЕРГЕТИКИ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра програмного забезпечення комп'ютерних систем
ЗВІТ
З ЛАБОРАТОРНОЇ РОБОТИ № 7
з дисципліни “Мережеве Java програмування”
Виконав:
|
ст. гр. КНіт-10-1 Левченко О.А. |
Перевірив: |
Зінченко О.В. Харь О.Т.
|
Дніпропетровськ
2014
Лабораторная работа №7
Шаблоны проектирования
Цель: Ознакомиться с понятием «шаблоны проектирования» и использовать на практике их возможности.
Задача:
Вариант 2:
Разработать программу, управляющую работой ресторана ( организация питания и развлечений клиентов). Ресторан имеет помещения , в которых можно питаться ( за столиком ) , танцевать , приготавливать пищу. Столики могут иметь разное количество посадочных мест. Клиент может либо заказать столик заранее , или (если будут свободные места ) прийти без предварительной заявки. Ресторан расписывает заранее столики по заявкам и рассаживают по свободным местам. Клиенты по заявкам могут заранее заказать меню. Можно выбрать заказ блюд из меню , представленного официантом. Затем заказ на блюда ставится на кухню , где эти блюда изготавливают и возвышаются клиенту . По конкретным строкой меню закрепляется конкретный повар. По окончании или до истечения своего присутствия в ресторане клиент рассчитывается за питание и идет . Все привязано к определенной дате .
Листинг программы:
package lr_7;
public class LR_7 {
public static void main(String[] args) {
Room BigRoom = new Room(5);
Cook GreatCooker = new Cook();
Menu Sushi = new Menu(GreatCooker, "Sushi", 100);
Client Anna = new Client(1000);
Anna.bookTable(Anna.ChooseTable(BigRoom, 2), null, BigRoom);
Anna.OrderFood("Ролл Филадельфия", GreatCooker);
Anna.PayAndGo(Sushi.price);
}
}
package lr_7;
import java.util.Date;
import java.util.Scanner;
class Room {
public Table[] tables;
public int numberOfTables;
public Date[] dates;
Room(int NumberOfTables)
{
numberOfTables = NumberOfTables;
tables = new Table[NumberOfTables];
dates = new Date[NumberOfTables];
System.out.print("В ресторане есть "+ numberOfTables +" столиков.");
Scanner scan = new Scanner( System.in );
for(int i = 0; i<NumberOfTables; i++)
{
System.out.print("Введите кол-во мест за " +(i+1)+" столом.");
tables[i] = new Table(scan.nextInt());
}
}
}
package lr_7;
class Cook {
String Name;
Menu menu;
void MakeFood(String food)
{
System.out.print(food + " создан.");
}
}
class Menu {
Cook cooker;
String NameOfMenu;
boolean ordered;
int price;
Menu()
{
cooker = new Cook();
NameOfMenu = "";
ordered = false;
price = 0;
}
Menu(Cook Cooker, String Name, int Price)
{
cooker = Cooker;
NameOfMenu = Name;
ordered = false;
price = Price;
}
void OrderMenu()
{
ordered = true;
System.out.print("Меню зарезервировано.");
}
}
package lr_7;
import java.util.Date;
public class Client implements IBook{
public int Money;
Client()
{
Money = 0;
}
Client(int money)
{
Money = money;
System.out.print("Пришел клиент, у него " + Money + " гривен.\n");
}
public int ChooseTable(Room room, int numberOfSits)
{
for (int i =0; i< room.numberOfTables; i++)
{
if ((room.tables[i].free)&&(room.tables[i].numberOfSits>=numberOfSits))
{
return i;
}
}
return -1;
}
@Override
public void bookTable(int numberOfTable, Date date, Room room) {
Manager maneger = new Manager();
maneger.bookTable(numberOfTable, date, room);
}
@Override
public void bookMenu(Menu menu, Date date) {
Manager maneger = new Manager();
maneger.bookMenu(menu, date);
}
void OrderFood(String food, Cook cook)
{
Manager manager = new Manager();
manager.TakeOrder(food, cook);
}
public void PayAndGo(int Price)
{
Money = Money - Price;
System.out.print("Клиент заплатил "+Price+" и ушол.\n");
}
}
package lr_7;
import java.util.Date;
class Manager{
Date date;
Manager()
{
}
Manager(Date Date)
{
date = Date;
}
void bookTable(int numberOfTable, Date date, Room room) {
room.tables[numberOfTable].free = false;
System.out.print("Столик номер "+ (numberOfTable+1) +"успешно заказан.\n");
}
public void bookMenu(Menu menu, Date date) {
}
public void TakeOrder(String food, Cook cook)
{
cook.MakeFood(food);
}
}
package lr_7;
import java.util.Date;
public interface IBook {
void bookTable(int numberOfTable, Date date, Room room);
void bookMenu(Menu menu, Date date);
}
Результат:
Вывод: я ознакомился с понятием «шаблоны проектирования» и использовал на практике их возможности.