В заголовке main отображается ошибка, не объявленная в этой области. Мне нужно распечатать элемент с данными, а затем найти общее количество по данным

#c

Вопрос:

  1. Напишите классы связанных списков(один класс для узла и другой класс для списка), в которых хранятся элементы транзакции.
  2. Проверьте классы, распечатав элементы в связанном списке
  3. Покажите общую стоимость транзакции.
  4. Удалите элемент из связанного списка и покажите новый результат (общая цена транзакции).

Результат должен выглядеть следующим образом: Цена товаров BC

10 Пагода Гнут 110 г 3,49
11 Крекер с кремом Хуп Сенг 4,19
12 Йит Пох 2n1 Копи-о 7,28
13 Зелайф СН и Семена 5,24
14 Гэтсби С/ФО Влажный и твердый 16,99
15 ГБ Ж/Г И/Вмещает 150 г 6,49

Итого (включая GST) 43,68

 #include lt;iostreamgt; using namespace std;  // Node class class Node {   public:  double data;  string item;  Node* next;  Node() {};  void setData(double aData) {data = aData; };  void setString(string aItem) {item = aItem;};  void setNext(Node* aNext) {next = aNext; };  double Data() {return data; };  string String() {return item;};  Node* Next() {return next; }; };  // List class class List {  Node *head;  public:  List() { head = NULL; };  void addNode(double data, string item);  void total();  void print(Node **head); };  //add a node to the list at tail void List::addNode(double n, string m) {  Node *newNode = new Node();  newNode-gt;setData(n);  newNode-gt;setString(m);  newNode-gt;setNext(NULL);   // Create a temp pointer  Node *tmp = head;  if ( tmp != NULL ) {  // Nodes already present in the list  while ( tmp-gt;Next() != NULL ) {  tmp = tmp-gt;Next();  }  // Point the last node to the new node  tmp-gt;setNext(newNode);  }  else {  // First node in the list  head = newNode;  }  }   void print(Node **head){  Node* a = *head;  cout lt;lt; "========================================" lt;lt;endl;  cout lt;lt; "BC Items Price" lt;lt;endl;  cout lt;lt; "========================================" lt;lt;endl;   while(a){  cout lt;lt; a -gt;data lt;lt; "tt";  cout lt;lt; a-gt;item lt;lt; endl;  a = a-gt;next;  }  cout lt;lt; "========================================" lt;lt;endl; }  void List::total(){  Node* cur = head;  double sum=0;  cout lt;lt; "Total (GST Incl.) ";  while (cur){  sum = sum   cur-gt;data;  cur = cur-gt;next;  }  cout lt;lt; sum;  cout lt;lt; "========================================" lt;lt;endl; }  int main() {  List list;  list.addNode(3.49, "10 Pagoda Gnut 110g");  list.addNode(4.19, "11 Hup Seng Cream Cracker"); list.addNode(7.28, "12 Yit Poh 2n1 Kopi-O"); list.addNode(5.24, "13 Zoelife SN amp; Seed"); list.addNode(16.99, "14 Gatsby S/FO Wetamp;Hard"); list.addNode(6.49, "15 GB W/G U/Hold 150g");   list.print(amp;head);  list.total();  return 0;  }   

когда я пытаюсь скомпилировать, ошибка выглядит так
[Ошибка] «голова» не была объявлена в этой области

Комментарии:

1. Пожалуйста, повторите свой вопрос и добавьте детали, чтобы прояснить проблему. Вопросы типа «это правильно?» являются бессмысленными и легко проверяемыми вами. Такие утверждения, как «не уверен в этом», не описывают проблему или не задают вопрос. И заключительная часть «показывает ошибку» — какую ошибку? Вы не описали результат, который вы получаете.

2. Так жаль. Я уже отредактировал некоторые части. Надеюсь, теперь это поможет.

Ответ №1:

Какие ошибки вы получаете, пожалуйста, предоставьте более подробную информацию. С первого взгляда:

Главный не знает головы

 list.print(amp;head);   

Main не знает данных

 list.total(data);  

Кроме того, вам не нужна эта функция для приема параметров, если ваша цель-просто распечатать итоговую сумму.

список недействительных::всего();

Для функции печати: вы должны принять List в качестве параметра нет node , потому что вы не можете получить доступ к head — его члену списка.

печать пустоты(список и список const);

Комментарии:

1. Я попробовал список пустоты::total(); и это работает.

2. [Ошибка] «голова» не была объявлена в этой области

3. Как я и писал… Посмотрите на мое объяснение о вашей функции печати

4. Извини за это. Я сделал то же самое со списком.печать, и теперь он работает. Спасибо.