geum.ru - только лучшие рефераты!

Программное обеспечение для раiета утечки звука из помещения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



ля ввода исходных данных и вывод //справочных данных. В нем же производятся раiеты и передаются данные для заполнения таблицы //результатов раiетов

#include

#include

#include

#include "secondscreen7ch.h"e = 2.71828;ChFill::FirstScren7ChFill()

{= new SecondScren7ChFill;= new QTableWidget;>setRowCount(7);>horizontalHeader()->setResizeMode(QHeaderView::Stretch);>setColumnCount(5);>verticalHeader()->setResizeMode(QHeaderView::Stretch);>setWordWrap(true);>setEditTriggers(0);firstLabels;<<tr("Border of band \nf1 - f2, Hz")<<tr("Medium frequ-\nency Fcp, Hz")<<tr("Bandwidth \ndf, Hz")

setHorizontalHeaderLabels(firstLabels);fileName="7ChInitial.bd";(firstTable,fileName);=newQTableWidget;>setRowCount(2);>horizontalHeader()->setResizeMode(QHeaderView::Stretch);>setColumnCount(7);>verticalHeader()->setResizeMode(QHeaderView::Stretch);>setMaximumHeight(80);secondLabels;setItem(row, column, item);

}

}= new QPushButton(tr("Save..."));= new QPushButton(tr("Load..."));= new QPushButton(tr("addLayout(buttonsLayout);(mainLayout);(saveButton, SIGNAL(clicked()), this, SLOT(save()));(loadButton, SIGNAL(clicked()), this, SLOT(load()));(backButton, SIGNAL(clicked()), this, SLOT(clearTable()));(backButton, SIGNAL(clicked()), this, SLOT(close()));(startCalculation, SIGNAL(clicked()), this, SLOT(calcKp()));(startCalculation, SIGNAL(clicked()), secondScreen, SLOT(show()));(650,350);(tr("Base"));

}FirstScren7ChFill::setLs1()

{floatLs[7] = {35.6, 36.2, 34.5, 27.0, 18.5, 10.5, 4.5};(int row=0; row!=firstTable->rowCount(); ++row) {= new QTableWidgetItem;>setText(QString::number(floatLs[row]));>setItem(row, 3, Ls);

}

}FirstScren7ChFill::setLs2()

{floatLs [7] = {41.6, 42.2, 40.5, 33.0, 24.5, 16.6, 10.5};(int row=0; row!=firstTable->rowCount(); ++row) {= new QTableWidgetItem;>setText(QString::number(floatLs[row]));>setItem(row, 3, Ls);

}

}FirstScren7ChFill::setLs3()

{floatLs [7] = {47.6, 48.2, 46.5, 39.0, 30.5, 22.6, 16.5};(int row=0; row!=firstTable->rowCount(); ++row) {= new QTableWidgetItem;>setText(QString::number(floatLs[row]));>setItem(row, 3, Ls);

}

}FirstScren7ChFill::setLs4()

{floatLs [7] = {55.6, 56.2, 54.5, 47.0, 38.5, 30.6, 24.5};(int row=0; row!=firstTable->rowCount(); ++row) {= new QTableWidgetItem;>setText(QString::number(floatLs[row]));>setItem(row, 3, Ls);

}

}FirstScren7ChFill::save()

{(curFile.isEmpty()) {saveAs();

} else {saveFile(curFile);

}

}FirstScren7ChFill::saveAs()

{fileName = QFileDialog::getSaveFileName(this);(fileName.isEmpty())false;saveFile(fileName);

}FirstScren7ChFill::saveFile(const QString &fileName)

{file(fileName);(!file.open(QIODevice::WriteOnly)){notSaved;.setText(tr("Dont save"));.exec();false;

rowCount();++row){(intcolumn=0;column!=secondTable->columnCount();++column){str;=secondTable->item(row,column)->text();(!str.isEmpty())text();(!str.isEmpty())<<int(row)<<int(column)<<str;

}

}::restoreOverrideCursor();true;

}FirstScren7ChFill::load()

{fileName = QFileDialog::getOpenFileName(this);(!fileName.isEmpty())(secondTable, fileName);

}FirstScren7ChFill::loadFile(QTableWidget *table, const QString &fileName)

{file(fileName);(!file.open(QIODevice::ReadOnly)) {notLoaded;.setText(tr("Dont load"));.exec();false;

>row>>column>>str;>setText(str);>setItem(row,column,item);">}in(&file);.setVersion(QDataStream::Qt_4_1);row;column;str;*item;::setOverrideCursor(Qt::WaitCursor);(!in.atEnd()) {= new QTableWidgetItem();>>row>>column>>str;>setText(str);>setItem(row, column, item);

}::restoreOverrideCursor();true;

}FirstScren7ChFill::clearTable()

{(int row=0; row!=secondTable->rowCount(); ++row){(int column=0; column!=secondTable->columnCount(); ++column){>item(row, column)->setText(" ");

}

}

}FirstScren7ChFill::calcKp()

{= 0;(int column = 0; column!=secondScreen->firstTable->columnCount(); column++) {Ei;Kpi;razn;fsr;w;= firstTable->item(column,3)->text().toFloat() - secondTable->item(0,column)->text().toFloat() ->item(1,column)->text().toFloat();= Ei - firstTable->item(column, 4)->text().toFloat();= sqrt(firstTable->item(column,2)->text().toFloat()*2*firstTable->item(column,2)->text().toFloat());(razn <= 0) {verh;niz;stepen;= -0.0043*pow((razn+27.3),2.0);= 0.78 + 5.46*pow(e,stepen);= 1 + pow(10.0,-razn/10);= verh/niz;

}(fsr text().toFloat();= 2.57*pow(10.0,-8.0)*pow(2*fv,2.4);= fv - fn;

}{stepen;fn;fv;= pow(10.0, -4.0)*pow(firstTable->item(column,2)->text().toFloat(),1.18);= 1 - 1.074*pow(e, - stepen);= pow(10.0, -4.0)*pow(2*firstTable->item(column,2)->text().toFloat(),1.18);= 1 - 1.074*pow(e, - stepen);= fv - fn;

}= Kp + Kpi*w;*item1 = new QTableWidgetItem;*item2 = new QTableWidgetItem;*item3 = new QTableWidgetItem;*item4 = new QTableWidgetItem;->setText(QString::number(Ei));->setText(QString::number(fsr));->setText(QString::number(Kpi));->setText(QString::number(w));>firstTable->setItem(0,column,item1);>firstTable->setItem(1,column,item2);>firstTable->setItem(2,column,item3);>firstTable->setItem(3,column,item4);

}>Kp->setText("Kp = " + QString::number(Kp));();

}FirstScren7ChFill::calcW()

{S;WotS;stepen;WotKp;(Kp = 0.15){= -11*Kp/(1 + 0.7*Kp);= 1 - pow(e, stepen);

}>WotKp->setText("W(Kp) = " + QString::number(WotKp));

}

Листинг 6 - Содержимоефайла secondscreen7ch.h

// Заголовочныйфайлдля secondscreen7ch.cpp

#ifndef SECONDSCREEN7CH_H

#define SECONDSCREEN7CH_H

#include

#include SecondScren7ChFill : public QDialog

{_OBJECT:ChFill();*firstTable;*Kp;*S;*WotS;*WotKp;:*mainLayout;

};

#endif // SECONDSCREEN7CH_H

Листинг 7 - Содержимоефайла secondscreen7ch.cpp

// Целью данного программного кода является вывод результатов раiета в виде таблицы на экран

#include

#include ChFill::SecondScren7ChFill()

{= new QTableWidget;>setRowCount(4);>horizontalHeader()->setResizeMode(QHeaderView::Stretch);>setColumnCount(7);>verticalHeader()->setResizeMode(QHeaderView::Stretch);>setEditTriggers(0);(int row=0; row!=firstTable->rowCount(); ++row) {>setRowHeight(row,21);

}(int column=0; column!=firstTable->columnCount(); ++column) {>setColumnWidth(column,100);

}firstLabels;addWidget(WotKp);(mainLayout);(750,240);(tr("Calculation results"));

}