
Программное обеспечение для ра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"));
}