Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
students
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Simon Sandvik Lee
students
Commits
a8cbb278
Commit
a8cbb278
authored
3 years ago
by
magnus
Browse files
Options
Downloads
Patches
Plain Diff
Add solutions for exercise lecture 2
parent
ff00492f
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
foreksempel/src/main/java/of2/lf/Car.java
+4
-4
4 additions, 4 deletions
foreksempel/src/main/java/of2/lf/Car.java
foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java
+39
-34
39 additions, 34 deletions
foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java
with
43 additions
and
38 deletions
foreksempel/src/main/java/of2/lf/Car.java
+
4
−
4
View file @
a8cbb278
...
...
@@ -33,9 +33,9 @@ public class Car {
}
public
static
void
main
(
String
[]
args
)
{
/*
*
// Modell, Produsent, Registeringsnummer, Produksjonsår, Kilometerstand, Vekt
*
Car car = new Car("S-MAX", "Ford", "AQ12345", 2019, 356.0);
*/
// Modell, Produsent, Registeringsnummer, Produksjonsår, Kilometerstand, Vekt
Car
car
=
new
Car
(
"S-MAX"
,
"Ford"
,
"AQ12345"
,
2019
,
356.0
);
System
.
out
.
println
(
car
);
}
}
This diff is collapsed.
Click to expand it.
foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java
+
39
−
34
View file @
a8cbb278
package
of2.
lf
;
package
of2.
kode
;
import
java.util.Arrays
;
import
java.util.
Collection
;
import
java.util.
List
;
public
class
SelfServiceCheckout
{
//
Konstanter - d
el 1
public
static
final
Collection
<
String
>
days
=
Arrays
.
asList
(
"mon"
,
"tue"
,
"wed"
,
"thu"
,
"fri"
,
"sat"
,
"sun"
);
//
D
el 1
public
static
final
List
<
String
>
days
=
Arrays
.
asList
(
"mon"
,
"tue"
,
"wed"
,
"thu"
,
"fri"
,
"sat"
,
"sun"
);
// Felter / Tilstand
private
String
day
;
private
String
phoneNumber
;
//
Konstruktør - d
el
3
//
D
el
2
public
SelfServiceCheckout
(
String
day
)
{
validateDay
(
day
);
this
.
day
=
day
;
}
// Registrer medlems-ID (telefonnummer)
public
void
registerPhoneNumber
(
String
phoneNumer
)
{
if
(
this
.
phoneNumber
!=
null
)
{
throw
new
IllegalStateException
(
"Illegal operation"
);
}
if
(
isValidPhoneNumber
(
phoneNumer
))
{
this
.
phoneNumber
=
phoneNumer
;
}
else
{
throw
new
IllegalArgumentException
(
"Not a valid phone number, please re-enter."
);
private
void
validateDay
(
String
day
)
{
if
(!
days
.
contains
(
day
))
{
throw
new
IllegalArgumentException
(
"Invalid weekday"
);
}
}
// Scanne varer
public
void
scanItem
(
String
itemName
,
int
amount
,
double
price
)
{
double
rebate
=
0
;
if
(
phoneNumber
!=
null
&&
day
.
equals
(
"thu"
))
{
rebate
=
0.1
;
// Del 3
public
void
registerPhoneNumber
(
String
phoneNumber
)
{
if
(
this
.
phoneNumber
!=
null
)
{
/*
* Her kaster vi IllegalStateException og ikke IllegalArgumentException
* fordi argumentet i seg selv (telefonnummeret) kan være gyldig, men
* det er ikke en gyldig tilstand å sette et nytt telefonnummer på nytt
* når brukeren allerede har registrert et fra før-
*/
throw
new
IllegalStateException
(
"Illegal operation: Phone number already registered"
);
}
System
.
out
.
println
(
amount
+
"x "
+
itemName
+
": "
+
(
price
-
(
price
*
rebate
))
+
" kr"
);
}
// Valideringsmetoder - del 2
private
void
validateDay
(
String
day
)
{
if
(!
days
.
contains
(
day
))
{
throw
new
IllegalArgumentException
(
"Invalid weekday"
);
if
(!
isValidPhoneNumber
(
phoneNumber
))
{
throw
new
IllegalArgumentException
(
"Not a valid phone number!"
);
}
this
.
phoneNumber
=
phoneNumber
;
}
private
boolean
isValidPhoneNumber
(
String
phoneNumber
)
{
...
...
@@ -60,26 +54,37 @@ public class SelfServiceCheckout {
return
false
;
}
// Her kunne man også fjernet første tegn i charArrayen og sjekket resten
// Dette kan vi gjøre siden vi allerede har validert de første 4-5 tegnene
char
[]
chars
=
cleanedPhoneNumber
.
toCharArray
();
boolean
firstIndex
=
true
;
for
(
char
c
:
chars
)
{
if
(!
Character
.
isDigit
(
c
))
{
return
false
;
if
(
c
!=
'+'
&&
!
firstIndex
)
{
return
false
;
}
firstIndex
=
false
;
}
}
return
true
;
}
// main-metode for å teste koden
public
static
void
main
(
String
[]
args
)
{
// Del 4
public
void
scanItem
(
String
itemName
,
int
amount
,
double
price
)
{
double
rebate
=
0.0
;
if
(
phoneNumber
!=
null
&&
day
.
equals
(
"thu"
))
{
rebate
=
0.1
;
}
System
.
out
.
println
(
amount
+
"x "
+
itemName
+
": "
+
(
price
-
(
price
*
rebate
))
+
" kr"
);
}
// Testkode / main-metode
public
static
void
main
(
String
[]
args
)
{
SelfServiceCheckout
checkout
=
new
SelfServiceCheckout
(
"thu"
);
checkout
.
scanItem
(
"Norvegia"
,
2
,
120.0
);
checkout
.
registerPhoneNumber
(
"004742345678"
);
checkout
.
scanItem
(
"Tomat"
,
3
,
5.0
);
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment