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

Описать структуру Student

13.04.2017, 21:28. Показов 1166. Ответов 5
Метки нет (Все метки)

1.Описать структуру с именем STUDENT, содержащую следующие поля:
Name - фамилия и имя.
Number – номер зачётной книжки.
Birth - Год рождения.
Admission - Год поступления в университет.
2. Написать программу, выполняющую следующие действия :
• ввод с клавиатуры данных в файл STUD1, состоящий из структур типа STUDENT; записи должны быть упорядочены в алфавитном порядке по фамилии;
• чтение данных из файла
• Вывод на дисплей анкетных данных студентов, чей год совпадает с введённым с клавиатуры (Я его назвал в программе Scan), если таких студентов нет, вывести соответствующее сообщение.

Помогите подправить программу, возможно ошибка там, где сравнивается условие равен ли введённый год с клавиатуры (Scan) с анкетными (Admission). Компилятор не видит объявление Admission.
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
#include <iostream>
#include <string>
#include <conio.h>
#include <windows.h>
using namespace std;
 
struct STUDENT        // структура STUDENT
{
    string name;      // Фамилия и имя студента
    int number;       // Номер зачётной книжки
    int birth;        // Год рождения
    int admission;    // Год поступления в университет
};
 
int main()
{
    setlocale(0,"rus");
    const int size = 3;   // количество студентов
    STUDENT stud1[size];  // массив
    int i, scan;
    cout << "Введите год для сравнения: ";
    cin >> scan;
    int n = 0;            // счётчик студентов
    int count = 0;        // счётчик студентов по году поступления в университет
                          // усли он равен количеству студентов значит
                          // нет которых год поступления совпадает с введённым
 
    for ( i = 0; i < size; i++)  // ввод информации
    {
        cout << "Введите фамилию и имя студента: " ;
        cin >> stud1[n].name;
        cout << "Введите номер зачётной книжки: " ;
        cin >> stud1[n].number;
        cout << "Введите год рождения: " ;
        cin >> stud1[n].birth;
        cout << "Введите год поступления в университет: ";
        cin >> stud1[n].admission;
    }
    float sum = 0; // счётчик суммы оценок
    for ( i = 0; i < size; i++) {
            if(admission == scan) // условие (поступление = введённое значение)?
            {
                cout << stud1[i].name << endl;
                cout << stud1[i].admission << endl;
            }
            else
                count++;
            sum = 0;
        }
    if(count == size) {
        cout << "Такие студенты отсутствуют " << endl; }
    getch ();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2017, 21:28
Ответы с готовыми решениями:

Описать структуру Student
#include &lt;iostream&gt; #include &lt;fstream&gt; #include&lt;limits&gt; #define DIM 10 #define NAME 70 using...

Описать структуру STUDENT
у меня такое задание: Описать структуру с именем STUDENT, содержащую следующие поля: • фамилия и...

Описать структуру Student
Описать структуру Student, которая имеет следующие поля: фамилия,группа,средний бал...

Описать структуру Student
Условие задачи: Описать структуру с именем STUDENT, содержащую следующие поля: NAME - фамилия...

5
с++
1256 / 501 / 220
Регистрация: 15.07.2015
Сообщений: 2,517
14.04.2017, 07:57 2
Пространство имен — это декларативная область, в рамках которой определяются различные идентификаторы (имена типов, функций, переменных, и т. д.). Пространства имен используются для организации кода в виде логических групп и с целью избежания конфликтов имен, которые могут возникнуть, особенно в таких случаях, когда база кода включает несколько библиотек. Все идентификаторы в пределах пространства имен доступны друг другу без уточнения. Идентификаторы за пределами пространства имен могут получить доступ к членам, используя полное имя идентификатора, например std::vector<std::string> vec;, используя Объявление using для отдельного идентификатора (using std::string) или Директива using для всех идентификаторов в пространстве имен (using namespace std; ). Код в файлах заголовков всегда должен содержать полное имя в пространстве имен.



а обращаться нужно так :
C++
1
2
3
4
5
if(stud1[i].admission == scan) // условие (поступление = введённое значение)?
 {
        cout << stud1[i].name << endl;
        cout << stud1[i].admission << endl;
  }
1
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 134
15.04.2017, 17:10  [ТС] 3
Antikl, спасибо за помощь.
0
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 134
15.04.2017, 17:15  [ТС] 4
Что нужно сделать чтобы выводился корректный ответ. В программе две конечные строки показывают Имя и Год поступления. Год выводится правильно, т.к это цифры, а вместо имени символы. Как исправить?, скриншот прилагается.
0
Миниатюры
Описать структуру Student  
с++
1256 / 501 / 220
Регистрация: 15.07.2015
Сообщений: 2,517
16.04.2017, 08:46 5
пример

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
#include <iostream>
#include <string>
using namespace std;
 
struct Car{
    string name;
    int year;
};
 
int main(){
 
    int a;
    cout << "Enter the collection on auto: ";
    cin >> a;
 
    Car* mas = new Car[a];
 
    for(int i = 0; i < a; i++){
        cout << "Proizvoditel: ";
        cin.get();
        getline(cin,mas[i].name);
        cout << "Year: ";
        cin >> mas[i].year;
    }
 
    cout << endl << "Collection: " << endl;
 
    for(int i = 0; i < a; i++){
        cout << mas[i].name << " " << mas[i].year << endl;
    }
 
    delete [] mas;
    system("pause");
    return 0;
}

вот еще исправить нужно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
for ( i = 0; i < size; i++)  // ввод информации
    {
        cout << "Введите фамилию и имя студента: " ;
        cin.get();
        getline(cin,stud1[i].name);//cin >> stud1[i].name;
        cout << "Введите номер зачётной книжки: " ;
        cin >> stud1[i].number;
        cout << "Введите год рождения: " ;
        cin >> stud1[i].birth;
        cout << "Введите год поступления в университет: ";
        cin >> stud1[i].admission;
    }

ну у меня работает по моему исправлению ))


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
#include <iostream>
#include <string>
using namespace std;
 
struct A{
    string name;
};
 
int main(){
 
 
    A a[2];
    string f;
    for(int i=0; i<2; i++){
            cin>>f;
      a[i].name=f;
    }
 
    for(int i=0; i<2; i++){
    cout<<a[i].name;
    }
    system("pause");
    return 0;
}

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
#include <iostream>
#include <string>
using namespace std;
 
struct A{
    string name;
};
 
int main(){
 
 
    A a[2];
    
    for(int i=0; i<2; i++){
    a[i].name=" ";
    }
    for(int i=0; i<2; i++){
      cin>>a[i].name;
    }
 
    for(int i=0; i<2; i++){
    cout<<a[i].name;
    }
    system("pause");
    return 0;
}
Добавлено через 4 минуты
у вас не работает все потому что когда создаеться переменая она инициализируеться мусором лучше заранее инициализировать переменную даже так вполне будет
C++
1
string a=" ";
1
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 134
16.04.2017, 18:38  [ТС] 6
Antikl, Дело в том, что когда я ввожу фамилию кириллицей, то в конце выходит набор символов. Однако ввод латиницей выводит корректно. Ещё подскажите как сделать, чтобы можно было написать фамилию и имя через пробел? Сейчас можно одно слово только.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2017, 18:38

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

Описать структуру STUDENT
Прошу помощи, уважаемые программисты! Я гуманитарий, задание для меня, конечно, очень интересное,...

Описать структуру STUDENT
Помогите с программой плз Не работает почему-то //Описать структуру с именем SUDENT,...

Описать структуру с именем student
Нужна помощь в решении задачи в Borland C, 16. Ввести структуру СТУДЕНТ с полями ФИО, ГОД...

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


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

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

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