Виняткові ситуації

Автор работы: Пользователь скрыл имя, 29 Апреля 2013 в 15:10, лабораторная работа

Краткое описание

Мета: Ознайомитися з темою «Шаблонни», та навчитися створювати шаблонні класи функції та їх використовувати. На основі задач до лабароторної роботи створити свою задачу та написати до неї програму.
Текст завдання. Розробити базу данних , яка має дані о фізичному стані студента , такі як, зріст , вага тощо…. та прізвище, та за допомогою програми можливо зсортирувати дані по третій літері вчащегося.

Прикрепленные файлы: 1 файл

Пример.pdf

— 197.96 Кб (Скачать документ)
Page 1
КІТ-22Б Степанов А.В. 10. 12. 12 __.__.___ ____________ _________
група
ПІБ студента
Дата виконання Дата прийому Результат: бал (з 3)
оцінка
Лабораторна робота № 12
Тема: Виняткові ситуації
Мета: Ознайомитися з темою
«Шаблонни», та навчитися створювати
шаблонні класи функції та їх використовувати. На основі задач до лабароторної
роботи створити свою задачу та написати до неї програму.
Завдання.
Текст завдання.
Розробити базу данних , яка має дані о фізичному стані студента , такі як ,
зріст , вага тощо…. та прізвище, та за допомогою
програми можливо
зсортирувати дані по третій літері вчащегося
Розробка алгоритму.
Створюємо три функціі
іnput (): функція, яка заповнює структуру за допомогою вводу з клавіатуриж
.
output (); Виводить обробленні данні .hell (); сортирує за четвертою літерою
Схема алгоритму показана на Рис.1
shell()dfsf
ss
ss
input()
shell()
Рис 2 Схема алгоритмаблок схемы
функции сортировки
Рис.1 Схема алгоритму блок- схема функці shell()
1
1
1
Перебор
Елемент
ов шагов
Перебор
Строк
структ.
Перебор
Строк
структ.
Запам'ятов
ування
Переміщен
ня
2
3
4
6
5
7
а
а
б
б
в
в
Підготовка
елементів с 1-го
Підготовка
елементів с 0-го
Підготовка для
заміни
Сортирування

Page 2

1
input()
output()
input()
output()
Рис.2. Повна схема алгоритму
Рис 3 Схема алгоритму блок-
Рис 4 Схема алгоритму блок-
програми “Робота з рядками”.
схеми input()
схеми функції output()
Опис схеми алгоритму:
Початок (1). Заповнення структури данними з клавіатури (2).( 3) Сортировка
структури . (4) Виведення оброблених данних на консоль. (4) кінець.
Розробка тексту програми:
Назва програми “Sort_to_family”. Використовуються бібліотеки iostream для
операторів cout, cin, strcpy (); . Використовуються оператори циклу for та while
для перебору елементів масиву структур. Для виводу використовується printf
();В функції sort () використовується метод бульбашковий сортировки.
Використовуються два класи, один предок, другий наслыдник
Повний текст програми показаний на Рис.2.
#include "stdafx.h"
#include <iostream>
//включення бібліотеки вводу
using namespace std;
/* клас наслідник*/
class data
{ float weight;
int growth;
public:
char family [30];
//та закриті для "pervisnuk"
void input(data dt[5]);
//функція ввода
void output(data dt[5]);
//функція виводу
void shell(data dt[5]);
//функція сортирування
Ведення
Сортировка
Виведення
Заповнення
Сорт. данних
Выводит
обработанные
данные
Перебор
Елемент
ов
присвоенн
я
Підгото
вка
Виведення
3
4
2
5
4
3
2
2
3
4
Пребор
елементов
структуры для
записи
Присвоение
строка м
масива
структуры
значения
введенные с
клавиатуры
Пребор
елементов
структуры для
вывода
Виведення
обробленних
данних

Page 3

}mc[5];
// обьявлення масиву об'єктів
/*функція вводу*/
inline void data::input(data dt[5])
//підстоновочна функція
{ for (int i=0; i < 5 ; i++)
{printf ("\n\tWrite the family pupil\n\t\a");
cin>>dt[i].family;
//Введення призвищ
printf ("\a\t");
printf ("Write the growth pupil\n\t");
cin>>dt[i].growth;
// Введення значень росту
printf ("Write the weidth pupil\n\t");
cin>>dt[i].weight;
//Введення значень ваги
}
}
/*функция вывода */
inline void data::output(data dt[5])
//підстоновочна функція
{ for(int i=0; i < 5 ; i++)
{printf ("\n\t Family %s \n ",dt[i].family);
printf ("\t Growth %d \n",dt[i].growth );
printf ("\t Weight %f \n", dt[i].weight);
}
}
/* Функція сортирування */
template< class T> void shell(T iteams, data dt[5])//шаблон функції сортирування
{int gap = 5;
data temp;
for (int k=1; k<iteams; k++)
// підготовка параментов начиная со 2
{for (int i=0; i<iteams-1; i++)
// підготовка параментов начиная со 1
{if (dt[k].family[0]< dt[i].family[0]) // сортируем по третьему символу строки
{temp = dt[i];
dt[i] = dt[k];
//сортировка
dt[k] = temp;
//данных
}
}
}

Page 4

}
int _tmain(int argc, _TCHAR* argv[])
{data *p;
// вказівник на клас
try {p = new data;
// Инициализация выделенной
памяти
//числом
} catch
(bad_alloc xa)
{cout<<"Возникла исключительная ситуация.\n";
return 1;
}
p->input(mc);
// виклик функціі введення
shell(5 ,mc);
// виклик функціі сортирування
p->output(mc);
// виклик функціі виводу
delete p;
// очищення пам'яті
return 0;
}
Рис.2. Повний текст програми

Робота з рядками

.
Налагодження тексту програми: в ході побудови рішення були виявлені
помилки: identifier not found ця помилка була тому що використовувалися
функція cout, а бібліотека iostream не була об’явлена;При виконуванні дії
виведення вмісту файлу була помилка, тому що змінній t не присвоїли значення
0;syntax error

у кінці строки не стояла ; . end of file found before the left brace
'{'

був не закритий цикл while, тобто не стояла }. Усі помилки та
попередження були успішно усунуті.
Результати роботи та їх опис:
При запусці програми з’являється вікно у якому зображено прохання ввести
прізвище це показано на Рис.5 та , супроводжуэться звуковим сігналом
Рис. 5. Введення фамілії .

Page 5

Вводимо данні фамилію , вагу, та рост для кожного вчащегося послыдовно та
бачимо результати у консольному вікні, яке показане на рис 6.
Рис 6. Результати вводу данних
Після оброблення данних, програма виводить обробленні данні на єкран монітору, які бачемо
на Рис 7.
Рис.7. Результати вводу та сортировки.
На малюнку 7 виведенно базу данних за алфавітним порядком(За фамілією
проводилося сортування)
Висновки: У результаті виконання лабораторної роботи я познайомился з
шаблонами , та зрозумів, як їх використовувати. У вирішенні проблеми я
познайомився з багатьма статтями у мережі Інтернет. В мене виникали
проблеми з перетворенням змінних , при передачі даних до шаблону, рішенням
виявилось , що передана змінна повинна бути const

Информация о работе Виняткові ситуації