Skip to content
Open
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
15 changes: 15 additions & 0 deletions Automata/Automata.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
Binary file added Automata/out/artifacts/Automata_jar/Automata.jar
Binary file not shown.
28 changes: 28 additions & 0 deletions Automata/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>Java-lab-5</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>
3 changes: 3 additions & 0 deletions Automata/src/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: sample.Main

138 changes: 138 additions & 0 deletions Automata/src/main/java/sample/Automata.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
package sample;
import java.util.ArrayList;

public class Automata {
enum STATES {OFF, WAIT, ACCEPT, CHECK, COOK}
private int cash;
private int change;

public void setMenu() {
menu.add("Эспрессо 60 мл.");
menu.add("Американо");
menu.add("Кофе с молоком");
menu.add("Капучино");
menu.add("Латте");
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(25);
prices.add(30);
prices.add(30);
prices.add(40);
prices.add(35);
prices.add(25);
prices.add(30);
prices.add(25);
prices.add(30);
prices.add(30);
}

private ArrayList<String> menu = new ArrayList<>();
private ArrayList<Integer> prices = new ArrayList<>();
private STATES state;
private String message;
public Automata() {
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