Структура покупатель фамилия имя отчество домашний адрес номер телефона номер кредитной карточки

Nikita19041

0 / 0 / 0

Регистрация: 16.09.2013

Сообщений: 25

1

Структура «Покупатель». Ошибка в коде

12.01.2014, 21:18. Показов 2457. Ответов 12

Метки нет (Все метки)


Помогите пжлста, не компилиться, понимаю что ошибка очень простая, но уже 2 часа сижу и туплю=
Ввести массив структур в соответствии с вариантом. Составить функции пользователя, реализующие сортировку массива в алфавитном порядке по первому полю, входящему в структуру, и поиск в массиве структур по указанному полю.
Структура «Покупатель»: фамилия, имя, отчество; домашний адрес; номер телефона; номер кредитной карточки. Вывести покупателей-однофамильцев.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Лабораторная 1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include "math.h"
#include "iomanip"
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char a[30], b[30];
    double massiv;
    struct покупатель
{ 
      char имя[20];
      char фамилия[30];
      char отчество[30];
      char город[30];
      int телефон;
      int кредитка;
};
 
struct покупатель покупатели[30];
struct покупатель buffer;
int records;
int i,j;
char k;
 
records=0;
    do
    {
        cout<<"Покупатель №"<< records+1<<endl;
        cout<<"Введите фамилию: ";
        fflush(stdin);
        cin>>(покупатели[records].фамилия);
        cout<<"Введите имя: ";
        fflush(stdin);
        cin>>(покупатели[records].имя);
        cout<<"Введите отчество: ";
        cin>>покупатели[records].отчество;
        fflush(stdin);
        cout<<"Введите город: ";
        cin>>покупатели[records].город;
        fflush(stdin);
        cout<<"Введите номер телефона: ";
        cin>>покупатели[records].телефон;
        fflush(stdin);
        cout<<"Введите номер кредитной карты: ";
        cin>>покупатели[records].кредитка;
        fflush(stdin);
    }while (i);
    for (i=0; i<records-1; i++)
        for (j=i+1; j<records; j++)
            if (strcmp (покупатели[i].фамилия, покупатели[j].фамилия)==0)
                {
                    double massiv;
                        for (k=0; k<30; k++)
                        massiv[k] = покупатели[i].фамилия;
                        massiv[k+1] = покупатели[j].фамилия;
                        k++;
                }
            cout<<"Результат работы программыn";
            for (k=0; k<30; k++)
                cout<<k<<endl;
    return 0;
}

Буду очень признаетелен

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



nasorog

-4 / 0 / 1

Регистрация: 22.12.2011

Сообщений: 215

12.01.2014, 21:25

2

C++
1
2
3
4
#include <stdafx.h>
#include <ostream>
#include <math.h>
#include <iomanip>



0



xoror

31 / 31 / 4

Регистрация: 15.12.2013

Сообщений: 147

12.01.2014, 21:30

3

Цитата
Сообщение от Nikita19041
Посмотреть сообщение

C++
1
2
3
4
5
6
7
8
9
struct покупатель 
{ 
  char имя[20]; 
  char фамилия[30]; 
  char отчество[30]; 
  char город[30]; 
  int телефон;
  int кредитка; 
};

Это что такое
Кириллицу убрать!

Добавлено через 2 минуты
Все переменные в c++ должны быть на английском языке



0



0 / 0 / 0

Регистрация: 16.09.2013

Сообщений: 25

12.01.2014, 21:30

 [ТС]

4

Это висуал студия 10, там немного все по другому=

setlocale(LC_ALL, «Russian»);
кириллице быть



0



alsav22

5493 / 4888 / 831

Регистрация: 04.06.2011

Сообщений: 13,587

12.01.2014, 21:36

5

Что за странный массив massiv?

C++
1
2
3
4
5
double massiv;
for (k=0; k<30; k++)
massiv[k] = покупатели[i].фамилия;
massiv[k+1] = покупатели[j].фамилия;
k++;



0



0 / 0 / 0

Регистрация: 16.09.2013

Сообщений: 25

12.01.2014, 21:39

 [ТС]

6

ну надо же было его как то обозвать….



0



-=ЮрА=-

Заблокирован

Автор FAQ

12.01.2014, 21:45

7

Проблема проста — некорректная обработка ввода с кирилицей.
Ниже 100% вариант как не накосить с ней

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
    wchar_t szBuf[1024] = {0};
    setlocale(LC_CTYPE, ".866");
    wcout<<L"Ââåäèòå ñòðîêó íà ðóññêîì : ";wcin.getline(szBuf, 1024);
    wcout<<L"Âàø ââîä : "<<szBuf<<endl;
    cin.get();
    return 0;
}

Все остальные варианты(особенно обожаемый большинством

Цитата
Сообщение от Nikita19041
Посмотреть сообщение

setlocale(LC_ALL, «Russian»);

) потребуют шаманства чтобы был полноценный ввод/вывод

Миниатюры

Структура «Покупатель». Ошибка в коде
 



0



-=ЮрА=-

Заблокирован

Автор FAQ

12.01.2014, 21:46

8

Цитата
Сообщение от Nikita19041
Посмотреть сообщение

fflush(stdin);

— это изъять заменить ввод строковых констант на getline(если азумеется хотим поддержку ввода текста с пробелами), после ввод числовых значений произвести очистку буфера от n — т.е добавить сразу после cin<<value; cin.get()



1



Arkaniy

12.01.2014, 21:56

Не по теме:

В VS можно вводить переменные кириллицей. Мой мир рухнул.



0



75 / 75 / 10

Регистрация: 26.02.2013

Сообщений: 224

12.01.2014, 22:00

10

Nikita19041, вы объявляете переменную,

Цитата
Сообщение от Nikita19041
Посмотреть сообщение

double massiv;

,
а потом используете как массив

Цитата
Сообщение от Nikita19041
Посмотреть сообщение

massiv[k] = покупатели[i].фамилия;

А когда тут цикл закончится: » … while(i)».
Переменная i не инициализирована.



0



Nikita19041

0 / 0 / 0

Регистрация: 16.09.2013

Сообщений: 25

12.01.2014, 22:04

 [ТС]

11

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Лабораторная 1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "math.h"
#include "iomanip"
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char a[30], b[30];
    struct покупатель
{ 
      int  номер;
      char имя[20];
      char фамилия[30];
      char отчество[30];
      char город[30];
      int телефон;
      int кредитка;
};
 
struct покупатель покупатели[30];
struct покупатель buffer;
int i,j,r;
char k;
    cout<<"Введите количество покупателей/n";
    cin>>r;
    for (i=0; i<r; i++)
    {
        cout<<"Покупатель №"<<endl;
        fflush(stdin);
        cin>>(покупатели[r].номер);
        cin.get();
        cout<<"Введите фамилию: ";
        fflush(stdin);
        cin>>(покупатели[r].фамилия);
        cin.get();
        cout<<"Введите имя: ";
        fflush(stdin);
        cin>>(покупатели[r].имя);
        cin.get();
        cout<<"Введите отчество: ";
        cin>>покупатели[r].отчество;
        cin.get();
        fflush(stdin);
        cout<<"Введите город: ";
        cin>>покупатели[r].город;
        cin.get();
        fflush(stdin);
        cout<<"Введите номер телефона: ";
        cin>>покупатели[r].телефон;
        cin.get();
        fflush(stdin);
        cout<<"Введите номер кредитной карты: ";
        cin>>покупатели[r].кредитка;
        cin.get();
        fflush(stdin);
    }
    for (i=0; i<30; i++)
        for (j=i+1; j<30; j++)
            if (strcmp (покупатели[i].фамилия, покупатели[j].фамилия)==0)
                {
                    double massiv[30];
                        for (k=0; k<30; k++)
                        massiv[k] = покупатели[i].фамилия;
                        massiv[k+1] = покупатели[j].фамилия;
                        k++;
                }
            cout<<"Введенная структураn";
            for (i=0; i<r; i++);
            cout<<
            cout<<(покупатели[r].номер);
            cout<<(покупатели[r].фамилия);
            cout<<(покупатели[r].имя);
            cout<<покупатели[r].отчество;
            cout<<покупатели[r].город;
            cout<<покупатели[r].телефон;
            cout<<покупатели[r].кредитка;
            cout<<"Результат работы программыn";
            for (k=0; k<30; k++)
                cout<<k<<endl;
            getch();
    return 0;
}

вот немного переделанный вариант, все что вы говорили выше не решило проблемы=



0



48 / 48 / 6

Регистрация: 24.12.2009

Сообщений: 495

12.01.2014, 22:06

12

Цитата
Сообщение от Arkaniy
Посмотреть сообщение

В VS можно вводить переменные кириллицей. Мой мир рухнул.

Я думаю они там сделали возможность работы с юникодом А значит можно. Но обзывать переменную русскими…. Это, как в школе от учителя по геометрии услышать «дан многоугольник АБВГД….»



0



75 / 75 / 10

Регистрация: 26.02.2013

Сообщений: 224

12.01.2014, 22:10

13

Nikita19041,
massiv[k] — одна переменная вещественного типа,
покупатели[i].фамилия — слово.
В число вы хотите записать слово?

Ну и действительно, переименуйте переменные.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

12.01.2014, 22:10

Помогаю со студенческими работами здесь

Баг в коде (статическая структура)
Задача:
• Описать структуру с именем NOTE, содержащую следующие поля:
• фамилия, имя;
• номер…

Структура (найти ошибку в этом коде)
Добрый день. Возникла такая проблема, не могу найти ошибку в этом коде, выводит непонятные символы….

исправить ошибку в коде с++(структура данных)
определить структурный тип,содержащий следующую информацию: фио риелтора,тип квартиры,кол-во…

Найти баг в коде, структура Train
При запуске кода на консоль выводятся 25 поездов: каждому присвоен номер, выводится направление,…

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

Или воспользуйтесь поиском по форуму:

13

Лабораторная
работа №8

Тема:
Структуры.

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

ТЕОРЕТИЧЕСКАЯ
ЧАСТЬ

Языки программирования
C/C++
поддерживает определяемые пользователем
структуры – структурированный тип
данных. Он является собранием
одного или более объектов (переменных,
массивов, указателей, других структур
и т.д.), которые для удобства работы с
ними сгруппированы под одним именем
.

Структуры:

  • облегчают написание
    и понимание программ.

  • помогают
    сгруппировать данные, объединяемые
    каким-либо общим понятием.

  • позволяют группу
    связанных между собой переменных
    использовать как множество отдельных
    элементов, а также как единое целое.

Как и массив,
структура представляет собой совокупность
данных
,
но отличается
от него тем, что к
ее элементам (компонентам) необходимо
обращаться по имени

и ее элементы могут быть различного
типа
.
Структуры целесообразно использовать
там, где необходимо объединить данные,
относящиеся к одному объекту.

Определение
структуры состоит из двух шагов:

  • объявление шаблона
    структуры (задание нового типа данных,
    определенного пользователем);

  • определение
    переменных типа объявленного шаблона.

Объявление
шаблонов структур.

Общий синтаксис объявления шаблона
структуры
:

struct
имя_шаблона

{

тип1 имя_переменной1;

тип1 имя_переменной1;

//другие члены данных;

};

struct
DateBase

{

char
fam[20];

char
name[15];

long
TelNumber;

char
*Adress;

double
w;

};

Имена шаблонов
должны быть уникальными
в пределах их области
определения
для того, чтобы компилятор мог различать
различные типы шаблонов. Задание шаблона
осуществляется с помощью ключевого
слова struct,
за которым следует имя шаблона структуры
и список элементов, заключенных в
фигурные скобки.

Имена элементов
в одном
шаблоне

также должны быть уникальными.
Однако в разных шаблонах можно использовать
одинаковые имена элементов.

Задание только
шаблона не
влечет

резервирования памяти компилятором.
Шаблон представляет компилятору
необходимую информацию об элементах
структурной переменной для резервирования
места
в
оперативной памяти и организации доступа
к ней при
определении

структурной переменой и использовании
отдельных элементов структурной
переменной.

Среди членов данных
структуры могут также присутствовать,
кроме стандартных типов данных (int,
float,
char
и т.д.), ранее определенные типы, например:

/* объявление шаблона
структуры типа date */

struct
date

{ int
day, month, year; };

/* шаблон
структуры
person */

struct
person

{

char
fam[30], im[20], otch[15];

float
weight;

int
height;

struct
date birthday;

};

Структура date имеет три поля типа
int. Шаблон структуры person в качестве
элемента включает поле birthday, которое,
в свою очередь, имеет ранее объявленный
тип данных: struct date. Этот элемент
(birthday) содержит в себе все компоненты
шаблона struct date.

Определение структур-переменных.
Определение структуры-переменной ничем
не отличается от объявления обычной
переменной с предопределенным типом.
Общий синтаксис:

struct
имя_шаблона имя_переменной;

Пример:

struct
person
stud[10];

Компилятор выделит
под каждую переменную количество байтов
памяти, необходимое для хранения всех
ее элементов.

Разрешается
совмещать описание шаблона и определение
структурной переменной.

Пример:

struct
book

{

char
title[20];

char
autor[30];

double
cast;

} book1, book2, *ptr_bk=&book1;

Пример:

struct
date {int
day, month, year;} date1[5]; // объявление
массив
из
15 структур

Доступ к
компонентам структуры.

Доступ к полям осуществляется с помощью
оператора «.»
при непосредственной работе со структурой
или «->»
— при использовании указателей на
структуру. Эти операторы называются
селекторами
членов класса. Общий синтаксис для
доступа к компонентам структуры
следующий:

имя_переменной_структуры.член_данных;

имя_указателя->имя_поля;

(*имя_указателя).имя_поля;

Пример:

Прямой доступ к
элементам

  1. date1[5].day=10;

  2. date1[5].year=1991;

  3. strcpy(book1.title,
    “Война и мир”);

/* используя прямое
обращение к элементу, присваиваем
значение выбранной переменной. Текс
помещается в переменную, используя
функцию копирования – strcpy();
*/

  1. stud[3].birthday.month=1;

  2. stud[3].birthday.year=1980;

Доступ по указателю

  1. (date1+5)->day=10;

  2. (stud+3)->birthday.month=1;

// Используя доступ по
указателю на структуру, присваиваем
значение соответствующей переменной.
Указатель можно использовать и так:

  1. (*(date1+5)).day=10;

  2. (*(stud+3)).birthday.month=1;

Инициализация
структур.
При
определении структурных переменных
можно инициализировать их поля. Эта
возможность подобна инициализации
массива и следует тем же правилами:

имя_шаблона
имя_переменной_структуры = {значение1,
значение2, …};

Компилятор
присваивает значение1
первой переменной в структуре, значение2
– второй переменной структуры и т.д., и
тут необходимо следовать некоторым
правилам:

— присваиваемые
значения должны совпадать по типу с
соответствующими полями структуры;

— можно объявлять
меньшее количество присваиваемых
значений, чем количество полей. Компилятор
присвоит нули остальными полями
структуры;

— список инициализации
последовательно присваивает значения
полям структуры, вложенных структур и
массивов.

Пример:

struct
date

{ int
day,month,year; }d[5] = { {1,3,1980}, {5,1,1990}, {1,1,1983} };

Копирование
структур-переменных.

Язык С(С++)
позволяет оператору присваивания
копировать значения одной структуры-переменной
в другую переменную, при условии, что
обе структуры-переменные относятся к
одному и тому же типу. Таким образом,
единственный оператор может скопировать
несколько членов данных, которые включают
массивы и вложенные структуры.

Однако следует
учитывать, что оператор присваивания
выполняет то, что называется поверхностной
копией в применении к структурам-переменным.
Поверхностная копия представляет собой
копирование бит за битом значений полей
переменной-источника в соответствующие
поля переменной-цели. При этом может
возникнуть проблема с такими членами
данных, как указатели,
поэтому использовать поверхностное
копирование структур надо осторожно.

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

#include
«stdafx.h»

#include<stdio.h>

#include<conio.h>

struct
student

{ char
name[20];

char
fam[30];

int
year;

int
mark[5];

int
average;

};

struct
student students[30];

struct
student buffer;

int
records;

int
i, j;

int
main()

{

records=0;

do

{

printf(«Student
№%dn»,
records+1);

puts(«Vvedite
familiu: «);

fflush(stdin);

gets(students[records].fam);

puts(«Vvedite
imya: «);

fflush(stdin);

gets(students[records].name);

puts(«Vvedite
vozrast: «);

scanf(«%d»,
&students[records].year);

for(i=0;
i<5; i++)

{ printf(«Vvedite
ocenku po ekzamenu №%d «,
i+1);

scanf(«%d»,
&students[records].mark[i]);

}

records++;

puts(«Prekratit’
rabotu? (1/0)»);

scanf(«%d»,
&i);

} while(i);

for
(i=0; i<records; i++)

{ students[i].average=0;

for
(j=0; j<5; j++)

students[i].average+=students[i].mark[j];

}

for
(i=0; i<records-1; i++)

for
(j=i; j<records; j++)

if
(students[i].average>students[j].average)

{ buffer=students[i];

students[i]=students[j];

students[j]=buffer;

}

for
(i=0; i<records; i++)

{

printf(«Student
%s %s «,
students[i].name, students[i].fam);

printf(»
Vosrast %d «,
students[i].year);

printf(»
Sr. ball %d n»,
students[i].average);

}

getch();

return
0;

}

Пример
2
: Ввести
массив структур. Рассортировать массив
в алфавитном порядке фамилий, входящих
в структуру, перемещая сами структуры.

#include<stdio.h>

#include<conio.h>

#include<string.h>

struct
st

{ char
name[80];

int
age;

};

void main()

{

int
i,j,k;

struct
st m[100], t;

printf(«Vvedite
kol-vo studentov: «);

scanf(«%d»,
&k);

for
(i=0; i<k; i++)

{ puts(«Vvedite
imya studenta: «);

fflush(stdin);

gets(m[i].name);

puts(«Vvedite
vozrast: «);

scanf(«%d»,
&m[i].age);

}

for
(i=0; i<k-1; i++)

for
(j=i+1; j<k; j++)

if
(strcmp(m[i].name, m[j].name)>0)

{ t=m[i];
m[i]=m[j]; m[j]=t; }

printf(«nnRezultat:
«);

for
(i=0; i<k; i++)

{

printf(«nn»);

puts(m[i].name);

printf(«%d
years «,
m[i].age);

}

getch();

}

ИНДИВИДУАЛЬНОЕ
ЗАДАНИЕ

Ввести массив
структур в соответствии с вариантом.
Рассортировать массив в алфавитном
порядке по первому полю, входящему в
структуру. В программе реализовать
меню:

  1. Ввод массива
    структур;

  2. Сортировка массива
    структур;

  3. Изменение заданной
    структуры;

  4. Удаление структуры
    из массива;

  5. Вывод на экран
    массива структур;

  6. Выход.

Варианты:

  1. Структура
    «Автосервис»: регистрационный номер
    автомобиля, марка, пробег, мастер,
    выполнивший ремонт, сумма ремонта.

  2. Структура
    «Сотрудник»: фамилия, имя, отчество;
    должность; год рождения; заработная
    плата.

  3. Структура
    «Государство»: название; столица;
    численность населения; занимаемая
    площадь.

  4. Структура «Человек»:
    фамилия, имя, отчество; домашний адрес;
    номер телефона; возраст.

  5. Структура
    «Читатель»: Фамилия И.О., номер
    читательского билета, название книги,
    срок возврата.

  6. Структура
    «Школьник»: фамилия, имя, отчество;
    класс; номер телефона; оценки по предметам
    (математика, физика, русский язык,
    литература).

  7. Структура «Студент»:
    фамилия, имя, отчество; домашний адрес;
    группа; рейтинг.

  8. Структура
    «Покупатель»: фамилия, имя, отчество;
    домашний адрес; номер телефона; номер
    кредитной карточки.

  9. Структура «Пациент»:
    фамилия, имя, отчество; домашний адрес;
    номер медицинской карты; номер страхового
    полиса.

  10. Структура
    «Информация»: носитель; объем; название;
    автор.

  11. Структура «Клиент
    банка»: Фамилия И.О., номер счета, сумма
    на счете, дата последнего изменения.

  12. Структура «Склад»:
    наименование товара, цена, количество,
    процент торговой надбавки.

  13. Структура
    «Авиарейсы»: номер рейса, пункт
    назначения, время вылета, дата вылета,
    стоимость билета.

  14. Структура «Вокзал»:
    номер поезда, пункт назначения, дни
    следования, время прибытия, время
    стоянки.

  15. Структура
    «Кинотеатр»: название кинофильма,
    сеанс, стоимость билета, количество
    зрителей.

5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  1. //8.    Структура «Покупатель» : фамилия, имя, отчество; домашний адрес; номер телефона; номер кредитной карточки.

  2. /*

  3. Ввести массив структур в соответствии с вариантом. Рассортировать массив в алфавитном порядке по первому полю, входящему в структуру. В программе реализовать меню :

  4. 1)  Ввод массива структур;

  5. 2)  Сортировка массива структур;

  6. 3)  Поиск в массиве структур по заданному параметру;

  7. 4)  Изменение заданной структуры;

  8. 5)  Удаление структуры из массива;

  9. 6)  Вывод на экран массива структур;

  10. 7)  Выход.

  11. */

  12. #include<stdio.h>

  13. #include<locale.h>

  14. #include<string.h>

  15. #include<conio.h>

  16. const char MAX_SIZE = 100;

  17. struct Buyer

  18. {

  19. char name[MAX_SIZE], lastname[MAX_SIZE], thirdname[MAX_SIZE], adress[MAX_SIZE], phoneNumber[MAX_SIZE], cardNumber[MAX_SIZE];

  20. }m[100], t;

  21. int count=0;

  22. void initStruct()

  23. {

  24. printf(«введите кол-во покупателей: «);

  25. scanf(«%d»,&count);

  26. for (int i = 0; i < count; i++)

  27. {

  28. puts(«Введите имя покупателя: «);

  29. fflush(stdin);

  30. gets(m[i].name);

  31. puts(«Введите фамилию покупателя: «);

  32. fflush(stdin);

  33. gets(m[i].lastname);

  34. puts(«Введите отчество: «);

  35. fflush(stdin);

  36. gets(m[i].thirdname);

  37. puts(«Введите адрес покупателя: «);

  38. fflush(stdin);

  39. gets(m[i].adress);

  40. puts(«Введите номер телефона покупателя: «);

  41. fflush(stdin);

  42. gets(m[i].phoneNumber);

  43. puts(«Введите номер банковской карты покупателя: «);

  44. fflush(stdin);

  45. gets(m[i].cardNumber);

  46. }

  47. }

  48. void sortStruct()

  49. {

  50. for (int i = 0; i < count 1; i++)

  51. for (int j = i + 1; j < count; j++)

  52. if (strcmp(m[i].name, m[j].name)>0)

  53. {

  54.         t = m[i]; m[i] = m[j]; m[j] = t;

  55. }

  56. }

  57. void printOneEntry(int i)

  58. {

  59. printf(«nn«);

  60. puts(m[i].name);

  61. puts(m[i].lastname);

  62. puts(m[i].thirdname);

  63. puts(m[i].adress);

  64. puts(m[i].phoneNumber);

  65. puts(m[i].lastname);

  66. }

  67. void printStruct()

  68. {

  69. printf(«nnРезультат: «);

  70. for (int i = 0; i<count; i++)

  71. {

  72.         printOneEntry(i);

  73. }

  74. }

  75. void search()

  76. {

  77. printf(«1) Имяn2) Фамилияn3) Отчествоn4) Адресn5) Номер телефонаn6) Номер банковской картыn«);

  78. printf(«По какому параметру вы хотите начать поиск?n«);

  79. int point;

  80. scanf(«%d», &point);

  81. switch (point)

  82. {

  83. case 1:

  84. {

  85. printf(«Введите значение параметра для поиска: n«);

  86. char param[100];

  87. scanf(«%s», param);

  88. for (int i = 0; i < count; ++i)

  89. {

  90. if (strcmp(m[i].name, param) == 0)

  91. {

  92. printf(«Параметр найденn«);

  93.                           printOneEntry(i);

  94. return;

  95. }

  96. }

  97. printf(«Ничего не найденоn«);

  98. break;

  99. }

  100. case 2:

  101. {

  102. printf(«Введите значение параметра для поиска: n«);

  103. char param[100];

  104. scanf(«%s», param);

  105. for (int i = 0; i < count; ++i)

  106. {

  107. if (strcmp(m[i].lastname, param) == 0)

  108. {

  109. printf(«Параметр найденn«);

  110.                           printOneEntry(i);

  111. return;

  112. }

  113. }

  114. printf(«Ничего не найденоn«);

  115. break;

  116. }

  117. case 3:

  118. {

  119. printf(«Введите значение параметра для поиска: n«);

  120. char param[100];

  121. scanf(«%s», param);

  122. for (int i = 0; i < count; ++i)

  123. {

  124. if (strcmp(m[i].thirdname, param) == 0)

  125. {

  126. printf(«Параметр найденn«);

  127.                           printOneEntry(i);

  128. return;

  129. }

  130. }

  131. printf(«Ничего не найденоn«);

  132. break;

  133. }

  134. case 4:

  135. {

  136. printf(«Введите значение параметра для поиска: n«);

  137. char param[100];

  138. scanf(«%s», param);

  139. for (int i = 0; i < count; ++i)

  140. {

  141. if (strcmp(m[i].adress, param) == 0)

  142. {

  143. printf(«Параметр найденn«);

  144.                           printOneEntry(i);

  145. return;

  146. }

  147. }

  148. printf(«Ничего не найденоn«);

  149. break;

  150. }

  151. case 5:

  152. {

  153. printf(«Введите значение параметра для поиска: n«);

  154. char param[100];

  155. scanf(«%s», param);

  156. for (int i = 0; i < count; ++i)

  157. {

  158. if (strcmp(m[i].phoneNumber, param) == 0)

  159. {

  160. printf(«Параметр найденn«);

  161.                           printOneEntry(i);

  162. return;

  163. }

  164. }

  165. printf(«Ничего не найденоn«);

  166. break;

  167. }

  168. case 6:

  169. {

  170. printf(«Введите значение параметра для поиска: n«);

  171. char param[100];

  172. scanf(«%s», param);

  173. for (int i = 0; i < count; ++i)

  174. {

  175. if (strcmp(m[i].cardNumber, param) == 0)

  176. {

  177. printf(«Параметр найденn«);

  178.                           printOneEntry(i);

  179. return;

  180. }

  181. }

  182. printf(«Ничего не найденоn«);

  183. break;

  184. }

  185. default:

  186. {

  187. printf(«Неизвестное значение!»);

  188. return;

  189. break;

  190. }

  191. }

  192. }

  193. void changeStructure()

  194. {

  195. int i = 0;

  196. printf(«Введите номер структуры для изменения (%d — %d)n«, 0, count1);

  197. scanf(«%d», &i);

  198. puts(«Введите имя покупателя: «);

  199. fflush(stdin);

  200. gets(m[i].name);

  201. puts(«Введите фамилию покупателя: «);

  202. fflush(stdin);

  203. gets(m[i].lastname);

  204. puts(«Введите отчество: «);

  205. fflush(stdin);

  206. gets(m[i].thirdname);

  207. puts(«Введите адрес покупателя: «);

  208. fflush(stdin);

  209. gets(m[i].adress);

  210. puts(«Введите номер телефона покупателя: «);

  211. fflush(stdin);

  212. gets(m[i].phoneNumber);

  213. puts(«Введите номер банковской карты покупателя: «);

  214. fflush(stdin);

  215. gets(m[i].cardNumber);

  216. }

  217. void deleteStructure()

  218. {

  219. if (count > 0)

  220. {

  221. char bufchar[250];

  222. int nomer;

  223. printf(» Удаление структурыn«);

  224. do

  225. {

  226. printf(«Введите номер структуры, которую хотите удалитьn«);

  227. scanf(«%d», &nomer);

  228. if (nomer > count) printf(«Такой структуры не существуетn«);

  229. }

  230. while (nomer > count);

  231.         nomer -= 1;

  232. for (int a = nomer; a < count 1; a++)

  233. {

  234. strcpy(m[a].lastname, m[a + 1].lastname);

  235. strcpy(m[a].name, m[a + 1].name);

  236. strcpy(m[a].thirdname, m[a + 1].thirdname);

  237. strcpy(m[a].adress, m[a + 1].adress);

  238. strcpy(m[a].phoneNumber, m[a + 1].phoneNumber);

  239. strcpy(m[a].cardNumber, m[a + 1].cardNumber);

  240. }

  241.         count—;

  242. }

  243. else printf(«Нет заказовnn);

  244. }

  245. int main()

  246. {

  247. setlocale(LC_ALL, «Russian»);

  248. while (true)

  249. {

  250. printf(«Меню:n1) Ввод массива структур;n2) Сортировка массива структур;n3) Поиск в массиве структур по заданному параметру;n4) Изменение заданной структуры;n5) Удаление структуры из массива;n6) Вывод на экран массива структур;n7) Выход.n«);

  251. int point;

  252. scanf(«%d», &point);

  253. switch (point)

  254. {

  255. case 1:

  256. {

  257.                       initStruct();

  258. break;

  259. }

  260. case 2:

  261. {

  262.                       sortStruct();

  263. break;

  264. }

  265. case 3:

  266. {

  267.                       search();

  268. break;

  269. }

  270. case 4:

  271. {

  272.                       changeStructure();

  273. break;

  274. }

  275. case 5:

  276. {

  277.                       deleteStructure();

  278. break;

  279. }

  280. case 6:

  281. {

  282.                       printStruct();

  283. break;

  284. }

  285. case 7:

  286. {

  287. return 1;

  288. break;

  289. }

  290. default:

  291. {

  292. printf(«Неизвестное значение!»);

  293. return 1;

  294. break;

  295. }

  296. }

  297. }

  298. return 0;

  299. }

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** *Created by Kos on 19.09.2015. */ /*Customer: id, Фамилия, Имя, Отчество, Адрес, Номер кредитной карточки, Номер банковского счета. Создать массив объектов. Вывести: a) список покупателей в алфавитном порядке; b) список покупателей, у которых номер кредитной карточки находится в заданном интервале.*/ public class Customers { public static void main(String[] args) { Shop market = new Shop(«Keshenya»); market.addCustomerToShopList(new Customer(«Дмитрий», «Имануилов», «Алексеевич», 60_45_48, 4589)); market.addCustomerToShopList(new Customer(«Василий», «Тарасенко», «Петрович», 25_45_48, 1668)); market.addCustomerToShopList(new Customer(«Алесей», «Колесник», «Андреевич», 30_45_89, 1598)); market.addCustomerToShopList(new Customer(«Борис», «Македон», «Станиславович», 90_47_48, 4785)); market.addCustomerToShopList(new Customer(«Дмитрий», «Турецкий», «Федорович», 40_45_45, 2569)); System.out.println(«nsort by name:»); List<Customer> listSortByName = market.getListName(); for (Customer c : listSortByName) { System.out.println(c); } System.out.println(«nsort by surname:»); List<Customer> listSortBySurname = market.getListSurname(); for (Customer c : listSortBySurname) { System.out.println(c); } System.out.println(«ndiapason card number:»); List<Customer> diapasonCardumber = market.getListDiapasonCardNumber(254548, 554556); for (Customer c : diapasonCardumber) { System.out.println(c); } } } class Shop { private String ShopName; private ArrayList<Customer> customerList = new ArrayList<>(); Shop(String ShopName) { this.ShopName = ShopName; } void addCustomerToShopList(Customer customer) { customerList.add(customer); } List<Customer> getListName() { List<Customer> list = new ArrayList<>(customerList); Collections.sort(list, new Comparator<Customer>() { @Override public int compare(Customer o1, Customer o2) { return o1.getName().compareToIgnoreCase(o2.getName()); } }); return list; } List<Customer> getListSurname() { List<Customer> list = new ArrayList<>(customerList); Collections.sort(list, new Comparator<Customer>() { @Override public int compare(Customer o1, Customer o2) { return o1.getSurname().compareToIgnoreCase(o2.getSurname()); } }); return list; } List<Customer> getListDiapasonCardNumber(int diapasonStart, int diapasonEnd) { List<Customer> list = new ArrayList<>(); for (Customer c : customerList) { if (c.getCardNumber() >= diapasonStart && c.getCardNumber() <= diapasonEnd) { list.add(c); } } return list; } } class Customer { { idGenertor++; } private static int idGenertor = 0; private int id = idGenertor; private String surname; private String name; private String patronymic; private int CardNumber; private int BankNumber; Customer(String surname, String name, String patronymic, int CardNumber, int BankNumber) { this.name = name; this.surname = surname; this.patronymic = patronymic; this.CardNumber = CardNumber; this.BankNumber = BankNumber; } public String getName() { return name; } public String getSurname() { return surname; } public String getPatronymic() { return patronymic; } public int getCardNumber() { return CardNumber; } public int getBankNumber() { return BankNumber; } public String toString() { return String.format(«ID: %dt name: %st surname: %st patronymic %s t CardNumber %dt BankNumber %d», id, surname, name, patronymic, CardNumber, BankNumber); } }

Понравилась статья? Поделить с друзьями:
  • Структура номера мобильного телефона
  • Струги красные пенсионный фонд номер телефона
  • Струги авто номер телефона
  • Стройцентр залари номер телефона
  • Стройудача волосово номер телефона