Форум программистов, компьютерный форум CyberForum.ru

Структура NOTE - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Володик
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 14
27.04.2012, 01:56     Структура NOTE #1
Цедь работы: ознакомление и приобретение навыков алгоритмизации задач
структурной декомпозиции, описания и обработки структур разнотипных дан-
ных средствами языка С/С++ и отладки программ в учебном варианте профес-сиональной инструментальной среды Microsoft Visual C++ 2010 Express Edition.

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

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

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 01:56     Структура NOTE
Посмотрите здесь:

Описать структуру с именем NOTE C++
C++ Описать структуру Note
Описать структуру с именем NOTE C++
C++ Описание структуры NOTE
C++ Структуры в NOTE
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cetrael
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 02:18     Структура NOTE #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;
            }
        }
}
А, и да, писал на Си
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
27.04.2012, 02:23     Структура NOTE #3
Цитата Сообщение от cetrael Посмотреть сообщение
Есть какая-то лаба со студентами, аналогичная в принципе, с сортировкой. Захочешь, переделаешь
C++
1
2
#include <iostream>
for(int i=0;i<n;i++)
А, и да, писал на Си
ну почти на Си)
cetrael
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 02:25     Структура NOTE #4
Цитата Сообщение от MrGluck Посмотреть сообщение
ну почти на Си)
А в чем подвох, а то я и не понял?

апд, Хм, почему-то иострим не увидел сразу, а с циклом-то что не так?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
27.04.2012, 02:27     Структура NOTE #5
Цитата Сообщение от cetrael Посмотреть сообщение
А в чем подвох, а то я и не понял?
файл .cpp на .c поменяйте разрешение - компилятор все расскажет)
cetrael
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
27.04.2012, 02:33     Структура NOTE #6
Будет ругаться на инициализацию переменной управления циклом?
P.S. А я на pure C и не претендовал
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
27.04.2012, 02:39     Структура NOTE #7
Цитата Сообщение от cetrael Посмотреть сообщение
Будет ругаться на инициализацию переменной управления циклом?
P.S. А я на pure C и не претендовал
Угу. В стиле С делать так:
C
1
2
int i;
for(i=0; i < N; i++)
Володик
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 14
27.04.2012, 12:15  [ТС]     Структура NOTE #8
Спасибо хоть за это))) Вот только слишком много библиотек, мне желательно без stdio.h
И с переделкой будут проблемы..!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2012, 21:52     Структура NOTE
Еще ссылки по теме:

C++ Структура с именем NOTE
Описать структуру с именем NOTE C++
Обработка данных структуры NOTE C++

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

Или воспользуйтесь поиском по форуму:
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
25.05.2012, 21:52     Структура NOTE #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;
}
Yandex
Объявления
25.05.2012, 21:52     Структура NOTE
Ответ Создать тему
Опции темы

Текущее время: 03:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru