Найдите ошибку в коде класса

C++
1
2
3
4
5
6
7
class one{
    int x;
public:
    int Getx();
    one();
    one(int);
};

В определении класса ошибок не наблюдается.

в реализации класса:

C++
1
one::one(int  xm){x=xm};

1) отсутствие ; после x=xm
2) точка с запятой после окончания функции/метода ненужно

C++
1
one::one(int  xm){x=xm;}

—————————————

те же ошибки

—————————————

дальше по main :
строка 16 : Setx(a); Setx() не объявлена в классе one, переменная «a» тоже не объявлена.
строка 18 : функция int main() должна возвращать значение , например return 0;
для работы cout и endl необходимо подключит модуль в начале кода

C++
1
2
3
#include <iostream>
using  std::cout;
using std::endl;

Помогите, пожалуйста, найти ошибки в коде.
Задание: Описать класс «Автобусный билет» с соответствующими полями. Описать методы класса для ввода с консоли и файла, для вывода всех данных и о конкретном пассажира (поиск по одному из полей, например, по имени). Описать перегружен метод «Продажа», который будет инициализировать билеты введенными данными. Добавить закрытое статическое поле count, которое после каждого введенного билета будет выводить количество введенных билетов в текущий момент времени.

В main () я создаю динамический массив объектов класса, в которых хочу записать информацию о n билетов способом, в switch () выберет пользователь. Когда я хочу вывести эти данные, например, весь массив, то выводятся только номера билета, автобуса и места, которые программа генерирует сама, а также возможность перевозки багажа. Помогите, пожалуйста, понять где ошибка.
Также есть проблема с выводом счетчика count. Программа выводит адрес count, а не само значение. Подскажите, пожалуйста, почему так?

#include <iostream>
#include <string>
#include <fstream>
#include <ctime>
#include <Windows.h>
#include <iomanip>
const int size_n = BUFSIZ;
using namespace std;

class bus_ticket {
public:
    bus_ticket() { //конструктор по умолчанию
        srand(time(NULL));
        number = rand() % 100000 + 100000;
        bus_number = rand() % 1000 + 1000;
        place_number = rand() % 50 + 10;
        count++;
    }
    bus_ticket(int Xnumber, int Xbus_number, int Xplace_number) { //конструктор с параметрами
        number = Xnumber;
        bus_number = Xbus_number;
        place_number = Xplace_number;
        count++;
    }
    bus_ticket(const bus_ticket& other) { //конструктор копирования
        this->number = other.number;
        this->bus_number = other.bus_number;
        this->place_number = other.place_number;
        this->passenger = other.passenger;
        this->sity_from = other.sity_from;
        this->sity_to = other.sity_to;
        this->date = other.date;
        this->baggage = other.baggage;
        this->sold_out = other.sold_out;
        this->control = other.control;
        count++;
    }
    ~bus_ticket() { //деструктор
        count--;
    }
    string passenger; //имя пассажира   
    string sity_from; //пункт отправления
    string sity_to; //пункт назначения
    string date; //дата отправления
    bool baggage; //возможность перевозки багажа

    void output(int i) { //метод вывода информации о пассажирах и их билеты
        cout << endl << "Информация о пассажире " << i + 1 << ": " << endl;
        cout << left << setw(40) << "Имя пассажира: " << left << setw(10) << passenger << endl;
        cout << left << setw(40) << "Номер билета пассажира: " << left << setw(10) << number << endl;
        cout << left << setw(40) << "Пункт отправления пассажира: " << sity_from << endl;
        cout << left << setw(40) << "Пункт назначения пассажира: " << sity_to << endl;
        cout << left << setw(40) << "Дата отправления пассажира: " << date << endl;
        cout << left << setw(40) << "Возможность перевозки багажа пассажира: ";
        if (baggage) {
            cout << "Предусмотрена" << endl;
        }
        else {
            cout << "Не предусмотрена" << endl;
        }
        cout << left << setw(40) << "Номер автобуса пассажира: " << bus_number << endl;
        cout << left << setw(40) << "Номер места пассажира: " << place_number << endl;
    }

    void input(int i) { //метод ввода информации о пассажирах и их билеты
        string str;
        cout << "Введіть имя пассажира " << i + 1 << endl;
        cin >> passenger;
        cout << "Введіть пункт отправления пассажира " << i + 1 << endl;
        cin >> sity_from;
        cout << "Введіть пункт назначения пассажира " << i + 1 << endl;
        cin >> sity_to;
        cout << "Введіть дату отправления пассажира " << i + 1 << endl;
        cin >> date;
        cout << "Необходимо ли место для багажа пассажиру " << i + 1 << "?" << endl;
        cin >> str;
        if (str == "Да") {
            baggage = 1;
        }
        else {
            baggage = 0;
        }
    }

    void output_from_file() { //метод вывода информации о пассажирах и их билеты из файла
        string name = "Tickets.txt";

        ifstream fin;
        fin.open(name);
        if (!fin.is_open()) {
            cout << "Не удалось открыть файл " << name << endl;
        }
        else {
            string str;
            while (!fin.eof()) {
                str = "";
                getline(fin, str);
                cout << str << endl;
            }
        }
        fin.close();
    }

    void input_to_file(bus_ticket ticket) { //метод ввода информации о пассажирах и их билеты из файла
        string name = "Tickets.txt";
        ofstream fout;
        fout.open(name, ofstream::app);
        if (!fout.is_open()) {
            cout << "Не удалось открыть файл " << name << endl;
        }
        else {
            fout.write((char*)&ticket, sizeof(bus_ticket));
        }
        fout.close();
    }

    //перегруженный метод "Продажа" описанного класса
    void selling(bus_ticket ticket, int i) {
        ticket.input(i);
        Set_sold_out(1);
    }
    void selling(bus_ticket ticket) {
        ticket.input_to_file(ticket);
        Set_sold_out(1);
    }

    bool Get_sold_out() {
        return sold_out;
    }

    bool Set_sold_out(bool new_sold_out) {
        sold_out = new_sold_out;
        return 0;
    }

    static int get_count() {
        return count;
    }

protected:
    bool control; //контроль билета
private:
    int number; //номер билета
    int bus_number; //номер автобуса
    int place_number; //номер места
    bool sold_out; //номер места
    static int count; //количество данных
};

int bus_ticket::count = 0; //инициализация

int main() {
    setlocale(LC_ALL, "ru");
    srand(time(NULL));

    //ввод информации о пассажирах и их билеты
    int n;
    cout << "Введите количество пассажиров, которым нужны билеты" << endl;
    cin >> n;
    bus_ticket* tickets = new bus_ticket[n];
    int a;
    for (int i = 0; i < n; i++) {
        cout << endl;
        cout << "Для ввода информации о пассажире " << i + 1 << " и его билет в консоли введите 1" << endl;
        cout << "Для ввода информации о пассажире " << i + 1 << " и его билет из файла введите 2" << endl;
    q:
        cout << endl << "Введите номер нужной операции a="; cin >> a;
        if (!cin) {
            cin.clear(0);
            cin.ignore(10000, 'n');
            cout << "Введите корректные данные" << endl;
            goto q;
        }
        switch (a) {
        case 1:
            tickets[i].selling(tickets[i], i);
        case 2:
            tickets[i].selling(tickets[i]);
        }
        cout << "Текущее количество билетов m=" << bus_ticket::get_count << endl;
    }

    cout << endl;
    cout << "Для вывода информации о конкретном пассажире и его билете введите 1" << endl;
    cout << "Для вывода информации о всех пассажирах и их билетах введите 2" << endl;
z:
    cout << endl << "Введите номер нужной операции a="; cin >> a;
    if (!cin) {
        cin.clear(0);
        cin.ignore(10000, 'n');
        cout << "Введите корректные данные" << endl;
        goto z;
    }
    string str_name;
    switch (a) {
    case 1:
        cout << "Введите имя пассажира для поиска" << endl; cin >> str_name;
        for (int i = 0; i < n; i++) {
            if (tickets[i].passenger == str_name) {
                tickets[i].output(i);
            }
        }
    case 2:
        for (int i = 0; i < n; i++) {
            tickets[i].output(i);
        }
    }


    delete[] tickets;
}

Формулировка задачи:

Вроде-бы должна работать но не запускает программу вот задание если нужно

Создать абстрактный класс Телефонный_справочник с методами, позволяющими вывести на экран информацию о записях в телефонном справочнике, а также определить соответствие записи критерию поиска.
Создать производные классы: Персона (фамилия, адрес, номер телефона), Организация (название, адрес, телефон, факс, контактное лицо), Друг (фамилия, адрес, номер телефона, дата рождения) со своими методами вывода информации на экран, и определения соответствия искомому типу.
Создать базу (массив) из n товаров, вывести полную информацию из базы на экран, а также организовать поиск в базе по фамилии.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        { }
        abstract class TPhoneBook
        {
            protected string pAddress;
            protected string pPhoneNumber;
            protected string pName;
 
            public abstract string Name { get; set; }
 
            public abstract void ShowName();
 
            public string Address
            {
                get { return pAddress == "" ? "адрес неизвестен" : pAddress; }
                set { pAddress = value; }
            }
 
            public string PhoneNumber
            {
                get { return pPhoneNumber == "" ? "номер телефона неизвестен" : pPhoneNumber; }
                set { pPhoneNumber = value; }
            }
 
            public bool CompareAddressWith(string s)
            {
                return s == pAddress;
            }
 
            public bool ComparePhoneNumberWith(string s)
            {
                return s == pPhoneNumber;
            }
 
            public bool CompareNameWith(string s)
            {
                return s == pName;
            }
 
            public void ShowAddress()
            {
                Console.WriteLine("Адрес: " + Address);
            }
 
            public void ShowPhoneNumber()
            {
                Console.WriteLine("Номер телефона: " + PhoneNumber);
            }
        }
 
        class TPerson : TPhoneBook
        {
            public override string Name
            {
                get { return pName == "" ? "фамилия неизвестна" : pName; }
                set { pName = value; }
            }
 
            public override void ShowName()
            {
                Console.WriteLine("Фамилия: " + Name);
            }
        }
 
        class TOrganisation : TPhoneBook
        {
            protected string pFax;
            protected string pSpokesman;
 
            public string Fax
            {
                get { return pFax == "" ? "номер факса неизвестен" : pFax; }
                set { pFax = value; }
            }
 
            public bool CompareFaxWith(string s)
            {
                return s == pFax;
            }
 
            public void ShowFax()
            {
                Console.WriteLine("Факс: " + Fax);
            }
 
            public string Spokesman
            {
                get { return pSpokesman == "" ? "контактное лицо неизвестно" : pSpokesman; }
                set { pSpokesman = value; }
            }
 
            public bool CompareSpokesmanWith(string s)
            {
                return s == pSpokesman;
            }
 
            public void ShowSpokesman()
            {
                Console.WriteLine("Контактное лицо: " + Spokesman);
            }
 
            public override string Name
            {
                get { return pName == "" ? "название организации неизвестно" : pName; }
                set { pName = value; }
            }
 
            public override void ShowName()
            {
                Console.WriteLine("Название: " + Name);
            }
        }
 
        class TFriend : TPerson
        {
            public DateTime BirthDay { get; set; }
        }
    }
}

Код к задаче: «Посмотрите ошибки в коде класса Телефонный_справочник, пожалуйста»

textual

static void Main(string[] args)
{ }

Полезно ли:

11   голосов , оценка 4.364 из 5

Помогите найти ошибку в коде.

Вывод в консоль:

The user’s name is Neo, id = 1
The user’s name is Trinity, id = 2

Process finished with exit code 0

package com.javarush.task.task13.task1306;

/*
Баг в initializeIdAndName
*/

public class Solution {
public static void main(String[] args) throws Exception {
System.out.println(Matrix.NEO);
System.out.println(Matrix.TRINITY);
}

static class Matrix {
public static DBObject NEO = new User().initializeIdAndName(1, «Neo»);
public static DBObject TRINITY = new User().initializeIdAndName(2, «Trinity»);
}

interface DBObject {
DBObject initializeIdAndName(long id, String name);
}

static class User implements DBObject {
@Override
public DBObject initializeIdAndName(long id, String name) {
this.id = id;
this.name = name;
return this;

}

long id;
String name;

@Override
public String toString() {
return String.format(«The user’s name is %s, id = %d», name, id);
}
}

}

Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.

Найдите ошибку в коде

Найдите ошибку в коде

12 265

17 ноября 2016 в 16:45

Простая задача, но все же требует внимательности, а также знаний в программировании. Итак, я дам вам небольшой кусочек кода, а вы скажите в чем здесь ошибка.

Вот сам код:

unsigned int i;
for (i = 100; i >= 0; --i)
	printf("%dn", i);

В этом коде есть две небольшие ошибки, которые вам стоит найти.

Ошибки

Первым делом, стоит обратить внимания на неправильное определения переменной i. Дело в том, что в данном случае оно является неверным. Тип unsigned int говорит о том, что значения этой переменной могут быть только цифры, при чем только положительные цифры без знака минус. Данная запись приводит к тому, что цикл будет выполняться вечно, так как условие всегда будет истинным (true). 

Корректный код состоял бы из такого условия i > 0. Он мог бы вывести все значения, кроме нуля. Цикл завершился бы и тогда мы могли бы после самого цикла прописать еще и вывод 0. К примеру, у нас бы получилось нечто вроде этого:

unsigned int i;
for (i = 100; i > 0; --i)
	printf("%dn", i);
printf("%dn", i);

Вторая ошибка намного проще и заключается в том, что мы используем %d вместо того чтобы использовать %u. Поскольку мы выводим числа без минуса, то именно так должно все быть. В итоге у нас получился вот такой код, который верно выводит значения от 100 до 1:

unsigned int i;
for (i = 100; i > 0; --i)
	printf("%un", i);

Больше интересных новостей

Понравилась статья? Поделить с друзьями:
  • Найдите ошибку в каждом предложении they are swimming
  • Найдите ошибку в каждом предложении he is a student
  • Найдите ошибку в использовании предлога в школу со школы
  • Найдите ошибку в доказательстве того что 2 1
  • Найдите ошибку в доказательстве теоремы