Skip to content
Snippets Groups Projects
Commit 2a9bbc77 authored by Anders Janin Ellingsen's avatar Anders Janin Ellingsen
Browse files

Øving 11

parent cd87c8eb
No related branches found
No related tags found
No related merge requests found
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Repo.iml" filepath="$PROJECT_DIR$/.idea/Repo.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store
\ No newline at end of file
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" default="true" project-jdk-name="20" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Oving 11.iml" filepath="$PROJECT_DIR$/Oving 11.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
public class Main {
public static void main(String[] args) {
Utils pr = new Utils();
pr.menu();
}
}
\ No newline at end of file
public class Property {
// Oppretter objektvariabler for klassen.
private final int municipalityNumber;
private final String municipalityName;
private final int lotNumber;
private final int sectionNumber;
private String name;
private double area;
private String nameOfOwner;
// Enkel konstruktør.
public Property(int municipalityNumber, String municipalityName, int lotNumber, int sectionNumber, String name, double area, String nameOfOwner) {
this.municipalityNumber = municipalityNumber;
this.municipalityName = municipalityName;
this.lotNumber = lotNumber;
this.sectionNumber = sectionNumber;
this.name = name;
this.area = area;
this.nameOfOwner = nameOfOwner;
}
// Getters and setters for nødvendige variabler.
public int getMunicipalityNumber() {
return municipalityNumber;
}
public String getMunicipalityName() {
return municipalityName;
}
public int getLotNumber() {
return lotNumber;
}
public int getSectionNumber() {
return sectionNumber;
}
public String getName() {
return name;
}
public double getArea() {
return area;
}
public String getNameOfOwner() {
return nameOfOwner;
}
public void setName(String name) {
this.name = name;
}
public void setArea(double area) {
this.area = area;
}
public void setNameOfOwner(String nameOfOwner) {
this.nameOfOwner = nameOfOwner;
}
// Metode for å skrive ut ID.
public String getID () {
return municipalityNumber + "-" + lotNumber + "/" + sectionNumber;
}
@Override
public String toString() {
return "Municipality number: " + municipalityNumber +
"\nMunicipality name: " + municipalityName +
"\nLot number: " + lotNumber +
"\nSection number: " + sectionNumber +
"\nName: " + name +
"\nArea: " + area + "m2" +
"\nName of owner: " + nameOfOwner;
}
}
import java.util.HashMap;
import static javax.swing.JOptionPane.*;
public class PropertyRegister {
// Oppretter et hashmap fordi jeg vil at en eiendom skal hentes ut med en unik ID.
private HashMap <String, Property> pr = new HashMap <String, Property>();
public PropertyRegister() {
}
// Metode for å registrere en eiendom.
public void newProperty() {
int municipalityNumber = Integer.parseInt(showInputDialog("Municipality number:"));
String municipalityName = showInputDialog("Municipality name:");
int lotNumber = Integer.parseInt(showInputDialog("Lot number:"));
int sectionNumber = Integer.parseInt(showInputDialog("Section number:"));
String name = showInputDialog("Name:");
double area = Double.parseDouble(showInputDialog("Area:"));
String nameOfOwner = showInputDialog("Name of owner:");
String iD = municipalityNumber + "-" + lotNumber + "/" + sectionNumber;
pr.put(iD, new Property(municipalityNumber, municipalityName, lotNumber, sectionNumber, name, area, nameOfOwner));
System.out.println(pr);
}
//Metode for å liste opp alle eiendommene
public void listAllProperties() {
StringBuilder output = new StringBuilder();
for (Property property : pr.values()) {
output.append(property).append("\n------------------------------------------\n");
}
if (output.isEmpty()) {
showMessageDialog(null, "There are no registered properties");
} else {
showMessageDialog(null, output);
}
}
// Metode for å fjerne en eiendom.
public void removeProperty(String propertyID) {
boolean propertyRemoved = false;
for (String property : pr.keySet()) {
if (property.equals(propertyID)) {
pr.remove(property);
showMessageDialog(null, "Property with ID" + property + " has been removed");
propertyRemoved = true;
break;
}
}
if (!propertyRemoved) {
showMessageDialog(null, "Property with ID " + propertyID + " not found.");
}
}
// Metode for å returnere antall eiendommer i registeret.
public void amountOfProperties(){
showMessageDialog(null, "Amount of properties: " + pr.size());
}
// Metode for å finne eiendom baser på ID.
public void findProperty() {
int municipalityNumber = Integer.parseInt(showInputDialog("Municipality number:"));
int lotNumber = Integer.parseInt(showInputDialog("Lot number:"));
int sectionNumber = Integer.parseInt(showInputDialog("Section number:"));
String propertyID = municipalityNumber + "-" + lotNumber + "/" + sectionNumber;
boolean propertyFound = false;
for (String property : pr.keySet()) {
if (property.equals(propertyID)) {
showMessageDialog(null, pr.get(property));
propertyFound = true;
break;
}
}
if (!propertyFound) {
showMessageDialog(null, "Property with ID " + propertyID + " not found.");
}
}
public void averageArea() {
double totalArea = 0;
for (Property property : pr.values()) {
totalArea += property.getArea();
}
double averageArea = totalArea / pr.size();
String formattedAverageArea = String.format("%.2f", averageArea);
showMessageDialog(null, "Average area of all the properties: " + formattedAverageArea + "m2");
// showMessageDialog(null, "Average area of all the properties: " + averageArea + "m2");
}
public void findPropertyBasedOnLotNumber(int lotNumber) {
StringBuilder output = new StringBuilder();
for (Property property : pr.values()) {
if (property.getLotNumber() == lotNumber) {
output.append(property).append("\n------------------------------------------\n");
}
}
if (output.isEmpty()) {
showMessageDialog(null, "There is no property with lot number: " + lotNumber);
} else {
showMessageDialog(null, output);
}
}
public void testData() {
pr.put(1445 + "-" + 77 + "/" + 631, new Property(1445, "Gloppen", 77, 631, "", 1017.6, "Jens Olsen"));
pr.put(1445 + "-" + 77 + "/" + 131, new Property(1445, "Gloppen", 77, 131, "Syningom", 661.3, "Nicolay Madsen"));
pr.put(1445 + "-" + 75 + "/" + 19, new Property(1445, "Gloppen", 75, 19, "Fugletun", 650.6, "Evilyn Jensen"));
pr.put(1445 + "-" + 74 + "/" + 188, new Property(1445, "Gloppen", 74, 188, "", 1457.2, "Karl Ove Bråten"));
pr.put(1445 + "-" + 69 + "/" + 47, new Property(1445, "Gloppen", 69, 47, "Høiberg", 1339.4, "Elsa Indregård"));
}
}
import static javax.swing.JOptionPane.*;
public class Utils {
PropertyRegister pr = new PropertyRegister();
public Utils() {
}
public void menu(){
pr.testData();
while (true) {
String choice = showInputDialog(
"What do you want to do?\n" +
"1. Add property\n" +
"2. List all properties\n" +
"3. Search property\n" +
"4. Calculate average area\n" +
"5. Remove property\n" +
"6. List all properties based on lot number\n" +
"7. Amount of properties registered\n" +
"8. Exit");
switch (choice) {
case "1":
pr.newProperty();
break;
case "2":
pr.listAllProperties();
break;
case "3":
pr.findProperty();
break;
case "4":
pr.averageArea();
break;
case "5":
pr.removeProperty(showInputDialog("Property ID (Format: Municipality number-Lot number/Section number) e.g. 1504-54/73"));
break;
case "6":
pr.findPropertyBasedOnLotNumber(Integer.parseInt(showInputDialog("Lot number:")));
break;
case "7":
pr.amountOfProperties();
break;
case "8":
System.exit(0);
default:
showMessageDialog(null, "Please choose and option by entering a digit between 1-8");
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment