Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Визначення щорічного прибутку при заданих початкових вкладах




Опис створення програмного продукту

ПРОЕКТНА ЧАСТИНИНА

Приклад використання об’єктів

Перехід на літній час з використанням класу Сalendar. Якщо поточна дата знаходиться між 2:00 останньої неділі березня і 3:00 останньої неділі жовтня, то час літній. Відзначу, що в перших реалізаціях Java для роботи з датами використовувався безпосередньо клас java.util.Date. Але вже давно більшість його методів позначені як deprecated, тобто їх використання потрібно по максимуму уникати і задіяти набагато більш гнучкий Calendar.

import java.util.Calendar;

import java.util.Date;

...

private static Calendar cldr;

private static boolean summerTime;

static{

cldr = Calendar.getInstance();

cldr.setTimeZone(TimeZone.getTimeZone("Europe/Moscow"));

Calendar c = (Calendar)cldr.clone();

c.set(c.MONTH, c.MARCH);

c.set(c.HOUR_OF_DAY, 2);

for(int i = 31; i > 0; i--){

c.set(c.DAY_OF_MONTH, i);

if(c.get(c.DAY_OF_WEEK) == c.SUNDAY) break;

}

Date inMarch = c.getTime();

c.set(c.MONTH, c.OCTOBER);

c.set(c.HOUR_OF_DAY, 3);

for(int i = 31; i > 0; i--){

c.set(c.DAY_OF_MONTH, i);

if(c.get(c.DAY_OF_WEEK) == c.SUNDAY) break;

}

Date inOctober = c.getTime();

Date now = new Date();

summerTime = now.after(inMarch) && now.before(inOctober);

}

public static boolean isSummerTime(){

return summerTime;

}

Наступна програма демонструє GetClass () (успадкований від Object) і etSuperclass () (з класу):

class X {
int a;
float b;
}

class Y extends X {
double c;
}

class RTTI {
public static void main(String args[]) {
X x = new X();
Y y = new Y();
Class clObj;
clObj = x.getClass(); // Отримати посилання на Class
System.out.println("x – об’єкт типу: " +
clObj.getName());
clObj = y.getClass(); // Отримати посилання на Class
System.out.println("у – об’єкт типу: " +
clObj.getName());
clObj = clObj.getSuperclass();
System.out.println("Суперклас у " +
clObj.getName());
}
}

Виведення цієї програми показано тут:

x – об’єкт типу: X
y – об’єкт типу: Y
Суперклас у: X

Отже, даний приклад використовується, щоб ​​визначати діє літній час чи ні.


 

З допомогою фінансового калькулятора можна визначити максимальний щорічний прибуток (при регулярному вилученню грошей), який можна отримати при заданому початковому вкладі капіталу через вказаний проміжок часу. Наприклад, якщо ви маєте 500 тисяч доларів на банківському рахунку, то яку суму можна отримувати кожен місяць протягом 20 років припускаючи, що норма прибутку складає 6%. Формула для підрахунку цього значення буде така:

Maximum Withdrawal = principal* (((rateOfRet/wdPerYear)/(-1+((rateOfRet/wdPerYear)+1))+ (rateOfRet/wdPerYear))

де змінна rateOfRet визначає норму прибутку, змінна principal містить початкове значення суми інвестицій, змінна wdPerYear задає кількість виплат за рік і змінна numYears визначає строк виплат.

Аплет MaxWD, лістинг якого наведений нижче, підраховує максимальне значення регулярних виплат, які можуть бути отримані виходячи із строку виплат при передбачуваній нормі прибутку.

Для створення даної програми необхідно вибрати середовище розробки програм на платформі Java, для цього краще обрати NetBeans IDE.

Порядок виконання роботи:

Для початку даної роботи потрібно запустити NetВеаns IDE 6.9.1 (рис 1.1), у вікні, що відкрилось вибрати Файл\Создать проект. Відкриється вікно створення нового проекту. В ньому виберіть категорію проекту Java, а у вікні Проекти\Приложение Java та натисніть клавішу Далее. Далі необхідно задати ім'я Java-проекту та вибрати папку для його збереження. В полі Имя проекта задайте назву Applet.

В полі Расположение проекта виберіть диск, на якому розміщена Ваша робоча директорія (для цього скористайтесь клавішею Обзор...). Для збереження введених змін натисніть на клавішу Завершить. Далі потрібно створити в Вашому проекті аплет з назвою MyMaxWD. Для цього необхідно натиснути правою клавішею миші (ПКМ) на назві проекту Applet та в меню, що відкрилось виберіть: Создать\Аплет (рис. 3.1).

 
 


Рисунок 3.1 – Створення аплета

В вікні створення аплету, що відкриється введіть ім’я класу (до якого ми пізніше будемо звертатись для виклику аплета), та для остаточного примінення змін натисніть клавішу Завершить, перед Вами з’явиться вікно редагування файлу MyMaxWD.java, де і потрібно прописувати код програми (рис. 3.2).

Рисунок 3.2 – Редагування файлу MyMaxWD.java

Для працездатності програми підключіть всі бібліотеки класів, що використовуються, а також пропишіть клас MyMaxWD (рис 3.3).

 

Рисунок 3.3 – Підключення бібліотек

Наступним кроком є написання самого коду програми, лістинг якого наведений нижче.

public class MaxWD extends Applet

implements ActionListener {

TextField maxWDText, orgPText, periodText,

rateText, numWDText;

Button doIt;

double principal; // initial principal

double rateOfRet; // annual rate of return

double numYears; // length of time in years

int numPerYear; // number of withdrawals per year

NumberFormat nf;

public void init() {

// Use a grid bag layout.

GridBagLayout gbag = new GridBagLayout();

GridBagConstraints gbc = new GridBagConstraints();

setLayout(gbag);

Label heading = new

Label("Maximum Regular Withdrawals");

Label orgPLab = new Label("Original Principal");

Label periodLab = new Label("Years");

Label rateLab = new Label("Rate of Return");

Label numWDLab =

new Label("Number of Withdrawals per Year");

Label maxWDLab = new Label("Maximum Withdrawal");

maxWDText = new TextField(16);

periodText = new TextField(16);

orgPText = new TextField(16);

rateText = new TextField(16);

numWDText = new TextField(16);

// Max withdrawal field for display only.

maxWDText.setEditable(false);

doIt = new Button("Compute");

// Define the grid bag.

gbc.weighty = 1.0; // use a row weight of 1

 

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbc.anchor = GridBagConstraints.NORTH;

gbag.setConstraints(heading, gbc);

// Anchor most components to the right.

gbc.anchor = GridBagConstraints.EAST;

gbc.gridwidth = GridBagConstraints.RELATIVE;

gbag.setConstraints(orgPLab, gbc);

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbag.setConstraints(orgPText, gbc);

gbc.gridwidth = GridBagConstraints.RELATIVE;

gbag.setConstraints(periodLab, gbc);

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbag.setConstraints(periodText, gbc);

gbc.gridwidth = GridBagConstraints.RELATIVE;

gbag.setConstraints(rateLab, gbc);

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbag.setConstraints(rateText, gbc);

gbc.gridwidth = GridBagConstraints.RELATIVE;

gbag.setConstraints(numWDLab, gbc);

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbag.setConstraints(numWDText, gbc);

 

gbc.gridwidth = GridBagConstraints.RELATIVE;

gbag.setConstraints(maxWDLab, gbc);

gbc.gridwidth = GridBagConstraints.REMAINDER;

gbag.setConstraints(maxWDText, gbc);

gbc.anchor = GridBagConstraints.CENTER;

gbag.setConstraints(doIt, gbc);

// Add all the components.

add(heading);

add(orgPLab);

add(orgPText);

add(periodLab);

add(periodText);

add(rateLab);

add(rateText);

add(numWDLab);

add(numWDText);

add(maxWDLab);

add(maxWDText);

add(doIt);

// Register to receive action events.

orgPText.addActionListener(this);

periodText.addActionListener(this);

rateText.addActionListener(this);

numWDText.addActionListener(this);

doIt.addActionListener(this);

nf = NumberFormat.getInstance();

nf.setMinimumFractionDigits(2);

nf.setMaximumFractionDigits(2);

}

/* User pressed Enter on a text field or

pressed Compute. */

public void actionPerformed(ActionEvent ae) {

repaint();

}

public void paint(Graphics g) {

double result = 0.0;

String orgPStr = orgPText.getText();

String periodStr = periodText.getText();

String rateStr = rateText.getText();

String numWDStr = numWDText.getText();

try {

if(orgPStr.length()!= 0 &&

periodStr.length()!= 0 &&

rateStr.length()!= 0 &&

numWDStr.length()!= 0) {

principal = Double.parseDouble(orgPStr);

numYears = Double.parseDouble(periodStr);

rateOfRet = Double.parseDouble(rateStr) / 100;

numPerYear = Integer.parseInt(numWDStr);

result = compute();

maxWDText.setText(nf.format(result));

}

showStatus(""); // erase any previous error message

} catch (NumberFormatException exc) {

showStatus("Invalid Data");

maxWDText.setText("");

}

}

// Compute the maximum regular withdrawals.

double compute() {

double b, e;

double t1, t2;

t1 = rateOfRet / numPerYear;

b = (1 + t1);

e = numPerYear * numYears;

 

t2 = Math.pow(b, e) - 1;

return principal * (t1/t2 + t1);

}

}

Здійсніть побудову проекту (Выполнить \ Построить главный проект) та запустіть створений Вами проект (Выполнить \ Запустить главный проект).

Якщо Ви все правильно зробили, то проект запуститься, однак результатів створеної роботи візуально не буде помітно. Для того щоб побачити, те що Ви створили потрібно прописати посилання на скомпільований файл MyMaxWD.сlass, що знаходиться в папці: Назва диска: \Applet\build\classes. Створіть в папці, де знаходиться клас MyMaxWD.сlass html-файл MyMaxWD.html, в який помістіть посилання на створений Вами клас аплету (рис.3.4).

Рисунок 3.4 – Перевірка працездатносты аплету

Для цього запустіть створений Вами файл MyMaxWD.html.

Для цього використовується Блокнот. Створюєте текстовий документ MyMaxWD.txt з інформацією, вказаною на малюнку, а потім збережіть його у форматі.html (отримаєте документ MyMaxWD.html).

Зовнішній вигляд аплета, який відображається при виконанні програми, зображений на рис. 3.5. Для використання аплета просто введіть початковий баланс, термін(роки) і норму прибутку. Після введення інформації клацніть на кнопці Обчислити для розрахунку щомісячної виплати.

Рисунок 3.5 – АплетMyMaxWD.




Поделиться с друзьями:


Дата добавления: 2015-06-04; Просмотров: 719; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.041 сек.