Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Робота з контейнерами в середовищі Qt Creator: QList, QLinkedList

Автор:   •  Декабрь 8, 2024  •  Лабораторная работа  •  1,248 Слов (5 Страниц)  •  12 Просмотры

Страница 1 из 5

Міністерство освіти і науки України

Прикарпатський національний університет імені В.Стефаника

Факультет математики та інформатики

Кафедра інформаційних технологій

Інформатика і програмування

Лабораторна робота №6

Тема роботи:

  Робота з контейнерами в середовищі Qt Creator: QList, QLinkedList  

Варіант №2

Виконав:Жолобчук В.В.

Група ІПЗ-22

Дата: 4 грудня 2024р .

Викладач: Пікуляк М.В

Івано-Франківськ

2024

Завдання для виконання.

Завдання 1. Заповнити список випадковими елементами і реалізувати видалення елементів з позицій з N по K.

Код програми 

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <QRandomGenerator>

MainWindow::MainWindow(QWidget *parent)

    : QMainWindow(parent)

    , ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    ui->listWidget->setFlow(QListView::LeftToRight);

    ui->listWidget->setWrapping(true);

    connect(ui->deleteButton, &QPushButton::clicked, this, &MainWindow::on_deleteButton_clicked);

    connect(ui->fillButton, &QPushButton::clicked, this, &MainWindow::on_fillButton_clicked);

}

MainWindow::~MainWindow()

{

    delete ui;

}

void MainWindow::updateListView()

{

    ui->listWidget->clear();

    for (const auto &item : list) {

        ui->listWidget->addItem(item);

    }

}

void MainWindow::on_fillButton_clicked()

{

    list.clear();

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

        int randomValue = QRandomGenerator::global()->bounded(100);

        list.append(QString::number(randomValue));

    }

    updateListView();

}

void MainWindow::on_deleteButton_clicked()

{

    bool okStart, okEnd;

    int start = ui->lineEditN->text().toInt(&okStart) - 1;

    int end = ui->lineEditK->text().toInt(&okEnd);

    if (!okStart || !okEnd || start < 0 || start >= list.size() || end <= start || end > list.size()) {

        return;

    }

    list.erase(list.begin() + start, list.begin() + end);

    updateListView();

    ui->lineEditN->clear();

    ui->lineEditK->clear();

}

Результат виконання програми

[pic 1]

Завдання 2. Заповнити зв’язний список випадковими елементами і впорядкувати їх за спаданням

Код програми

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <QRandomGenerator>

#include <QListWidgetItem>

LinkedList::LinkedList() : head(nullptr) {}

LinkedList::~LinkedList() {

    deleteList();

}

void LinkedList::insert(int val) {

    Node *newNode = new Node(val);

    if (!head) {

        head = newNode;

    } else {

        Node *temp = head;

        while (temp->next) {

            temp = temp->next;

        }

        temp->next = newNode;

    }

}

void LinkedList::sortDescending() {

    if (!head) return;

    bool swapped;

    do {

        swapped = false;

        Node *temp = head;

        while (temp && temp->next) {

            if (temp->data < temp->next->data) {

                std::swap(temp->data, temp->next->data);

                swapped = true;

            }

            temp = temp->next;

        }

    } while (swapped);

}

void LinkedList::display(QListWidget *listWidget) {

    Node *temp = head;

    listWidget->clear();

    while (temp) {

        listWidget->addItem(QString::number(temp->data));

        temp = temp->next;

    }

}

void LinkedList::clearListAndInsert() {

    deleteList();

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

        insert(QRandomGenerator::global()->bounded(1, 100));

...

Скачать:   txt (8.6 Kb)   pdf (121.1 Kb)   docx (62.7 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club