Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.10.2019
Сообщений: 3
1

Customer: Фамилия, Имя, Отчество, Адрес, Телефон, Номер кредитной карточки, Номер банковского счета. Создать массив объ

27.02.2020, 22:07. Просмотров 3303. Ответов 1
Метки нет (Все метки)


Customer: Фамилия, Имя, Отчество, Адрес, Телефон, Номер кредитной карточки, Номер банковского счета.

Создать массив объектов. Вывести:

а) список покупателей в алфавитном порядке;

б) список покупателей, номер кредитной карточки которых находится в заданном интервале.

Выводит только Фамилию, помогите подправить

#include <assert.h>
#include <string.h>
#include <algorithm> // для swap
#include <iostream>
using namespace std;
// количество элементов в массиве
#define LEN(array) static_cast<int> (sizeof(array) / sizeof(array[0]))
class Customer
{
private:
char _fam[30];
char _name[20];
char _ot[40];
char _adr[30];
int _tel;
int _nom;
int _cht;
public:
void set(const char fam[], const char name[], const char ot[], const char adr[], int tel, int nom, int cht)
{
int fam_len = strlen(fam); // strlen не считает завершающий нулевой char ('\0')
assert(fam_len + 1 <= LEN(_fam));
memcpy(_fam, fam, fam_len + 1); // «+ 1» потому что копируем char-ы вместе с завершающим нулевым char-ом
int name_len = strlen(name);
assert(name_len + 1 <= LEN(_name));
memcpy(_name, name, name_len + 1);

int ot_len = strlen(ot);
assert(ot_len + 1 <= LEN(_ot));
memcpy(_ot, ot, ot_len + 1);

int adr_len = strlen(adr);
assert(adr_len + 1 <= LEN(_adr));
memcpy(_adr, adr, adr_len + 1);

_tel = tel;
_nom = nom;
_cht = cht;
}
void display() const
{
cout << "Familia: " << _fam << endl;
cout << "Name: " << _name << endl;
cout << "Otchestvo: " << _ot << endl;
cout << "Adress: " << _adr << endl;
cout << "Telefon: " << _tel << endl;
cout << "Card: " << _nom << endl;
cout << "Chet: " << _cht << endl;
}
int getCard() const { return _nom; }

const char* getFam() const { return _fam; }
};
// сортирует в алфавитном порядке
void alf(Customer spis[], int n)
{
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(spis[i].getFam(), spis[j].getFam()) > 0) { swap(spis[i], spis[j]); }
}
} for (int i = 0; i < n; i++)
{
cout << spis[i].getFam() << endl;
}

char method();
{
int num;
cin >> num;
while (num > 9999 || num < 1111);
cout << "spis[i]" << endl;
}
}

int main()
{
Customer spis[9];
spis[0].set("Romanov", "Ilya", "Petrovich", "1111", 0, 0, 0);
spis[1].set("Lenin", "Vova", "Ivanovich", "9999", 0, 0, 0);
spis[2].set("Stalin", "Sasha", "Vladimirovich", "8888", 0, 0, 0);
spis[3].set("Khrushchev", "Kirill", "Petrov", "7777", 0, 0, 0);
spis[4].set("Brezhnev", "Anton", "Antonov", "6666", 0, 0, 0);
spis[5].set("Andropov", "Kesha", "Romanovich", "5555", 0, 0, 0);
spis[6].set("Gorbachev", "Roma", "Andreevich", "4444", 0, 0, 0);
spis[7].set("Yeltsin", "Andrey", "Konstantinovich", "3333", 0, 0, 0);
spis[8].set("Putin", "Isaak", "Ilich", "2222", 0, 0, 0);
alf(spis, LEN(spis)); return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2020, 22:07
Ответы с готовыми решениями:

Класс Абонент: Идентификационный номер, Фамилия, Имя, Отчество, Адрес, Номер кредитной карточки
Доброго времени суток. Помогите пожалуйста написать программу. Класс Абонент: Идентификационный...

Класс Покупатель: Фамилия, Имя, Отчество, Адрес, Номер кредитной карточки
Здравствуйте. Помогите пожалуйста написать программу. Я новичек и ООП даётся крайне сложно. Класс...

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

Структура "Владелец автомобиля": - фамилия, имя, отчество; - номер автомобиля; - телефон; - номер техпаспорта. Удалить элемент с заданным номером, доб
Структура &quot;Владелец автомобиля&quot;: - фамилия, имя, отчество; - номер автомобиля; - телефон;...

1
Почетный модератор
7356 / 2620 / 275
Регистрация: 29.07.2006
Сообщений: 13,673
27.02.2020, 22:50 2
Цитата Сообщение от losev Посмотреть сообщение
Выводит только Фамилию,
Так и display у тебя нигде не вызывается. Кто выводить нефамилию-то должен?

Добавлено через 51 секунду
Теги для кода на форуме для кого сделаны? Почему не используешь?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2020, 22:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

Нужно создать структуру типа: СТУДЕНТ: Фамилия, Имя, Отчество, Домашний адрес, телефон, Баллы
СТУДЕНТ: Фамилия, Имя, Отчество, Домашний адрес, телефон, Баллы. А потом Определить данные о...

Структуры.Фамилия, Имя, Отчество Группа Домашний адрес, Телефон Электронная пошта
Структуры. Notebook:Фамилия, Имя, Отчество, Домашний адрес, Телефон Электронная пошта.

Класс студент с полями: год рождения, имя, фамилия, отчество, адрес и телефон.
Написать класс студент с полями: год рождения, имя, фамилия, отчество, адрес и телефон.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.