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

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

Войти
Регистрация
Восстановить пароль
 
АлександрБелоус
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 15
#1

Структура, перегрузка функций - C++

25.02.2013, 23:07. Просмотров 765. Ответов 2
Метки нет (Все метки)

Условие в Lab1.
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
#include <iostream>
using namespace std;
 
int n_used = 0;
 
truct traktorist
{
    char name[20];
    double mark;
    int year;
}; t[100]; // массив структур 
 
void print_all(){
    for (int i=0; i<n_used; i++){
        cout << t[i].name << "\t" << t[i].mark << "\t" << t[i].year << endl;
    }
}
 
int add(...){// без параметров (все значения по умолчанию - "Ivanov 4.0 1")
 
    return 0;
}
 
int add(...){// или фамилия или балл или курс
 
    return 0;
}
 
int add(...){// c двумя параметрами(фамилия и балл или фамилия и курс или балл  и курс)
 
    return 0;
}
 
int add(...){// со всеми тремя параметрами (фамилия, имя, курс)
 
    return 0;
}
 
int main()
{
    add("Petrov", 4.5, 2);
    add("Petrov", 4.5);
    add("Petrov");
    add();
    add(4.5);
    add(4.5, 2);
    print_all();
 
    add();
    add("Petrov");
    add(4.5);
    add(2);
    add("Petrov", 2);
    add("Petrov", 4.5);
    add(4.5, 2);
    add("Petrov", 4.5, 2);
    print_all();
 
    return 0;
}
Вложения
Тип файла: doc lab1.doc (46.5 Кб, 12 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2013, 23:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура, перегрузка функций (C++):

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Перегрузка функций. Реализация функций - C++
Разработать функцию f(x) , которая возвращает младшую цифру натурального числа x . Вычислить с ее помощью значение выражения z= f(a) +...

Структура, сортировка, перегрузка, интерфейс - C++
Знаю, что уже было куча похожих тем. 1. Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; ...

Перегрузка функций - C++
Скажите пожалуйста с помощью каких операций можно перегружать функции? Спасиб!

Перегрузка функций - C++
Доброго времени суток . Очень нужна ваша помощь . Нужно написать программу , которая обеспечивает перемножение 2 чисел , перемножение...

Перегрузка функций - C++
Помогите написать программу: Перегрузка функций. Написать перегруженные функции и основную программу, которая их вызывает. а) для...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
25.02.2013, 23:44 #2
По правилам форума. Нужно перепечатать задание.
АлександрБелоус
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 15
26.02.2013, 01:40  [ТС] #3
Задача 1-Структуры и параметры по умолчанию
Ограничение времени: 1 с
Ограничение памяти: 256 M
В селе Ивановка происходит набор слушателей на двухгодичные курсы трактористов. При этом тех, кто имеет водительские права, берут сразу на второй "курс", остальных - на первый. При записи на курсы требуется указать фамилию, средний балл аттестата и курс начала обучения (1 или 2). Большинство жителей села имеют фамилию Ivanov, средний балл аттестата 4.0, и большинство записывается на 1-ый курс. Используя перегрузку функций и параметры по умолчанию, реализовать минимальное количество функций для комфортного ввода информации о поступающих (при вызове функций задавать только те значения параметров, которые отличаются от умалчиваемых).
Для хранения в массиве информации о записавшихся на курсы использовать структуру traktorist:
• char name[20];
• double mark;
• int year;
Технические подробности
1. Для хранения списка записавшихся на курсы использовать массив (можно статический) структур traktorist.
2. Требуется разработать две функции: void print_all(), распечатывающую информацию о всех записавшихся на курсы, и int add(...тут разные параметры...), добавляющую еще одного слушателя в конец списка.
3. Функция add должна быть перегружена так, чтобы имелась возможность вызывать ее без параметров (используются все значения по умолчанию), с одним параметром (или только фамилия, или только балл, или только курс), с двумя параметрами (фамилия и балл, фамилия и курс, балл и курс), со всеми тремя параметрами (фамилия, балл, курс).
4. В случае успешного добавления функция возвращает число 0, в случае ошибки - число -1.
5. "Курс" может быть только 1-ый или 2-ой.
6. Подсказка: функцию add достаточно перегрузить 4-мя способами.
Примеры
Входные данные Результат работы
traktorist t;
t.mark = 5;
t.year = 2;

cout << t.mark << " " << t.year; 5 2
add("Petrov", 4.5, 2);
add("Petrov", 4.5);
add("Petrov");
add();

add(4.5);
add(4.5, 2);

print_all(); Petrov 4.5 2
Petrov 4.5 1
Petrov 4 1
Ivanov 4 1
Ivanov 4.5 1
Ivanov 4.5 2
add();

add("Petrov");
add(4.5);
add(2);

add("Petrov", 2);
add("Petrov", 4.5);
add(4.5, 2);

add("Petrov", 4.5, 2);

print_all(); Ivanov 4 1
Petrov 4 1
Ivanov 4.5 1
Ivanov 4 2
Petrov 4 2
Petrov 4.5 1
Ivanov 4.5 2
Petrov 4.5 2
Примечания
В приведенных выше примерах функция add() ничего на экран не выводит. Все выводится в функции print_all().
Оценивание
Критерий Балл*
Наличие структуры traktorist 1
Наличие одного варианта функции add:
int add(const char* name, double mark, int kurs) 1
Корректная работа функции print_all() 1
Прохождение теста из Примера 2 1
Прохождение всех тестов 1
*Указанные баллы начисляются в случае отсутствия грубых ошибок в коде (стилистика кода проверяется дополнительно вручную).
Авторское решение
Время: 40 мин.
Объем: 71 строка.
Контрольные вопросы
1. Каков размер в памяти экземпляра структуры traktorist? Почему именно такой?
2. Сколько байт памяти занимает следующий массив: traktorist array[10];? Почему?
3. Приведите примеры объявления:
o экземпляра структуры;
o указателя на структуру;
o статического массива структур;
o динамического массива структур (и код выделения памяти под него);
o функции, которая принимает структуру (массив структур) в качестве параметра и возвращают структуру с помощью return; пример ее вызова.
4. Приведите пример обращения к полям структуры через объект и через указатель на объект; пример обращения к полям i-го элемента массива.
5. Приведите фрагмент кода, меняющий местами i-ый и j-ый элементы массива структур.
6. Как бы Вы хранили информацию о 10-ти трактористах "традиционным" способом - без использования структур? (приведите пример кода)
7. Приведите пример перегрузки функций. Вызовите эти перегруженные функции. Объясните, как аналогичный фрагмент кода выглядел бы на чистом Си.
8. Приведите простой пример кода, демонстрирующий использование параметров по умолчанию.
9. Сколькими различными способами можно вызвать следующую функцию:
void print_error_message(const char* message=NULL, int level = 4, int code = 0);?
10. Объясните, в каких случаях применяется подобная конструкция:
void print_vertex(double, double, double = 0);
Для гиков:
1. Что такое "#pragma pack" и какое отношение эта конструкция имеет к вопросу об определении размера структуры? Покажите, как одна и та же структура может иметь различный размер в зависимости от этой настройки.
2. Что такое name mangling и какое отношение это явление имеет к перегрузке функций?
3. Влияет ли (и как) использование перегрузки функций на количество генерируемого объектного кода (размер .obj-файла)? Тот же вопрос про параметры по умолчанию.
4. Может ли одна и та же функция при вызове ее из разных единиц трансляции (.cpp-файлов) иметь разные "значения по умолчанию" своих "параметров по умолчанию"? Привести пример кода.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2013, 01:40
Привет! Вот еще темы с ответами:

Перегрузка функций - C++
Здравствуйте ! Попробовал выполнить задание, но есть проблемы...Кто может проверит а ошибки... Задание: АДТ - одномерный массив...

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

Перегрузка функций с++ - C++
Прошу помочь в решении задачи: Написать перегруженные функции и основную программу, которая их вызывает. а) для сложения...

перегрузка функций - C++
Используя механизм перегрузки функций, разработать две версии функции F, заголовки которых выглядят следующим образом: 1) float F(float...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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