Форум программистов, компьютерный форум CyberForum.ru

Передача структуры в функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Преобразование int в string и слияние строк http://www.cyberforum.ru/cpp-beginners/thread959430.html
int KeysOfFile+=1; string KeysOfFileS=KeysOfFile; string newNameOfBook="book"; string newSec=newNameOfBook+KeysOfFileS; cout << newSec << endl; Оно мне выдает какую-то ересь. Как сделать чтобы KeysOfFile превратить строку и потом выполнить слияние со строкой newNameOfBook, чтобы в конце вышло что-то вроде "book3" ?
C++ Изменение значение элементов листа Здрасьте. Есть лист, а точнее его адрес: void MatrixClass::BuildTransformationMatrix(list<VertexClass> *vList) { Как добраться до его элементов и изменить их? Читал про итераторы, но как обычно фиг там разберешься... http://www.cyberforum.ru/cpp-beginners/thread959429.html
C++ вычислить сумму
задачка состоит из нескольких частей с уравнениями, а сбило с толку самое простое( помогите вычислить сумму на С++, где а и n будет вводится с клавиатуры для y=1/a+1/a*(a+1)(a+2)+...+1/a*(a+1)(a+2)*(a+ n) понимаю что дело происходит в цикле а как правильно организовать данный ряд не понимаю.. подскажите просто как правильно записать данное выражение в цикле
C++ теория вероятности на эвм
задание: три орудия производят стрельбу по трем целям. каждое орудие выбирает себе цель случайно,независимо от других.цель одним орудием поражается с вероятностью0,6. требуется осуществить моделирование этого эксперимента па пэвм.повторить эксперимент н раз в одних и тех же условиях и подсчитать относительную частоту события а= из трех целей поражены только две. теоретически задача решается по...
C++ Как при вводе не переносить двоеточие на новую строку? http://www.cyberforum.ru/cpp-beginners/thread959412.html
Задача: Написать программу, в которой осуществляется перегрузка операции сложения. Разработать класс time, в состав которого включить операцию сложения его объектов. Объектом класса является время. Операторная функция, являясь методом класса time, складывает два времени. Результат - сложение двух значений времени. Набирается время, cout переносит двоеточие на новую строку, puts еще и переводит...
C++ Указатель на шаблонный класс Есть ли возможность инициализировать указатель на класс с шаблоном, но не указав при этом тип, ну т.е. написать не так Value_Class <Value_Type> * Object; чтобы приберечь выбор шаблона до вызова конструктора оператором new Object = new <Value_Type> Value_Class (/*аргументы*/) подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 13:06     Передача структуры в функцию
Цитата Сообщение от wollk Посмотреть сообщение
если я уберу, то будут ошибки типа таких:
Делайте правильно: прототипы в .h (их подключать), реализации в .cpp (их НЕ подключать).

Добавлено через 21 минуту
struct.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct syt
{
    int group;
    int price;
    float pn;
    float vt;
    float sr;
    float ch;
    float pt;
    float itogo;
};
 
void sum(syt array[], int n);

struct.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
#include "struct.h"
 
void sum(syt array[], int n)
{
    for (int i=0; i<=n; i++)
       array[i].itogo = array[i].pn+array[i].vt+array[i].sr+array[i].ch+array[i].pt;
}

mainwindow.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QtGui>
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    QGridLayout *glMain;
    QWidget *wCenter;
    QTableWidget *table;
    QLineEdit *txt;
    QPushButton *add,*readd;
    MainWindow(QWidget *parent = 0);
public slots:
    void add_row();
    void read();
    void calc(QVector <int> data);
};
 
#endif // MAINWINDOW_H

mainwindow.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "mainwindow.h"
#include "struct.h"
 
syt coal[100];
 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent){
    QTextCodec:: setCodecForLocale(QTextCodec::codecForName("Windows-1251"));
    QTextCodec:: setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
    this->setWindowTitle("ООП основы работы со структурами");
    setMinimumSize(750,400);
    glMain = new QGridLayout;
    table = new QTableWidget(0,8);
    table->setHorizontalHeaderLabels(QStringList() << "Бригада"<<"Цена за тонну"<<"ПН"<<"ВТ"<<"СР"<<"ЧТ"<<"ПТ"<<"Итого");
    txt = new QLineEdit("1 198 50 40.5 6.2 48 33.5");
    add = new QPushButton("Добавить");
    readd = new QPushButton("Считать");
    glMain->setRowStretch(0,5);
    glMain->setRowStretch(1,1);
    glMain->addWidget(txt,1,0);
    glMain->addWidget(table,0,0,1,3);
    glMain->addWidget(add,1,1);
    glMain->addWidget(readd,1,2);
    wCenter = new QWidget;
    wCenter->setLayout(glMain);
    this->setCentralWidget(wCenter);
    connect(add,SIGNAL(clicked()),this,SLOT(add_row()));
    connect(readd,SIGNAL(clicked()),this,SLOT(read()));
}
 
void MainWindow::add_row(){
    QString all = txt->text();
    QStringList list = all.split(" ");
    int row=table->rowCount();
 
    if(list.count()==7){
        table->setRowCount(row+1);
        table->setItem(row,0,new QTableWidgetItem(list[0]));
        table->setItem(row,1,new QTableWidgetItem(list[1]));
        table->setItem(row,2,new QTableWidgetItem(list[2]));
        table->setItem(row,3,new QTableWidgetItem(list[3]));
        table->setItem(row,4,new QTableWidgetItem(list[4]));
        table->setItem(row,5,new QTableWidgetItem(list[5]));
        table->setItem(row,6,new QTableWidgetItem(list[6]));
    }else qDebug()<<"Кол-во элементов добавляемых в строку должно быть равно 7";
}
 
void MainWindow::read(){
    int row = table->rowCount();
    for(int i=0; i<row;i++){
        coal[i].group=table->item(i,0)->text().toFloat();
        coal[i].price=table->item(i,1)->text().toFloat();
        coal[i].pn=table->item(i,2)->text().toFloat();
        coal[i].vt=table->item(i,3)->text().toFloat();
        coal[i].sr=table->item(i,4)->text().toFloat();
        coal[i].ch=table->item(i,5)->text().toFloat();
        coal[i].pt=table->item(i,6)->text().toFloat();
    }
    sum(coal,row);
}
void MainWindow::calc(QVector <int> data){
    int row = table->rowCount();
    for(int i=0; i<row;i++){
        table->setItem(i,7,new QTableWidgetItem(data[i]));
    }
}
 
Текущее время: 23:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru