Программа по реализации вывода информации о работниках организации

 

Содержание


. ВВЕДЕНИЕ

.1 Цель курсовой работы

.2 Постановка задачи

. МЕТОДЫ И ПУТИ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ

.1 Общее понятие класса на языке Java

.2 Решение задачи

. ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ

.1 Оценка работы программы

Заключение

Список использованных источников

Приложение



I1 Введение


.1 Цель курсовой работы


Целью курсовой работы является закрепление и углубление знаний, полученных при изучении дисциплины в ходе лекционных и практических занятий, получение практических навыков создания программ с использованием объектно-ориентированной технологии в современных средах проектирования. Выполнение курсовой работы предусматривает: создание классов, полей и методов класса. А так же получение практических навыков программирования алгоритмов обработки данных.


.2 Постановка задачи.


Техническое задание данной курсовой работы состоит в следующем:

Определить класс с именем WORKER, содержащий следующие поля:

фамилия и инициалы работника;

название занимаемой должности;

год поступления на работу.

Определить методы доступа к этим полям для объектов типа WORKER.

Написать программу, выполняющую следующие действия:

Ввод с клавиатуры данных в массив, состоящий из десяти объектов типа WORKER;

Вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;

Если таких работников нет, вывести на дисплей соответствующее сообщение.

Программа, выполняющая вышеуказанные действия, разработана на основании варианта №6 (стр.175), четвертого раздела учебного пособия Павловская Т.А., Щупак Ю.А. П12 C++.Объектно-ориентированное программирование: Практикум.-СПб.: Питер,2006.-265с :ил.



2. МЕТОДЫ И ПУТИ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ


.1 Понятие класса на языке Java


Общая форма класса .При определении класса объявляют его конкретную форму и сущность. Это выполняется путем указания данных, которые он содержит, и кода, воздействующего на эти данные. Хотя очень простые классы могут содержать только код или только данные, большинство классов, применяемых в реальных программах, содержит оба эти компонента.

Как будет показано в дальнейшем, код класса определяет интерфейс к его данным. Для объявления класса служит ключевое слово c1ass.

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



Данные, или переменные, определенные внутри класса, называются переменными экземпляра. Код содержится внутри методов. Определенные внутри класса методы и переменные вместе называют членами класса. В большинстве классов действия с переменными экземпляров и доступ к ним выполняются через методы, определенные в этом классе. Таким образом, в общем случае именно методы определяют способ использования данных класса. Определенные внутри класса переменные называют переменными экземпляра, поскольку каждый экземпляр класса (т.е. каждый объект класса) содержит собственные копии этих переменных. Таким образом, данные одного объекта отделены и отличаются от данных другого объекта. Вскоре мы вернемся к рассмотрению этой концепции, но она слишком важна, чтобы можно было обойтись без хотя бы предварительного ознакомления с нею.

Все методы имеют ту же общую форму, что и метод main ( ) , который мы использовали до сих пор. Однако большинство методов не будут указаны как static или public.

Обратите внимание, что общая форма класса не содержит определения метода main ( ) . Классы java могут и не содержать этот метод. Eгo обязательно указывать только в тех случаях, когда данный класс служит начальной точкой программы.

Простой класс. Изучение классов начнем с простого примера. Ниже приведен код класса Вох (Параллелепипед), который определяет три переменных экземпляра: width (ширина), height (высота) и depth (глубина). В настоящий момент Вох не содержит никаких методов (но вскоре мы добавим в негo метод).



Как уже было сказано, класс определяет новый тип данных. В данном случае новый тип данных назван Вох. Это имя будет использоваться для объявления объектов типа Вох. Важно помнить, что объявление c1ass создает только шаблон, но не действительный объект. Таким образом, приведенный код не приводит к появлению никаких объектов типа Вох.

Чтобы действительно создать объект Вох, нужно использовать оператор, подобный следующему:

Вох mуВох new Вох(); // создание объекта mуВох типа Вох

После выполнения этого оператора mуВох станет экземпляром класса Вох. То есть он обретет "физическое" существование.

Повторим еще раз: при каждом создании экземпляра класса мы создаем объект, который содержит собственную копию каждой переменной экземпляра, определенной классом. Таким образом, каждый объект Вох будет содержать собственные копии переменных экземпляра width, height и depth. Для получения доступа к этим переменным применяется операция точки ( .). Эта операция связывает имя объекта с именем переменной

экземпляра. Например, чтобы присвоить переменной width объекта mybох значение 100, нужно было бы использовать следующий оператор: .width 100;

Этот оператор указывает компилятору, что копии переменной width, хранящейся внутри объекта mybox, нужно присвоить значение, равное 100. В общем случае операцию точки используют для доступа как к переменным экземпляра, так и к методам внутри объекта.

Ниже приведена полная программа, в которой используется класс Вох.



Файлу этой проrpаммы нужно присвоить имя ВохDеmо. java, поскольку метод main () определен в классе, названном ВохDеmо, а не Вох. Выполнив компиляцию этой программы, вы убедитесь в создании двух файлов class: одного для Вох и одного для ВохDеmо.

Компилятор java автоматически помещает каждый класс в отдельный файл с расширением c1ass. В действительности классы Вох и ВохDеmо не обязательно должны быть объявлены в одном и том же исходном файле. Каждый класс можно было бы поместить в отдельный файл, названный соответстыенно Вох. java и ВохDеmо. java.

Чтобы запустить эту проrрамму, нужно выполнить файл ВохDеmо. c1ass. В результате будет получен следующий вывод:

Объем равен 3000.0


.2 Решение задачи


По условию задания на м требуется объявить класс Worker у которого имеется три поля. Это будет выглядеть следующим образом:

Worker{ //ОБЪЯВЛЕНИЕ КЛАССАskan=new Scanner(System.in);

public String Familiya []=new String[3]; //ПОЛЕ ДЛЯ ФАМИЛИЙString Doljnost[]=new String[3]; //ПОЛЕ ДЛЯ ДОЛЖНОСТИint god_postupleniya[]=new int [3]; //ПОЛЕ ДЛЯ ГОДА ОСТУПЛЕНИЯ


Также там говорится о том, что необходимо определить методы доступ к этим полям. Здесь мы создадим метод Vvod_dannih() в классе Worker.

При помощи этого метода мы сможем без труда инициализировать в дальнейшем используемые поля класса.


public void Vvod_dannih(){ //ОБЪЯВЛЯЕМ МЕТОДЫ ДОСТУПА К ПОЛЯМ КЛАССА Worker .out.println("Введите данные о работниках ");

for(int i=0;i<3;i++){.out.println("Введите фамилию "+(i+1)+"-го работника:" );[i]=skan.next();

System.out.println("Введите должность "+(i+1)+"-го работника:" );[i]=skan.next();.out.println("Введите год поступления на работу "+(i+1)+"-го работника:" );

god_postupleniya[i]=skan.nextInt();

}}}


Нам также надо создать метод «vich_staj» который будет вычислять стаж работников и выведет на экран фамилии работников со стажем который мы введем. Для этого :

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

nov[]=new String[3];//этот массив будет использоваться позднее для сохранения //фамилий работников, чей стаж равен либо превышает интересующий нас стаж.out.println("Введите искомый стаж: "); //ЭТУ И СЛЕДУЮЩУЮ СТРОКУ //ИСПОЛЬЗУЕМ ДЛЯ ВВОДА ИНТЕРЕСУЮЩЕГО НАС СТАЖАpoisk=skan.nextInt();


Еще нам надо выяснить какой стаж имеется у каждого работника. Поскольку нам лишь известен год поступления работника на работу, то для выявления стажа работы этого работника в организации мы от нынешнего года отнимем год его поступления. Затем, поскольку у нас работников несколько, запишем стаж работы каждого в массив staj:

staj[]= new int[3]; //ОБЪЯВЛЯЕМ МАССИВ В КОТОРОМ БУДУТ ХРАНИТЬСЯ СТАЖ //РАБОТНИКОВ

for(int i=0; i<Familiya.length; i++){[i]=2013- god_postupleniya[i];


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


//ОПРЕДЕЛИМ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ ВСПОМОГАТЕЛЬНОГО МАССИВА "t"((staj[i])>=poisk){ //ЕСЛИ В ИМЕЮЩЕМСЯ НАБОРЕ СТАЖЕВ СУЩЕСТВУЕТ ТАКОЙ, ЧТО БОЛЬШЕ ИЛИ РАВЕН ТОМУ,КОТОРЫЙ МЫ ИЩЕМ, [i]=true;} //ТО ЗНАЧЕНИЕ СООТВЕТСТВУЮЩЕГО ЕЛЕМЕНТА В СПОМОГАТЕЛЬНОМ МАССИВЕ БУДЕТ ИСТИННЫМ

else t[i]=false; / /ИНАЧЕ ЛОЖНЫМ

}


Теперь дело за малым, то есть нам остается только вывести сообщение либо с именами работников, стаж которых равен или превышает интересующий нас стаж, либо, если таковых нет вывести соответствующее сообщение.

f=false; // ВСПОМОГАТЕЛЬНАЯ ПЕРЕМЕННАЯ КОТОРУЮ БУДЕМ ИСПОЛЬЗОВАТЬ ДЛЯ ВЫВОДА НЕООБХОДИМЫХ СООБЩЕНИЙ.out.println( "В нашей организации более "+poisk+"-ти лет работают : ");

for(int i=0; i<3;i++)(t[i])

{=true;.out.println(nov[i]= Familiya[i] );}

if(!f)System.out.println("Извените, но в нашей организации работников с таким стажем нет !");

}}


На этом тело нашего класса Worker2 завершается.

В теле основного класса мы лишь будем вызывать методы созданного выше класса Worker2, то есть:


public class rabotnik_2 {static void main(String[] args) {skan=new Scanner(System.in);rabotnik=new Worker2(); //ОБЪЯВЛЯЕМ ПЕРЕМЕННУЮ "rabotnik" ТИПА "staj"

rabotnik.Vvod_dannih(); //ВЫЗЫВАЕМ МЕТОД КЛАССА ДЛЯ ЗАПИСИ ДАННЫХ О РАБОТНИКАХ.vich_staj(); //ВЫЗЫВАЕМ МЕТОД КЛАССА ДЛЯ ВЫВОДА ФАМИЛИЙ СООТВЕТСТВУЮЩИХ ИСКОМОМУ СТАЖУ

}}


Вот таким образом завершается код нашей программы.



3. ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ


.1 Оценка работы программы


Для разработки вышеуказанной программы я воспользовалась средой разработки приложений NetBeans IDE 6.9.1. После стандартных действий создания нового проекта и файла в этой среде я ввела программный код, находящийся в разделе Приложение данной курсовой работы.

При запуске созданной программы сначала появится запрос:



,где необходимо ввести данные в поля Фамилия, Должность и Год поступления на работу, причем первые два поля должны быть строкового типа, а третье(год поступления на работу) - целочисленного типа:



Точно так же заполняются данные и остальных работников, (в данном примере всего три работника):


После этого появится запрос о вводе стажа который нас интересует. При вводе, например, числа 3 появились следующие фамилии:



Действительно, стаж работника Nomozova составляет 3 года, а Kudratova - 4.

Если же ввести некое число, превышающее имеющиеся у работников, то есть если работников с таким стажем нет, то выводится соответствующее сообщение:


Заключение


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

Были решены следующие задачи:

. Изучены материалы, касающиеся темы классов на Java.

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

. Осуществлена программная реализация проекта.



Список использованных источников


Использованная литература


Блинов И.Н., Романчик В.С. Java 2. Практическое руководство. - Мн.: Универсалпресс, 2005.

Блинов И.Н., Романчик В.С. Java. Промышленное программирование: практ. пособие. - Мн: УниверсалПресс, 2007.

Павловская Т.А., Щупак Ю.А. C++. Объектно-ориентированное программирование: Практикум. - СПб.: Питер, 2004.

Вязовик Н.А. Программирование на Java <#"justify">ресурсы


<#"justify">Приложение


Программный код реализующий задание курсовой работы:kursovaya;java.util.*; //импортируем класс UTIL для ввода данных

class Worker2{ //объявление классаskan=new Scanner(System.in);String Familiya []=new String[3]; //поле для фамилийString Doljnost[]=new String[3]; //поле для должностейint god_postupleniya[]=new int [3]; //поле для года поступления

boolean t[]=new boolean[3]; //вспомогательный массив который мы используем позжеvoid Vvod_dannih(){ //объявляем методы доступа к полям класса staj.out.println("Введите данные о работниках ");

for(int i=0;i<3;i++){.out.println("Введите фамилию "+(i+1)+"-го работника:" );[i]=skan.next();

System.out.println("Введите должность "+(i+1)+"-го работника:" );[i]=skan.next();.out.println("Введите год поступления на работу "+(i+1)+"-го работника:" );

god_postupleniya[i]=skan.nextInt(); ///////////////////////////////////////////////////////////

} программа массив информация код

}void vich_staj(){ //объявляем метод который будет выводить фамилии //работников с искомым стажемnov[]=new String[3];.out.println("Введите искомый стаж : "); / /эту и следующую строку используем для ввода интересующего нас стажаpoisk=skan.nextInt(); staj[]= new int[3]; //объявляем массив в котором будут храниться данные о //стаже работников

for(int i=0; i<Familiya.length; i++){[i]=2013-god_postupleniya[i]; ///////////

//ОПРЕДЕЛИМ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ ВСПОМОГАТЕЛЬНОГО МАССИВА "t"((staj[i])>=poisk){ // если в имеющемся наборе стажей существует такой, что больше либо равен тому который мы [i]=true;} // то значение соответствующего элемента в вспомогательном //массиве будет истинным

else t[i]=false;//иначе ложным

}f=false;// это вспомогательная переменная которую будем использовать для //ввода необходимых сообщений.out.println( "В нашей организации более "+poisk+"-ти лет работают : ");

for(int i=0; i<3;i++)(t[i])

{=true;.out.println(nov[i]=Familiya[i] );}

if(!f)System.out.println("Извените, но в нашей организации работников с таким стажем нет !");

}

}class rabotnik_2 {static void main(String[] args) {skan=new Scanner(System.in);rabotnik=new Worker2(); //объявляем переменную "rabotnik" типа "staj".Vvod_dannih(); // вызываем метод класса для записи данных о работниках .vich_staj(); //вызываем метод класса для вывода фамилий соответствующих искомому классу

}}



Содержание . ВВЕДЕНИЕ .1 Цель курсовой работы .2 Постановка задачи . МЕТОДЫ И ПУТИ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ .1 Общее понятие класса на язы

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ