Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> С++ исправить ошибки в структуре STUDENT 
:(
    Опции темы
Kseni1995
Дата 12.5.2014, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.5.2014

Репутация: нет
Всего: нет



Уважаемые программисты, проверьте пожалуйста этот код, вроде все правильно но не выводит сортировку. А еще большая просьба: может вы предложите более простой вариант решения задачи!
 Задание такое:
описать структуру с именем STUDENT, содержащую следующие поля:
а)фамилия и имя(строка 15 символов),
б) год рождения(целое неотриц. число),
в)номер группы( число целое или строка из 3 символов),
г)оценки за сессию по 4 предметам( массив из 4 типа float)
В этой программе, реализовать следующие функции:1)вывести список студентов, фамилии которых начинаются на букву В, с указанием года их рождения; список вывести в упорядоченном по возрасту виде(начиная со старшего). 
Код

#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
struct STUDENT // структура STUDENT

  string name;
  int year;
  int group; 
  static const int mark_size=4;
  float marks[mark_size];
  STUDENT();
  STUDENT(const STUDENT &rhs);
  void input(){
     cout << "Введите фамилию студента " << endl; 
     cin >>name;
     cout<<" Год рождения "<<endl;
     cin>> year;
     cout << "Введите номер группы " << endl; 
     cin >> group; 
     cout << "Введите "<< mark_size <<" оценки " << endl; 
     for (int i = 0; i < mark_size; i++) 
     cin >> marks[i];
  }

 void output(){
  cout << "Фамилия " << name<<endl;
  cout<< "Год " << year << endl;
  cout << "Группа " << group<< endl; 
  cout <<" Oценки " << endl; 
  for (int i = 0; i < mark_size; i++) 
  cout << marks[i]<<" "; 
  cout << endl <<"_______________" << endl;
 }
};

STUDENT::STUDENT(){
 name="";
 year=0;
 group=0;
 for(int i=0; i<mark_size; ++i)marks[i]=0;
}

STUDENT::STUDENT(const STUDENT &rhs){
 name=rhs.name;
 year=rhs.year;
 group=rhs.group;
 for(int i=0; i<mark_size; ++i)marks[i]=rhs.marks[i];
}

int main (){
SetConsoleCP (1251); SetConsoleOutputCP (1251);
const int students_size = 6; // количество студентов
STUDENT student[students_size];//было students))
for (int i = 0; i < students_size; i++) 
 student[i].input(); //
cout<<"Введено:"<<endl<<endl;
for (int i = 0; i < students_size; i++)
 student[i].output();
int count_of_B = 0;
for (int i = 0; i < students_size; i++)
if(student[i].name.c_str()[0] == 'В') count_of_B ++ ;

STUDENT *students = new STUDENT[count_of_B];

int ind =0;
for (int i = 0; i < students_size; i++)
if(student[i].name.c_str()[0] == 'В') students[ind ++ ] = student[i]; 

//дальше имя students нам уже подходит а вот размер
//переписываем ниже все students_size на count_of_B)) 
for (int i=0; i<count_of_B-1; i++) {
 for (int j=0; j<(count_of_B-i); j++) {
  if ( students[j].year > students[j+1].year) {//
 STUDENT Temp = students[j];//
  students[j] = students[j+1];
  students[j+1] = Temp;
  }
 }
}

cout<<"Сортировано:"<<endl<<endl;
for (int i = 0; i < count_of_B; i++)
 students[i].output(); 
system("pause");
return 0;
}



Спасибо заранее!

Это сообщение отредактировал(а) Kseni1995 - 12.5.2014, 15:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.