Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2012, 19:14   #1
star13b
Новичок
Джуниор
 
Регистрация: 30.10.2012
Сообщений: 1
По умолчанию Программа на Qt

Помогите написать программы на Qt, а то я вообще не соображаю.
Задание 1. Написать программу, которая вычисляет среднее арифме-
тическое последовательности дробных чисел, вводимых из файла. После
ввода последнего числа программа должна вывести минимальное и макси-
мальное число последовательности. Количество чисел последовательно-
сти должно задаваться первым числом во входном файле.
Задание 2. В одномерном массиве, вводимом из файла и состоящем
из 10 вещественных элементов, вычислить:
1. Максимальный по модулю элемент массива.
2. Сумму элементов массива, расположенных между первым и вторым
положительными элементами.
star13b вне форума Ответить с цитированием
Старый 31.10.2012, 01:01   #2
Antej
Пользователь
 
Регистрация: 09.01.2012
Сообщений: 38
По умолчанию

qt тут как по-мне совершенно ни к чему...
Antej вне форума Ответить с цитированием
Старый 31.10.2012, 07:44   #3
shelest
Пользователь
 
Аватар для shelest
 
Регистрация: 01.11.2009
Сообщений: 99
По умолчанию

star13b. Пиши в аську, договоримся.
shelest вне форума Ответить с цитированием
Старый 29.12.2012, 14:31   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Привет!

Решил поупражняться и сделал первое задание. Правда, в моей программе нет проверки корректности входных данных.

Задание 1. Написать программу, которая вычисляет среднее арифметическое последовательности дробных чисел, вводимых из файла. После ввода последнего числа программа должна вывести минимальное и максимальное число последовательности. Количество чисел последовательности должно задаваться первым числом во входном файле.

Данные должны храниться в файле "input.txt". Вот, для примера, содержимое файла:

input.txt
Цитата:
3

1.2 5 2
Диалоговое окно программы:



Файлы проекта (проект приложил к сообщению):

ArithmeticAverage.pro
Код:
SOURCES += \
    main.cpp \
    arithmeticaveragedialog.cpp

HEADERS += \
    arithmeticaveragedialog.h
main.cpp
Код:
#include <QApplication>
#include "arithmeticaveragedialog.h"

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    ArithmeticAverageDialog dlg;
    dlg.show();

    return app.exec();
}
arithmeticaveragedialog.h
Код:
#ifndef ARITHMETICAVERAGEDIALOG_H
#define ARITHMETICAVERAGEDIALOG_H

#include <QDialog>

class QPushButton;
class QLineEdit;

class ArithmeticAverageDialog : public QDialog
{
    Q_OBJECT
public:
    explicit ArithmeticAverageDialog(QWidget *parent = 0);
    
signals:
    
private slots:
    void calc();
    
private:
    QLineEdit *arithAverageEdit;
    QLineEdit *maxEdit;
    QLineEdit *minEdit;
    QPushButton *calcButton;
};

#endif // ARITHMETICAVERAGEDIALOG_H
arithmeticaveragedialog.cpp
Код:
#include <QGridLayout>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QFile>
#include <QMessageBox>
#include <QTextStream>
#include "arithmeticaveragedialog.h"

ArithmeticAverageDialog::ArithmeticAverageDialog(QWidget *parent) :
    QDialog(parent)
{
    QGridLayout *layout = new QGridLayout(this);

    QLabel *arithAverageLabel = new QLabel;
    arithAverageLabel->setText(tr("Arithmetic Average:"));

    QLabel *maxLabel = new QLabel;
    maxLabel->setText(tr("Max:"));

    QLabel *minLabel = new QLabel;
    minLabel->setText(tr("Min:"));

    arithAverageEdit = new QLineEdit;
    arithAverageEdit->setText(tr(""));
    arithAverageEdit->setReadOnly(true);

    maxEdit = new QLineEdit;
    maxEdit->setText(tr(""));
    maxEdit->setReadOnly(true);

    minEdit = new QLineEdit;
    minEdit->setText(tr(""));
    minEdit->setReadOnly(true);

    calcButton = new QPushButton(tr("Calc"));


    layout->addWidget(arithAverageLabel, 0, 0);
    layout->addWidget(arithAverageEdit, 0, 1);

    layout->addWidget(maxLabel, 1, 0);
    layout->addWidget(maxEdit, 1, 1);

    layout->addWidget(minLabel, 2, 0);
    layout->addWidget(minEdit, 2, 1);

    layout->addWidget(calcButton, 3, 1);

    this->setWindowTitle(tr("Arithmetic Average"));

    connect(calcButton, SIGNAL(clicked()), this, SLOT(calc()));
}

void ArithmeticAverageDialog::calc()
{
    QFile file(tr("input.txt"));

    if (!file.exists()) {
        QMessageBox::critical(this, tr("Error"), tr("The file input.txt does not exist"));
        return;
    }

    if (!file.open(QIODevice::ReadOnly)) {
        QMessageBox::critical(this, tr("Error"), tr("Could not open the file input.txt for reading"));
        return;
    }

    QTextStream in(&file);

    int count;
    in >> count;

    double *array = new double[count];

    // Fill the array and calc the sum
    double sum = 0;
    for (int i = 0; i < count; i++) {
        in >> array[i];
        sum += array[i];
    }

    // Calc the arithmetic average
    double arithAverage = sum/(double)count;

    // Search the max and the min elements
    double min = array[0];
    double max = array[0];
    for (int i = 0; i < count; i++) {
        if (array[i] < min) {
            min = array[i];
        }

        if (array[i] > max) {
            max = array[i];
        }
    }

    delete[] array;

    // Show results
    arithAverageEdit->setText(QString::number(arithAverage));
    maxEdit->setText(QString::number(max));
    minEdit->setText(QString::number(min));

    file.close();
}
Вложения
Тип файла: zip ArithmeticAverage.zip (2.1 Кб, 10 просмотров)

Последний раз редактировалось 8Observer8; 29.12.2012 в 14:33.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа как программа. вопрос leonidsm Общие вопросы C/C++ 5 02.10.2012 21:30
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09
[PASCAL]Программа создания файла, программа обработки файла Виколяшка Фриланс 7 23.09.2009 17:38