Форум программистов, компьютерный форум, киберфорум
Наши страницы

Массивы структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Элементы заданной матрицы A(N, N) переписывайте построчно в одномерный массив до тех пор, пока не встретится нулевой элемент.(Матрица задается динами) http://www.cyberforum.ru/cpp-beginners/thread221006.html
#include "stdafx.h" #include <iostream> using namespace std; void main() { int i,j,k,t,mas,mass,N,M; cout<<"Enter n"; cin>>N; cout<<"Enter m";
C++ Открытие и сохранение файла Привет всем, подскажыте как открыть файл в С++ без Опен диалога и как збереч его, при етом с файла нужно считать инфу. (Файл в форматие *.тхт) http://www.cyberforum.ru/cpp-beginners/thread220981.html
C++ При поступлении в вуз абитуриенты, получившие "двойку" на первом экзамене, ко второму не допускаются. В массиве A[n] записаны оценки экзаменующиеся, п
При поступлении в вуз абитуриенты, получившие "двойку" на первом экзамене, ко второму не допускаются. В массиве A записаны оценки экзаменующиеся, полученные на первом экзамене. Подсчитать, сколько...
Переписать через <stdio.h> на старую версию C++
#include <stdio.h> #include <iostream.h> #include <string.h> #include <conio.h> #include <ctype.h> #define RT 20 int main(void) { char s, s1,temp;
C++ Дана строка, содержащая текст на русском языке и некоторые 2 слова. Определить, сколько раз они входят непосредственно друг с другом. http://www.cyberforum.ru/cpp-beginners/thread220972.html
Помогите решить плиззз..... Дана строка, содержащая текст на русском языке и некоторые 2 слова. Определить, сколько раз они входят непосредственно друг с другом.
C++ Замените в слове "му" на "а", а букву "ы" на "ца". помогите решить пожалуйста) Замените в слове "му" на "а", а букву "ы" на "ца". подробнее

Показать сообщение отдельно
haosino
1 / 1 / 0
Регистрация: 09.02.2010
Сообщений: 8
28.12.2010, 02:46
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
130
131
132
133
134
135
136
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#include <windows.h>
struct sotrudniki {        
        char name[40]; 
        int perscod; 
        int ves;
        int busy; // занятость ячейки
} A[150];
 
void SortingbyVes (sotrudniki *p) //Сортировка по Весу
{int i,n,x,cn;
printf ("# \t Фамилия: \t Персональный код: \t Вес:\n");
int B[150];
for (x=0; x<150; x++)
    B[x]=-1;
for (i=0; p[i].busy==1; i++)
    {for (n=0, cn=0; p[n].busy==1;n++)
        {if ((p[n].ves)<(p[i].ves)) cn++;}
        if (B[cn]!=-1) {for ( ; B[cn]!=-1; ) cn++;}
        if (B[cn]==-1) B[cn]=i;
        }
for (cn=0; p[B[cn]].busy==1; cn++)
    {printf ("%d \t %s \t %d \t\t\t %d\n", B[cn]+1, p[B[cn]].name, p[B[cn]].perscod, p[B[cn]].ves);
}
getch();}
 
 
 
//Основные функции
void ScanText (sotrudniki *p) //Функция ввода
{int i,z;
printf ("Заполнить таблицу сначала или добавить?\n0-заполнить сначала\n1-добавить\n");
printf("Ваш Выбор: ");
scanf ("%d", &z);
if (z==0) {printf ("Введите имя, персональный код, вес\nВведите 0 в поле имя для окончания заполнения таблицы\n");
for (i=0; i<150; i++)
{
    printf ("#%d\n",i+1);
printf ("Имя:");fflush (stdin); gets(p[i].name);
if (*(p[i].name)=='0') break;
printf ("Персональный код:"); scanf ("%d", &(p[i].perscod));
printf ("Вес:"); scanf ("%d",&(p[i].ves));
p[i].busy=1;}}
if (z==1) {
    for (i=0; p[i].busy==1; )
        i++;
    for (; i<150; i++)
{
    printf ("#%d\n",i+1);
printf ("Имя:");fflush (stdin); gets(p[i].name);
if (*(p[i].name)=='0') break;
printf ("Персональный код:"); scanf ("%d", &(p[i].perscod));
printf ("Вес:"); scanf ("%d",&(p[i].ves));
p[i].busy=1;}}
}
void ReadText (sotrudniki *p) // Функция вывода
{int i;
if (p[0].busy==0) printf ("Список пуст!\n");
if (p[0].busy==1){
printf ("Введите 0 для вывода всего списка , либо введите номер сотрудника:\n");
printf("Ваш Выбор: ");
scanf ("%d", &i);
if (i!=0) {if (p[i].busy==0) i=0;
printf ("#%d\nИмя: %s\nПерсональный код: %d\nВес: %d\n", i, p[i-1].name, p[i-1].perscod, p[i-1].ves);}
if (i==0) {
    printf ("# \t Имя: \t Персональный код: \t Вес:\n");
    for (i=0; i<150; i++)
    {if (p[i].busy==0) break;
        printf ("%d \t %s \t %d \t\t\t %d \n", i+1, p[i].name, p[i].perscod, p[i].ves);
    }}
}
getch();
}
 
 
 
 
// Главная функци
int main ()
{
    const int maxMenu = 4;      //число строк меню
    char *pMenu[maxMenu] =      //меню
    {
        "1. Заполнение таблицы\n",
        "2. Вывести на экран\n",
        "3. Сортировка\n",
        "4. Выход\n"
    };
    int i;
    char    ch;
    BOOL    fContinue = TRUE;       //флаг продолжения основного цикла
 
    SetConsoleCP(1251);         //необходимо для отображения русских букв в консоли
    SetConsoleOutputCP(1251);
    sotrudniki *s;
    s=A;
 
    while (fContinue)               //бесконечный цикл
    {
        for (i=0; i<maxMenu; i++)   //выведем меню
            printf("%s",pMenu[i]);
        
        printf("Ваш Выбор: ");      //приглашение к выбору пункта меню
        do
        { 
            ch = getch();               //вводим символ без отображения
            switch (ch)                 //проанализируем
            {
                case '1':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    ScanText(s);
                    break;
                case '2':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    ReadText (s);
                    break;
                case '3':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    SortingbyVes (s);
                    break;
                case '4':               
                    printf("%c\n",ch);//Отобразим введенный символ
                    fContinue = FALSE;
                    break;
                default:
                    continue;           //все остальное приведет к ожиданию "нужных" символов '1'-'10'
            }
            ch = 0x7f;                  //приведут к выходу из цикла do-while
        } while (0x7f != ch);       //  и выводу меню
    }
    
    return 0;
}

что-то типа
Сделал сортировку по весу, но если не так, то думаю не сложно будет переделать.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru