ЛР2 Все кроме тестов
This commit is contained in:
parent
f68abec3fa
commit
84c206fb61
@ -13,20 +13,26 @@
|
|||||||
<body>
|
<body>
|
||||||
<form id="frm-items" class="row g-3">
|
<form id="frm-items" class="row g-3">
|
||||||
<div class="d-flex flex-column w-25 my-5 mx-3">
|
<div class="d-flex flex-column w-25 my-5 mx-3">
|
||||||
Введите строку
|
Выберите тип данных
|
||||||
<input id="string" class="form-control" type="text" placeholder="word"></input>
|
<div>
|
||||||
укажите разделитель
|
<select id="type" class="form-select" >
|
||||||
<input id="place" class="form-control" type="text" placeholder="place"></input>
|
<option value="int">Число</option>
|
||||||
|
<option value="string">Строка</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
Введите первое значение
|
||||||
|
<input id="first" class="form-control"></input>
|
||||||
|
Введите второе значение
|
||||||
|
<input id="second" class="form-control"></input>
|
||||||
Выберите операцию
|
Выберите операцию
|
||||||
<div>
|
<div>
|
||||||
<button type="button" class="btn btn-primary" id="buttonUpper">Upper</button>
|
<button type="button" class="btn btn-primary" id="buttonSum">Sum</button>
|
||||||
<button type="button" class="btn btn-primary" id="buttonLower">Lower</button>
|
<button type="button" class="btn btn-primary" id="buttonMinus">Minus</button>
|
||||||
<button type="button" class="btn btn-primary" id="buttonReverse">Reverse</button>
|
<button type="button" class="btn btn-primary" id="buttonReverse">Reverse</button>
|
||||||
<button type="button" class="btn btn-primary" id="buttonCount">Length</button>
|
<button type="button" class="btn btn-primary" id="buttonComparison">Comparison</button>
|
||||||
<button type="button" class="btn btn-primary" id="buttonDel">Del</button>
|
|
||||||
</div>
|
</div>
|
||||||
Результат
|
Результат
|
||||||
<input id="res" class="form-control" type="text" placeholder="result"></input>
|
<input id="res" class="form-control"></input>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<script src="script.js"></script>
|
<script src="script.js"></script>
|
||||||
|
@ -1,40 +1,41 @@
|
|||||||
let buttonUpper = document.getElementById("buttonUpper");
|
let buttonSum = document.getElementById("buttonSum");
|
||||||
let buttonLower = document.getElementById("buttonLower");
|
let buttonMinus = document.getElementById("buttonMinus");
|
||||||
let buttonReverse = document.getElementById("buttonReverse");
|
let buttonReverse = document.getElementById("buttonReverse");
|
||||||
let buttonCount = document.getElementById("buttonCount");
|
let buttonComparison = document.getElementById("buttonComparison");
|
||||||
let buttonDel = document.getElementById("buttonDel");
|
let numberOneInput = document.getElementById("first");
|
||||||
let stringInput = document.getElementById("string");
|
let numberTwoInput = document.getElementById("second");
|
||||||
let placeInput = document.getElementById("place");
|
let typeInput = document.getElementById("type");
|
||||||
let resultInput = document.getElementById("res");
|
let resultInput = document.getElementById("res");
|
||||||
|
|
||||||
buttonUpper.onclick = function(event) {
|
buttonSum.onclick = function(event) {
|
||||||
let str = stringInput.value;
|
let num_1 = numberOneInput.value;
|
||||||
fetch(`http://localhost:8080/toUpperCase?string=${str}`)
|
let num_2 = numberTwoInput.value;
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/sum?first=${num_1}&second=${num_2}&type=${type}`)
|
||||||
.then(response => response.text())
|
.then(response => response.text())
|
||||||
.then(res => resultInput.value = res);
|
.then(res => resultInput.value = res);
|
||||||
}
|
}
|
||||||
buttonLower.onclick = function(event) {
|
buttonMinus.onclick = function(event) {
|
||||||
let str = stringInput.value;
|
let num_1 = numberOneInput.value;
|
||||||
fetch(`http://localhost:8080/toLowerCase?string=${str}`)
|
let num_2 = numberTwoInput.value;
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/minus?first=${num_1}&second=${num_2}&type=${type}`)
|
||||||
.then(response => response.text())
|
.then(response => response.text())
|
||||||
.then(res => resultInput.value = res);
|
.then(res => resultInput.value = res);
|
||||||
}
|
}
|
||||||
buttonReverse.onclick = function(event) {
|
buttonReverse.onclick = function(event) {
|
||||||
let str = stringInput.value;
|
let num_1 = numberOneInput.value;
|
||||||
fetch(`http://localhost:8080/reverse?string=${str}`)
|
let num_2 = numberTwoInput.value;
|
||||||
|
let type = typeInput.value;
|
||||||
|
fetch(`http://localhost:8080/reverse?first=${num_1}&second=${num_2}&type=${type}`)
|
||||||
.then(response => response.text())
|
.then(response => response.text())
|
||||||
.then(res => resultInput.value = res);
|
.then(res => resultInput.value = res);
|
||||||
}
|
}
|
||||||
buttonCount.onclick = function(event) {
|
buttonComparison.onclick = function(event) {
|
||||||
let str = stringInput.value;
|
let num_1 = numberOneInput.value;
|
||||||
fetch(`http://localhost:8080/count?string=${str}`)
|
let num_2 = numberTwoInput.value;
|
||||||
.then(response => response.text())
|
let type = typeInput.value;
|
||||||
.then(res => resultInput.value = res);
|
fetch(`http://localhost:8080/comparison?first=${num_1}&second=${num_2}&type=${type}`)
|
||||||
}
|
|
||||||
buttonDel.onclick = function(event) {
|
|
||||||
let str = stringInput.value;
|
|
||||||
let plc = placeInput.value;
|
|
||||||
fetch(`http://localhost:8080/del?string=${str}&place=${plc}`)
|
|
||||||
.then(response => response.text())
|
.then(response => response.text())
|
||||||
.then(res => resultInput.value = res);
|
.then(res => resultInput.value = res);
|
||||||
}
|
}
|
||||||
|
@ -13,32 +13,4 @@ public class Lab1 {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(Lab1.class, args);
|
SpringApplication.run(Lab1.class, args);
|
||||||
}
|
}
|
||||||
@GetMapping("/hello")
|
|
||||||
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
|
|
||||||
return String.format("Hello %s!", name);
|
|
||||||
}
|
|
||||||
@GetMapping("/toUpperCase")
|
|
||||||
public String toUpperCase(@RequestParam(defaultValue = "word") String string){
|
|
||||||
return string.toUpperCase();
|
|
||||||
}
|
|
||||||
@GetMapping("/toLowerCase")
|
|
||||||
public String toLowerCase(@RequestParam(defaultValue = "word") String string){
|
|
||||||
return string.toLowerCase();
|
|
||||||
}
|
|
||||||
@GetMapping("/reverse")
|
|
||||||
public String reverse(@RequestParam(defaultValue = "word") String string){
|
|
||||||
String newStr="";
|
|
||||||
for(int i = string.length() - 1; i >= 0; i--){
|
|
||||||
newStr += string.charAt(i);
|
|
||||||
}
|
|
||||||
return newStr;
|
|
||||||
}
|
|
||||||
@GetMapping("/count")
|
|
||||||
public String count(@RequestParam(defaultValue = "word") String string){
|
|
||||||
return Integer.toString(string.length());
|
|
||||||
}
|
|
||||||
@GetMapping("/del")
|
|
||||||
public String del(@RequestParam(defaultValue = "word") String string, String place){
|
|
||||||
return String.join(" ", string.split(place));
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package ru.ulstu.is.lab1.speaker.controller;
|
||||||
|
|
||||||
|
import ru.ulstu.is.lab1.speaker.service.MethodService;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class MethodController {
|
||||||
|
private final MethodService speakerService;
|
||||||
|
|
||||||
|
public MethodController(MethodService speakerService) {
|
||||||
|
this.speakerService = speakerService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/sum")
|
||||||
|
public String Sum(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "second", defaultValue = "1") Object second,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.Sum(first, second, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/minus")
|
||||||
|
public String Ras(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "second", defaultValue = "1") Object second,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.Ras(first, second, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/reverse")
|
||||||
|
public String Pros(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "second", defaultValue = "1") Object second,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.Rev(first, second, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/comparison")
|
||||||
|
public String Del(@RequestParam(value = "first", defaultValue = "1") Object first,
|
||||||
|
@RequestParam(value = "second", defaultValue = "1") Object second,
|
||||||
|
@RequestParam(value = "type", defaultValue = "int") String type) {
|
||||||
|
return speakerService.Com(first, second, type);
|
||||||
|
}
|
||||||
|
}
|
11
src/main/java/ru/ulstu/is/lab1/speaker/domain/IMethod.java
Normal file
11
src/main/java/ru/ulstu/is/lab1/speaker/domain/IMethod.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package ru.ulstu.is.lab1.speaker.domain;
|
||||||
|
|
||||||
|
public interface IMethod<T> {
|
||||||
|
T Sum(T first, T second);
|
||||||
|
|
||||||
|
T Minus(T first, T second);
|
||||||
|
|
||||||
|
T Reverse(T first, T second);
|
||||||
|
|
||||||
|
T Comparison(T first, T second);
|
||||||
|
}
|
28
src/main/java/ru/ulstu/is/lab1/speaker/domain/MethodInt.java
Normal file
28
src/main/java/ru/ulstu/is/lab1/speaker/domain/MethodInt.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package ru.ulstu.is.lab1.speaker.domain;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component(value="int")
|
||||||
|
public class MethodInt implements IMethod<Integer>{
|
||||||
|
public Integer Sum(Integer first, Integer second) {
|
||||||
|
return Integer.parseInt(first.toString()) + Integer.parseInt(second.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer Minus(Integer first, Integer second) {
|
||||||
|
return Integer.parseInt(first.toString()) - Integer.parseInt(second.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer Reverse(Integer first, Integer second) {
|
||||||
|
return (Integer.parseInt(first.toString()) + Integer.parseInt(second.toString())) * (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer Comparison(Integer first, Integer second) {
|
||||||
|
int num1 = Integer.parseInt(first.toString());
|
||||||
|
int num2 = Integer.parseInt(second.toString());
|
||||||
|
if (num1 >= num2){
|
||||||
|
return num1;
|
||||||
|
}else{
|
||||||
|
return num2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package ru.ulstu.is.lab1.speaker.domain;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component(value="string")
|
||||||
|
public class MethodString implements IMethod<String>{
|
||||||
|
@Override
|
||||||
|
public String Sum(String first, String second) {
|
||||||
|
return first.concat(second);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Minus(String first, String second) {
|
||||||
|
String arr[] = first.split("");
|
||||||
|
for(int i = 0; i < first.length(); i++){
|
||||||
|
if (second.indexOf(arr[i]) >= 0){
|
||||||
|
arr[i] = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return String.join("", arr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Reverse(String first, String second) {
|
||||||
|
String ourStr = first.concat(second);
|
||||||
|
String newStr = "";
|
||||||
|
for(int i = ourStr.length() - 1; i >= 0; i--){
|
||||||
|
newStr += ourStr.charAt(i);
|
||||||
|
}
|
||||||
|
return newStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String Comparison(String first, String second) {
|
||||||
|
if (first.length() >= second.length()){
|
||||||
|
return first;
|
||||||
|
}else{
|
||||||
|
return second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package ru.ulstu.is.lab1.speaker.service;
|
||||||
|
|
||||||
|
import ru.ulstu.is.lab1.speaker.domain.IMethod;
|
||||||
|
import ru.ulstu.is.lab1.speaker.domain.MethodString;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class MethodService {
|
||||||
|
private final ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
public MethodService(ApplicationContext applicationContext) {
|
||||||
|
this.applicationContext = applicationContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String Sum(Object first, Object second, String type) {
|
||||||
|
final IMethod speaker = (IMethod) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof MethodString){
|
||||||
|
return String.format("%s", speaker.Sum(first,second));
|
||||||
|
}else{
|
||||||
|
return String.format("%s", speaker.Sum(Integer.parseInt(first.toString()),Integer.parseInt(second.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String Ras(Object first, Object second, String type) {
|
||||||
|
final IMethod speaker = (IMethod) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof MethodString){
|
||||||
|
return String.format("%s", speaker.Minus(first,second));
|
||||||
|
}else{
|
||||||
|
return String.format("%s", speaker.Minus(Integer.parseInt(first.toString()),Integer.parseInt(second.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String Rev(Object first, Object second, String type) {
|
||||||
|
final IMethod speaker = (IMethod) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof MethodString){
|
||||||
|
return String.format("%s", speaker.Reverse(first,second));
|
||||||
|
}else{
|
||||||
|
return String.format("%s", speaker.Reverse(Integer.parseInt(first.toString()),Integer.parseInt(second.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String Com(Object first, Object second, String type) {
|
||||||
|
final IMethod speaker = (IMethod) applicationContext.getBean(type);
|
||||||
|
if (speaker instanceof MethodString){
|
||||||
|
return String.format("%s", speaker.Comparison(first,second));
|
||||||
|
}else {
|
||||||
|
return String.format("%s", speaker.Comparison(Integer.parseInt(first.toString()), Integer.parseInt(second.toString())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user