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

Понятие класса на языке Java. Ввод с клавиатуры данных в массив, состоящий из десяти объектов типа WORKER. Вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры. Оценка работы программы, ее код.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 20.04.2014
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Содержание

1. ВВЕДЕНИЕ

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

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

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

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

2.2 Решение задачи

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

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

Заключение

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

Приложение

I1 Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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, нужно было бы использовать следующий оператор:

mybox.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.2 Решение задачи

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

class Worker{ //ОБЪЯВЛЕНИЕ КЛАССА

Scanner skan=new Scanner(System.in);

public String Familiya []=new String[3]; //ПОЛЕ ДЛЯ ФАМИЛИЙ

public String Doljnost[]=new String[3]; //ПОЛЕ ДЛЯ ДОЛЖНОСТИ

public int god_postupleniya[]=new int [3]; //ПОЛЕ ДЛЯ ГОДА ОСТУПЛЕНИЯ

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

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

public void Vvod_dannih(){ //ОБЪЯВЛЯЕМ МЕТОДЫ ДОСТУПА К ПОЛЯМ КЛАССА Worker

System.out.println("Введите данные о работниках ");

for(int i=0;i<3;i++){

System.out.println("Введите фамилию "+(i+1)+"-го работника:" );

Familiya[i]=skan.next();

System.out.println("Введите должность "+(i+1)+"-го работника:" );

Doljnost[i]=skan.next();

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

god_postupleniya[i]=skan.nextInt();

}}}

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

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

String nov[]=new String[3];//этот массив будет использоваться позднее для сохранения //фамилий работников, чей стаж равен либо превышает интересующий нас стаж

System.out.println("Введите искомый стаж: "); //ЭТУ И СЛЕДУЮЩУЮ СТРОКУ //ИСПОЛЬЗУЕМ ДЛЯ ВВОДА ИНТЕРЕСУЮЩЕГО НАС СТАЖА

int poisk=skan.nextInt();

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

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

for(int i=0; i<Familiya.length; i++){

staj[i]=2013- god_postupleniya[i];

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

//ОПРЕДЕЛИМ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ ВСПОМОГАТЕЛЬНОГО МАССИВА "t"

if((staj[i])>=poisk){ //ЕСЛИ В ИМЕЮЩЕМСЯ НАБОРЕ СТАЖЕВ СУЩЕСТВУЕТ ТАКОЙ, ЧТО БОЛЬШЕ ИЛИ РАВЕН ТОМУ,КОТОРЫЙ МЫ ИЩЕМ,

t[i]=true;} //ТО ЗНАЧЕНИЕ СООТВЕТСТВУЮЩЕГО ЕЛЕМЕНТА В СПОМОГАТЕЛЬНОМ МАССИВЕ БУДЕТ ИСТИННЫМ

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

}

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

boolean f=false; // ВСПОМОГАТЕЛЬНАЯ ПЕРЕМЕННАЯ КОТОРУЮ БУДЕМ ИСПОЛЬЗОВАТЬ ДЛЯ ВЫВОДА НЕООБХОДИМЫХ СООБЩЕНИЙ

System.out.println( "В нашей организации более "+poisk+"-ти лет работают : ");

for(int i=0; i<3;i++)

if(t[i])

{

f=true;

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

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

}}

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

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

public class rabotnik_2 {

public static void main(String[] args) {

Scanner skan=new Scanner(System.in);

Worker2 rabotnik=new Worker2(); //ОБЪЯВЛЯЕМ ПЕРЕМЕННУЮ "rabotnik" ТИПА "staj"

rabotnik.Vvod_dannih(); //ВЫЗЫВАЕМ МЕТОД КЛАССА ДЛЯ ЗАПИСИ ДАННЫХ О РАБОТНИКАХ

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

}}

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

Вязовик Н.А. Программирование на Java http://www.intiut.ru/department/pl/javapl.

Internet-ресурсы

http://onlinelibrary.wiley.com - научные журналы издательства Wiley&Sons

http://www.sciencedirect.com/ - научные журналы издательства Elsevier

www.intuit.ru - национальный открытый университет

el.asu.tusu.ru - электронные курс по дисциплине Основы технологии Java 2.

Приложение

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

package kursovaya;

import java.util.*; //импортируем класс UTIL для ввода данных

class Worker2{ //объявление класса

Scanner skan=new Scanner(System.in);

public String Familiya []=new String[3]; //поле для фамилий

public String Doljnost[]=new String[3]; //поле для должностей

public int god_postupleniya[]=new int [3]; //поле для года поступления

boolean t[]=new boolean[3]; //вспомогательный массив который мы используем позже

public void Vvod_dannih(){ //объявляем методы доступа к полям класса staj

System.out.println("Введите данные о работниках ");

for(int i=0;i<3;i++){

System.out.println("Введите фамилию "+(i+1)+"-го работника:" );

Familiya[i]=skan.next();

System.out.println("Введите должность "+(i+1)+"-го работника:" );

Doljnost[i]=skan.next();

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

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

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

}

public void vich_staj(){ //объявляем метод который будет выводить фамилии //работников с искомым стажем

String nov[]=new String[3];

System.out.println("Введите искомый стаж : "); / /эту и следующую строку используем для ввода интересующего нас стажа

int poisk=skan.nextInt();

int staj[]= new int[3]; //объявляем массив в котором будут храниться данные о //стаже работников

for(int i=0; i<Familiya.length; i++){

staj[i]=2013-god_postupleniya[i]; ///////////

//ОПРЕДЕЛИМ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ ВСПОМОГАТЕЛЬНОГО МАССИВА "t"

if((staj[i])>=poisk){ // если в имеющемся наборе стажей существует такой, что больше либо равен тому который мы

t[i]=true;} // то значение соответствующего элемента в вспомогательном //массиве будет истинным

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

}

boolean f=false;// это вспомогательная переменная которую будем использовать для //ввода необходимых сообщений

System.out.println( "В нашей организации более "+poisk+"-ти лет работают : ");

for(int i=0; i<3;i++)

if(t[i])

{

f=true;

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

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

}

}

public class rabotnik_2 {

public static void main(String[] args) {

Scanner skan=new Scanner(System.in);

Worker2 rabotnik=new Worker2(); //объявляем переменную "rabotnik" типа "staj"

rabotnik.Vvod_dannih(); // вызываем метод класса для записи данных о работниках

rabotnik.vich_staj(); //вызываем метод класса для вывода фамилий соответствующих искомому классу

}}

Размещено на Allbest.ru


Подобные документы

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

    реферат [14,5 K], добавлен 06.12.2011

  • Разработка ввода с клавиатуры и вывода на экран монитора данных с помощью стандартных функций printf и scanf. Ввод количества материальных точек. Работа с линейным списком. Хранение содержимого списка в блоке ячеек памяти с последовательными адресами.

    курсовая работа [176,8 K], добавлен 18.01.2016

  • Функции ввода с клавиатуры и вывода на экран, алгоритм вывода чисел. Генерация звуковых сигналов в ПЭВМ. Принципы работы видеосистемы: адресация и режимы работы адаптера CGA, режим работы дисплея. Таблица векторов прерываний в работе клавиатуры.

    отчет по практике [700,4 K], добавлен 23.11.2010

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

    контрольная работа [710,6 K], добавлен 20.01.2011

  • Анализ операторов ввода и вывода, а также характеристика форматов, используемых в этих операторах. Оформление законченной программы с применением этих операторов. Структура программы. Алфавит языка и типы данных. Ввод и вывод информации. Форматный вывод.

    лабораторная работа [62,0 K], добавлен 15.07.2010

  • Ввод и вывод чисел при помощи подключаемого модуля IO. Особенности работы с одномерными и двухмерными массивами. Тестирование состояние флагов. Рринципы и навыки работы с компилятором и отладчиком. Разработка схемы алгоритма программы на языке ассемблер.

    курсовая работа [1,3 M], добавлен 02.12.2009

  • Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.

    лабораторная работа [40,4 K], добавлен 06.07.2009

  • Описание языка программирования Java: общие характеристики, главные свойства, краткий обзор. Надежность и безопасность, производительность и базовая система программы. Разработка программы поиска по словарю, алгоритм её работы. Общий вид кода программы.

    курсовая работа [20,3 K], добавлен 28.10.2012

  • Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.

    лабораторная работа [946,5 K], добавлен 23.11.2014

  • Эволюция компьютерной клавиатуры: рождение, телетайп, первые клавиатуры, емкостная клавиатура. Виды клавиатур: АТРасширенная, жесткоконтактная, АТХ-клавиатуры, мультимедийные и Win-клавиатуры. Эргономика клавиатур. Защита от пользователя.

    реферат [22,1 K], добавлен 09.11.2007

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.