bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [236]
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ИТиУвТС » Другое

Контрольная ТРПОСУ 5 семестр 6 вариант
Подробности о скачивании 09.09.2011, 16:20
Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет информатики
и радиоэлектроники»

Кафедра систем управления

Лабораторные работы по предмету
«ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМ УПРАВЛЕНИЯ»
ВАРИАНТ 6

ВЫПОЛНИЛА:СТУДЕНТКА ГР.802402 БОЙКО Е.Н.

БГУИР 2010
Лабораторная работа № 1 Программирование алгоритмов с использованием
динамических массивов
Задание к лабораторной работе
Общая постановка. Составить программы – одномерные массивы : задания 1 – 25, двухмерные массивы: задания 26 – 50. Массивы создаются в динамической области памяти с использованием операций NEW и DELETE. Ввод исходных данных: реальный размер массивов и их значения. Обращение к элементам массива – через косвенную адресацию.
Заданы два массива – А(5) и В(4). Первым на печать вывести массив, содержащий наибольшее значение. Напечатать также это значение и его порядковый номер.

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int maxV(0),
maxP(0),
*A(NULL),
*B(NULL),
c;
char maxA(0); // 'A' - в массиве А, 'B' - в массиве B
A = new int[5];
B = new int[4];
for (c = 0; c < 5; c++)
A[c] = StrToInt(StringGrid1->Cells[c][1]);
for (c = 0; c < 4; c++)
B[c] = StrToInt(StringGrid2->Cells[c][1]);
maxV = A[0];
for (c = 0; c < 5; c++)
if (A[c] > maxV) {
maxV = A[c];
maxP = c;
maxA = 'A';
}
for (c = 0; c < 4; c++)
if (B[c] > maxV) {
maxV = B[c];
maxP = c;
maxA = 'B';
}
Memo1->Lines->Add("Наибольшее значение: " + IntToStr(maxV) + " в таблице " + maxA + " индекс " + IntToStr(maxP));
int top, *arr;
if (maxA=='A') {
top = 5;
arr = A;
} else {
top = 4;
arr = B;
}
for (c = 0; c < top; c++)
{
Memo1->Lines->Add( IntToStr(arr[c]) + " ");
}
delete[] A;
delete[] B;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Clear();
StringGrid1->Cells[0][0] = "i=0";
StringGrid1->Cells[1][0] = "i=1";
StringGrid1->Cells[2][0] = "i=2";
StringGrid1->Cells[3][0] = "i=3";
StringGrid1->Cells[4][0] = "i=4";
StringGrid1->Cells[0][1] = "0";
StringGrid1->Cells[1][1] = "1";
StringGrid1->Cells[2][1] = "2";
StringGrid1->Cells[3][1] = "3";
StringGrid1->Cells[4][1] = "4";
StringGrid2->Cells[0][0] = "j=0";
StringGrid2->Cells[1][0] = "j=1";
StringGrid2->Cells[2][0] = "j=2";
StringGrid2->Cells[3][0] = "j=3";
StringGrid2->Cells[0][1] = '0';
StringGrid2->Cells[1][1] = '1';
StringGrid2->Cells[2][1] = '2';
StringGrid2->Cells[3][1] = '3';
}
//---------------------------------------------------------------------------

Лабораторная работа № 3
Классы. Программирование линейных алгоритмов
с использованием конструктора, деструктора,
friend – функции инициализации set() и функции вывода результатов print()

Задание к лабораторной работе
Пользовательский класс Х должен содержать необходимые элементы - данные, которые создаются в динамической области памяти, конструктор для их создания (операция new) и установки их начальных значений: Х(), деструктор: ~ Х (), friend – функция печати: friend void print(), функция, решающая поставленную задачу: friend Void Run().
Код методов и функций – вне пространства определения класса.

При x=16,55 , y= –2,75, z=0,15, = – 40,630.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "Class1.h"
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
userclassX *uc(NULL);
uc = new userclassX();
Run(uc);
print(uc);
return 0;
}
//---------------------------------------------------------------------------

Лабораторная работа № 4
Класс «Динамическая строка» и перегрузка операций
Задание к лабораторной работе
Общая постановка. Пользовательский класс String должен содержать необходимые элементы-данные, которые создаются в динамической области памяти.
Конструктор для создания строк: String (…);
Деструктор: ~String();
Метод ввода исходной строки: Set();
Метод печати: void print(…);
Код методов – вне пространства определения класса. Программа иллюстрирует прямой и косвенный способы обращения к методам.
Ввести с клавиатуры строку символов S1. Признак окончания ввода строки – нажатие клавиши «Ввод». Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2 .
Исходную и преобразованную строки вывести в файл.

Если длина L >15, то удаляются все a..z.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "Class1.h"
//---------------------------------------------------------------------------

#pragma argsused

void main(void) {
char s[265];

cout << "Type anything and press \"Enter\":" << endl;
cin.getline(s, 256); //считываем полностью всю строку
X str(s); //доступ к методам класса непосредственно через переменную,
//начальное значение устанавливаем через конструктор
cout << "You have type:" << endl;
print(str);
cout << "Output string:" << endl;
cout << Run(str) << endl;
cout << "Type anything and press \"Enter\":" << endl;
cin.getline(s, 256);
X *pstr; //доступ к методам класса через указатель
pstr = new X();
pstr->Set(s);
cout << "You have type:" << endl;
print(*pstr);
cout << "Output string:" << endl;
cout << Run(*pstr) << endl;
delete pstr;
};

//---------------------------------------------------------------------------

Лабораторная работа № 5
Наследование классов, механизм виртуальных функций
Задание к лабораторной работе

Общая постановка. Программа должна содержать:
- базовый класс Х, включающий два элемента х1, х2 типа int,
- конструктор с параметрами для создания объектов в динамической области памяти,
деструктор,
- виртуальные методы просмотра текущего состояния и переустановки объектов базового класса в новое состояние.
- производный класс У, включающий один элемент у типа int ,
- конструктор с параметрами и списком инициализаторов, передающий данные конструктору базового класса,
- переопределенные методы просмотра текущего состояния объектов и их переустановки в новое состояние.
Создать в производном классе метод Run, определяющий:
Значение (х1+х2)*у.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "Class.h"
#include <iostream.h>
#include <conio.h>
//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[]) {
Y y(5, 10, 15);
X* p(NULL);
p = &y;
cout << " x1= " << p->X1 << endl;
cout << " x2= " << p->X2 << endl;
cout << " y= " << ((Y*)p)->Y << endl;

cout << " expression= " << ((Y*)p)->Run() << endl;

p->SetX1(5);
p->SetX2(10);
((Y*)p)->SetY(15);
cout << " x1= " << p->X1 << endl;
cout << " x2= " << p->X2 << endl;
cout << " y= " << ((Y*)p)->Y << endl;

cout << " expression= " << ((Y*)p)->Run() << endl;
getch();

return 0;
}
//---------------------------------------------------------------------------

Лабораторная работа № 6
Программирование шаблона классов
• Задание к лабораторной работе
Общая постановка. Даны: число N и последовательность a1, a2, … aN. Создать шаблон класса, порождающий динамические одномерные массивы с элементами различных типов (вещественные, целочисленные, символьные). Тип данных и результат являются параметрами по отношению к классу, программа должна иметь методы инициализации, конструктор, деструктор, метод просмотра значений созданного массива согласно заданному алгоритму.
(a1+1), (a2+2) , (a3+3), …, (aN+N);
Категория: Другое | Добавил: kat
Просмотров: 2378 | Загрузок: 66
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]