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

Списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Опишите структуру с именем Person, содержащую следующие поля http://www.cyberforum.ru/cpp-beginners/thread728803.html
Как написать программу? Задание 1: Опишите структуру с именем PERSON, содержащую следующие поля: • фамилия и инициалы • дата рождения (массив из трех чисел) • адрес. Задание 2: Напишите программу, выполняющую следующие действия: • ввод клавиатуры данных в массив, состоящий из 10 структур типа PERSON • вывод на экран информации о людях, чья фамилия введена с клавиатуры:
C++ Ошибка вывода на экран #include <iostream> #include <cstdlib> using namespace std; struct nnm{ long int val; nnm *next; }; int main() { http://www.cyberforum.ru/cpp-beginners/thread728802.html
C++ Матрицы
Программа должна запрашивать размер матрицы и самостоятельно заполнять ее с помощью генератора случайных чисел. Верхняя граница для значения элементов матрицы также вводится с клавиатуры. Дана целочисленная квадратная матрица. 1)Найти сумму элементов в строках, содержащих хотя бы один неотрицательный элемент. 2)Определить номер последнего столбца, не содержащего ни одного нулевого элемента....
имитировать работу препроцессора #define C++
подскажите пожалуйста с чего начать. задача выглядит так: дан файл с текстом программы на С++, имитировать работу препроцессора #define, заменить все символы на соответствующие им в директиве, и удалить из текста программы саму директиву. не могу понять как считать текст из файла, и что использовать для поиска. Добавлено через 1 час 31 минуту как я думаю нужно сначала найти "#define" в...
C++ Задан текст. Определить, входит ли в него заданное слово и сколько раз. http://www.cyberforum.ru/cpp-beginners/thread728751.html
Задан текст. Определить, входит ли в него заданное слово и сколько раз.
C++ Удалить N элементов из массива начиная с номера K Сформировать массив из n элементов с помощью датчика случайных чисел (n задается пользователем с клавиатуры). Удалить N элементы из массива начиная с номера K. Вывести полученный результат. Добавить элемент с номером K. Вывести полученный результат. Поменять местами элементы с четными и нечетными номерами. Вывести полученный результат. Выполнить поиск элемента равный среднему арифметическому... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.12.2012, 14:15     Списки
Стандартный вектор подойдет?
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <vector>
#include <string>
 
class Date {
 public:
  Date(int year, int month, int day) : year(year), month(month), day(day) {}
  int getYear() const { return year; }
  int getMonth() const { return month; }
  int getDay() const { return day; }
 private:
  int year, month, day;
};
 
std::ostream &operator<<(std::ostream &stream, const Date &date) {
  return stream << "Date{" <<
    "year=" << date.getYear() <<
    ",month=" << date.getMonth() <<
    ",day=" << date.getDay() <<
    "}";    
}
 
class Fuel {
 public:
  Fuel(const std::string &name, double price) : name(name), price(price) {}
  const std::string &getName() const { return name; }
  double getPrice() const { return price; }
 private:
  std::string name;
  double price;
};
 
std::ostream &operator<<(std::ostream &stream, const Fuel &fuel) {
  return stream << "Fuel{" <<
    "name=" << fuel.getName() <<
    ",price=" << fuel.getPrice() <<
    "}";    
}
 
class Operator {
 public:
  Operator(const std::string &name, const std::string &surname, const Date &birthday) 
    : name(name), surname(surname), birthday(birthday) {}
  const std::string &getName() const { return name; }
  const std::string &getSurname() const { return surname; }
  const Date &getBirthday() const { return birthday; }
 private:
  std::string name, surname;
  Date birthday;
};
 
std::ostream &operator<<(std::ostream &stream, const Operator &stationOperator) {
  return stream << "Operator{" <<
    "name=" << stationOperator.getName() <<
    ",surname=" << stationOperator.getSurname() <<
    ",birthday=" << stationOperator.getBirthday() <<
    "}";    
}
 
class Transaction {
 public:
  Transaction(const Operator &stationOperator, const Fuel &fuel, double amount, const Date &date)
    : stationOperator(stationOperator), fuel(fuel), amount(amount), sellPrice(fuel.getPrice()), date(date) {}
  Transaction(const Operator &stationOperator, const Fuel &fuel, double amount, double sellPrice, const Date &date)
    : stationOperator(stationOperator), fuel(fuel), amount(amount), sellPrice(sellPrice), date(date) {}
  const Operator &getOperator() const { return stationOperator; }
  const Fuel &getFuel() const { return fuel; }
  double getAmount() const { return amount; }
  double getSellPrice() const { return sellPrice; }
  const Date &getDate() const { return date; }
  const double getCost() const { return getAmount() * getSellPrice(); }
 private:
  Operator stationOperator;
  Fuel fuel;
  double amount;
  double sellPrice;
  Date date;
};
 
std::ostream &operator<<(std::ostream &stream, const Transaction &transaction) {
  return stream << "Transaction{" <<
    "operator=" << transaction.getOperator() <<
    ",fuel=" << transaction.getFuel() <<
    ",amount=" << transaction.getAmount() << "lt" <<
    ",sellPrice=" << transaction.getSellPrice() <<
    ",date=" << transaction.getDate() <<
    ",cost=" << transaction.getCost() <<
    "}";    
}
 
class OperationDay {
 public:
  typedef std::vector<Transaction>::const_iterator Iterator;
  OperationDay(const Date &date) : date(date) {}
  void add(const Operator &stationOperator, const Fuel &fuel, double amount) {
    transactions.push_back(Transaction(stationOperator, fuel, amount, date));
  }
  Iterator begin() { return transactions.begin(); }
  Iterator end() { return transactions.end(); }
 private:
  Date date;
  std::vector<Transaction> transactions;
};
 
int main(int argc, char **argv) {
  Fuel ai95("AI-95", 31.25);
  Fuel ai92("AI-92", 30.05);
  Operator stationOperatorPetro("Petro", "Makarenko", Date(1975, 2, 10));
  Operator stationOperatorIvan("Ivan", "Ivanov", Date(1977, 4, 28));
 
  
  OperationDay operationDay(Date(2012, 12, 12));
  
  operationDay.add(stationOperatorPetro, ai95, 22.2);
  operationDay.add(stationOperatorPetro, ai92, 41.07);
  operationDay.add(stationOperatorIvan, ai95, 12.37);
  operationDay.add(stationOperatorIvan, ai92, 52.29);
  operationDay.add(stationOperatorPetro, ai95, 12.6);
  operationDay.add(stationOperatorPetro, ai95, 9.11);
  operationDay.add(stationOperatorIvan, ai92, 51.21);
  
  double total = 0;
  for (OperationDay::Iterator i = operationDay.begin(); i != operationDay.end(); ++i) {
    std::cout << *i << std::endl;
    total += i->getCost();
  }
  std::cout << "Total: " << total << std::endl;
  return 0;
}
 
Текущее время: 19:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru