Касса

Автор работы: Пользователь скрыл имя, 18 Февраля 2013 в 15:48, курсовая работа

Описание

Целью данного курсового проекта является написание программы «Касса», в которой требуется реализовать выдачу зарплаты работникам, имея количество купюр каждого достоинства и ведомость выдачи зарплаты.
Для реализации поставленной цели необходимо решить следующие задачи:
Изучить особенности программирования на языке Java;

Содержание

Содержание:
Введение…………………………………………………………................ 3
1. О Java…………………………………………………………...………….. 4
1.1. Типы данных…………………………………………………………...4
1.2. Условные операторы…………………………………………………..5
1.3. Циклы…………………………………………………………………..7
1.4. Принципы объектно-ориентированного программирования……….7
2. Постановка задачи………………………………………………………….9
3. Алгоритм решения………………………………………………………..10
Заключение………………………………………………………………..11
Список литературы……………………………………………………….12
Приложение 1. Текст программы………………………………………..13
Приложение 2. Тестовый пример……………………………………

Работа состоит из  1 файл

курсовой проект Громова.docx

— 56.33 Кб (Скачать документ)

Государственное образовательное  учреждение высшего

Профессионального образования

«Санкт-Петербургский государственный

Политехнический университет»

 

Факультет экономики и  менеджмента

Кафедра «Информационные  системы в экономике и менеджменте»

 

 

 

КУРСОВОЙ ПРОЕКТ

По дисциплине «Программирование»

На тему: «Касса»

 

 

 

Выполнил:    студент гр. 1074/2

Громова М.В.

Принял:     доцент

Чанцев В.П.

 

Дата: 24.12.2012 

Санкт-Петербург

2012

 

Содержание:

Введение…………………………………………………………................ 3

1. О Java…………………………………………………………...………….. 4

          1.1. Типы данных…………………………………………………………...4

          1.2. Условные операторы…………………………………………………..5

          1.3. Циклы…………………………………………………………………..7

          1.4. Принципы объектно-ориентированного программирования……….7

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

3. Алгоритм решения………………………………………………………..10

Заключение………………………………………………………………..11

         Список литературы……………………………………………………….12

          Приложение 1. Текст программы………………………………………..13

          Приложение 2. Тестовый пример………………………………………..19

 

 

 

 

 

 

 

 

Введение

Целью данного курсового  проекта является написание программы  «Касса», в которой требуется реализовать выдачу зарплаты работникам, имея количество купюр каждого достоинства и ведомость выдачи зарплаты.

Для реализации поставленной цели необходимо решить следующие задачи:

  1. Изучить особенности программирования на языке Java;
  2. Обозначить основные принципы объектно-ориентированного программирования;
  3. Написать код программы.

В ходе создания программы  решения необходимо использовать операторы, основные методы и принципы языка  Java. Более того, программа должна быть предельно проста и понятна.

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

  1. Особенности языка Java (типы данных, операторы);
  2. Основные принципы и понятия объектно-ориентированного программирования;
  3. Описание кода программы.

 

 

 

 

 

 

 

 

Глава 1. О Java

1.1. Типы данных.

Все типы данных разделяются  на две группы. Первую составляют 8 простых, или примитивных (от английского  primitive), типов данных. Они подразделяются на три подгруппы:

* целочисленные:

Byte;

Short;

Int;

Long;

Char (также является целочисленным типом);

* дробные:

Float;

Double;

* булево

oolean.

 

Тип

Размер (бит)

По умолчанию

Значения (диапазон или максимум)

boolean

8

false

True/False

byte

8

0

-128127

char

16

‘\u0000’

0..65535

short

16

0

–32768..32767

int

32

0

 

-2147483648..2147483647

long

64

0

922372036854775807L

float

32

0.0

3.40282347E+38

double

64

0.0

От 1.7e-308 до 1.7e+308


 

Вторую группу составляют объектные, или ссылочные (от английского  reference), типы данных. Это все классы, интерфейсы и массивы. В стандартных библиотеках первых версий Java находилось несколько сотен классов и интерфейсов, сейчас их уже тысячи. Кроме стандартных, написаны многие и многие классы и интерфейсы, составляющие любую Java-программу.  

1.2. Условные операторы в Java.

Управляющая конструкция  if-else в зависимости от значения логического выражения позволяет выполнять различные части програмного кода. В общей форме этот оператор записывается следующим образом:

if (логическое_выражение) блок1; [ else блок2; ]

Если условие, задаваемое заключенным в круглые скобки логическим выражением истинно, то будет  выполняться блок1, иначе – блок2. Часть else может и отсутствовать.

Управляющие конструкции  if и if-else могут быть вложенными, и с помощью блока (block) (заключения нескольких операторов в фигурные скобки) позволяют помещать в каждую из двух своих ветвей произвольное число операторов. Это позволяет разделить поток управления программы на произвольное число частей.

Эту же задачу часто удобнее  решать с помощью оператора switch, общий вид которого таков:

      switch (выражение) {

      case значение1:

        блок 1;

        break;

      case значение2:

        блок 2; 

        break;

        … 

      case значениеN:

        блокN; 

        break; 

      default: 

        блок N+1;

   }

Выражение, которое должно иметь целочисленный тип, сравнивается со всеми значениями (тоже целочисленными), указанными после ключевых слов case. Если оно оказывается совпадающим с одним из них, то управление передается соответствующему блоку операторов, а если совпадения не обнаруживается, то управление передается блоку default (если таковой существует, ибо он не является обязательным). После выполнения того блока, на который было передано управление, оператор break вызывает завершение выполнения оператора switch. При отсутствии оператора break управление просто будет передано следующему блоку за только что выполненным.

 

1.3. Циклы.

Для организации циклов существует ряд конструкций. Первая – это  while:

 while (условие) действие;

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

 Аналогичный цикл do … while:

 do действие while (условие);

 Различие в том, что данный цикл сперва выполняет действие, а после этого проверяется условие дальнейшей итерации цикла. Т.е. в не зависимости от условия действие выполняется как минимум один раз.

 Выше речь шла об условных циклах. Для того, что заставить эти циклы выполнять определенное количество итераций необходимо вводить дополнительную переменную-счетчик  Для этих целей как нельзя лучше подходит цикл for:

 for (инициализация_счетчика;условие;действие_над_счетчиком) действие;

1.4.Принципы объектно-ориентированного программирования на Java.

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

  1. Абстракция. Описывая поведение какого-либо объекта, мы строим его модель. Модель, как правило, не может описать объект полностью, реальные объекты слишком сложны. Приходится отбирать только те характеристики объекта, которые важны для решения поставленной перед нами задачи. Мы должны абстрагироваться от некоторых конкретных деталей объекта. Очень важно выбрать правильную степень абстракции. Слишком высокая степень даст только приблизительное описание объекта, не позволит правильно моделировать его поведение. Слишком низкая степень абстракции сделает модель очень сложной, перегруженной деталями, и потому непригодной.
  2. Иерархия означает классификацию объектных типов, рассматривая

объекты как реализацию классов (класс похож на заготовку, а объект — это то, что строится на основе этой заготовки) и связывая различные классы отношениями наподобие «наследует», «расширяет», «является его абстракцией», «определение интерфейса».

  1. Ответственность. Она заключающается в том, что объект берет на себя

ответственность задавать правильные параметры в сообщении другому  объекту или  возлагает на себя ответственность применить какой-либо метод.

  1. Модульность. Этот принцип утверждает — каждый класс должен составлять отдельный модуль. Члены класса, к которым не планируется обращение извне, должны быть инкапсулированы.
  2. Принцип KISS. Самый основной, базовый и самый великий принцип программирования не нуждается в разъяснениии переводе: "Keep It Simple, Stupid!"

 

 

 

 

 

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

Массив K(n) содержит значения (номиналы) денежных знаков (купюр и монет) некоторой валютной системы; массив L(n) – количество знаков каждого достоинства в кассе; массив S(m) – ведомость выдачи зарплаты. Известно, что денег в кассе больше, чем сумма зарплат работников, т.е. что касса платежеспособна. Реализовать выдачу зарплаты, т.е. найти количество знаков каждого достоинства для каждого работника или показать, что без сдачи это сделать нельзя.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава 3. Алгоритм решения

  1. Заполним массивы K(n), L(n) и S(m) необходимыми для решения задачи данными.
  2. Зарплату каждого работника будем делить на достоинства купюр данной валютной системы в порядке убывания, пока остаток от деления не будет равен 0.
  3. Выведем полученные данные на экран.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

В представленном курсовом проекте были рассмотрены основные понятия языка программирования Java, а именно: типы данных, условные операторы, циклы. Так же были представлены основные принципы объектно-ориентированного программирования.

На Java нами была написана программа, которая осуществляет выдачу зарплаты работникам предприятия. Она имеет большое значение, поскольку она может значительно облегчить решение практических задач.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы

  1. Васильев А.Н. Объектно-ориентированное программирование для магистров и бакалавров: базовый курс по объектно-ориентированному программированию. – Санкт-Петербург, Питер, 2011г – 396 с.
  2. Брюс Эккель. Философия Java. - Санкт-Петербург,Питер,2009 г- 640 с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 1. Текст программы.

public class kassa {

    public static void main(String[] args) {

        //Объявляем константы, переменные и массивы

        int MaxN = 20;//Максимальное количество номиналов денежных знаков

        int MaxM = 200;//Максимальное количество работников

        int n; //Количество разных номиналов валюты

        int m; //Количество работников в ведомости

        float K[]; //Значения номиналов денежных знаков

        int L[]; //Количество знаков каждого достоинства в кассе

        float S[];//Ведомость выдачи зарплаты       

        //Создаем объект "in" класса "Scaner"

        Scanner in = new Scanner(System.in);

//Запрос на ввод количества номиналов денежных знаков

// Ограничение на количество номиналов от 1 до 20, верхнее значение можно изменить

// Если количество номиналов денежных знаков выйдет за пределы от 1 до 20, то программа завершится

        System.out.print("\nVvedite kolichestvo nominalov denezhnyh znakov [1,"+MaxN+"]: ");

        n = in.nextInt();

        if ((n < 1)||(n>MaxN)) {

            System.out.print("\nNevernoe kolichestvo nominalov");

            return;

        }

// Создаем пустой массив для номиналов денежных знаков       

        K = new float[n];

// Создаем пустой массив для количества знаков каждого достоинства в кассе       

        L = new int [n];

//Запрос на ввод значения номинала и количества знаков данного достоинства

        System.out.print("Vvedite znachenie nominala v poryadke ubyvaniya i kolichestvo znakov dannogo dostoinstva:\n");

// Запрос и ввод происходит в цикле

        for (int j=0; j<n; j++) {

            System.out.print("Klass nominala: " + (j+1) + '\n');

            System.out.print("Znachenie nominala: ");

            K[j] = in.nextInt();

            System.out.print("Kolichestvo znakov: ");

            L[j] = in.nextInt();

        }

//Выводит таблицу с номиналами денежных единиц и их количеством

Информация о работе Касса