LINUX.ORG.RU

Изучение C++ в домашних условиях

 , ,


0

1

Доброго времени суток. Пытаюсь освоить C++ по книгам из данного поста, начал с 1-ого пункта - Липпман.

Задачка из первой же главы(стр. 48)

«Напишите программу, которая читает несколько транзакций. Для каждой новой транзакции необходимо выяснить, соответствует ли её ISBN предыдущей. Программа должна подсчитать кол-во транзакций для каждого ISBN. Проверьте программу введя несколько транзакций. Транзакций должны иметь разный ISBN, но записи по каждому должны быть сгруппированы вместе»

Автор даёт класс Sales_item. Скачать можно здесь

(123-123 ISBN, 10 кол-во книг, 20 цена за штуку)

вот как выглядит поведение программы

Почему первый раз когда я меняю ISBN он не выводится для предыдущего?

// Проверка текущей транзакции с предыдущей, подсчёт количество одинаковых
// транзакций, вывод

#include <iostream>
#include "Sales_item.h"

int main()
{
	Sales_item new_item, old_item, group_item;
	int count = 1;
	
	std::cout << "Enter transaction: " << std::endl;
	std::cin >> old_item;
	group_item += old_item;
	
	while(std::cin >> new_item) {
		if (new_item.same_isbn(old_item)) {
			group_item += new_item;
			count++;
		}
		else {
			std::cout << std::endl;
			std::cout << "#" << count << "| " << group_item << std::endl;
			old_item = new_item;
			group_item = new_item; // что-то вроде обнуления
			count = 1;
		}
	}

	return 0;
}

PS. Не хотел палиться виндой, но вывод софтины по другому не показать. Пользовался линуксом ещё 2010, но потом пришлось мигрировать на винду из-за универа, нужен был софт от адобе. специальность к сожалению не связана с программированием. Учитывая, что софт мне этот больше не нужен, планирую устроить локальный вендекапец в понедельник, дотка же теперь и на линухе есть. :) PSS. Свои нубские вопросы по программированию буду оставлять в этой теме, дабы не плодить клонов и не бесить здешних жителей.


Не хотел палиться виндой, но вывод софтины по другому не показать.

Что? В терминале не пробовал свою поделку запускать?

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Что? В терминале не пробовал свою поделку запускать?

Чуть ниже описания задачи есть ссылка на картинку с запущенной программой.

ChuCha
() автор топика
Ответ на: комментарий от ChuCha

Я тебя не об этом спрашивал.

По теме - ты первые итоги выводишь как group_item, в которые до этого только что-то плюсовал (group_item += new_item). Где ты устанавливаешь этот ISBN в group_item, не вижу. Поэтому, наверное, и ты его в выводе не наблюдаешь.

group_item = new_item;, который срабатывает позже, видимо, и выставляет этот IDSN в поле объекта.

yoghurt ★★★★★
()
Последнее исправление: yoghurt (всего исправлений: 1)
Ответ на: комментарий от yoghurt

Я тебя не об этом спрашивал

А о чём же? В терминале было бы тоже самое, ибо GCC

По теме - ты первые итоги выводишь как group_item, в которые до этого только что-то плюсовал (group_item += new_item). Где ты устанавливаешь этот ISBN в group_item, не вижу. Поэтому, наверное, и ты его в выводе не наблюдаешь.

group_item = new_item;, который срабатывает позже, видимо, и выставляет этот IDSN в поле объекта.

Я так понял это была подсказка, долго думал бы я, но товарищ аноним снизу уже сделал за меня. Спасибо за ответ

ChuCha
() автор топика
Ответ на: комментарий от ChuCha

В терминале было бы тоже самое, ибо GCC

Я уж было подумал, что у тебя там винда только для того, чтобы выхлопы показывать. Ну да ладно.

Из виндовой cmd.exe тоже можно копипастить, если что

yoghurt ★★★★★
()
Ответ на: комментарий от ChuCha

Я так понял это была подсказка

Это было объяснение тебе твоего же кода

yoghurt ★★★★★
()

начал с 1-ого пункта - Липпман

Не понравилась мне эта книжка - слишком сумбурная. У Праты книжка гораздо систематичнее.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Не понравилась мне эта книжка - слишком сумбурная. У Праты книжка гораздо систематичнее

У меня есть база на основе Си и поэтому читается нормально, ну это пока нормально. А кресты решил потому что прикладником хочу быть.

ChuCha
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.