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

Упорядочить список студентов по году рождения и распечатать его - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как реализовать на языке прогр. C++ сглаживание функции http://www.cyberforum.ru/cpp-beginners/thread887787.html
Здравствуйте, подскажите пожалуйста, как можно реализовать сглаживание функции a(t) = sin(cos(0.1·t +5)) ·cos(sin(-1.33·t -2)) + rnd(-0.005;0.005) фильтром низких частот и интерполяцию(линейная, квадратичная, по методу Лагранжа)
C++ В отсортированном одномерном массиве выполнить поиск заданного элемента последовательным методом Знаю,что тут есть похожая очень тема, но не могу справиться который день...так что прошу помощи:wall: В отсортированном одномерном массиве Х(100) выполнить поиск заданного элемента последовательным методом,сортировка у меня методом вставки в список.Если будет проще,то вот мой отсортированный массив.Буду очень благодарна, если откликнитесь)#include <iostream> #include <ctime> #define N 100 ... http://www.cyberforum.ru/cpp-beginners/thread887783.html
C++ 5d массив
помогите выделить память под 5D массив через calloc.
Компилятор выдаёт ошибку: неразрешенный вид '_main C++
#include <vcl.h> #include <iostream.h> using namespace std; class CClass { protected: double a; int b; public: CClass(){a=0;b=b=b=b=b=0;}
C++ Упорядочить заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних http://www.cyberforum.ru/cpp-beginners/thread887755.html
Здесь совсем у меня вариантов нету.. не сталкивался с подобной сортировкой до этого. Нужно составить алгоритм, упорядочивающий заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних. Обеспечить ввод параметров и количество элементов массива с клавиатуры.
C++ Увеличить предел константного целочисленного литерала Добрый день. Появилась потребность увеличить предел целочисленного строкового литерала. Т.е. фактически изменить его тип. Например хочется реализовать в моём классе следующее: Class Foo; int main() { Foo obj1 = 4534657567463345656565757575757575334545454543345456; Foo obj2(4534657567463345656565757575757575334545454543345456); } Возможно ли вообще такое? подробнее

Показать сообщение отдельно
MarVaL
С++ Beginner
 Аватар для MarVaL
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 10:25     Упорядочить список студентов по году рождения и распечатать его
Исходник:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
 
struct Birthday {
  int d, m, y;
};
 
struct FullName {
  std::string name;
  std::string surname;
  std::string patronymic;
};
 
struct Student {
  FullName full_name;
  Birthday birthday;
};
 
struct List {
private:
  Student student;
  List *next;
public:
  List() : next(0) { }
  ~List();
  void add(const Student&);
  void show() const;
  void sort();
  void clear();
} *Head, *Temp;
 
List::~List() { }
 
void List::add(const Student & s) {
  List *node = new List;
  node->student = s;
  if(!Head) {
    Head = Temp = node;
    node->next = 0;
  } else {
    Temp->next = node;
    node->next = 0;
    Temp = node;
  }
}
 
void List::show() const { 
  List *tmp = Head;
  std::cout << std::setw(25) << std::left << "Full Name" << std::setw(12) << std::right << "Birthday" << std::endl;
  while(tmp) {
    std::cout << tmp->student.full_name.name << ' ' << tmp->student.full_name.surname << ' ' 
    << tmp->student.full_name.patronymic << std::setw(4) << std::right << tmp->student.birthday.d << std::setw(3) 
    << tmp->student.birthday.m << std::setw(5) << tmp->student.birthday.y << std::endl;
    tmp = tmp->next;
  }
}
 
void List::clear() {
  List *tmp = Head;
  while(tmp) {
    List *tmp1 = tmp->next;
    delete tmp;
    tmp = tmp1;
  }
}
 
List* readFile();
void sort(Student *, int);
 
int main() {
  List *list = readFile();
  list->show();
  list->clear();
  return 0;
}
 
 
List* readFile() {
  std::ifstream fin("stud.txt");
  Student students[10];
  int counter = 0;
  while(!fin.eof()) {
    Student student;
    std::string name, surname, patronymic;
    int d, m, y;
    fin >> name >> surname >> patronymic >> d >> m >> y;
    student.full_name.name = name;
    student.full_name.surname = surname;
    student.full_name.patronymic = patronymic;
    student.birthday.d = d;
    student.birthday.m = m;
    student.birthday.y = y;
    students[counter] = student;
    counter++;
  }
  sort(students, counter);
  List *list = new List;
  for(int i = 0; i < counter; ++i)
    list->add(students[i]);
  return list;
}
 
void sort(Student *students, int counter) {
  for(int i = 0; i < counter; ++i) {
    int i_min = i;
    for(int j = i + 1; j < counter; ++j)
      if(students[i].birthday.y > students[j].birthday.y)
        i_min = j;
    Student tmp = students[i_min];
    students[i_min] = students[i];
    students[i] = tmp;
  }
}

Файл:
Кликните здесь для просмотра всего текста
Andrey Mihailov Sergeevich 22 5 1991
Sergey Nikolaem Andreevich 5 8 1979
Pavel Novaikin Sergeevich 15 11 1992
 
Текущее время: 09:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru