Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
7fa4777711 |
@ -3,7 +3,6 @@ function setResult(result) {
|
|||||||
document.getElementById("result").innerHTML = lbl;
|
document.getElementById("result").innerHTML = lbl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function add(){
|
function add(){
|
||||||
executeRequest("add");
|
executeRequest("add");
|
||||||
}
|
}
|
||||||
@ -27,11 +26,10 @@ function enterArray(){
|
|||||||
function executeRequest(address) {
|
function executeRequest(address) {
|
||||||
let num1 = document.getElementById("addNum1").value;
|
let num1 = document.getElementById("addNum1").value;
|
||||||
let num2 = document.getElementById("addNum2").value;
|
let num2 = document.getElementById("addNum2").value;
|
||||||
let type = document.getElementById("type").value;
|
|
||||||
console.log("a" + num1 + "b" + num2)
|
console.log("a" + num1 + "b" + num2)
|
||||||
fetch(`http://localhost:8080/${address}?a=${num1}&b=${num2}&type=${type}`)
|
fetch(`http://localhost:8080/${address}?a=${num1}&b=${num2}`)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
return response.text();
|
return response.json();
|
||||||
})
|
})
|
||||||
.then(result => {
|
.then(result => {
|
||||||
setResult(result);
|
setResult(result);
|
||||||
@ -40,7 +38,7 @@ function executeRequest(address) {
|
|||||||
|
|
||||||
function executeRequestArray(address) {
|
function executeRequestArray(address) {
|
||||||
let array = document.getElementById("enterArray").value;
|
let array = document.getElementById("enterArray").value;
|
||||||
fetch(`http://localhost:8080/${address}?InputNumbers=${array}&type=${type}`)
|
fetch(`http://localhost:8080/${address}?InputNumbers=${array}`)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
return response.json();
|
return response.json();
|
||||||
})
|
})
|
||||||
|
@ -9,27 +9,24 @@
|
|||||||
<body>
|
<body>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
|
||||||
<main>
|
<main>
|
||||||
<div class = "container" style="margin: 1%">
|
|
||||||
<h4 class="mb-3">Команды</h4>
|
<h4 class="mb-3">Команды</h4>
|
||||||
<p>Сложение</p>
|
<p>Сложение</p>
|
||||||
<input type="text" class="form-control" id="addNum1" placeholder="" value="0" required="" style="width: 10%;">
|
<input type="number" class="form-control" id="addNum1" placeholder="" value="0" required="" style="width: 10%;">
|
||||||
<input type="text" class="form-control" id="addNum2" placeholder="" value="0" required="" style="width: 10%;">
|
<input type="number" class="form-control" id="addNum2" placeholder="" value="0" required="" style="width: 10%;">
|
||||||
<select class="form-select form-select-lg mb-3" id= "type" aria-label=".form-select-lg example" style="width: 10%">
|
|
||||||
<option selected>Тип</option>
|
|
||||||
<option value="string">string</option>
|
|
||||||
<option value="int">int</option>
|
|
||||||
<option value="boolean">boolean</option>
|
|
||||||
</select>
|
|
||||||
<button class="btn btn-success" onclick="add()">Сложить</button>
|
<button class="btn btn-success" onclick="add()">Сложить</button>
|
||||||
<button class="btn btn-success" onclick="sub()">Вычесть</button>
|
<button class="btn btn-success" onclick="sub()">Вычесть</button>
|
||||||
<button class="btn btn-success" onclick="mul()">Умножить</button>
|
<button class="btn btn-success" onclick="mul()">Умножить</button>
|
||||||
<button class="btn btn-success" onclick="del()">Поделить</button>
|
<button class="btn btn-success" onclick="del()">Поделить</button>
|
||||||
|
<input type="text" class="form-control" id="enterArray" placeholder="" value="0" required="" style="width: 10%;">
|
||||||
|
<button class="btn btn-success" onclick="enterArray()">Ввести</button>
|
||||||
|
<div id="result">Ответ:</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
<div id="result">Ответ:</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</main>
|
</main>
|
||||||
<script src="MyScript.js"></script>
|
<script src="MyScript.js"></script>
|
||||||
|
|
||||||
|
@ -15,9 +15,57 @@ public class MyappApplication {
|
|||||||
SpringApplication.run(MyappApplication.class, args);
|
SpringApplication.run(MyappApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/hello")
|
||||||
|
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
|
||||||
|
return String.format("Hello %s!", name);
|
||||||
|
}
|
||||||
|
@CrossOrigin
|
||||||
|
@GetMapping(value = "/add")
|
||||||
|
public Integer doSum(@RequestParam(value = "a", defaultValue = "0") int a,
|
||||||
|
@RequestParam(value = "b", defaultValue = "0") int b){
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
@GetMapping("/sub")
|
||||||
|
public Integer doSub(@RequestParam(value = "a", defaultValue = "0") int a,
|
||||||
|
@RequestParam(value = "b", defaultValue = "0") int b){
|
||||||
|
return a - b;
|
||||||
|
}
|
||||||
|
@GetMapping("/mul")
|
||||||
|
public Integer doMul(@RequestParam(value = "a", defaultValue = "0") int a,
|
||||||
|
@RequestParam(value = "b", defaultValue = "0") int b){
|
||||||
|
return a * b;
|
||||||
|
}
|
||||||
|
@GetMapping("/del")
|
||||||
|
public Integer doDel(@RequestParam(value = "a", defaultValue = "0") int a,
|
||||||
|
@RequestParam(value = "b", defaultValue = "1") int b){
|
||||||
|
if(b!=0) {
|
||||||
|
return a / b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
@GetMapping("/mu")
|
||||||
|
public String len(@RequestParam(value = "word", defaultValue = "") String name){
|
||||||
|
return String.format("Длина слова " + name + " " + len(name));
|
||||||
|
}
|
||||||
|
@CrossOrigin
|
||||||
|
@GetMapping("/array")
|
||||||
|
public Integer[] massive(@RequestParam(value = "InputNumbers") Integer[] inputNumbers){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String str = "";
|
||||||
|
|
||||||
|
for(int i = 0; i < inputNumbers.length; i++){
|
||||||
|
inputNumbers[i] = (inputNumbers[i] + 1);
|
||||||
|
}
|
||||||
|
return inputNumbers;
|
||||||
|
}
|
||||||
|
@GetMapping("/de")
|
||||||
|
public String root(){
|
||||||
|
return new Date().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
package ru.ulstu.is.myapp.controller;
|
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import ru.ulstu.is.myapp.service.MethodService;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
@RestController
|
|
||||||
public class Controller {
|
|
||||||
private final MethodService methodService;
|
|
||||||
public Controller(MethodService methodService){
|
|
||||||
this.methodService = methodService;
|
|
||||||
}
|
|
||||||
@GetMapping("/hello")
|
|
||||||
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
|
|
||||||
return String.format("Hello %s!", name);
|
|
||||||
}
|
|
||||||
@CrossOrigin
|
|
||||||
@GetMapping(value = "/add")
|
|
||||||
public String doSum(@RequestParam(value = "a", defaultValue = "0") Object a,
|
|
||||||
@RequestParam(value = "b", defaultValue = "0") Object b,
|
|
||||||
@RequestParam(value = "type", defaultValue = "int") String type){
|
|
||||||
return methodService.doSum(a,b, type);
|
|
||||||
}
|
|
||||||
@GetMapping("/sub")
|
|
||||||
public String doSub(@RequestParam(value = "a", defaultValue = "0") Object a,
|
|
||||||
@RequestParam(value = "b", defaultValue = "0") Object b,
|
|
||||||
@RequestParam(value = "type", defaultValue = "int") String type){
|
|
||||||
return methodService.doSub(a, b, type);
|
|
||||||
}
|
|
||||||
@GetMapping("/mul")
|
|
||||||
public String doMul(@RequestParam(value = "a", defaultValue = "0") Object a,
|
|
||||||
@RequestParam(value = "b", defaultValue = "0") Object b,
|
|
||||||
@RequestParam(value = "type", defaultValue = "int") String type){
|
|
||||||
return methodService.doMul(a, b, type);
|
|
||||||
}
|
|
||||||
@GetMapping("/del")
|
|
||||||
public String doDel(@RequestParam(value = "a", defaultValue = "0") Object a,
|
|
||||||
@RequestParam(value = "b", defaultValue = "1") Object b,
|
|
||||||
@RequestParam(value = "type", defaultValue = "int") String type){
|
|
||||||
return methodService.doDel(a, b, type);
|
|
||||||
}
|
|
||||||
@GetMapping("/mu")
|
|
||||||
public String len(@RequestParam(value = "word", defaultValue = "") String name){
|
|
||||||
return String.format("Длина слова " + name + " " + len(name));
|
|
||||||
}
|
|
||||||
@GetMapping("/de")
|
|
||||||
public String root(){
|
|
||||||
return new Date().toString();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
package ru.ulstu.is.myapp.domain;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component(value="boolean")
|
|
||||||
public class BoolMethod implements IMethods<Boolean>{
|
|
||||||
@Override
|
|
||||||
public Boolean doSum(Boolean a, Boolean b) {
|
|
||||||
return a || b;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean doSub(Boolean a, Integer b) {
|
|
||||||
return (!a && b%2==0) || (a && !(b%2==0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean doMul(Boolean a, Integer b) {
|
|
||||||
return a && b%2 != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean doDel(Boolean a, Integer b) {
|
|
||||||
if (b%2==0) return false;
|
|
||||||
else if(!a) return false;
|
|
||||||
else return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
package ru.ulstu.is.myapp.domain;
|
|
||||||
|
|
||||||
public interface IMethods<T> {
|
|
||||||
T doSum(T a, T b);
|
|
||||||
T doSub(T a, Integer b);
|
|
||||||
T doMul(T a, Integer b);
|
|
||||||
T doDel(T a, Integer b);
|
|
||||||
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
package ru.ulstu.is.myapp.domain;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component(value="int")
|
|
||||||
public class IntMethod implements IMethods<Integer> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer doSum(Integer a, Integer b) {
|
|
||||||
return a + b;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer doSub(Integer a, Integer b) {
|
|
||||||
return a - b;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer doMul(Integer a, Integer b) {
|
|
||||||
return a*b;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer doDel(Integer a, Integer b) {
|
|
||||||
if(b!=0){
|
|
||||||
return a/b;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
package ru.ulstu.is.myapp.domain;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component(value="string")
|
|
||||||
public class StrMethod implements IMethods<String> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String doSum(String a, String b) {
|
|
||||||
return a.concat(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String doSub(String a, Integer b) {
|
|
||||||
String temp = a;
|
|
||||||
if(temp.length() >= b){
|
|
||||||
return temp.substring(0, a.length() - b);
|
|
||||||
}else{
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String doMul(String a, Integer b) {
|
|
||||||
String str = " ";
|
|
||||||
if(b == 0){
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
for(int i = 0; i < b; i++){
|
|
||||||
str = str + a;
|
|
||||||
}
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String doDel(String a, Integer b) {
|
|
||||||
if(b == 0){
|
|
||||||
return "На ноль делить нельзя!";
|
|
||||||
}
|
|
||||||
char[] chara = a.toCharArray();
|
|
||||||
String result = "";
|
|
||||||
for(int i = 0; i < chara.length/b; i++){
|
|
||||||
result += chara[i];
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
package ru.ulstu.is.myapp.service;
|
|
||||||
|
|
||||||
import org.springframework.context.ApplicationContext;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import ru.ulstu.is.myapp.domain.BoolMethod;
|
|
||||||
import ru.ulstu.is.myapp.domain.IMethods;
|
|
||||||
import ru.ulstu.is.myapp.domain.IntMethod;
|
|
||||||
import ru.ulstu.is.myapp.domain.StrMethod;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class MethodService {
|
|
||||||
private final ApplicationContext applicationContext;
|
|
||||||
|
|
||||||
public MethodService(ApplicationContext applicationContext){
|
|
||||||
this.applicationContext = applicationContext;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public String doSum(Object a, Object b, String type){
|
|
||||||
final IMethods method = (IMethods) applicationContext.getBean(type);
|
|
||||||
if(method instanceof StrMethod){
|
|
||||||
System.out.print("str");
|
|
||||||
return String.format("%s" , method.doSum(a, b));
|
|
||||||
}
|
|
||||||
if(method instanceof IntMethod){
|
|
||||||
System.out.print("int");
|
|
||||||
return String.format("%s" , method.doSum(Integer.parseInt(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof BoolMethod){
|
|
||||||
System.out.print("bool");
|
|
||||||
return String.format("%s" , method.doSum(Boolean.parseBoolean(a.toString()), Boolean.parseBoolean(b.toString())));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public String doSub(Object a, Object b, String type){
|
|
||||||
final IMethods method = (IMethods) applicationContext.getBean(type);
|
|
||||||
if(method instanceof StrMethod){
|
|
||||||
return String.format("%s" , method.doSub(a.toString(), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof IntMethod){
|
|
||||||
return String.format("%s" , method.doSub(Integer.parseInt(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof BoolMethod){
|
|
||||||
return String.format("%s" , method.doSub(Boolean.parseBoolean(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public String doMul(Object a, Object b, String type){
|
|
||||||
final IMethods method = (IMethods) applicationContext.getBean(type);
|
|
||||||
if(method instanceof StrMethod){
|
|
||||||
return String.format("%s" , method.doMul(a.toString(), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof IntMethod){
|
|
||||||
return String.format("%s" , method.doMul(Integer.parseInt(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof BoolMethod){
|
|
||||||
return String.format("%s" , method.doMul(Boolean.parseBoolean(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public String doDel(Object a, Object b, String type){
|
|
||||||
final IMethods method = (IMethods) applicationContext.getBean(type);
|
|
||||||
if(method instanceof StrMethod){
|
|
||||||
return String.format("%s" , method.doDel(a.toString(), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof IntMethod){
|
|
||||||
return String.format("%s" , method.doDel(Integer.parseInt(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
if(method instanceof BoolMethod){
|
|
||||||
return String.format("%s" , method.doDel(Boolean.parseBoolean(a.toString()), Integer.parseInt(b.toString())));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,91 +1,13 @@
|
|||||||
package ru.ulstu.is.myapp;
|
package ru.ulstu.is.myapp;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import ru.ulstu.is.myapp.service.MethodService;
|
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
class MyappApplicationTests {
|
class MyappApplicationTests {
|
||||||
@Autowired
|
|
||||||
private MethodService methodService;
|
|
||||||
@Test
|
@Test
|
||||||
void contextLoads() {
|
void contextLoads() {
|
||||||
}
|
}
|
||||||
//sum
|
|
||||||
@Test
|
|
||||||
void testSumStr(){
|
|
||||||
String res = methodService.doSum("Hi, ", "Dima", "string");
|
|
||||||
Assertions.assertEquals("Hi, Dima", res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testSumInt(){
|
|
||||||
Integer res = Integer.valueOf(methodService.doSum(5, 5, "int"));
|
|
||||||
Assertions.assertEquals(10, res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testSumBool(){
|
|
||||||
Boolean res = Boolean.valueOf(methodService.doSum(true, true, "boolean"));
|
|
||||||
Assertions.assertEquals(true, res);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Sub
|
|
||||||
@Test
|
|
||||||
void testSubStr(){
|
|
||||||
String res = methodService.doSub("hello", 1, "string");
|
|
||||||
Assertions.assertEquals("hell", res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testSubStr2(){
|
|
||||||
Assertions.assertThrows(NumberFormatException.class, () -> methodService.doSub("hello", 2, "int"));
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testSubInt(){
|
|
||||||
Integer res = Integer.valueOf(methodService.doSub(5, 2, "int"));
|
|
||||||
Assertions.assertEquals(3, res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testSubBool(){
|
|
||||||
Boolean res = Boolean.valueOf(methodService.doSub(true, 0, "boolean"));
|
|
||||||
Assertions.assertEquals(false, res);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Mul
|
|
||||||
@Test
|
|
||||||
void testMulStr(){
|
|
||||||
String res = methodService.doMul("hello", 2, "string");
|
|
||||||
Assertions.assertEquals(" hellohello", res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testMulInt(){
|
|
||||||
Integer res = Integer.valueOf(methodService.doMul(5, 2, "int"));
|
|
||||||
Assertions.assertEquals(10, res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testMulBool(){
|
|
||||||
Boolean res = Boolean.valueOf(methodService.doMul(true, 0, "boolean"));
|
|
||||||
Assertions.assertEquals(false, res);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Del
|
|
||||||
@Test
|
|
||||||
void testDelStr(){
|
|
||||||
String res = methodService.doDel("hello0", 2, "string");
|
|
||||||
Assertions.assertEquals("hel", res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testDelInt(){
|
|
||||||
Integer res = Integer.valueOf(methodService.doDel(6, 2, "int"));
|
|
||||||
Assertions.assertEquals(3, res);
|
|
||||||
}
|
|
||||||
@Test
|
|
||||||
void testDelBool(){
|
|
||||||
Boolean res = Boolean.valueOf(methodService.doDel(true, 2, "boolean"));
|
|
||||||
Assertions.assertEquals(false, res);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user