Добавил:
инст: frz.alinkenss Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР1_разработка консольного приложения на JAVA

.docx
Скачиваний:
12
Добавлен:
16.11.2022
Размер:
86.94 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 42

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель

В.А. Ушаков

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1

РАЗРАБОТКА КОНСОЛЬНОГО ПРИЛОЖЕНИЯ НА JAVA

по курсу: КРОССПЛАТФОРМЕННОЕ ПРОГРАММИРОВАНИЕ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4021

Фарзалина Алина

фамилия, имя

Санкт-Петербург 2022

Цель работы

Изучение процедурной модели программирования, изучение основ работы со строками и файлами на языке JAVA.

Задание

  1. Расчет числа N и соответствующих вариантов

N = 4021 + 19 = 4040

Сортировка = 1. по убыванию длины строки (при 4040/2 остаток 0, 0 + 1 = 1)

Метод сортировки = 1. поиск минимума (при 4040/4 остаток 0, 0 + 1 = 1)

Обработка строк = 6. добавить в конец строки количество гласных букв (при 4040/15 получается целое 269 и остаток 5, 5 + 1 = 6)

2) Ход работы

1. Организовать ввод числа строк n с консоли или ввести их из указанного (в консоли) текстового файла.

2. Организовать ввод n строк с консоли в массив строк.

3. Выполнить сортировку по убыванию длины (через поиск минимума)

4. Выполнить задание по обработке строк в соответствии с вариантом: добавить в конец строки количество гласных букв

5. Организовать ввод строки fname с именем выходного файла.

6. Записать результат обработки строк в файл с именем fname.

7. В последнюю строку файла необходимо записать данные: номер варианта, ФИО студента, текущую дату.

Исходный код программы

package com.mycompany.mavenproject1;

import java.io.*;

import java.util.InputMismatchException;

import java.util.Scanner;

import java.time.LocalDate; //импорт класса для работы с датами

import java.time.LocalTime; //импорт класса для работы со временем

public class Mavenproject1

{

public static void main(String[] args) {

// 1. ввод числа строк с консоли

int n = 0;

while ( true ) {

System.out.println("Введите число строк");

// создание объекта класса Scanner для ввода данных с консоли

Scanner sc1 = new Scanner(System.in);

try {

// чтение числа в переменную

n = sc1.nextInt();

break;

}

catch (InputMismatchException fg) {

// если введенное значение не является числом

System.out.print("Вы ввели не число! Попробуйте еще раз\n");

}

}

//2. ввод строк с консоли в массив строк

// создание массива строк

String[] str = new String[n];

// создание объекта класса Scanner для ввода данных с консоли

Scanner sc2 = new Scanner(System.in);

// заполнение массива строк

for (int i = 0; i < n; i++) {

System.out.println("Введите строку №" + (i+1));

str[i] = sc2.nextLine();

}

// 3. сортировка массива строк по убыванию длины через поиск минимума

for ( int i = 0; i < str.length -1; i++) {

for (int j = i+1; j < str.length; j++) {

if (str[i].length() < str[j].length()) {

String temp = str[i];

str[i] = str[j];

str[j] = temp;

}

}

}

// Вывод массива строк в консольку

System.out.print("Строки в порядке убывания через поиск минимума: ");

for(int k=0; k<n; k++){

System.out.print(str[k] + " ");

}

//4. обработка строк: добавить в конец строки количество гласных букв

String vowels = "eyuioa"; // создадим строку со всеми гласными буквами

int vowelsCount = 0;

for(int k = 0; k < n; k++)

{

//проходим по всем строкам массива

for(int j = 0; j < str[k].length(); j++)

{

//если символ текущей строки не включен в строку consonants,

//то прибавляем +1

char currentChar = str[k].charAt(j);

if(vowels.contains("" + currentChar))

{

vowelsCount++;

}

}

}

System.out.print(vowelsCount);

//5. ввод строки fname с именем выходного файла

System.out.println("\nВведите имя файла, в который хотите занести данные:");

Scanner file_name_sc = new Scanner(System.in);

//считываем введенное имя файла с консоли в переменную

String fname = file_name_sc.nextLine();

// объявляем файловую переменную с привязкой к необходимому файлу

File fp = new File(fname + ".txt");

// проверка существования файла

if (!fp.exists())

{

// создание нового файла

try

{

boolean created = fp.createNewFile();

if(created)

System.out.println("Файл был создан");

}

catch(IOException ex)

{

System.out.println(ex.getMessage());

}

}

try

{

//6. запись результата обработки строк в файл с именем fname

//создаем объект класса FileWriter для записи данных в текстовый файл

FileWriter writer = new FileWriter(fp, false);

writer.write("Привествую!\n\nСтроки в порядке убывания через поиск минимума: ");//записываем строки в файл

for(int i = 0; i < n; i++)

{

writer.write(str[i] + " ");//записываем строки в файл

}

writer.write(""+ vowelsCount);

//7. занесение в последнюю строку файла следующее: номер варианта, ФИО студента, текущая дата

writer.write("\n\nНомер варианта - 6, имя - Фарзалина Алина Рамильевна, текущая дата - " + LocalDate.now() + " " + LocalTime.now());

writer.flush();//очищаем файловый поток

System.out.println("Данные были записаны в файл");

}

catch(IOException ex)

{

System.out.println(ex.getMessage());

}

}

}

Результаты работы программы

Рисунок 1 – Вывод программы в консоли

Рисунок 2 – Вывод программы в файл, созданный в консоли

Заключение

В ходе выполнения данной лабораторной работы была изучена процедурная модель программирования на языке JAVA, а именно: разработано консольное приложение для работы со строками и файлами.