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

Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных - C++

Восстановить пароль Регистрация
 
nicshe
 Аватар для nicshe
1 / 1 / 1
Регистрация: 23.11.2012
Сообщений: 37
22.04.2013, 19:17     Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных #1
Описать класс Student, содержащий следующие поля:
· Фамилия и инициалы
· Номер группы
· Успеваемость (массив из трех элементов)
Записать в файл базу данных из объектов класса Student
Задать переопределенные операции и функции, необходимые для работы с базой данных.
Написать программу, выполняющую следующие действия:
· Ввод с клавиатуры информации в базу данных
· Просмотр содержимого базы данных
· Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных, если средний балл студентов больше 4.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
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include <iostream>
#include <iomanip>      
#include <fstream>
#include <string.h>        
//Описание класса Студент
 
using namespace std;
class Student
 { private:
      static const int Max = 3;      // шкала баллов
      char pName[30];                // Cтрока, содержащая фамилию и инициалы студента
      int NumGroup;                  // номер группы
      int Rating[Max];               // оценка
 
   public:                           
      Student(){ };                       // Пустой конструктор
 
      // Переопределенная операция для поиска студента
       int* GetRating(){return Rating;}   // Возвращает оценку
      char* GetName(){return pName;} // Возвращает Ф.И.О.
     
      // Переопределенные методы потокового ввода и вывода
      friend istream& operator >>(istream&, Student&);  
      friend ostream& operator <<(ostream&, Student&);
 };
 
 //Переопределенный потоковый ввод
istream& operator >>(istream& in, Student& ob)
 { in>>ob.pName;                     // Читаем из входного потока фамилию и инициалы
   in>>ob.NumGroup;                  // Читаем из входного потока номер группы
   in>>ob.Rating[2];                       // Читаем из входного потока оценку
   return in;
 }
 
 //Переопределенный потоковый вывод
ostream& operator <<(ostream& out, Student& ob)
 { out<<setw(30)<<ob.pName;          // Помещаем в выходной поток фамилию и инициалы
   out<<setw(6)<<ob.NumGroup;        // Помещаем в выходной поток номер группы
   out<<setw(3)<<ob.Rating<<"\n";      // Помещаем в выходной поток оценку
   return out;                      
 }
 
//ОПИСАНИЕ ФУНКЦИЙ ДЛЯ РАБОТЫ С БАЗОЙ ДАННЫХ
 
//Описание функции для ввода информации в базу данных
void InputBD()
 { ofstream f;                            // Описание выходного файлового потока
   // Описание объекта типа Студент для чтения и записи информации
   Student S;                                 
   f.open("C:\\Documents\\Visual Studio 2010\\Projects\\СТУДЕНТ\\СТУДЕНТ\\bd.dat");// Открытие файлового потока для записи
   int answer=1;
   while (answer)
    {  cout<<"\nВведите фамилию и инициалы в формате Фамилия И. О. <Enter>\n";
       cout<<"Номер группы <Enter>\n";
       cout<<"Введите оценку <Enter>\n";
       cout<<">";
       cin>>S;                       
       f<<S;                         
       cout<<"\nПродолжить? 1-Да,0-Нет>";
       cin>>answer;
    }
   cout<<"=====================================================\n";
   cout<<"Ввод данных завершен\n";
   f.close();                        
 }
 
//Описание функции для просмотра содержимого базы данных
 
 void ShowBD()
 { ifstream f;                            
   Student S;
   f.open("C:\\Documents\\Visual Studio 2010\\Projects\\СТУДЕНТ\\СТУДЕНТ\\bd.dat");// Открытие файлового потока для записи
   // Печать шапки таблицы
   cout<<"\n=====================================================\n";
   cout<<setw(30)<<"Фамилия И.О."<<setw(6)<<"группа"<<setw(3)<<"оценка"<<"\n";
   f>>S;                                  
   while (!f.eof())
    { cout<<S;                            
      f>>S;                             
    }
  cout<<"=====================================================\n";
  f.close();                              
 }
 
//Описание функции для поиска студента с средним баллом больше 4.0.
void SearchRating(int SRating[3])
 { ifstream f;               
   int found=0;             
   // Описание объекта типа Студент для чтения и записи информации
   Student S;
   f.open("C:\\Documents\\Visual Studio 2010\\Projects\\СТУДЕНТ\\СТУДЕНТ\\bd.dat"); 
   // Печать шапки таблицы          
   cout<<"\n=====================================================\n";
   cout<<setw(30)<<"Фамилия И.О."<<setw(6)<<"группа"<<setw(3)<<"оценка"<<"\n";
   f>>S;
   while (!f.eof())         
    { if (S.GetRating()>SRating)     
      { cout<<S;          
        found =1;            
      }
      f>>S;                
    }
   if (!found)              
      cout<<"\nТаких студентов нет\n";     
  cout<<"=====================================================\n";
  f.close();             
 }
 
//Описание функции для поиска записей с заданными Ф.И.О.
void SearchName(char Name[30])
 { ifstream f;
   int found=0;
   Student S;
   f.open("C:\\Documents\\Visual Studio 2010\\Projects\\СТУДЕНТ\\СТУДЕНТ\\bd.dat");
   cout<<"\n=====================================================\n";
   cout<<setw(30)<<"Фамилия И.О."<<setw(6)<<"группа"<<setw(3)<<"оценка"<<"\n";
   f>>S;
   while (!f.eof())
    { if (!strcmp(S.GetName(),Name))                
      { cout<<S;                   // Выводим информацию о сотруднике
        found=1;
      }
      f>>S;
    }
   if (!found)
       cout<<"\nТаких студентов нет\n";
   cout<<"=====================================================\n";
   f.close();
 }
 
//Главная функция
void main()
 { 
   setlocale(LC_CTYPE, "Russian_Russia.1251");
   InputBD();                                   // Ввод информации в базу данных
   ShowBD();                                    // Вывод содержимого базы данных
   cout<<"Поиск студентов, чья оценка больше 4.0\n";
   cout<<"Поиск завершается при вводе значения, равного -1\n";
   int S_rating[2];                                // Заданная оценка
   while(1)                                      // Используем бесконечный цикл
     {  cout<<"Введите величину оклада или -1\n";
        cin>>S_rating[2];                             // Вводим искомую оценку
        if(S_rating[2]==-1)                           // Если введено значение -1,
            break;                                // завершаем поиск
        SearchRating(S_rating);                       // Иначе осуществляем поиск
     }
   cout<<"Поиск студентов с заданными Ф.И.О.\n";
   cout<<"Поиск завершается при вводе значения, равного 0\n";
   char Name[30];                                
   int answer=1;                                  // Переменная для организации цикла
   while(answer)
     {  cout<<"\nВведите фамилию и инициалы в виде Фамилия И.О.<Enter>\n";
        cin>>Name;                                // Вводим строку - Ф.И.О.
        SearchName(Name);                         // Осуществляем поиск
        cout<<"\nПродолжить? Да-1, Нет-0>";
        cin>>answer;
     }
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 19:17     Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных
Посмотрите здесь:

C++ Разработать базу данных студентов.
Написать программу, выполняющую вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5 C++
Структуры. Вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2. C++
C++ Структура: вывод на дисплей фамилии и номеров групп студентов, если средний балл выше 4
C++ Поиск фамилий неуспевающих студентов с указанием номеров групп и кол-ва задолжностей
Программа для ввода и вывода фамилий и оценок студентов. Отберите тех, у которых сумма баллов вторая по вел C++
C++ Создайте программу для ввода и вывода фамилий и оценок студентов
Структура STUDENT, вывести фамилии и номера групп для студентов, имеющих двойки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
22.04.2013, 19:32     Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных #2
А в чем проблема? Не компилируется? Некорректно работает?
nicshe
 Аватар для nicshe
1 / 1 / 1
Регистрация: 23.11.2012
Сообщений: 37
22.04.2013, 19:36  [ТС]     Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных #3
Цитата Сообщение от hofmn Посмотреть сообщение
А в чем проблема? Не компилируется? Некорректно работает?
некорректно работает. я ввожу данные о студенте, а он мне выдает сплошной поток чисел.
Yandex
Объявления
22.04.2013, 19:36     Вывод на экран фамилий и номеров групп для всех студентов, включенных в базу данных
Ответ Создать тему
Опции темы

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