Skip to content
This repository was archived by the owner on Dec 28, 2024. It is now read-only.

Commit 9ef4902

Browse files
committed
Лабораторная№16-18
1 parent 294cee4 commit 9ef4902

File tree

19 files changed

+825
-0
lines changed

19 files changed

+825
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0565</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0565-p16</artifactId>
12+
<description>16 практическая</description>
13+
</project>
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
package ru.mirea.practice.s0000001.n1;
2+
3+
import javax.swing.JFrame;
4+
import javax.swing.JButton;
5+
import javax.swing.JLabel;
6+
import javax.swing.JTextField;
7+
import javax.swing.SwingConstants;
8+
import javax.swing.JPanel;
9+
import javax.swing.JOptionPane;
10+
import java.awt.event.ActionListener;
11+
import java.awt.event.ActionEvent;
12+
import java.awt.BorderLayout;
13+
import java.awt.event.MouseAdapter;
14+
import java.awt.event.MouseEvent;
15+
16+
public class Ygad extends JFrame {
17+
private int targetNumber;
18+
private int attemptsLeft = 3;
19+
private JTextField guessField;
20+
private JLabel messageLabel;
21+
22+
public Ygad() {
23+
setTitle("Игра-Угадайка:)");
24+
setSize(400, 400);
25+
setLayout(new BorderLayout());
26+
setDefaultCloseOperation(EXIT_ON_CLOSE);
27+
28+
targetNumber = (int) (Math.random() * 21);
29+
30+
guessField = new JTextField();
31+
guessField.setHorizontalAlignment(JTextField.CENTER);
32+
add(guessField, BorderLayout.CENTER);
33+
34+
JButton guessButton = new JButton("Угадать");
35+
guessButton.addActionListener(new ActionListener() {
36+
@Override
37+
public void actionPerformed(ActionEvent e) {
38+
checkGuess();
39+
}
40+
});
41+
add(guessButton, BorderLayout.SOUTH);
42+
43+
messageLabel = new JLabel("Угадайте число от 0 до 20. У Вас 3 попытки", SwingConstants.CENTER);
44+
add(messageLabel, BorderLayout.NORTH);
45+
46+
addMouseListener(new MouseAdapter() {
47+
@Override
48+
public void mouseEntered(MouseEvent e) {
49+
showRegionMessage(e.getComponent().getName());
50+
}
51+
});
52+
53+
addRegionPanels();
54+
setVisible(true);
55+
}
56+
57+
private void checkGuess() {
58+
try {
59+
int guess = Integer.parseInt(guessField.getText());
60+
attemptsLeft--;
61+
62+
if (guess == targetNumber) {
63+
messageLabel.setText("Поздравляем! Вы угадали число! ^V^");
64+
guessField.setEnabled(false);
65+
} else if (attemptsLeft > 0) {
66+
if (guess < targetNumber) {
67+
messageLabel.setText("Неправильно! Загаданное число больше указанного. Осталось попыток: " + attemptsLeft);
68+
} else {
69+
messageLabel.setText("Неправильно! Загаданное число меньше указанного. Осталось попыток: " + attemptsLeft);
70+
}
71+
} else {
72+
messageLabel.setText("Вы исчерпали попытки:( Загаданное число было: " + targetNumber);
73+
guessField.setEnabled(false);
74+
}
75+
} catch (NumberFormatException ex) {
76+
messageLabel.setText("Пожалуйста, введите целое число");
77+
}
78+
}
79+
80+
private void addRegionPanels() {
81+
82+
JPanel centerPanel = new JPanel();
83+
centerPanel.setName("CENTER");
84+
add(centerPanel, BorderLayout.CENTER);
85+
86+
JPanel westPanel = new JPanel();
87+
westPanel.setName("WEST");
88+
add(westPanel, BorderLayout.WEST);
89+
90+
JPanel southPanel = new JPanel();
91+
southPanel.setName("SOUTH");
92+
add(southPanel, BorderLayout.SOUTH);
93+
94+
JPanel northPanel = new JPanel();
95+
northPanel.setName("NORTH");
96+
add(northPanel, BorderLayout.NORTH);
97+
98+
JPanel eastPanel = new JPanel();
99+
eastPanel.setName("EAST");
100+
add(eastPanel, BorderLayout.EAST);
101+
}
102+
103+
private void showRegionMessage(String region) {
104+
String message = "";
105+
switch (region) {
106+
case "CENTER":
107+
message = "Добро пожаловать в ЦАО";
108+
break;
109+
case "WEST":
110+
message = "Добро пожаловать в ЗАО";
111+
break;
112+
case "SOUTH":
113+
message = "Добро пожаловать в ЮАО";
114+
break;
115+
case "NORTH":
116+
message = "Добро пожаловать в САО";
117+
break;
118+
case "EAST":
119+
message = "Добро пожаловать в ВАО";
120+
break;
121+
default:
122+
message = "Неизвестная область";
123+
break;
124+
}
125+
if (!message.isEmpty()) {
126+
JOptionPane.showMessageDialog(this, message);
127+
}
128+
}
129+
130+
public static void main(String[] args) {
131+
new Ygad();
132+
}
133+
}
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package ru.mirea.practice.s0000001.n2;
2+
3+
import javax.swing.JFrame;
4+
import javax.swing.JTextArea;
5+
import javax.swing.JMenuBar;
6+
import javax.swing.JMenu;
7+
import javax.swing.JMenuItem;
8+
import java.awt.Font;
9+
import java.awt.Color;
10+
import java.awt.event.ActionEvent;
11+
import java.awt.event.ActionListener;
12+
13+
public class ChoiceM extends JFrame {
14+
private JTextArea textArea;
15+
16+
public ChoiceM() {
17+
textArea = new JTextArea();
18+
textArea.setLineWrap(true);
19+
textArea.setWrapStyleWord(true);
20+
add(textArea);
21+
22+
JMenuBar menuBar = new JMenuBar();
23+
setJMenuBar(menuBar);
24+
25+
JMenu colorMenu = new JMenu("Цвет");
26+
menuBar.add(colorMenu);
27+
28+
JMenuItem blueItem = new JMenuItem("Синий");
29+
JMenuItem redItem = new JMenuItem("Красный");
30+
JMenuItem blackItem = new JMenuItem("Чёрный");
31+
colorMenu.add(blueItem);
32+
colorMenu.add(redItem);
33+
colorMenu.add(blackItem);
34+
35+
blueItem.addActionListener(new ActionListener() {
36+
public void actionPerformed(ActionEvent e) {
37+
textArea.setForeground(Color.BLUE);
38+
}
39+
});
40+
41+
redItem.addActionListener(new ActionListener() {
42+
public void actionPerformed(ActionEvent e) {
43+
textArea.setForeground(Color.RED);
44+
}
45+
});
46+
47+
blackItem.addActionListener(new ActionListener() {
48+
public void actionPerformed(ActionEvent e) {
49+
textArea.setForeground(Color.BLACK);
50+
}
51+
});
52+
53+
JMenu fontMenu = new JMenu("Шрифт");
54+
menuBar.add(fontMenu);
55+
56+
JMenuItem timesItem = new JMenuItem("Times New Roman");
57+
JMenuItem sansItem = new JMenuItem("MS Sans Serif");
58+
JMenuItem courierItem = new JMenuItem("Courier New");
59+
fontMenu.add(timesItem);
60+
fontMenu.add(sansItem);
61+
fontMenu.add(courierItem);
62+
63+
timesItem.addActionListener(new ActionListener() {
64+
public void actionPerformed(ActionEvent e) {
65+
textArea.setFont(new Font("Times New Roman", Font.PLAIN, 16));
66+
}
67+
});
68+
69+
sansItem.addActionListener(new ActionListener() {
70+
public void actionPerformed(ActionEvent e) {
71+
textArea.setFont(new Font("MS Sans Serif", Font.PLAIN, 16));
72+
}
73+
});
74+
75+
courierItem.addActionListener(new ActionListener() {
76+
public void actionPerformed(ActionEvent e) {
77+
textArea.setFont(new Font("Courier New", Font.PLAIN, 16));
78+
}
79+
});
80+
81+
setSize(500, 400);
82+
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
83+
setLocationRelativeTo(null);
84+
}
85+
86+
public static void main(String[] args) {
87+
new ChoiceM().setVisible(true);
88+
}
89+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package ru.mirea.practice.s0000001.n3;
2+
3+
import javax.swing.JFrame;
4+
import javax.swing.JPanel;
5+
import javax.swing.JLabel;
6+
import javax.swing.JTextField;
7+
import javax.swing.JPasswordField;
8+
import java.awt.GridLayout;
9+
10+
public class PassW extends JFrame {
11+
12+
public PassW() {
13+
setTitle("Password application");
14+
setSize(300, 150);
15+
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
16+
setLocationRelativeTo(null);
17+
18+
JPanel panel = new JPanel(new GridLayout(3, 2, 5, 5));
19+
20+
JLabel serviceLabel = new JLabel("Service:");
21+
JTextField serviceField = new JTextField();
22+
23+
JLabel userLabel = new JLabel("User name:");
24+
JTextField userField = new JTextField();
25+
26+
JLabel passwordLabel = new JLabel("Password:");
27+
JPasswordField passwordField = new JPasswordField();
28+
29+
panel.add(serviceLabel);
30+
panel.add(serviceField);
31+
panel.add(userLabel);
32+
panel.add(userField);
33+
panel.add(passwordLabel);
34+
panel.add(passwordField);
35+
36+
add(panel);
37+
}
38+
39+
public static void main(String[] args) {
40+
new PassW().setVisible(true);
41+
}
42+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>23K0565</artifactId>
7+
<groupId>ru.mirea.practice</groupId>
8+
<version>2024.1</version>
9+
<relativePath>../pom.xml</relativePath>
10+
</parent>
11+
<artifactId>23K0565-p17</artifactId>
12+
<description>17 практическая</description>
13+
</project>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package ru.mirea.practice.s0000001.n1;
2+
3+
class List {
4+
private Node head;
5+
6+
List() {
7+
head = null;
8+
}
9+
10+
boolean isEmpty() {
11+
return head == null;
12+
}
13+
14+
void addElement(Node newNode) {
15+
if (head == null) {
16+
head = newNode;
17+
} else {
18+
Node current = head;
19+
while (current.next != null) {
20+
current = current.next;
21+
}
22+
current.next = newNode;
23+
}
24+
}
25+
26+
void removeElement(String name) {
27+
if (isEmpty()) {
28+
System.out.println("Список пуст.");
29+
return;
30+
}
31+
if (head.name.equals(name)) {
32+
head = head.next;
33+
return;
34+
}
35+
Node current = head;
36+
while (current.next != null && !current.next.name.equals(name)) {
37+
current = current.next;
38+
}
39+
if (current.next == null) {
40+
System.out.println("Элемент не найден.");
41+
} else {
42+
current.next = current.next.next;
43+
}
44+
}
45+
46+
void displayList() {
47+
if (isEmpty()) {
48+
System.out.println("Список пуст.");
49+
return;
50+
}
51+
Node current = head;
52+
while (current != null) {
53+
current.displayAttributes();
54+
current = current.next;
55+
}
56+
}
57+
58+
void clearList() {
59+
head = null;
60+
}
61+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package ru.mirea.practice.s0000001.n1;
2+
3+
import java.util.Scanner;
4+
5+
class Node {
6+
String name;
7+
int age;
8+
Node next;
9+
10+
void readAttributes() {
11+
try (Scanner scanner = new Scanner(System.in)) {
12+
System.out.print("Введите имя: ");
13+
name = scanner.nextLine();
14+
System.out.print("Введите возраст: ");
15+
age = scanner.nextInt();
16+
}
17+
}
18+
19+
void displayAttributes() {
20+
System.out.println("Имя: " + name + ", Возраст: " + age);
21+
}
22+
}

0 commit comments

Comments
 (0)