Разработка программы обработки массивов и работы со строками
Дружественные функции и классы. Организация ввода исходных данных с клавиатуры. Написание программы, которая создает несколько объектов класса, печатает их на экране. Определение класса, который содержит атрибуты, конструктор, деструктор, функцию печати.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 15.11.2012 |
Размер файла | 25,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru/
Задание 1. Дружественные функции и классы
В рассмотренных примерах наследования функция Draw() дочерних классов использует переменные sp_x, sp_y, ep_x, ep_y, width и color базовых классов, которые необходимо было объявлять в разделе protected. Вместе с тем лучшую защиту этих переменных можно обеспечить, объявив их частными (private). Но тогда при наследовании они оказываются недоступными в производных классах, а реализация функции Draw() невозможной. Чтобы разрешить эту проблему, дочерние классы, использующие частные переменные базовых классов, необходимо объявить как дружественные к соответствующим базовым.
Для объявления дружественного класса используется ключевое слово friend, за которым следует имя класса. Следующий пример демонстрирует объявление дружественного класса CLine классам CPos и CProp:
class CLine; //идентификатор класса
class CPos
{
protected:
CPos() {}
CPos(int x1, int y1, int x2, int y2) {SetParam(x1,y1,x2,y2);}
~CPos() {}
public:
friend CLine; //объявление дружественного класса
void SetParam(int x1, int y1, int x2, int y2);
protected:
int sp_x, sp_y;
int ep_x, ep_y;
};
class CProp
{
protected:
CProp() {}
CProp(int wdt, int clr) {SetProperty(wdt,clr);}
~CProp();
public:
friend CLine; //объявление дружественного класса
void SetProperty(int wdt, int clr);
protected:
int width, color;
};
В данном примере класс CLine является производным от классов CPos и CProp, поэтому он объявляется после них. Однако, чтобы сделать класс CLine дружественным базовым классам он должен быть объявлен до них, иначе компилятор С++ выдаст синтаксическую ошибку. Чтобы разрешить эту проблему язык С++ допускает использование идентификатора класса, который говорит компилятору о том, что такой класс есть, но его описание будет дано ниже. Благодаря этому удается организовать перекрестные ссылки между классами, стоящие на разных уровнях иерархии. В результате такой организации частные элементы sp_x, sp_y, ep_x, ep_y, width и color классов CPos и CProp оказываются доступными только одному производному классу CLine и никакому другому, что обеспечивает их лучшую защиту по сравнению с уровнем доступа protected.
Дружественными можно объявлять не только классы, но и отдельные функции классов. Например, для класса CLine важно, чтобы переменные sp_x, sp_y, ep_x, ep_y, width и color были доступны только функции Draw(). Поэтому было бы целесообразно ее и сделать дружественной, а не весь класс целиком. Однако для этого потребовалось бы ее прототип описать до классов CPos и CProp, что сделать в данном случае невозможно, т.к. класс CLine, в котором находится функция Draw(), описан в последнюю очередь. Но, в общем, дружественные функции можно задавать, как показано в следующем фрагменте программы:
class CPos;
class CLine
{
public:
CLine() {}
~CLine() {}
void Draw(CPos* pos);
};
class CPos
{
public:
CPos() {}
~CPos() {}
friend void CLine::Draw(CPos* pos);
private:
int sp_x, sp_y;
int ep_x, ep_y;
};
void CLine::Draw(CPos* pos)
{
MoveTo(pos->sp_x, pos->sp_y);
LineTo(pos->ep_x, pos->ep_y);
}
Особенностью организации классов CLine и CPos является то, что функция Draw() класса CLine использует в качестве аргумента указатель на класс CPos, который объявлен ниже. Поэтому реализации функции Draw() должна быть объявлена после определения класса CPos, иначе компилятор С++ выдаст сообщение об ошибке. Благодаря тому, что функция Draw() является дружественной классу CPos, она может получать доступ к частным элементам этого класса через переданный ей указатель.
В окончательном виде любая программа представляет собой набор инструкций процессора. Все, что написано на любом языке программирования, - более удобная, упрощенная запись этого набора инструкций, облегчающая написание, отладку и последующую модификацию программы. Чем выше уровень языка, тем в более простой форме записываются одни и те же действия. Например, для реализации цикла на языке ассемблера требуется записать последовательность инструкций, позаботившись о размещении переменных в регистрах, а в С или Паскале для этого достаточно одного оператора.
С ростом объема программы становится невозможным удерживать в памяти все детали, и становится необходимым структурировать информацию, выделять главное и отбрасывать несущественное. Этот процесс называется повышением степени абстракции программы.
Первым шагом к повышению абстракции является использование функций, позволяющее после написания и отладки функции отвлечься от деталей ее реализации, поскольку для вызова функции требуется знать только ее интерфейс. Если глобальные переменные не используются, интерфейс полностью определяется заголовком функции.
Следующий шаг - описание собственных типов данных, позволяющих структурировать и группировать информацию, представляя ее в более естественном виде. Например, можно представить с помощью одной структуры все разнородные сведения, относящиеся к одному виду товара на складе.
Для работы с собственными типами данных требуются специальные функции. Естественно сгруппировать их с описанием этих типов данных в одном месте программы, а также по возможности отделить от ее остальных частей. При этом для использования этих типов и функций не требуется полного знания того, как именно они написаны - необходимы только описания интерфейсов. Объединение в модули описаний типов данных и функций, предназначенных для работы с ними, со скрытием от пользователя модуля несущественных деталей, является дальнейшим развитием структуризации программы.
Все три описанных выше метода повышения абстракции преследуют цель упростить структуру программы, то есть представить ее в виде меньшего количества более крупных блоков и минимизировать связи между ними. Это позволяет управлять большим объемом информации и, следовательно, успешно отлаживать более сложные программы.
Введение понятия класса является естественным развитием идей модульности. В классе структуры данных и функции их обработки объединяются. Класс используется только через его интерфейс - детали реализации для пользователя класса несущественны. Идея классов отражает строение объектов реального мира - ведь каждый предмет или процесс обладает набором характеристик или отличительных черт, иными словами, свойствами и поведением. Программы часто предназначены для моделирования предметов, процессов и явлений реального мира, поэтому в языке программирования удобно иметь адекватный инструмент для представления моделей.
Класс является типом данных, определяемым пользователем. В классе задаются свойства и поведение какого-либо предмета или процесса в виде полей данных (аналогично структуре) и функций для работы с ними. Создаваемый тип данных обладает практически теми же свойствами, что и стандартные типы. Напомню, что тип задает внутреннее представление данных в памяти компьютера, множество значений, которое могут принимать величины этого типа, а также операции и функции, применяемые к этим величинам. Все это можно задать и в классе.
Существенным свойством класса является то, что детали его реализации скрыты от пользователей класса за интерфейсом (ведь и в реальном мире можно, например, управлять автомобилем, не имея представления о принципе внутреннего сгорания и устройстве двигателя, а пользоваться телефоном -- не зная, "как идет сигнал, принципов связи и кто клал кабель"). Интерфейсом класса являются заголовки его методов. Таким образом, класс как модель объекта реального мира является черным ящиком, замкнутым по отношению к внешнему миру.
Идея классов является основой объектно-ориентированного программирования (ООП). Основные принципы ООП были разработаны еще в языках Simula-67 и Smalltalk, но в то время не получили широкого применения из-за трудностей освоения и низкой эффективности реализации. В С++ эти концепции реализованы эффективно, красиво и непротиворечиво, что и явилось основой успешного распространения этого языка и внедрения подобных средств в другие языки программирования.
ООП - это не просто набор новых средств, добавленных в язык (на С++ можно успешно писать и без использования ООП, и наоборот, возможно написать объектную по сути программу на языке, не содержащим специальных средств поддержки объектов). ООП часто называют новой парадигмой программирования.
Красивый термин "парадигма" означает набор теорий, стандартов и методов, которые совместно представляют собой способ организации знаний - иными словами, способ видения мира. В программировании этот термин используется для определения модели вычислений, то есть способа структурирования информации, организации вычислений и данных. Объектно-ориентированная программа строится в терминах объектов и их взаимосвязей.
Выбор степени абстракции определяется типом задачи, которую требуется решить. Не имеет смысла использовать сложные технологии для решения простых задач, а попытка "врукопашную" справиться со сложными проблемами обречена на провал. С другой стороны, сложные технологии требуют больших затрат времени на их освоение.
Например, если требуется напечатать письмо, для этой цели подойдет простейший текстовый редактор, имеющий минимум возможностей, которым можно за 10 минут обучить даже собственную бабушку; подготовка статьи с формулами потребует освоения более сложного текстового процессора типа Microsoft Word, а для создания рекламной брошюры с иллюстрациями лучше всего подойдет один из издательских пакетов, для овладения которым потребуется не одна неделя. Так и в программировании: идеи ООП не очень просты для понимания и, в особенности, для практического использования (их неграмотное применение приносит гораздо больше вреда, чем пользы), а освоение существующих стандартных библиотек требует времени и достаточно высокого уровня первоначальной подготовки.
Конкретные величины типа данных "класс" называются экземплярами класса, или объектами. Объекты взаимодействуют между собой, посылая и получая сообщения. Сообщение - это запрос на выполнение действия, содержащий набор необходимых параметров. Механизм сообщений реализуется с помощью вызова соответствующих функций. Таким образом, с помощью ООП легко реализуется так называемая "событийно-управляемая модель", когда данные активны и управляют вызовом того или иного фрагмента программного кода.
Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм. Ниже кратко поясняется их смысл, а полное представление о них можно получить после изучения этой части книги.
Объединение данных с функциями их обработки в сочетании со скрытием ненужной для использования этих данных информации называется инкапсуляцией (encapsulation). Эта идея не нова и применялась в структурном и модульном программировании, а в ООП получила свое логическое завершение. Инкапсуляция повышает степень абстракции программы: данные класса и реализация его функций находятся ниже уровня абстракции, и для написания программы информация о них не требуется. Кроме того, инкапсуляция позволяет изменить реализацию класса без модификации основной части программы, если интерфейс остался прежним (например, при необходимости сменить способ хранения данных с массива на стек). Простота модификации, как уже неоднократно отмечалось, является очень важным критерием качества программы.
Инкапсуляция позволяет использовать класс в другом окружении и быть уверенным, что он не испортит не принадлежащие ему области памяти, а также создавать библиотеки классов для применения во многих программах.
Наследование - это возможность создания иерархии классов, когда потомки наследуют все свойства своих предков, могут их изменять и добавлять новые. Свойства при наследовании повторно не описываются, что сокращает объем программы. Выделение общих черт различных классов в один класс-предок является мощным механизмом абстракции -- ведь и любая наука начинается с абстрагирования и классификации, которые помогают справиться со сложностью рассматриваемой предметной области.
Иерархия классов представляется в виде древовидной структуры, в которой более общие классы располагаются ближе к корню, а более специализированные - на ветвях и листьях. В С++ каждый класс может иметь сколько угодно потомков и предков. Иногда предки называются надклассами или суперклассами, а потомки - подклассами или субклассами.
Третьим китом, на котором стоит ООП, является полиморфизм - возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы.
Понятие полиморфизма используется в С++ весьма широко. Простым примером полиморфизма может служить рассмотренная в первой части книги перегрузка функций, когда из нескольких вариантов выбирается наиболее подходящая функция по соответствию ее прототипа передаваемым параметрам. Другой пример - использование шаблонов функций (в дальнейшем мы рассмотрим и шаблоны классов), когда один и тот же код видоизменяется в соответствии с типом, переданным в качестве параметра. Чаще всего понятие полиморфизма связывают с механизмом виртуальных методов (он будет рассмотрен).
Благодаря тому, что программа представляется в терминах поведения объектов, при программировании используются понятия, более близкие к предметной области, следовательно, программа легче читается и понимается. Это является большим преимуществом ООП. Однако проектирование объектно-ориентированной программы представляет собой весьма сложную задачу, поскольку в процесс добавляется еще один важный этап - разработка иерархии классов.
Плохо спроектированная иерархия приводит к созданию сложных и запутанных программ. Другим препятствием к применению ООП является большой объем информации, которую требуется освоить, и ее значительная сложность.
Важно до начала проектирования правильно определить, требуется ли вообще применять объектно-ориентированный подход. Если в иерархии классов нет необходимости, то, как правило, достаточно ограничиться модульной технологией, при этом можно успешно использовать классы как стандартной библиотеки, так и собственной разработки. Естественно, для применения стандартных классов требуется сначала изучить необходимый синтаксис и механизмы, а затем - конкретные свойства этих классов.
клавиатура печать класс деструктор
Задание 2. Значение аргумента х изменяется от а до b с шагом h. Для каждого х найдите значение функции Y(x), суммы S(x) и |Y(x) - S(x) | и выведите в виде таблицы. Значения а, b, h введите с клавиатуры произвольно. Вычисление Y(x) и S(x) реализуйте в виде функций. В основной программе организуйте ввод исходных данных, обращение к функциям и вывод результатов
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "iostream"
#include "math.h"
double pi = 3.14;
float y_x(float x);
float s_x(float x, int k);
void column_of_table(void);
int _tmain(int argc, _TCHAR* argv[])
{
float a = 0, b = 0, h = 0, sub = 0 , y = 0, s = 0; //объявление переменных
int n = 0, k = 0;
printf(" enter data ");
printf(" enter left border - a: ");
scanf("%f",&a);
printf(" enter right border - b: ");
scanf("%f",& b);
if (a> b)
{
printf(" incorrect data");
getch();
return 0;
}
printf(" enter H (step) ");
scanf("%f", &h);
if (h> b-a)
{
printf(" incorrect data ");
getch();
return 0;
}
column_of_table();
n=abs((b-a)/h);
// главный цикл
for (int i = 1; i <= n; i++)
{
y = y_x(a);
float s = 0;
for (int k = 1; k <= n; k++)
{
s = s + (s_x(a, k));
}
sub = abs(y-s);
printf(" ");
printf("%d", i);
printf(" ");
printf("%4.2f", a);
printf(" ");
printf("%f",y);
printf(" ");
printf("%f",s);
printf(" ");
printf("%f",sub);
printf(" \n");
a = a + h;
getch();
}
return 0;
}
float y_x(float x)
{
float y = 0;
y = 0.5 - (pi/4) * abs(sin(x)) ;
return y;
}
float s_x(float x, int k)
{
float s = 0;
s = (cos(2*k*x))/(4*k*k - 1);
return s;
}
void column_of_table(void)
{
printf("------------------------------------------------------\n");
printf("| N | x | y(x) | s(x) || y(x)-s(x)||\n");
printf("|---|-------|-----------|-----------|--------------|\n");
Задание 3. Разработайте программу обработки массивов. Входные данные введите с клавиатуры. Результаты работы программы отобразите на экране. Определите, является ли заданная матрица N-го порядка магическим квадратом, т. е. такой, в которой сумма элементов во всех строках и столбцах одинакова
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
const int N = 3;
int _tmain(int argc, _TCHAR* argv[])
{
int a[N][N];
int sums[5];
// Ввод массива
printf( "Please, enter elements: \n ");
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
scanf("%d", &a[i][j]);
}
printf("\n");
}
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
printf("%d",a[i][j]);
printf(" ");
}
printf("\n");
}
int index = 0;
int sum = 0;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
sum = sum + a[i][j];
}
sums[index] = sum;
index++;
sum = 0;
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
sum = sum + a[j][i];
}
sums[index] = sum;
index++;
sum = 0;
}
int test = sums[0];
for (int i = 1; i < 5; i++)
{
if (test != sums[i])
{
printf("this is not Magic square");
getch();
return 0;
}
else
{
printf("this is Magic square!!!");
printf("sum = ");
printf("%d",sums[0]);
getch();
return 0;
}
}
return 0;
}
Задание 4. Разработайте программу работы со строками. Организуйте ввод исходных данных с клавиатуры. Используйте функции из библиотеки обработки строк string.h. Результаты работы программы отобразите на экране. Дана строка произвольной длины. Группы символов, разделенные пробелами (одним или несколькими), будем называть словами. Определите в соответствии с вариантом
Длину введенной строки L, и если длина L больше 6, то выделите подстроку в {} скобках.
#include "stdafx.h"
#include "string.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
int _tmain(int argc, _TCHAR* argv[])
{ const int maxL = 5; //максимальная длина по условию - после нее выделяем в {}
int strLength = 0, j = 0;
char string[100] = "";
char string2[100] = "";
printf("Please, enter string:");
gets(string);// вводим строку
strLength = strlen(string); // получаем ее длинну
printf("Length of the string = ");
printf("%d",strLength); // выводим на экран
printf("\n");
for (int i = maxL; i < strLength; i++) // цикл в котором сохраняем в другую строку остаток
{
string2[j] = string[i];
j++;
}
// добавляем разделители
string2[j] = '}';
string[maxL+1] = '{';
strcat(string,string2); // склеиваем две строки
puts(string); // выводим результат
getch();
return 0;
}
Задание 5. Разработайте программу обработки структур
В программе используйте структуру, содержащую поля с информацией об учащихся:
- фамилия и инициалы;
- дата рождения;
- номер группы;
- оценки за семестр по предметам: физика, математика, информатика, этика, психология.
Организуйте ввод исходных данных, средний балл каждого учащегося рассчитайте по введенным оценкам.
На экране отобразите всю введенную информацию и осуществите поиск данных в соответствии с вариантом.
Выведите анкетные данные учащихся интересующей вас группы (вводится с клавиатуры), имеющих средний балл выше указанного (вводится с клавиатуры).
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "stdlib.h"
struct List // структура с анкетными данными
{
char name[20];
char date[8];
int groupNumber;
int mark[5];
} list[30];
int medMark[30];
int answer = 0;
int grouppNumber = 0;
int mark = 0;
char* nameOfSubjects[] = {"Physic-", "Math-", "Informatic-", "Etic-", "Psyhology-"};
int _tmain(int argc, _TCHAR* argv[])
{
// блок ввода данных
int n = 0;
while (answer != 1) // будем выполнять пока пользователь в конце опроса не введет единицу
{
printf("Please, enter name ");
gets(list[n].name);
printf("Please, enter date ");
gets(list[n].date);
printf("Please, enter group Number ");
scanf("%d", &list[n].groupNumber);
for (int i = 0; i < 5; i++) // выводим имена предметов и спрашиваем по ним оценки
{
printf("Please, enter mark for ");
printf("%s", nameOfSubjects[i]);
scanf("%d", &list[n].mark[i]);
}
n++; //нарашиваем кол - во введенных анкет студентов
printf("Would you like to continue? if no enter - 1\n");
scanf("%d",&answer);
}
// блок вывода информации
for ( int i = 0; i < n; i++)
{
puts(list[i].name);
puts(list[i].date);
printf("%d", list[i].groupNumber);
printf("Marks:\n");
for (int j = 0; j < 5; j++) // выводим оценки по предметам
{
puts(nameOfSubjects[j]);
printf("%d", list[i].mark[j]);
}
}
printf("Please, enter group number");
scanf( "%d", &grouppNumber);
printf("Please, enter Mark");
scanf("%d", &mark);
// считаем средний балл
int cur = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 5; j++)
{
cur = cur + list[i].mark[j];
}
medMark[i] = cur / 5;
}
for( int i = 0; i < n; i++)
{
//проверяем условие поиска
if (list[i].groupNumber == grouppNumber && mark < medMark[i])
{
puts(list[i].name);
puts(list[i].date);
printf("%d\n", list[i].groupNumber);
printf("Marks:\n");
for (int j = 0; j < 5; j++)
{
puts(nameOfSubjects[j]);
printf("%d\n", list[i].mark[j]);
}
}
getch();
}
return 0;
}
Задание 6. Определите класс, который должен содержать атрибуты, конструктор, деструктор и функцию печати объектов на экране. Напишите программу, которая создает несколько объектов класса и печатает их на экране
Имя класса и его атрибуты выберите в соответствии с вариантом.
Класс Работник с атрибутами Фамилия и инициалы,
Должность, Стаж.
#include "stdafx.h"
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
class Worker
{
private:
char* lastNameAndName; // фамилия и инициалы
char* position; // должность
int experience; // стаж
public:
Worker(char* Name, char* Position, int Expierence) // Конструктор
{
lastNameAndName = Name;
position = Position;
experience = Expierence;
}
~Worker() // Деструктор
{
delete lastNameAndName;
delete position;
}
void print() // метод вывода на экран
{
puts(lastNameAndName);
puts(position);
printf("%d", experience);
getch();
}
};
void main(int argc, _TCHAR* argv[])
{
Worker worker("Ivanov", "driver" , 4);
Worker worker2("Petrov", "helper" , 6);
worker.print();
printf("\n");
worker2.print();
getch();
}
Список используемой литературы
1. Прата, С. Язык программирования С++ : лекции и упражнения : пер. с англ. / С. Прата. - М. : Диасофт, 2005.
2. Юров, В. И. ASSEMBLER / В. И. Юров. - СПб. : Питер, 2002.
3. Шилдт, Г. Самоучитель С++ : пер. с англ. / Г. Шилдт. - 3-е изд. - СПб. : BHV-Санкт-Петербург, 2007.
4. Голубь, Н. Г. Искусство программирования на Ассемблере / Н. Г. Голубь. - М. ; СПб. ; Киев : DiaSoft, 2002.
Размещено на Allbest.ru
Подобные документы
Разработка модуля для вычисления значения функции, который впоследствии подключается к программе ввода исходных данных с контролем допусимого значения в таблицу. Проектирование модуля для работы со строками и для обработки массивов текстовой информации.
курсовая работа [17,8 K], добавлен 24.09.2010Виртуальная функция как метод класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Порядок разработки программы обработки массивов, работы со строками.
контрольная работа [847,3 K], добавлен 19.03.2012Написание модуля на языке Ассемблер для вычисления значения выражения. Составление программы корректного ввода исходных данных в таблицу и вывода результата в виде таблицы. Создание модуля для обработки строк и программы корректного ввода исходных данных.
курсовая работа [36,8 K], добавлен 18.09.2010Классы, объекты и объектные ссылки. Особенности статических методов. Конструкторы, специальные переменные, наследование. Создание объектов внутренних классов. Соглашения об именовании. Некоторые методы класса Object. Абстрактные классы и атрибуты.
лекция [130,6 K], добавлен 21.06.2014Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.
лабораторная работа [43,1 K], добавлен 21.07.2012Класс как специальная структура для хранения разнотипной информации о физическом объекте. Порядок объявления класса, его специальные элементы-функции. Создание указателя на объект. Особенности конструкторов и деструкторов. Собственные операции класса.
курсовая работа [483,1 K], добавлен 07.04.2014Изучение методов и этапов создания класса Complex, позволяющего работать с комплексными числами и производить с ними следующие операции: сложение, вычитание, умножение, деление двух комплексных чисел. Написание кода для ввода и вывода исходных данных.
курсовая работа [628,4 K], добавлен 11.09.2010Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
контрольная работа [52,9 K], добавлен 03.10.2010Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Понятие класса на языке Java. Ввод с клавиатуры данных в массив, состоящий из десяти объектов типа WORKER. Вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры. Оценка работы программы, ее код.
курсовая работа [1,2 M], добавлен 20.04.2014