Skip to content
Open

B5 #39

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions L5T1/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>L5T1</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
</build>
</project>
154 changes: 154 additions & 0 deletions L5T1/src/main/java/example/AutomataGUIDemo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
package example;
import java.util.ArrayList;
public class AutomataGUIDemo
{
enum STATES {OFF, WAIT, ACCEPT, CHECK, COOK}
private int cash;
private int change;
public void setMenu()
{
menu.add("Кофе");
menu.add("Чай");
menu.add("Крепкий кофе");
menu.add("Чай с молоком");
menu.add("Холодный чай");
menu.add("Кофе с лимоном");
menu.add("Вода");
}
public void setPrices()
{
prices.add(25);
prices.add(25);
prices.add(30);
prices.add(40);
prices.add(20);
prices.add(40);
prices.add(10);
}
private ArrayList<String> menu = new ArrayList<>();
private ArrayList<Integer> prices = new ArrayList<>();
private STATES state;
private String message;
public AutomataGUIDemo()
{
cash = 0;
state = STATES.OFF;
}
public ArrayList<String> getMenu()
{
return menu;
}
public ArrayList<Integer> getPrices()
{
return prices;
}
public int getCash()
{
return cash;
}
public int getChange()
{
return change;
}
public STATES getState()
{
return state;
}
public String getMessage()
{
return message;
}
public void on()
{
if(state.equals(STATES.OFF))
{
message="Внесите нужную сумму!";
state = STATES.WAIT;
}
else
message="Ошибка!";
}
public void coin(int value)
{
if(state.equals(STATES.WAIT))
{
change=0;
cash+=value;
state=STATES.ACCEPT;
message="Выберите напиток!";
}
else if(state.equals(STATES.ACCEPT))
{
cash+=value;
}
else
message="Ошибка!";
}
public int choice(int numberOfButton)
{
int price=0;
if(state.equals(STATES.ACCEPT))
{
price = prices.get(numberOfButton);
state = STATES.CHECK;
}
else
message="Ошибка!";
return price;
}
public boolean check(int price)
{
boolean check = false;
if(state.equals(STATES.CHECK))
{
if (cash<price)
{
cancel();
}
else
{
change=cash-price;
cash=0;
check=true;
}
}
return check;
}
public void cancel ()
{
if(state.equals(STATES.ACCEPT) || state.equals(STATES.CHECK))
{
change = cash;
cash = 0;
state = STATES.WAIT;
message="Отмена операции!";
}
else
message="Ошибка отмены!";
}
public void cook ()
{
if(state.equals(STATES.CHECK))
{
state = STATES.COOK;
finish();
}
}
private void finish()
{
if(state.equals(STATES.COOK))
{
state = STATES.WAIT;
}
}
public void off()
{
if(state.equals(STATES.WAIT))
{
state = STATES.OFF;
message="Включите автомат!";
}
else
message="Ошибка!";
}
}
Loading