Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 07.10.2018
Сообщений: 20
1

Как связать класс Money с интерфейсом Array?

07.10.2018, 19:30. Показов 1801. Ответов 8
Метки нет (Все метки)

Не могу понять как связать класс Money с интерфейсом Array, мое задание создать базовый интерфейс Array с функцией поэлементного сложения массивов, реализовать два класса, переопределив функцию сложения, вызывающая программа должна продемонстрировать все варианты вызова функций. создать класс Money (Класс для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char - для копеек.) и класс BitString (Класс для работы с битовыми строками не более чем из 100 бит. Битовая строка должна быть представлена массивом типа unsigned char, каждый элемент которого принимает значение 0 или 1.).
Подскажите?
код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package com.company;
 
public class array1
{
int n;
int i;
 
array1()
{
i = 0;
System.out.println("\n");
}
};
public class BitString extends array1{
int*massiv_new=new int[3];
BitString(array1 &c)
{
n = c.n;
}
void init()
{ 
System.out.println("Считывание массива");System.out.println("\n");
for(i =0;i<n;i++)
{
System.out.print("%d",&massiv_new[i]);
}
}
void print()
{
System.out.print("Распечатка массива");System.out.println("\n");
for(i = 0;i<n;i++)
{
System.out.println("%d",massiv_new[i]);printf(" ");
}
}
void summ(BitString &c)
{
int k;
k=0;
for(i =0;i<n;i++)
{
massiv_new[i]=massiv_new[i] and c.massiv_new[i];
}
}
void _or(BitString &c)
{
int k;k=0;
for(i =0;i<n;i++)
{
massiv_new[i]=massiv_new[i] or c.massiv_new[i];
}
}
void _xor(BitString &c)
{
int k;k=0;
for(i =0;i<n;i++)
{
massiv_new[i]=massiv_new[i] xor c.massiv_new[i];
}
}
void _not(BitString &c)
{
int k;k=0;
for(i =0;i<n;i++)
{
massiv_new[i]=massiv_new[i] != c.massiv_new[i];
}
}
 
public class Money extends array1 {
double a,b;
double delsum;
double drobchislo;
double multidrobchislo;
double sravn;
 
long x;
char y;
 
Money () // Конструктор 1 по умолчанию
{
x = 0;
 
}
Money(int x1, int y1) // Конструктор 2 с параметрами (инициализация)
{
delsum = x1;
drobchislo = y1;
System.out.println("Конструктор 2");
System.out.println("%f",delsum);System.out.println(" ");
System.out.println("%f",drobchislo);
System.out.println("\n");
a = 6;
b = 2;
}
Money(const Money& P) // Конструктор 3 копирования
{
multidrobchislo = P.x;
sravn = P.y;
}
void summ (const Money & P)
{
Money C;
C.x = a + b;
C.y = P.a + P.b;
System.out.println("Сложение");System.out.println("\n");
System.out.println("%ld",C.x);System.out.println(",");
System.out.println("%hhd",C.y);System.out.println("\n");
}
Money raz(const Money & P)
{
Money C;
C.x = a - b;
C.y = P.a - P.b;
System.out.println("%ld",C.x);
System.out.println(",");
System.out.println("%hhd",C.y);
System.out.println("\n");
return C;
}
Money multi(const Money & P)
{
Money C;
C.x = a*P.a + b*P.b;
C.y = a*P.b + b*P.a;
System.out.println("%ld",C.x);System.out.println(",");
System.out.println("%hhd",C.y);System.out.println("\n");
return C;
}
Money delen(const Money & P)
{
Money C;
C.x = (a*P.a + b* P.b) / (P.a*P.a + P.b*P.b);
C.y = (b*P.a -a*P.a) / (P.a*P.a + P.b* P.b);
System.out.println("%ld",C.x);System.out.println(",");
System.out.println("\n");
System.out.println("%hhd",C.y);
return C;
}
 
void srv(const Money & P)
{
if (a==P.a && b==P.b)
System.out.println("Числа равны");
else
System.out.println("Числа не равны");
}
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2018, 19:30
Ответы с готовыми решениями:

Создать базовый класс - Array и производный класс - Money для работы денежной суммы
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для...

Как можно связать приложение с графическим интерфейсом на Qt и библиотечными пакетами на C#
Люди добрые помогите найти решение. Как можно связать приложение с графическим интерфейсом на Qt и...

Небольшая программа с БД и интерфейсом, как все это между собой связать?
Нужно написать простую программу которая имела бы GUI и была бы связана с БД суть в том что имеется...

Реализовать класс Goods используя для представления цены класс Money
Реализовать класс Goods (пункт 1 ), используя для представления цены класс Money с пункта 2...

__________________

Записывайтесь на профессиональные курсы Java-разработчиков
Обучение в Java Mentor с оплатой после трудоустройства
8
iSmokeJC
07.10.2018, 19:45
  #2

Не по теме:

Cidoji, лучше бы ты вообще код не выкладывал... Откуда ты его взял???

0
0 / 0 / 0
Регистрация: 07.10.2018
Сообщений: 20
07.10.2018, 20:01  [ТС] 3
iSmokeJC, попытка перевода с с++
0
0 / 0 / 0
Регистрация: 07.10.2018
Сообщений: 20
08.10.2018, 16:50  [ТС] 4
iSmokeJC, не тот код скинул..., здесь можешь помочь с классом Money?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
Main
 
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Decimal A1 = new Decimal(1);
Decimal A2 = new Decimal(1);
Decimal A3 = new Decimal (A1.sum(A2.get()));
System.out.println("A1: "+Arrays.toString(A1.get()));
System.out.println("A2: "+Arrays.toString(A2.get()));
System.out.println("Сложенный массив A:"+Arrays.toString(A3.get()));
 
BitString B1 = new BitString(1);
BitString B2 = new BitString(1);
BitString B3 = new BitString (B1.sum(B2.get()));
System.out.println("A1: "+Arrays.toString(B1.get()));
System.out.println("A2: "+Arrays.toString(B2.get()));
System.out.println("Сложенный массив A:"+Arrays.toString(B3.get()));
}
} 
 
Decimal
import java.util.concurrent.ThreadLocalRandom;
 
class Decimal implements Array {
private char[] a;
 
public Decimal(int j){
a = new char[100];
for(int i=0;i<100;i++) {
int r=ThreadLocalRandom.current().nextInt(0, 9 + 1);
this.a[i]= NumberSymbol(r);
}
} //пустой конструктор
 
public Decimal(char[] a){
this.a=a;
}
 
int CharacterNumber(char l){
int t;
switch ( l ) {
case '0':
t=0;
break;
case '1':
t=1;
break;
case '2':
t=2;
break;
case '3':
t=3;
break;
case '4':
t=4;
break;
case '5':
t=5;
break;
case '6':
t=6;
break;
case '7':
t=7;
break;
case '8':
t=8;
break;
case '9':
t=9;
break;
default:
t=0;
break;
}
return t;
}//перевод символ в число
 
char NumberSymbol(int l){
char t;
switch ( l ) {
case 0:
t='0';
break;
case 1:
t='1';
break;
case 2:
t='2';
break;
case 3:
t='3';
break;
case 4:
t='4';
break;
case 5:
t='5';
break;
case 6:
t='6';
break;
case 7:
t='7';
break;
case 8:
t='8';
break;
case 9:
t='9';
break;
default:
t='0';
break;
}
return t;
}//перевод число в символ
 
public char[] sum(char[] a){
char[] b=new char[100];
int p=0;
for (int i=0; i<=99; i++){
int l=CharacterNumber(this.a[i])+CharacterNumber(a[i])+p;
p=0;
if(l>9) {
l = l - 10;
p = 1;
}
b[i]=NumberSymbol(l);
}
return b;
}
public char[] get() {
return a;
}
}
 
BitString 
 
import java.util.concurrent.ThreadLocalRandom;
 
class BitString implements Array{
private char[] a;
 
public BitString(int j){
a = new char[100];
for(int i=0;i<100;i++) {
int r= ThreadLocalRandom.current().nextInt(0, 1 + 1);
this.a[i]= NumberSymbol(r);
}
} 
 
public BitString(char[] a) {
this.a = a;
}
 
int CharacterNumber(char l){
int t;
switch ( l ) {
case '0':
t=0;
break;
case '1':
t=1;
break;
default:
t=0;
break;
}
return t;
}
 
char NumberSymbol(int l){
char t;
switch ( l ) {
case 0:
t='0';
break;
case 1:
t='1';
break;
default:
t='0';
break;
}
return t;
}//перевод число в символ
 
public char[] sum(char[] a){
char[] b=new char[100];
int p=0;
for (int i=0; i<=99; i++){
int l=CharacterNumber(this.a[i])+CharacterNumber(a[i])+p;
p=0;
if(l>1) {
l = l - 2;
p = 1;
}
b[i]=NumberSymbol(l);
}
return b;
}
public char[] get() {
return a;
}
}
 
Array
interface Array {
char[] sum(char[] a);
}
0
1891 / 1508 / 373
Регистрация: 17.02.2014
Сообщений: 7,613
08.10.2018, 18:08 5
Цитата Сообщение от Cidoji Посмотреть сообщение
можешь помочь
совсем недавно помогали и весьма подробно...

0
Супер-модератор
Эксперт PythonЭксперт Java
7489 / 4083 / 1520
Регистрация: 21.10.2017
Сообщений: 11,556
08.10.2018, 18:14 6
Цитата Сообщение от Cidoji Посмотреть сообщение
}//перевод символ в число
Java
1
2
3
4
private int CharacterNumber(char c) {
        if (Character.isDigit(c)) return Character.digit(c, 10);
        else return 0;
}
Цитата Сообщение от Cidoji Посмотреть сообщение
//перевод число в символ
Java
1
2
3
private char NumberSymbol(int x) {
        return Character.forDigit(x, 10);
}
Цитата Сообщение от Cidoji Посмотреть сообщение
int l
НИКОГДА так не называй переменные
Цитата Сообщение от Cidoji Посмотреть сообщение
int CharacterNumber(char l){
Методы - с маленькой буквы.
Вообще, почитай "Чистый код", Р.Мартин.

Цитата Сообщение от Cidoji Посмотреть сообщение
public Decimal(int j){
Вот зачем здесь в аргументе конструктора переменная?

И вообще, я не вижу смысла в этих плясках с char, геморрой один...
0
0 / 0 / 0
Регистрация: 07.10.2018
Сообщений: 20
08.10.2018, 19:44  [ТС] 7
iSmokeJC, а это не знаешь как сделать? создать класс Money (Класс для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char - для копеек.)
0
Супер-модератор
Эксперт PythonЭксперт Java
7489 / 4083 / 1520
Регистрация: 21.10.2017
Сообщений: 11,556
08.10.2018, 19:57 8
Лучший ответ Сообщение было отмечено Cidoji как решение

Решение

Cidoji, а в чем проблема-то? У класса два поля - рубли и копейки. В методе сложения учитывать превышение копеек 100 и соотв. добавлять рубль. Вот и все!
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,367
08.10.2018, 20:53 9
Лучший ответ Сообщение было отмечено Cidoji как решение

Решение

Цитата Сообщение от iSmokeJC Посмотреть сообщение
а в чем проблема-то?
Да это ж закрепление пройденного материала)))
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2018, 20:53

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Реализовать класс Money, используя класс Fraction
// реализовать класс Money используя класс Fraction #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

Как использовать абстрактный класс в связке с интерфейсом?
Вот фрагмент из задачи: &quot;Общая логика сложения должна быть вынесена в базовый абстрактный класс,...

Паскалевский код связать с делфи интерфейсом
Program TriangleFinder; Const MaxArrSize = 50; Type ...

Каким интерфейсом связать 5 микроконтроллеров на одной плате
Одна плата. Пять МК STM8. Один МК опрашивает остальные. Каким интерфейсом связать 5...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.