Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1. //Robin Geijer roge8388
  2.  
  3. //Hej mojjen, detta program ska för tillfället kunna göra alla dom där kommandon som finns inuti t.ex. initialize.
  4. //Den senaste uppgiften så skulle vi fixa så att vid registrering av hund så ska alla onödiga space tas bort (jag använde .trim()).
  5. //Sen skulle vi också fixa så att om man typ skrev register new dog och det ber en att skriva namn på hunden så ska det
  6. //loopas och be om namn igen om man bara slår enter, för rutan får inte vara tom. Samma skulle ske för breed och user (finns inte än).
  7. //Jag lyckades inte fixa en loop som ber om namn om det är där man tryckte enbart enter, eller att den ber om breed om det var det
  8. //som den bad om innan. Så jag fixade en kod som inte är svår alls som funkade för name (handleName()), sen gjorde jag lika för breed
  9. //kan man lösa det med typ en switch eller hursomhelst, bara i en metod? för dom kommer klaga på det där säkert.
  10. //Jag skickar bild på hur jag menar att det ska visa.
  11.  
  12. import java.util.Scanner;
  13. import java.util.ArrayList;
  14.  
  15. public class DogProgram {
  16.  
  17. private String name;
  18. private String breed;
  19. private int age;
  20. private int weight;
  21.  
  22. private ArrayList<Dog> dogList = new ArrayList<Dog>();
  23.  
  24.  
  25. private Scanner input = new Scanner(System.in);
  26.  
  27.  
  28. public void initialize() {
  29. System.out.println("Welcome! Enter one of the following commands:");
  30. System.out.println("- Register new dog");
  31. System.out.println("- Increase age");
  32. System.out.println("- List dogs");
  33. System.out.println("- Remove dog");
  34. System.out.println("- Exit");
  35. }
  36.  
  37. public void runCommandLoop(){
  38. boolean ended;
  39. do {
  40. String command = readCommand();
  41. ended = handleCommand(command);
  42. } while(!ended);
  43.  
  44. }
  45.  
  46. public String readCommand(){
  47. System.out.print("Command: ");
  48. String command = input.nextLine();
  49. return command;
  50. }
  51.  
  52. public boolean handleInput(String userInput){
  53. boolean isFilled = false;
  54. if(!userInput.isEmpty()){
  55. isFilled = true;
  56. }
  57.  
  58. return isFilled;
  59. }
  60.  
  61. public void registerNewDog() {
  62. System.out.println("You've entered the command \"Register new dog.\"");
  63. String userInput = ""; //Kommer lagra det användaren matar in
  64.  
  65. //Alla de här 4 är exakt lika, bara att det är olika egenskaper de frågar efter, därför kommenterar jag bara den översta
  66. System.out.println("Name: ");
  67. userInput = input.nextLine(); //Ber användaren knappa in name/breed/age/weight och lagrar i en STRING
  68. while(!handleInput(userInput.trim())){ //Så länge som handleInput returnerar false
  69. System.out.println("Error: the name can’t be empty");
  70. System.out.println("Name:"); //Fråga efter namn/bla/bla
  71. userInput = input.nextLine(); //Skriv in
  72. } //Om den lämnar while-loopen så betyder det att handleInput = true
  73. name = userInput; //Lagra det användaren skrev i name eller vad det nu är
  74.  
  75. System.out.println("Breed: ");
  76. userInput = input.nextLine();
  77. while(!handleInput(userInput.trim())){
  78. System.out.println("Error: the breed can’t be empty");
  79. System.out.println("Breed:");
  80. userInput = input.nextLine();
  81. }
  82. breed = userInput;
  83.  
  84. System.out.println("Age: ");
  85. userInput = input.nextLine();
  86. while(!handleInput(userInput.trim()) ){
  87. System.out.println("Error: the age can’t be empty and has to be numbers");
  88. System.out.println("Age:");
  89. userInput = input.nextLine();
  90. }
  91. age = Integer.parseInt(userInput); //Konverterar om String till int då det användaren matar in lagras som string och age/weight är int
  92.  
  93. System.out.println("Weight: ");
  94. userInput = input.nextLine();
  95. while(!handleInput(userInput.trim())){
  96. System.out.println("Error: the weight can’t be empty and has to be numbers");
  97. System.out.println("Weight:");
  98. userInput = input.nextLine();
  99. }
  100. weight = Integer.parseInt(userInput);
  101.  
  102. Dog newDog = new Dog(name, breed, age, weight);
  103. dogList.add(newDog);
  104.  
  105. }
  106.  
  107.  
  108. private boolean handleCommand(String command){
  109. switch (command.toUpperCase()) {
  110. case "EXIT":
  111. return true;
  112. case "REGISTER NEW DOG":
  113. registerNewDog();
  114. break;
  115. case "INCREASE AGE":
  116. changeAge();
  117. break;
  118. case "LIST DOGS":
  119. listAllDogs();
  120. break;
  121. case "REMOVE DOG":
  122. removeDog();
  123. break;
  124. default:
  125. System.out.println("Error: No such command.");
  126. }
  127. return false;
  128. }
  129.  
  130. public void changeAge() {
  131. System.out.println("You've entered the command \"Increase age.\"");
  132. System.out.println("Enter the name of the dog that has aged.");
  133. name = input.nextLine().trim();
  134.  
  135. int nameMatches = 0;
  136.  
  137. for (Dog dog : dogList) {
  138. if (name.equalsIgnoreCase(dog.getName())) {
  139.  
  140. dog.increaseAge(1);
  141. nameMatches++;
  142. System.out.println("The dog's age has been updated.");
  143. }
  144. }
  145.  
  146. if (nameMatches == 0) {
  147. System.out.println("Error: Dog not found in register.");
  148. }
  149.  
  150. }
  151.  
  152. public void listAllDogs() {
  153. System.out.println("You've entered the command \"List dogs.\"");
  154. System.out.println("Enter the minimum tail length to search for.");
  155. double minLength = input.nextDouble();
  156. input.nextLine();
  157.  
  158. if (minLength == 0) {
  159.  
  160. for (Dog dog : dogList) {
  161.  
  162. dog.getTailLength();
  163. System.out.println(dog);
  164.  
  165. }
  166. }
  167. else {
  168.  
  169. for (Dog dog : dogList) {
  170.  
  171. if (dog.getTailLength() >= minLength) {
  172. System.out.println(dog);
  173.  
  174. }
  175. }
  176.  
  177. }
  178.  
  179. }
  180.  
  181. public void removeDog() {
  182. System.out.println("You gave the command \"remove dog\"");
  183. System.out.println("Please enter name: ");
  184. name = input.nextLine().trim();
  185.  
  186. int matchingDogs = 0;
  187. for (Dog dog : dogList) {
  188. if(name.equalsIgnoreCase(dog.getName())) {
  189. dog.toString();
  190. dogList.remove(dog);
  191. System.out.println(name+ " has been removed from register");
  192. matchingDogs++;
  193. break;
  194. }
  195. }
  196.  
  197. if (matchingDogs==0) {
  198. System.out.println("Error: dog with given name could not be found");
  199.  
  200. }
  201. }
  202.  
  203. public void exitProgram(){
  204. System.out.println("Bye");
  205. }
  206.  
  207. private void run(){
  208. initialize();
  209. runCommandLoop();
  210. exitProgram();
  211. }
  212.  
  213. public static void main(String[] args){
  214. new DogProgram().run();
  215. }
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement