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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
#1

Задание на создание и работу с классами - C++

14.03.2011, 20:36. Просмотров 874. Ответов 18
Метки нет (Все метки)

Есть задание:
1.Описать класс с именем STUDENT, содержащий следующие поля:
фамилия и инициалы;
номер группы;
успеваемость (массив из пяти элементов).
2.Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT;
записи должны быть упорядочены но возрастанию среднего балла;
вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5; если таких студентов нет, вывести соответствующее сообщение.
Вот моя программная реализация,котораЯ не работает:
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
#include <iostream>
#include <conio.h>
using namespace std;
class STUDENT
{
 
public :
    char firstname[len];
    char lastname[len]; 
    int groupnumber;
    int label[5];
    
}
bool good(int *a,int n)
{bool ok=true;
for (int i=0;i<n;i++)
{
    if (a[i]<4) {ok=false;break;}
 
}
 
return (ok);
    }
float sred(int *a,int n)
{float j=0;
    for (int i=0;i<n;i++)
    j+=a[i];
    
return(j/n*1.0);
 
}   
void main()
{setlocale(LC_ALL,"Russian");
STUDENT a[max];float labelsred[max];int index[max];
cout<<"Программа:\n";
cout<<"1)Cоздает списки студентов!\n";
cout<<"2)Сортирует по успеваемости и выводит!\n";
cout<<"3)Выводит списки студентов,имеющих 4 и 5!\n";
cout<<"~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~\n";
for (int l=0;l<max;l++)
{
 cout<<"Введите фамилию"<<l<<"-го"<<" студента:";
 cin.getline(a[l].firstname,len);
cout<<"Введите имя"<<l<<"-го"<<" студента!";
cin.getline(a[l].lastname,len);
cout<<"Номер группы:";cin>>a[l].groupnumber;
for (int p=0;p<5;p++)
{ cout <<"Введите отметку по "<<p<<"-й дисциплине:";
    cin>>a[l].label[p];
 
}
labelsred[l]=sred(&a[l].label[1],5);
index[l]=l;
}
float buffer1;int n,m,buffer2;
n=max;
for (int i=0;i<n;i++)
{m=i;
 for (int j=i+1;j<n-1;j++)
 {
     if (labelsred[j]<labelsred[m]) 
     {m=j;
     buffer1=labelsred[i];
    labelsred[i]=labelsred[m];
    labelsred[m]=buffer1;
    buffer2=index[i];
    index[i]=index[m];
    index[m]=buffer2;
     }
 
 }
 for (int y=0;y<max;y++)
 cout<<index[y]<<")"<<labelsred[y]<<endl;
}
getch();
}
Сделал ее только до половины,да вот только не работает!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 20:36     Задание на создание и работу с классами
Посмотрите здесь:

Доделать задание с классами - C++
Порядок выполнения работы. 1. Определить пользовательский класс в соответствии с вариантом задания (смотри приложение). 2. Определить...

Придумайте, пожалуйста, задание с классами - только интересное - C++
Вот стало скучно хочу что-то написать придумайте задание только что-то интиресное знаю классы!

Написал задание с классами, по примеру, но в public выдает ошибки, незнаю как их переделать :) - C++
# include &quot;stdafx.h&quot; # include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class Magazine ...

Задание на работу со односвязными списками - C++
Нужна помощь Задание: В составе программы описать функцию которая меняет местами наибольший и наименьший элемент. Проблема как раз в...

Написать ответы на тестовое задание при приёме на работу (исключения, sizeof, mutex) - C++
Добрый день! Ходил недавно на собеседование. Имеется список вопросов, на некоторые ответил правильно на какие-то - нет. Хотелось бы...

Задание на создание классов - C++
Дорогие коллеги! Помогите новичку разобраться с этим заданием! Задание на создание классов Данное задание предполагает создать базовый...

создание класса в С++ , простейшее задание - C++
Помогите создать класс по условию... Тип «Вариант распыление» определить как перечисление (enum) со значениями полей «брус», «доска...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,739
14.03.2011, 20:40     Задание на создание и работу с классами #2
Цитата Сообщение от REALIST07 Посмотреть сообщение
bool good(int *a,int n)
{bool ok=true;
for (int i=0;i<n;i++)
{
if (a[i]<4) {ok=false;break;}
}
где возвращаемое значение?
компилятор должен был написать ошибку?
return ok;
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 20:42  [ТС]     Задание на создание и работу с классами #3
Цитата Сообщение от REALIST07 Посмотреть сообщение
return (ok);
вот он
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,739
14.03.2011, 20:46     Задание на создание и работу с классами #4
Цитата Сообщение от REALIST07 Посмотреть сообщение
&a[l].label[1]
массивы начинаются с 0

Добавлено через 4 минуты
сделай функции проверки успеваемости и средний балл членами класса
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 20:47  [ТС]     Задание на создание и работу с классами #5
Ну это ладно тут он пару десятков ошибок выдает,вот программа сама
Вложения
Тип файла: rar Classes.rar (1.79 Мб, 24 просмотров)
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 20:48  [ТС]     Задание на создание и работу с классами #6
Я просто только начал изучать-совсем не в теме,подправьте если вариант
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,739
14.03.2011, 21:12     Задание на создание и работу с классами #7
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

void main()
для начала у тебя две точки входа зачем???

Добавлено через 18 минут
#define len 256
class STUDENT
в начале файла MyClass.h
это явно мусор предыдуший
он не дает скомпильнуть
дальше класс у тебя описан и в h и в cpp файлах
два определения тоже ошибка компиляции
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 21:16  [ТС]     Задание на создание и работу с классами #8
ValeryS ,подпраь прогу если можешь

Добавлено через 13 секунд
я выше исходник выложил
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,739
14.03.2011, 21:26     Задание на создание и работу с классами #9
твой проект у меня не идет VS2010 у меня VS2008
создал свой проект скопировал текст из первого поста все скомпилилось после доработки напильником
Цитата Сообщение от REALIST07 Посмотреть сообщение
len
Цитата Сообщение от REALIST07 Посмотреть сообщение
max
пришлось объявить
Цитата Сообщение от REALIST07 Посмотреть сообщение
class STUDENT
{
public :
char firstname[len];
char lastname[len];
int groupnumber;
int label[5];
}
в конце ;
ошибки алгритмические
не проверяется оценка хоть 100 напиши
если вместо номера группы написать строку программа идет вразнос
проверяй вводимые значения
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 21:32  [ТС]     Задание на создание и работу с классами #10
Каким образом?

Добавлено через 3 минуты
ааа туплю блин,я понял просто проблема в том что в модуле хранится
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,739
14.03.2011, 21:35     Задание на создание и работу с классами #11
в смысле???
создал пустой проект
скопировал туда твою прогу(из первого поста и запустил)
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 21:56  [ТС]     Задание на создание и работу с классами #12
Щас программу полностью переделаю-посмотрим

Добавлено через 12 минут
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
#include "stdafx.h"
#define len 16
#define MAX 5
 
 
#include <iostream>
#include <conio.h>
using namespace std;
class STUDENT
{
 
public :
        char firstname[len];
        char lastname[len]; 
        int groupnumber;
        int label[5];
        
};
bool good(int *a,int n)
{bool ok=true;
for (int i=0;i<n;i++)
if (a[i]<4) {ok=false;break;}
 return (ok);
        }
float sred(int *a,int n)
{float j=0;
        for (int i=0;i<n;i++)
        j+=a[i];
        
return (j/n*1.0);
 
}       
void main()
{setlocale(LC_ALL,"Russian");
STUDENT a[MAX];float labelsred[MAX];int index[MAX];int i,j;
cout<<"Программа:\n";
cout<<"1)Cоздает списки студентов!\n";
cout<<"2)Сортирует по успеваемости и выводит!\n";
cout<<"3)Выводит списки студентов,имеющих 4 и 5!\n";
cout<<"~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~\n";
for (i=0;i<MAX;i++)
{
 cout<<"Введите фамилию"<<i+1<<"-го"<<" студента:";
 cin.getline(a[i].firstname,len);
cout<<"Введите имя"<<i+1<<"-го"<<" студента:";
cin.get(a[i].lastname,len);
cout<<"Номер группы:";cin>>a[i].groupnumber;
for (j=0;j<5;j++)
{ cout <<"Введите отметку по "<<j+1<<"-й дисциплине:";
        cin>>a[i].label[j];
 
}
labelsred[i]=sred(&a[i].label[0],5);
index[i]=i;
}
float buffer1;int n,m,buffer2;
n=MAX;
for (int i=0;i<n;i++)
{m=i;
 for (int j=i+1;j<n-1;j++)
 {
         if (labelsred[j]<labelsred[m]) 
         {m=j;
         buffer1=labelsred[i];
    labelsred[i]=labelsred[m];
    labelsred[m]=buffer1;
        buffer2=index[i];
        index[i]=index[m];
        index[m]=buffer2;
         }
 
 }
 for (int y=0;y<MAX;y++)
 cout<<index[y]<<")"<<labelsred[y]<<endl;
}
getch();
}
Вроде бы исправил,но почему после второго раза набор фамилии и имени слепаются???
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
14.03.2011, 22:36     Задание на создание и работу с классами #13
Цитата Сообщение от REALIST07 Посмотреть сообщение
Вроде бы исправил,но почему после второго раза набор фамилии и имени слепаются???
Забыл почистить входной поток
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
#define len 16
#define MAX 5
 
 
#include <iostream>
#include <conio.h>
using namespace std;
class STUDENT
{
 
public :
        char firstname[len];
        char lastname[len];
        int groupnumber;
        int label[5];
 
};
bool good(int *a,int n)
{bool ok=true;
for (int i=0;i<n;i++)
if (a[i]<4) {ok=false;break;}
 return (ok);
        }
float sred(int *a,int n)
{float j=0;
        for (int i=0;i<n;i++)
        j+=a[i];
 
return (j/n*1.0);
 
}
int main()
{setlocale(LC_ALL,"Russian");
STUDENT a[MAX];float labelsred[MAX];int index[MAX];int i,j;
cout<<"Программа:\n";
cout<<"1)Cоздает списки студентов!\n";
cout<<"2)Сортирует по успеваемости и выводит!\n";
cout<<"3)Выводит списки студентов,имеющих 4 и 5!\n";
cout<<"~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~\n";
for (i=0;i<MAX;i++)
{
 cout<<"Введите фамилию"<<i+1<<"-го"<<" студента:";
 cin.sync();//!!!
 cin.getline(a[i].firstname,len);
cout<<"Введите имя"<<i+1<<"-го"<<" студента:";
cin.get(a[i].lastname,len);
cout<<"Номер группы:";cin>>a[i].groupnumber;
for (j=0;j<5;j++)
{ cout <<"Введите отметку по "<<j+1<<"-й дисциплине:";
        cin>>a[i].label[j];
 
}
labelsred[i]=sred(&a[i].label[0],5);
index[i]=i;
}
float buffer1;int n,m,buffer2;
n=MAX;
for (int i=0;i<n;i++)
{m=i;
 for (int j=i+1;j<n-1;j++)
 {
         if (labelsred[j]<labelsred[m])
         {m=j;
         buffer1=labelsred[i];
    labelsred[i]=labelsred[m];
    labelsred[m]=buffer1;
        buffer2=index[i];
        index[i]=index[m];
        index[m]=buffer2;
         }
 
 }
 for (int y=0;y<MAX;y++)
 cout<<index[y]<<")"<<labelsred[y]<<endl;
}
getch();
}
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
14.03.2011, 22:42  [ТС]     Задание на создание и работу с классами #14
Тогда вопрос другой как проверить отметку?тупо так:
C++
1
if (label>1 && label<5) ...
И еще как проверить цифры ли?перебором в массиве от 0 до 9?
И последнее как отреагировать на неправильное заполнение?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2011, 22:44     Задание на создание и работу с классами
Еще ссылки по теме:

Создание класса, моделирующего работу RS-триггера - C++
Здравствуйте! Помогите пожалуйста с заданием.. Создать класс RS_trigger, моделирующий работу R-S триггера. Триггер принимает логическое...

Создание консольного теста: выводит задание и 4 варианта ответа - C++
Дано задание сделать консольный тест на C++, который выводит вопрос и 4 варианта ответа. Вопрос и ответы программа берет из файла. Не...

Задание по ООП: создание АТД "Массив" - C++
Такое задание на листке бумаги написать ADT массива, то что я принес преподаватель откатл и сказал что много чего не достает и ещё и не ...

Придумать и описать создание списка или стека или очереди. И работу с ними. - C++
Помогите пожалуйста. Придумать и описать структуру некоторого сюжета (не менее пяти полей) и составить программу для создания массива...

Переделать работу с текстовыми файлами под работу с двоичными файлами - C++
Здравствуйте. В этой программе идёт работа с текстовыми файлами, а нужно с двоичными. Можно ли как-то переделать? #include...


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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
14.03.2011, 22:44     Задание на создание и работу с классами #15
Цитата Сообщение от REALIST07 Посмотреть сообщение
Тогда вопрос другой как проверить отметку?
Проверить на что ?
Yandex
Объявления
14.03.2011, 22:44     Задание на создание и работу с классами
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru