Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornyy_praktikum_po_programmirovaniyu_v_s...doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
1.4 Mб
Скачать

Пример 3: программа, которая считывает текст из элемента tetxEdit и выводит в столбик числа, содержащиеся в тексте с помощью другого элемента типа textEdit.

Спроектируйте окно как показано на рисунке, используя 2 элемента типа textEdit.

В файл dialog.cpp внесите код, показанный ниже:

#include "dialog.h"
#include "ui_dialog.h"
#include <QTextStream> // для создания потока
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

 /* связываем сигнал об изменении текста в первом окне и слот FindWords(), который будет из текста выбирать слова, являющиеся числами */
connect(ui->textEdit, SIGNAL(textChanged()),
this, SLOT(FindWords())); }

В файл dialog.h вставьте объявление слота:

public slots:
    void FindWords();

В файле dialog.cpp напишите определение слота:

void Dialog::FindWords()
{
   QString str = ui->textEdit->toPlainText(); 
// считываем текст из окна textEdit (текст может быть многострочным)
   QTextStream in(&str, QIODevice::ReadOnly); 
// создаем поток для чтения слов из текста
   QString rez; // текст, который будет выводиться во втором окне
   QString number; // строка, в которую будет считываться одно слово из текста
   while (!in.atEnd()) // пока поток не закончен
   {
     in >> number; // считываем одно слово
     QDoubleValidator* validator = new QDoubleValidator; 
// создаем указатель на валидатор 
     int pos = 0; /* позиция в строке, с которой будет начинаться проверка (эта переменная нужна для функции validate() ) */
     if(validator->validate(number, pos)) // проверяем слово number
            rez += number + '\n'; 
// если слово является числом, добавляем его к тексту
   }
   ui->textEdit_2->setText(rez); // выводим полученные числа на экран
}

Задания для самостоятельного выполнения

  1. Из двух вводимых с клавиатуры строк, состоящих только из слов, записанных латинскими буквами, разделенных запятыми и пробелами (с проверкой правиль­ности ввода), создать третью строку, которая должна содержать символы, при­сутствующие одновременно в обеих исходных строках. В результирующую стро­ку каждый символ должен входить только один раз. (См. пример 2)

  2. Из двух вводимых с клавиатуры строк, состоящих только из слов, записанных русскими буквами, разделенных точками и пробелами (с проверкой правильнос­ти ввода), создать третью строку, которая должна содержать символы, присутс­твующие только во второй строке. В результирующую строку каждый символ должен входить только один раз. (См. пример 2)

  3. Создать приложение, которое считывает строку текста, состоящую только из слов записанных латинскими буквами, разделенных запятыми и пробелами (с проверкой правильности ввода). Если за запятой не стоит пробел, вставить его и получившуюся строку вывести на экран.

  4. Создать приложение, которое считывает строку текста, состоящую только из слов записанных русскими буквами, разделенных точками и пробелами (с про­веркой правильности ввода). Если перед точкой стоят пробелы, удалить их и по­лучившуюся строку вывести на экран.

  5. Создать приложение, которое считывает строку текста, состоящую только из слов записанных латинскими буквами, разделенных точками и пробелами (с про­веркой правильности ввода). Если первое слово, идущее за точкой, начинается с маленькой буквы, заменить эту букву большой и получившуюся строку вывести на экран.

  6. Создать приложение, которое считывает строку текста, состоящую только из чисел, разделенных пробелами (с проверкой правильности ввода). Удалить лиш­ние пробелы между числами, т.е. из нескольких идущих подряд пробелов оста­вить только один. Получившуюся строку вывести на экран.

  7. Создать приложение, которое считывает строку текста, состоящую только из слов, записанных русскими буквами, разделенных пробелами (с проверкой пра­вильности ввода). Если в слове встречаются две идущие подряд большие буквы, заменить вторую большую букву маленькой.

  8. Создать приложение которое считывает строку текста и подсчитывает, сколько раз заданный символ встречается в этой строке. При вводе символа не позволять пользователю вводить более одного.

  9. Создать приложение, которое считывает две строки символов и проверяет, яв­ляется ли вторая строка анаграммой первой (т.е. можно ли получить вторую строку путем перестановки символов первой), например: "корт" и "крот". Указание: отсортируйте обе строки и сравните.

  10. Создать приложение, которое считывает строку символов, состоящую только из цифр и латинских букв (с проверкой правильности ввода). Вставить после каж­дого символа запятую и полученную строку вывести на экран.

  11. Создать приложение, которое считывает строку текста, состоящую только из цифр и запятых (с проверкой правильности ввода). Удалить запятые из строки и результат вывести на экран.

  12. Создать приложение, которое считывает строку текста, состоящую только из русских букв и запятых (с проверкой правильности ввода). Заменить запятые пробелами и результат вывести на экран.

  13. Создать приложение, которое считывает строку текста, содержащую фамилию, имя и отчество. Заменить фамилию на новую, которая вводится в другом окне редактирования. Полученную строку вывести на экран.

  14. Создать приложение, которое считывает строку текста и переносит первое сло­во в конец строки. Результат вывести на экран.

  15. Создать приложение, которое считывает строку текста и переносит последнее слово в начало строки. Результат вывести на экран.

  16. Создать приложение, которое считывает строку текста и выводит на экран те слова, которые начинаются и заканчиваются на одну и ту же букву.

  17. Создать приложение, которое считывает строку текста и выводит на экран те слова, которые начинаются с цифры.

  18. Создать приложение, которое считывает строку текста и после второго слова вставляет новое, которое вводится в другом окне редактирования. Полученную строку вывести на экран.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]