Лабораторная работа №1 «Простые методы сортировки» — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Лабораторная работа №1 «Простые методы сортировки»

2017-06-20 483
Лабораторная работа №1 «Простые методы сортировки» 0.00 из 5.00 0 оценок
Заказать работу

Лабораторная работа №1 «Простые методы сортировки»

Немного полезной информации

1. Как «вычистить» из буфера ввода/вывода ENTER?

#include <limits>

void clearBuffer(){ // Очистка буфера ввода/вывода

cin.clear();

cin.ignore(numeric_limits<streamsize>::max(),'\n');

}

int main(void){

clearBuffer();

cout << "Для продолжения нажмите любую клавишу...";

cin.get();

}

2. Остановка до нажатия любой клавиши: system("Pause");

3. Русскоязычная консоль: setlocale(LC_ALL,"Russian");

4. Если забыли, как работать с файлами:

FILE *f = fopen("text.txt","w");

fprintf(f,"%i\n",1);

fclose(f);

f = fopen("text.txt","r");

fscanf(f,"%i\n",i);

fclose(f);

5. Если забыли, как работать с потоками ввода/вывода:

#include <iostream>

using namespace std;

int main() {

char s[255];

cout << "Введите строку: ";

cin >> s;

cout << s << endl;

return 0;

}

Пузырьковая сортировка (сортировка обменом)

for(int a = 1; a < count; ++a)

for(int b = count-1; b >= a; --b) {

if(items[b-1] > items[b]) {

t = items[b-1];

items[b-1] = items[b];

items[b] = t;

}

}

 

Сортировка выбором

for(a = 0; a < count-1; ++a) {

exchange = 0;

c = a;

t = items[a];

for(b = a+1; b < count; ++b) {

if(items[b] < t) {

c = b;

t = items[b];

exchange = 1;

}

}

if(exchange) {

items[c] = items[a];

items[a] = t;

}

}

 

Сортировка вставками

for(a=1; a < count; ++a) {

t = items[a];

for(b=a-1; (b >= 0) && (t < items[b]); b--)

items[b+1] = items[b];

items[b+1] = t;

}

 

Задание 1.

1. На примере исходных данных объяснить различия указанных в вашем задании алгоритмов сортировки (в письменной форме).

2. Программа должна запрашивать из файла двумерный массив. Результат сортировки по желанию пользователя может сохраняться в файле. Имена файлов вводятся с клавиатуры.

3. Используемые массивы должны быть динамическими.

4. Каждый логически законченный фрагмент должен быть оформлен в виде отдельной функции (в том числе выделение и освобождение памяти).

5. Все необходимые данные для функции должны передаваться в качестве параметров (глобальные переменные запрещены).

6. Разработать модуль (отдельный cpp-файл, имена заголовочного и соответствующего cpp-файла должны различаться только расширением), включающий в себя:

- реализацию указанных алгоритмов сортировки;

- профайлер, позволяющий подсчитать количество «пересылок» и сравнений, произведенных во время сортировки.

7. Составить тесты (не менее 10 файлов) для отладки работы алгоритмов.

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

- упорядоченной,

- случайной,

- упорядоченной в обратном порядке

последовательности чисел. Исходная последовательность получается путем считывания подряд строк (столбцов) упорядоченного двумерного массива (она будет считаться случайной последовательностью; после её упорядочения одним из методов получаем упорядоченную в прямом порядке, инвертировав её – в обратном порядке).

1.1. Дана матрица, элементами которой являются латинские буквы.Отсортировать в лексикографическом порядке элементы каждой строки: А) сортировкой выбором; В) сортировкой обменом.

1.2. Дана матрица, элементами которой являются латинские буквы.Отсортировать в лексикографическом порядке элементы каждого столбца: А) сортировкой выбором; В) сортировкой обменом

1.3. Дана матрица, элементами которой являются латинские буквы.Отсортировать в лексикографическом порядке элементы каждой строки: А) сортировкой вставками; В) сортировкой обменом

1.4. Дана матрица, элементами которой являются латинские буквы.Отсортировать в лексикографическом порядке элементы каждого столбца: А) сортировкой вставками; В) сортировкой обменом

1.5. Дана матрица, элементами которой являются латинские буквы.Отсортировать в обратном лексикографическом порядке элементы каждой строки: А) сортировкой выбором; В) сортировкой вставками.

1.6. Дана матрица, элементами которой являются латинские буквы.Отсортировать в обратном лексикографическом порядке элементы каждого столбца: А) сортировкой выбором; В) сортировкой вставками.

1.7. Дана матрица, элементами которой являются латинские буквы.Отсортировать в обратном лексикографическом порядке элементы каждой строки: А) сортировкой выбором; В) сортировкой обменом

1.8. Дана матрица, элементами которой являются латинские буквы.Отсортировать в обратном лексикографическом порядке элементы каждого столбца: А) сортировкой выбором; В) сортировкой обменом.

1.9. Дана матрица, элементами которой являются латинские буквы.Отсортировать в лексикографическом порядке элементы каждой строки: А) сортировкой вставками; В) сортировкой обменом.

1.10. Дана матрица, элементами которой являются латинские буквы.Отсортировать в лексикографическом порядке элементы каждого столбца: А) сортировкой вставками; В) сортировкой обменом.

1.11. Отсортировать элементы диагоналей вещественной матрицы, параллельных главной диагонали, по не возрастанию:

А) сортировкой вставками; В) сортировкой обменом.

1.12. Отсортировать элементы диагоналей вещественной матрицы, параллельных побочной диагонали, по не убыванию:

А) сортировкой вставками; В) сортировкой обменом.

1.13. Отсортировать элементы строк вещественной матрицы по не возрастанию: А) сортировкой вставками; В) сортировкой обменом.

1.14. Отсортировать элементы столбцов вещественной матрицы по не возрастанию: А) сортировкой вставками; В) сортировкой обменом.

1.15. Отсортировать элементы строк вещественной матрицы по не возрастанию: А) сортировкой выбором; В) сортировкой обменом.

1.16. Отсортировать элементы столбцов вещественной матрицы по не возрастанию: А) сортировкой выбором; В) сортировкой обменом.

1.17. Отсортировать элементы строк вещественной матрицы по не убыванию: А) сортировкой выбором; В) сортировкой обменом.

1.18. Отсортировать элементы столбцов вещественной матрицы по не убыванию: А) сортировкой выбором; В) сортировкой обменом.

1.19. Отсортировать элементы строк вещественной матрицы по не убыванию: А) сортировкой выбором; В) сортировкой вставками.

1.20. Отсортировать элементы столбцов вещественной матрицы по не убыванию: А) сортировкой выбором; В) сортировкой вставками.

1.21. Отсортировать элементы диагоналей вещественной матрицы, параллельных главной диагонали, по не возрастанию:

А) сортировкой выбором; В) сортировкой вставками.

1.22. Отсортировать элементы нечетных строк вещественной матрицы по не убыванию, а элементы четных строк по не возрастанию: А) сортировкой выбором; В) сортировкой вставками.

1.23. Отсортировать элементы нечетных строк вещественной матрицы по не убыванию, а элементы четных строк по не возрастанию: А) сортировкой вставками; В) сортировкой обменом.

1.24. Отсортировать элементы нечетных столбцов вещественной матрицы по не убыванию, а элементы четных столбцов по не возрастанию: А) сортировкой вставками; В) сортировкой обменом.

1.25. Отсортировать элементы нечетных столбцов вещественной матрицы по не убыванию, а элементы четных столбцов по не возрастанию: А) сортировкой вставками; В) сортировкой обменом.

Задание 2.

· Разработать программу, реализующую простой класс на основе заданной структуры данных.

· Разработать набор функций-аксессоров вида get, set и show.

· Функция main должна иллюстрировать использование разработанного класса.

· Интерфейс класса необходимо разместить в заголовочном файле, а реализацию класса и главную функцию – в двух отдельных файлах.

 

Указания к решению (вариант 30)

Буддийские монастыри Японии периода Нара
Название Школа Количество монахов Площадь земли (га)
Тодайдзи Т   368.8
Якусидзи С   54.7
Дайандзи Д   12.2
Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу

Описание полей класса

Начнем разработку класса с выбора типа данных для его полей. В соответствии с заданием наш класс должен иметь следующие поля: Название, Школа, Количество монахов, Площадь земли.

Название. Тип этого поля необходимо определить как char *, так как это позволит размещать строки различной длины, не обращая внимания на возможность выхода за границы массива.

Школа. Данное поле будет хранить всего лишь один символ, поэтому его тип мы определим как char.

Количество монахов. Для хранения данных данного поля достаточно типа int и так как эти данные не могут принимать отрицательные значения, то для исключения ошибок тип определим как unsigned int.

Площадь земли. Тип данного поля определим как float.

2. Функции-аксессоры

В соответствии с условиями задания наш класс должен иметь три функции-аксессора: set(), get(), show().

Начнем с функции set(). Задача этой функции - считать данные, вводимые пользователем с клавиатуры, и записать их в поля класса. Т.е для работы с функцией необходимо определить ряд переменных (параметров функции), типы которых соответствуют типам полей класса. При присваивании строковых полей необходимо воспользоваться функцией strcpy(), для чего не забыть в список используемых файлов библиотек подключить файл <string.h>.
Далее приступим к функции get(). Она отвечает за считывание значений из полей класса. Работа функции get() полностью аналогична работе функции set() за исключением того, что в роли приемника значений выступают переменные, а в роли передатчика - поля класса.

Необходимо обратить внимание на то, что для корректной работы со строковым полем требуется освободить память, занимаемую переменной, а затем выделить память размером с длину новой строки:

delete[] a; a = new char [strlen(name)+1];
Третья функция-аксессор show() производит вывод на экран значений полей класса и ее реализация не составляет особого труда (используйте потоки ввода-вывода).

 


2.1.

Некоторые виды антилоп
Название Группа Место обитания Численность популяции
Джейран A Азия  
Гну B Африка  
Бейза H Африка  
Групи: А - настоящие антилопы, B - коровьи антилопы, H - лошадиные антилопы

2.2.

Фирмы - производители СУБД
Фирма Количество. продуктов Годовой объем продажи ($) Часть рынка (%)
Oracle     31.1
IBM     29.9
Microsoft     13.1

2.3.

Отдел кадров
Фамилия Инициалы Год рожд Оклад
Иванов И.И.   517.50
Петренко П.П.   219.10
Паниковский М.С.   300.00

2.4.

Ведомость деталей
Наименование Тип Количество Вес 1 детали (г)
Фланец З    
Переходник П    
Станина О    
Примечание: принято такое кодирование типов: О - оригинальная, П - покупная, З - заимствованная

2.5.

Характеристики ПЭВМ
Процессор Частота (Mgz) RAM (Mb) Тип
Pentium-III     C
AMD-К6     C
PowerPC-620     R
Тип: C - CISC-процессор, R - RISC-процессор

2.6.

Каталог библиотеки
Автор книги Название Год выпуска Группа
Сенкевич Потоп   Х
Ландау Механика   У
Дойль Сумчатые   C
Примечание: Х - художественная литература; У - учебная литература; С - справочная литература

2.7.

Ведомость комплектующих
Обозначение Тип Номинал Количество
RT-11-24 R    
RT-11-24 R    
CGU-12K C 17.5  
Примечание: R - резистор; C - конденсатор

2.8.

Проекты поиска внеземных сигналов
Год Научный руководитель Диаметр антенны (м) Рабочая частота (МГц)
  Дрейк    
  Троицкий    
  Хоровиц    

2.9.

Офисные пакеты
Наименование Производитель Количество сост.частей Цена ($)
Office Microsoft    
SmartSute Lotus    
StarOffice Sun    

2.10.

Сельскохозяйственные культуры
Наименование Тип Посевная площадь (га) Урожайность (ц/га)
Соя Б    
Чумиза З    
Рис З    
Примечание: З - зерновые, Б - бобовые

2.11.

Ведомость спортивних состязаний
Фамилия участника Код команды Количество баллов Место в итоге
Баландин С 123.7  
Шишков Ш 79.98  
Кравченко Д 134.8  
Примечание: Д – «Динамо», С – «Спартак», Ш – «Шахтер»

2.12.

Ведомость общественного транспорта
Вид транспорта № маршрута Протяженность маршрута (км) Время в дороге (мин)
Тр   27.55  
Т-с   13.6  
А 12а 57.3  
Примечание: Тр - трамвай, Тс - троллейбус, А - автобус

2.13.

Приблизительное количество звезд разных спектральных классов в Галактике
Спектральный класс Приблизительная масса (отн.Солнца) Часть % Численность
O   0.00002  
F 1.25 2.9  
M 0.2 73.2  

2.14.

Время выполнения некоторых программ, которые применяют параллельные алгоритмы
Название прграммы Количество строк кода Время исп. на SGI Callenge (cек) Время исп. на SGI Indy (cек)
OCEAN   8.70 18.2
DYFESM   6.95  
TRFD   1.05 2.98

2.15.

Конфигурация програмных средств информационных систем
Операционная система СУБД Мин.объем внешней памяти (MB) Мин.объем оперативной памяти (MB Приблизительная цена ($)
OS/2 DB2      
Windows/NT SQLServer      
SCO/Unix Oracle      

2.16.

Сельскохозяйственные предприятия
Название Вид собственности Площадь земли (га) Кол. работников
Заря Д    
Росинка К    
Петренко Ч    
Вид собственности: Д - государственная, Ч - частная, К - кооперативная

2.17.

Прайс-лист
Наименование товара Тип товара Цена за 1 шт (руб) Минимальное количество в партии
Папка К 4.75  
Бумага К 13.90  
Калькулятор О 411.00  
Примечание: К - канцтовары, О - оргтехника

2.18.

Вязкость металлов в жидком состоянии
Вещество Атомный номер Температура (град.С) Вязкость (кг/м*сек)
Алюминий     2.90
Висмут     1.65
Свинец     2.11

2.19.

Коэффициенты теплопроводности материалов
Вещество Тип Влажность (%) Коэффициент
Алюминий М 0-100 209.3
Стекловата Т 0-100 0.035
Глина Д 15-20 0.73
Примечание: М - металлы, Т - термоизоляционные материалы, Д - другие материалы

2.20.

Скорость звука в жидкостях
Вещество Тип Температура (град.С) Скорость (м/сек)
Анилин Ч    
Ртуть Ч    
Кедровое М    
Тип жидкости: Ч - чистое вещество, М - масло

2.21.

Температура перехода веществ в сверхпроводниковое состояние
Вещество Тип Температура
Zn М 0.8-0.8
Pb-Au П 2.0-7.3
NbC С 10.1-10.5
Тип вещества: М - металл, П - сплав, С - соединение

2.22.

Сплавы с высоким сопротивлением
Сплав Сопротивление Темп.коэфф.сопр Макс.температура
Константан 0.44 0.00001  
Никелин 0.39 0.39  
Фехраль 1.1 0.0001  

2.23.

Свойства полупроводников
Вещество Ширина запрещенной зоны Движение электронов Движение дырок
Бор 1.1    
Телур 0.36    
CdTe 1.45    

2.24.

Элементарные частицы
Частица Группа Заряд Масса покоя
Нейтрон Н    
Ка-плюс М +1  
Електрон Л -1 0.511
Группы частиц: Г - гипероны, Н - нуклоны, М - мезоны, Л - лептоны

2.25.

Искуственно полученные элементы
Атомный номер Название Массовое число Период полураспада (лет)
  Нептуний    
  Берклий    
  Калифорний    

2.26.

Японские острова
Остров Площадь (кв.км) Кол. малых островов Протяженность береговой линии (км)
Хонсю      
Хоккайдо      
Сикоку      

2.27.

Прайс-лист
Код товара Категория Цена (руб) Срок поставки (дн)
01-0018 К    
01-0033 С    
02-0170 М    
Примечание: К - компьютеры, С - комплектующие, М - множительная техника

2.28.

Журнал регистрации аварий:
Название предприятия Категория Утраты от аварии (тыс.руб) Срок простоя (дн)
Птицефабрика   12.7  
Теплоцентраль   0.711  
Автосервис   1770.15  
Примечание: указываются только прямые затраты, связанные с ликвидацией последствий аварии

2.29.

Ведомости о присвоении квалификации
Фамилия Год рождения Оценка результатов экзаменов Присвоен уровень квалификации
Шевченко   4.33  
Розанов   5.1  
Панасюк   3.07  
Примечание: показана итоговая оценка по результатам экзаменов по теоретической и практической подготовке

2.30.

Буддийские монастыри Японии периода Нара
Название Школа Количество монахов Площадь земли (га)
Тодайдзи Т   368.8
Якусидзи С   54.7
Дайандзи Д   12.2
Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу

 

Задание 3.

3.1. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл слова из старого файла в алфавитном порядке.

4) Закрыть оба файла.

3.2. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.html

3) Переписать в новый файл содержимое старого, поставив в конце каждой строки символы <br>, а в начале каждого абзаца символы <p> (абзац определяется как новая строка, начинающаяся с одного или более пробелов)

4) Закрыть оба файла.

3.3. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл последовательность нулей и единиц, соответствующую ASCII кодам символов исходного файла в двоичной системе счисления. Между кодами соседних символов пробелы.

4) Закрыть оба файла.

3.4. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Рассматривая исходный файл как последовательность битов записать в новый файл только четные биты (должен получиться файл из нулей и единиц).

4) Закрыть оба файла.

3.5. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл из исходного буквы, ASCII коды которых в двоичной системе счисления содержат четное число единиц.

4) Закрыть оба файла.

3.6. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл символы из исходного, преобразованные следующим образом: берется ASCII код символа в двоичной системе счисления и проводится инверсия, то есть нули заменяются единицами и наоборот, затем по полученному коду определяется соответствующий символ.

4) Закрыть оба файла.

3.7. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл символы исходного файла, проведя перед этим операцию логического побитового сложения с заданным ключом.

4) Закрыть оба файла.

3.8. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл символы исходного файла, проведя перед этим операцию логического побитового умножения с заданным ключом.

4) Закрыть оба файла.

3.9. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл символы исходного файла, проведя перед этим операцию логического побитового исключающего или с заданным ключом.

4) Закрыть оба файла.

3.10. Реализуйте класс, содержащий следующие методы работы с текстовым файлом:

1) Открыть файл с расширением.txt

2) Создать новый файл с тем же именем и расширением.dat

3) Записать в новый файл из исходного буквы, ASCII коды которых в двоичной системе счисления содержат не меньше трех единиц.

4) Закрыть оба файла.

 

Return 0; //ложь

Else

Return 1;//истина

}
и функцию-операцию, являющуюся дружественной функцией:

3. friend Сhurch operator + (Сhurch&, Сhurch&);

Оператор + необходимо перегрузить способом, аналогичным своему традиционному арифметическому использованию. Поэтому важно, чтобы ни один из операндов не менялся. Например, когда вы складываете 10+4, результат равен 14, но ни 10, ни 4 не меняются. Таким образом, внутри функции необходим временный объект для хранения результата.

 

Задание 5.

· Реализовать заданную динамическую структуру данных, с которой можно работать через перегруженные операции.

· Для демонстрации работы программы необходимо реализовать меню, позволяющее вызывать операции реализованной структуры данных. На экране должна отображаться вся последовательность введенных элементов, над которыми производятся действия.

5.1. Создайте класс, реализующий стек. В интерфейс класса должны входить перегруженные операции:

1) положить в стек (<<);

2) взять из стека (>>).

 

5.2. Создайте класс, реализующий стек. В интерфейс класса должны входить перегруженные операции:

1) положить в стек (+);

2) взять из стека (-).

 

5.3. Создайте класс, реализующий однонаправленную очередь. В интерфейс класса должны входить перегруженные операции:

1) добавить элемент в конец очереди (<<);

2) извлечь элемент из начала очереди (>>).

5.4. Создайте класс, реализующий однонаправленную очередь. В интерфейс класса должны входить перегруженные операции:

1) добавить элемент в конец очереди (+);

2) извлечь элемент из начала очереди (-).

5.5. Создайте класс, реализующий двунаправленную очередь. В интерфейс класса должны входить перегруженные операции:

1) добавить элемент в конец очереди (>=);

2) добавить элемент в начало очереди (<=);

3) извлечь элемент из начала очереди (<<);

4) извлечь элемент из конца очереди (>>).

5.6. Создайте класс, реализующий двунаправленную очередь. В интерфейс класса должны входить перегруженные операции:

1) добавить элемент в конец очереди (+);

2) добавить элемент в начало очереди (<<);

3) извлечь элемент из начала очереди (>>);

4) извлечь элемент из конца очереди (-).

 

5.7. Создайте класс, реализующий двунаправленный список. В интерфейс класса должны входить перегруженные операции:

1) переместиться в начало списка (--);

2) переместиться в конец списка (++);

3) передвинуть указатель на один элемент вправо (>);

4) передвинуть указатель на один элемент влево (<);

5) добавить элемент в текущее положение указателя (+);

6) удалить элемент по текущему положению указателя (-).

 

5.8. Создайте класс, реализующий двунаправленный список. В интерфейс класса должны входить перегруженные операции:

1) переместиться в начало списка (++);

2) переместиться в конец списка (--);

3) передвинуть указатель на один элемент вправо (>=);

4) передвинуть указатель на один элемент влево (<=);

5) добавить элемент в текущее положение указателя (<<);

6) удалить элемент по текущему положению указателя (>>).

 

5.9. Создайте класс, реализующий дерево поиска. В интерфейс класса должны входить перегруженные операции:

5) добавить элемент (+);

6) удалить элемент (-).

 

5.10. Создайте класс, реализующий дерево поиска. В интерфейс класса должны входить перегруженные операции:

5) добавить элемент (<<);

6) удалить элемент (>>).

 


Задание 6.

· И базовый, и производный классы должны иметь как минимум конструктор по умолчанию, конструктор копирования, деструктор (если необходимо), перегруженную операцию присваивания.

· Где это возможно, необходим вызов функций (методов, конструкторов) базового класса, а не копирование фрагментов кода.

6.1. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка ежедневник на текущий год с полями «Число», «Месяц», «День недели», «Дела на день». Интерфейс должен позволять читать и редактировать запись «Дела на день» по дате.

 

6.2. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка расписание занятий 1 курса факультета компьютерных наук с полями «День недели», «Номер пары», «Название курса». Интерфейс должен позволять просматривать все расписание на неделю, на отдельный день и редактировать поле «название курса».

 

6.3. Реализуйте абстрактную структуру данных «множество» как класс. Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя множество английских слов с их переводом на русский язык, хранящихся в файле-словаре и механизм наследования, реализуйте на базе множества подстрочный переводчик с английского языка. Словарь английских слов (не меньше 20) сделайте самостоятельно в отдельном файле. Переводчик должен сопоставлять строке английских слов строку русских слов, если в файле-словаре нет соответствующего английского слова, необходимо выводить русское слово без изменений. Переводчик, как минимум, должен справляться с фразой «Мама мыла раму».

 

6.4. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка программу контроля автобусного парка. Программа должна содержать две базы данных с полями «Номер автобуса», «Водитель», «Номер маршрута». Первая база данных контролирует автобусы, находящиеся в данный момент в гараже, вторая – на маршруте. При выезде из гаража вводится номер автобуса, и соответствующая запись переносится в другую базу данных, аналогичная операция производится при возвращении автобуса с маршрута. Список всех имеющихся автобусов хранится в файле, в начале рабочего дня все автобусы находятся в гараже.

 

6.5. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка систему бронирования авиабилетов с полями «Номер рейса», «Дата вылета», «Номер места», «Пассажир». У непроданных билетов поле пассажир пустое. Если билет продан, то в поле «Пассажир» вносится фамилия пассажира, купившего билет. Интерфейс должен позволять бронировать билеты на ближайшие 3 дня, а также отказываться от ранее забронированных билетов. Для впервые запрашиваемого рейса заводится отдельный файл. Для уже запрашивавшихся рейсов загружаются файлы. Файлы уже отправленных рейсов уничтожаются.

 

6.6. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат фамилию и инициалы автора, название, год издания, количество экземпляров в библиотеке. Программа должна обеспечивать:

1) начальное формирование данных обо всех книгах в виде списка;

2) уменьшать количество экземпляров книги при выдаче одного экземпляра на руки читателю, и увеличивать при возврате.

3) осуществлять поиск по маске «фамилия автора».

 

6.7. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка каталог файлов с полями:

1) имя файла;

2) дата создания.

Программа должна обеспечивать:

1) начальное формирование каталога файлов:

2) вывод каталога файлов:

3) удаление файлов, «время жизни» которых больше определенного срока.

 

6.8. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка бюро обмена квартир. Сведения о каждой квартире содержат:

1) количество комнат;

2) этаж;

3) площадь;

4) адрес.

Программа должна обеспечивать:

1) начальное формирование картотеки и её пополнение;

2) поиск в картотеке подходящего варианта по количеству комнат.

3) вывод всего списка.

 

6.9. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка картотеку абонентов междугородней телефонной станции, содержащей сведения о телефонах и их владельцах. Программа должна обеспечивать:

1) начальное формирование картотеки;

2) вывод всей картотеки;

3) ввод номера телефона и времени разговора;

4) вывод извещения об оплате, содержащего фамилию и сумму.

 

6.10. Реализуйте однонаправленный список как класс. Используя механизм наследования, реализуйте на базе списка автоматизированную информационную систему железнодорожного вокзала, содержащую сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:

1) номер поезда;

2) станция назначения;

3) время отправления.

Программа должна обеспечивать:

1) первоначальный ввод данных и формирование списка по времени отправления;

2) вывод всего списка;

3) вывод по номеру поезда всех данных о нем;

4) вывод информации обо всех поездах до данной станции назначения.

 

6.11. Р еализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества ежедневник на текущий год с полями «Число», «Месяц», «День недели», «Дела на день». Интерфейс должен позволять читать и редактировать запись «Дела на день» по дате.

 

6.12. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединения и пересечения множеств. Используя механизм наследования, реализуйте на базе множества расписание занятий 1 курса факультета компьютерных наук с полями «День недели», «Номер пары», «Название курса». Интерфейс должен позволять просматривать все расписание на неделю, на отдельный день и редактировать поле «название курса».

 

6.13. Реализуйте класс, позволяющий работать с абстрактной структурой данных «множество». Должны быть описаны методы проверки принадлежности элемента множеству, объединени


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.