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

Сортировка структур с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исправить ошибки в коде http://www.cyberforum.ru/cpp-beginners/thread757383.html
#include <iostream> using namespace std; const int n=5; class dancer {public: char MenName; char WomenName;
C++ Сортировка Привет! Вот условие задачи и код, но она упорно отказывается работать. компилятор выдает сообщение о синтаксических ошибках и т. п. Огромная просьба, кому не лень, можете не просто объяснить баги, но и сам принцмп работы программы, ибо писала по примеру с урока. Спасибо! #include "stdafx.h" #include <iostream> void Sortirovka (int a, int b, int c); using namespace std; void main () http://www.cyberforum.ru/cpp-beginners/thread757363.html
C++ Розробити класс
Розробити класс, набирает методив (конструктора, деструктор и вказани методи) для програмної модели заданого объєкту. Опис объєкту и його основних властивостей приводиться нижче. Привести програм (int main), що використовує объєкти розробленого класса: Объєкт «Комплексное число». Операциї визначаються по загальноприйнятим формулам. Конструктора повинен дозволити створювати объєкти без та с...
Написать функцию для удаления строки из двумерного массива C++
Написать функцию для удаления строки из двумерного массива. Оставшиеся строки должны быть расположены плотно, недостающие элементы заменяются 0. С помощью разработанных функций исключить из массива строки с номерами от А до В.
C++ Упорядочить элементы стека методом выбора с обменами http://www.cyberforum.ru/cpp-beginners/thread757329.html
помогите упорядочить элементы стека методом выбора с обменами.не могу с самим кодом разобраться.кто поможет? в dev cpp
C++ MNIST распознавание знаков учу с++ с opencv. Должна предоставить программу по решению судоку. У меня уже определяется поле, но при попытки работать с MNIST идёт ошибка памяти. Что в этом виновата переменная size я уже поняла. Но не понимаю почему. Код честно взяла отсюда (http://pastebin.com/SzThnTUM) и понимаю не совсем всё. size выходит за рамки размера и даже неправильно высчитывается, но я не понимаю, на что и как... подробнее

Показать сообщение отдельно
FreeMinder
 Аватар для FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
10.01.2013, 15:54     Сортировка структур с++
Если учитывать, что автор хранит в одном символе имя студента, то с классами врядли справится.
Более простой вариант
Кликните здесь для просмотра всего текста
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include<iostream>
#include<fstream>
 
using namespace std;
 
const int _size_ = 16;
 
struct Student
{
    char Name    [_size_];
    char LastName[_size_];
    int  Year;
    int  Marks[5];
    float AverageMark;
};
 
Student AddStudent();
void PrintList(const Student* list, const int& count);
void Sort(Student* list, const int& count);
void Menu();
void WriteToFile(const Student* list,const int& count);
 
 
int main()
{
    Menu(); 
}
 
Student AddStudent()
{
    system("cls");
    Student student;
    cout<<"Name: ";
    cin>>student.Name;
    cout<<"Last Name: ";
    cin>>student.LastName;
    cout<<"Year: ";
    cin>>student.Year;
    cout<<"Math mark: ";
    cin>>student.Marks[0];
    cout<<"Physics mark: ";
    cin>>student.Marks[1];
    cout<<"History mark: ";
    cin>>student.Marks[2];
    cout<<"OOP mark: ";
    cin>>student.Marks[3];
    cout<<"Programming mark: ";
    cin>>student.Marks[4];
    student.AverageMark = static_cast<float>((student.Marks[0]+student.Marks[1]+student.Marks[2]+student.Marks[3]+student.Marks[4]) / 5);
    cout<<"\nStudent add success\n";
    system("pause >> void");
    return student;
}
void PrintList(const Student* list, const int& count)
{   
    system("cls");
    if(count == 0)
    {
        system("cls");
        cout<<"\n\tList is empty\n";
    }
    else
    {
        for(int i=0; i < count; i++)
        {           
            cout<<"\n\tNo:"     <<i+1<<endl;
            cout<<"Name: "      <<list[i].Name<<endl;
            cout<<"LastName: "  <<list[i].LastName<<endl;
            cout<<"Year: "      <<list[i].Year<<endl;
            cout<<"Marks: ";
            for (int j = 0; j < 5; j++)
                cout<<list[i].Marks[j]<<" ";
            cout<<"\nAverage mark: "<<list[i].AverageMark;
        }
        cout<<endl;
    }
    system("pause >> void");
} 
void Sort(Student* list, const int& count)
{
    if(count == 0)
    {
        cout<<"List is empty\n";
    }
    else
    {
        for (int i = 0; i < count; i++)
            for (int j = i+1; j < count; j++)
            {           
                if (list[i].AverageMark > list[j].AverageMark)
                {
                    Student temp = list[i];
                    list[i] = list[j];
                    list[j] = temp;
                }
            }
        cout<<"\nSort finished\n";      
    }
    system("pause >> void");
}
void WriteToFile(const Student* list,const int& count)
{
    if(count == 0 )
    {
        cout<<"\nList is empty!\n";
        system("pause >> void");
        return;
    }
    ofstream out("save.txt",ios::out);
    if(!out)
    {
        cout<<"Error of writing to file";
        system("pause >> void");
        return;
    }
    for(int i=0; i < count; i++)
    {           
        out<<"\n\tNo:"      <<i+1<<endl;
        out<<"Name: "       <<list[i].Name<<endl;
        out<<"LastName: "   <<list[i].LastName<<endl;
        out<<"Year: "       <<list[i].Year<<endl;
        out<<"Marks: ";
        for (int j = 0; j < 5; j++)
            out<<list[i].Marks[j]<<" ";
        out<<"\nAverage mark: "<<list[i].AverageMark;
    }
    cout<<"Writing to file OK!\n";
    system("pause >> void");
}
void Menu()
{
    int StudentCount = 0;
    int choice = 1;
    Student* List = NULL;
 
    while(true)
    {       
        system("cls");
        cout<<"1.Add student\n";
        cout<<"2.Print list\n";
        cout<<"3.Sort\n";
        cout<<"4.Save and exit\n";
        cout<<"\n\tInput choice:";
        cin>>choice;
        switch(choice)
        {
            case 1: 
            {
                StudentCount++;
                Student* newList = new Student[StudentCount];
                for (int i = 0; i < StudentCount-1; i++)
                {
                    newList[i] = List[i];
                }
                if(List) 
                    delete[]List;
                List = newList;
                List[StudentCount-1] = AddStudent();
                break;
            }
            case 2: 
                PrintList(List, StudentCount);
                break;
 
            case 3: 
                Sort(List,StudentCount);
                break;
 
            case 4:
                WriteToFile(List,StudentCount);
                if(List)
                    delete[]List;
                return;
 
            default:                
                cout<<"\nWrong choice\n";
                system("pause >> void");
                break;
        }
    }   
}
 
Текущее время: 07:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru