|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.09.2011, 19:48 | #1 |
Регистрация: 11.11.2010
Сообщений: 3
|
Написать программу, которая выполняет следующие действия:
4.20. Дана запись с именем ORDER, содержащая следующие поля:
• Расчетный счет плательщика; • Расчетный счет получателя; • Перечисляемая сумма в руб. Написать программу, которая выполняет следующие действия: • Ввод с клавиатуры данных из 8 элементов типа ORDER, и занесение их в файл данных; • Чтение данных из файла и вывод их на экран; • вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры (если таких нет – вывести об этом сообщение). • Список должен быть упорядочен по расчетным счетам плательщиков. |
21.09.2011, 19:58 | #2 |
Пользователь
Регистрация: 29.03.2010
Сообщений: 48
|
Спасибо за то, что сообщил нам свою задачу.
Решение ,я так понимаю, следует ждать в следующем твоём сообщении? |
21.09.2011, 20:56 | #3 |
Регистрация: 11.11.2010
Сообщений: 3
|
чё переделать?
есть вот код для структуры:
#include <cstdlib> #include <ctime> #include <iostream> #include <iomanip> #include <algorithm> #include <string> struct Order { std::string debet; std::string credit; float sum; }; std::ostream &operator<<(std::ostream &stream, const Order &order) { std::cout << "From: " << order.debet << std::endl << "To: " << order.credit << std::endl << "Sum: " << std::setprecision(2) << std::fixed << order.sum << " rub." << std::endl; return stream; } Order RandomOrder() { Order result; for (int i = 0; i < 20; ++i) { result.debet += rand() % 10 + '0'; result.credit += rand() % 10 + '0'; } result.sum = (rand() % 100000) / 100.0; return result; } bool OrderByDebet(const Order &a, const Order &b) { return (a.debet < b.debet); } Order *FindFirstByDebet(Order *begin, Order *end, const std::string &debet) { for (Order *result = begin; result != end; ++result) if (result->debet == debet) return result; return NULL; } float AccumulateSumByDebet(Order *begin, Order *end, const std::string &debet) { float result = 0; for (Order *current = begin; current != end; ++current) if (current->debet == debet) result += current->sum; return result; } int main(int argc, char *argv[]) { srand(time(NULL)); Order orders[8]; for (int i = 0; i < 8; ++i) orders[i] = RandomOrder(); std::sort(orders, orders+8, OrderByDebet); for (int i = 0; i < 8; ++i) std::cout << "#" << i << " " << orders[i] << std::endl; std::string debet = orders[rand() % 8].debet; // вместо предыдущей строки ввод: // std::string debet; // std::cout << "Enter debetor: "; // std::cin >> debet; std::cout << "Search for debet: " << debet << std::endl; Order *order = FindFirstByDebet(orders, orders+8, debet); if (order != NULL) { float result = AccumulateSumByDebet(orders, orders+8, debet); std::cout << "Debetor " << debet << " spent " << result << " rub." << std::endl; } else { std::cout << "No such debetor." << std::endl; } return 0; } а как переделать под запись,т. е. для данной задачи? Последний раз редактировалось INFINITIFX; 21.09.2011 в 21:40. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать программу, которая считывает текст | guksm | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 05.04.2014 16:05 |
Используя компоненту Edit выполнить следующие действия. | Аделинка | Помощь студентам | 2 | 31.03.2011 14:42 |
Написать программу, которая проверяет формулы на эквивалентность | oksana baybuza | Общие вопросы C/C++ | 3 | 18.02.2010 19:38 |
Программа, которая выполняет расчёт электрической цепи | onlyfifa | Помощь студентам | 1 | 12.01.2010 16:16 |
написать программу которая строила графики функций | GeSerKo | Помощь студентам | 1 | 05.09.2008 21:03 |