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

нужно описать класс Студент. правильно все делаю? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двухмерный динамический массив http://www.cyberforum.ru/cpp-beginners/thread837717.html
a=new int* for(int i=0;i<m;i++) a=new int; Вот создание двухмерного динамического массива.Начеркал небольшой рисунок с представлением динамического массива в памяти: http://s018.***********/i503/1304/1a/6310d66e90df.jpg Где на рисунке **a, **a+1,*(a+1),*(*(a+1), *(*a+1), *(*(a+1)+1)? Я попытался все это вывести, и конкретно запутался, перечеркнул кучу рисунков. Помогите пожалуйста...
C++ Мультипоточность (очень просто) Здравствуйте! Подскажите пожалуйста, почему когда я делая свою "программу" многопоточной в 3 потока(один основной и два дочерних), скорость выполнения увеличивается? // 1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <windows.h> #include <tchar.h> #include <strsafe.h> http://www.cyberforum.ru/cpp-beginners/thread837706.html
C++ Русские буквы
Суть такая: надо записать в файл название модуля. Для модулей с английским названием и путём до них он пишет нормально, а на русском стопорится. outfile.write(&szModName, lstrlenW(&szModName)); Добавлено через 28 минут В коде _tprintf( TEXT("%s\n"), szModName); std::wofstream outfile; outfile.open("sdjrfhjkrwehtkgbvngfdkthgdkv",...
Нарисовать в окне лист бумаги с текстом C++
Есть функция, рисующая текст на канве, эта функция принимает границы абзаца и ординату первой строки, автоматически разбивает текст на строки и выводит его на экран, смещая каждую следующую строку вниз. Сам текст меня устраивает. Но текст выводится просто в окно, а надо, чтоб он был на листе, как в Microsoft Word. Как это под виндой сделать?
C++ Подскажите в чем ошибка http://www.cyberforum.ru/cpp-beginners/thread837688.html
Нужно создать файл 5.дат и записать в него информацию с структуры аерофлот. Создаю я вот так: #include <iostream> #include <stdio.h> #include <iomanip> #include <cstdlib> #define STRLEN 20 using namespace std; #pragma pack (1)
C++ 5. Написать функцию, которая вычисляет сопротивление цепи, состоящей из двух резисторов #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int resistance(float r1, float r2, float rez) { char c; if ((r1<0)||(r2<0)) return -1; cout<<"Series circuits- enter 'S', Parallel circuits- enter 'P'="; cin>>c; подробнее

Показать сообщение отдельно
nicshe
1 / 1 / 1
Регистрация: 23.11.2012
Сообщений: 38

нужно описать класс Студент. правильно все делаю? - C++

14.04.2013, 18:42. Просмотров 575. Ответов 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
159
160
161
162
163
164
#include <iostream>
#include <iomanip>      
#include <fstream>
#include <string.h>        
 
//Описание класса Студент
 
using namespace std;
class Student
 { private:
      char pName[30];                // Cтрока, содержащая фамилию и инициалы студента
      int NumGroup;                  // номер группы
      float Rating[3];                     // оценка
   public:                           
      Student(){};                       // Пустой конструктор
 
      // Переопределенная операция для поиска студента с заданными Ф.И.О.
      // если строки совпадают (необходимо подключить модуль string.h)
      int operator ==(char Name[30]){return !strcmp(pName,Name);}
 
      // Переопределенная операция для поиска студента с средним баллом больше 4.0.
      int operator >(float SRating[3]){
          SRating[3]=4.0;
          return(Rating>SRating);}
     
      // Переопределенные методы потокового ввода и вывода
      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[3];                       // Читаем из входного потока оценку
   return in;
 }
 
 //Переопределенный потоковый вывод
ostream& operator <<(ostream& out, Student& ob)
 { out<<setw(30)<<ob.pName;          // Помещаем в выходной поток фамилию и инициалы
   out<<setw(6)<<ob.NumGroup;        // Помещаем в выходной поток номер группы
   out<<setw(3)<<ob.Rating[3]<<"\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(float 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>SRating)         // Если оценка > чем 4.0
      { cout<<S;             // Выводим информацию о сотруднике на экран
        found =1;            // Переопределяем переменную found
      }
      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 (S==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";
   float S_rating;                                // Заданная оценка
   while(1)                                      // Используем бесконечный цикл
     {  cout<<"Введите величину оклада или -1\n";
        cin>>S_rating;                             // Вводим искомую оценку
        if(S_rating==-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;
     }
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru