Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 14
1

Структура NOTE

27.04.2012, 01:56. Показов 4846. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цедь работы: ознакомление и приобретение навыков алгоритмизации задач
структурной декомпозиции, описания и обработки структур разнотипных дан-
ных средствами языка С/С++ и отладки программ в учебном варианте профес-сиональной инструментальной среды Microsoft Visual C++ 2010 Express Edition.

Большая просьба, использовать библиотеку iostream

Структура NOTE с полями:
- фамилия, имя;
- номер телефона;
- день рождения в виде массива из трех чисел.
Действия с массивом структур:
- сортировка записей в массиве по первым трем цифрам номера
телефона в порядке возрастания и вывод его на зкран компью-
ра;
- определение и вывод на экран записей, в которых фамилия сов-
падает со значением, введенным с клавиатуры, либо сообщение
об отсутствии таковых.

Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2012, 01:56
Ответы с готовыми решениями:

Структура с именем NOTE
Описать структуру с именем NOTE, содержащую поля: -фамилия и имя; -номер телефона; -дата...

Сортировка по дате рождения (структура note)
Добрый вечер! На моих примерах программа сработала, но есть подозрение, что я неправильно сделал...

Структура Note: по отдельности всё работает, а всё вместе нет
#include <iostream> #include <clocale> #include <cstdlib> #include <string.h> using namespace...

Структура "Note", вывод информации о человеке с указанным номером телефона
Описать запись с именем Note, содержащую следующие поля: • Фамилия, имя; • номер телефона; •...

8
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 02:18 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#include <locale>
#include <Windows.h>
#include <iostream>
 
struct db
{
    char fam[60];
    char group[30];
    float rating;
};
 
void del(db *database,int kill,int n);
void input(db *database,int i);
void output(db *database,int n);
void sort(db *database,int n);
 
int main ()
{ 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i,n,kill,temp;
    struct db *database;
    printf("Сколько записей будет содержать база?  ");
    scanf("%d",&n);
    database = (db*)calloc(n,sizeof(db));
 
    for(int i=0;i<n;i++)
    {
        input(database,i);
    }
 
    do
    {
        printf("\n 1-Удалить строчку\n 2-Добавить строчку\n 3-Отсортировать по рейтингу\n 4-Выйти\n");
        scanf("%d",&temp);
        switch(temp)
        {
        case 1:
            printf("Какую строчку удалим?: ");
            scanf("%d",&kill);
            if(kill>0)      
            {del(database,kill,n);
            n--;
 
            database =(db*) realloc (database,n*sizeof(db)); if (!database) exit(NULL);
            output(database,n);
            }
            else printf("Вы ввели неравильный номер строки, нумерация начинается с 1цы");
            
            break;
 
        case 2:
            n++;
            database =(db*) realloc (database,n*sizeof(db)); if (!database) exit(NULL);
            i=n-1;
            printf("Вводите новую строчку: ");
            input(database,i);
            output(database,n);
            break; 
            
        case 4:
            exit(NULL);
        case 3:
            sort(database,n);
            output(database,n);
        }
    } while(temp>0);
 
    getch();
    free(database);
}
 
void del(db *database,int kill,int n)
{
            for(int i=kill-1;i<n;i++)
            {
                database[i]=database[i+1];
            }       
}
 
void input(db *database,int i)
{
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
        printf("Студент номер [%d]:\n",i+1);
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
        fflush(stdin);
        printf("Введите фамилию студента : ");
        scanf("%s",&(database+i)->fam);
        fflush(stdin);
        printf("Введите номер группы студента  : ");
        scanf("%s",&database[i].group);
        fflush(stdin);
        printf("Введите средний балл  : ");
        scanf("%f",&database[i].rating);
        fflush(stdin);
    } 
}
 
void output(db *database,int n)
{
    printf(" __________________________________________________________\n");
    printf("|Surname                        |Group      |Rating       |\n ");
    printf("_________________________________________________________\n");
    for(int i =0;i<n;i++)
    {
        printf("| %30s| %10s|   %10.2f|\n", database[i].fam, database[i].group, database[i].rating);
    } 
    
}
 
void sort(db *database,int n)
{
    db temp_database;
    for( int i = 0;i < n;i++)
        for( int j = 0;j < n-i-1;j++)
        {
            if (database[j].rating > database[j+1].rating)
            {
                temp_database = database[j];
                database[j] = database[j+1];
                database[j+1] = temp_database;
            }
        }
}
А, и да, писал на Си
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.04.2012, 02:23 3
Цитата Сообщение от cetrael Посмотреть сообщение
Есть какая-то лаба со студентами, аналогичная в принципе, с сортировкой. Захочешь, переделаешь
C++
1
2
#include <iostream>
for(int i=0;i<n;i++)
А, и да, писал на Си
ну почти на Си)
0
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 02:25 4
Цитата Сообщение от MrGluck Посмотреть сообщение
ну почти на Си)
А в чем подвох, а то я и не понял?

апд, Хм, почему-то иострим не увидел сразу, а с циклом-то что не так?
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.04.2012, 02:27 5
Цитата Сообщение от cetrael Посмотреть сообщение
А в чем подвох, а то я и не понял?
файл .cpp на .c поменяйте разрешение - компилятор все расскажет)
0
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 02:33 6
Будет ругаться на инициализацию переменной управления циклом?
P.S. А я на pure C и не претендовал
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.04.2012, 02:39 7
Цитата Сообщение от cetrael Посмотреть сообщение
Будет ругаться на инициализацию переменной управления циклом?
P.S. А я на pure C и не претендовал
Угу. В стиле С делать так:
C
1
2
int i;
for(i=0; i < N; i++)
0
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 14
27.04.2012, 12:15  [ТС] 8
Спасибо хоть за это))) Вот только слишком много библиотек, мне желательно без stdio.h
И с переделкой будут проблемы..!
0
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
25.05.2012, 21:52 9
Может хотя бы литературу читайте, тем более вам дают уже некоторые наработки программ на лабах.
Вот держи такую как ты хотел:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*труктура NOTE с полями:
 - фамилия, имя; 
 - номер телефона;
 - день рождения в виде массива из трех чисел.
 Действия с массивом структур:
 - сортировка записей в массиве по первым трем цифрам номера
 телефона в порядке возрастания и вывод его на зкран компью-
 ра;
 - определение и вывод на экран записей, в которых фамилия сов-
 падает со значением, введенным с клавиатуры, либо сообщение
 об отсутствии таковых.*/
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
struct NOTE
{
    char name[20];
    char lastname[20];
    string phone;
    char Birthday[10];
};
void Input(int n,NOTE* note)
{
    for(int i=0;i<n;i++)
    {
        cout<<"Vvedite imya: ";cin>>note[i].name;
        cout<<"Vvedite familiu: ";cin>>note[i].lastname;
        cout<<"Vvedite nomer telephona: ";cin>>note[i].phone;
        cout<<"Vvedite den rojdenie: ";cin>>note[i].Birthday;
        cout<<endl;
    }
    cout<<endl;
}
void Output(int n,NOTE* note)
{
    for(int i=0;i<n;i++)
    {
        cout<<"imya: "<<note[i].name<<" ";
        cout<<"familiu: "<<note[i].lastname<<" ";
        cout<<"nomer telephona: "<<note[i].phone<<" ";
        cout<<"den rojdenie: "<<note[i].Birthday<<" ";
        cout<<endl;
    }
    cout<<endl;
}
void Fam(int n,NOTE* note,string fam)
{
    int count=0;
    for(int i=0;i<n;i++)
    {
        if(fam==note[i].lastname) 
        {
            cout<<"imya: "<<note[i].name<<" ";
            cout<<"familiu: "<<note[i].lastname<<" ";
            cout<<"nomer telephona: "<<note[i].phone<<" ";
            cout<<"den rojdenie: "<<note[i].Birthday<<" ";
            cout<<endl;
        }
        else count++;
        if(count==n) cout<<"Takovix net"<<endl;
    }
}
void Sort(int n,NOTE* note)
{
    NOTE buf;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n-1;j++)
        {
            if(note[j].phone[0]>note[j+1].phone[0])
            {
                buf=note[j];
                note[j]=note[j+1];
                note[j+1]=buf;
            }
            else if(note[j].phone[0]==note[j+1].phone[0] && note[j].phone[1]>note[j+1].phone[1])
            {
                buf=note[j];
                note[j]=note[j+1];
                note[j+1]=buf;
            }
            else if(note[j].phone[0]==note[j+1].phone[0] && note[j].phone[1]==note[j+1].phone[1] && note[j].phone[2]>note[j+1].phone[2])
            {
                buf=note[j];
                note[j]=note[j+1];
                note[j+1]=buf;
            }
        }
    }
    cout<<"Otsortirovannaya baza: "<<endl;
    Output(n,note);
}
int main()
{
    int n;
    cout<<"Vvedite razmer bazi: ";cin>>n; 
    NOTE* note=new NOTE[n];
    Input(n,note);
    Output(n,note);
    string fam;
    cout<<"Vvedite familiu: ";cin>>fam;
    Fam(n,note,fam);
    Sort(n,note);
    getch();
    return 0;
}
1
25.05.2012, 21:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2012, 21:52
Помогаю со студенческими работами здесь

Структура "NOTE", найти, чьи дни рождения приходятся на заданный месяц
Вариант 13 1. Описать структуру с именем NOTE, содержащую следующие поля: • NAME — фамилия, имя;...

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и...

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет функцию, которая...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru