fork download
  1. /**
  2.  * File: CrimeDataClass.java
  3.  * Author: Anthony Francis
  4.  * Date: Mar 16, 2019
  5.  * Purpose: Create class to store Crime.csv data
  6.  */
  7. package crimedata;
  8.  
  9. public class CrimeDataClass {
  10.  
  11. // Variable for the class
  12. private int year = 1994;
  13. private int population = 0;
  14. private int violentCrime = 0;
  15. private double violentCrimeRate = 0.0;
  16. private int murder = 0;
  17. private double murderRate = 0.0;
  18. private int rape = 0;
  19. private double rapeRate = 0.0;
  20. private int robbery = 0;
  21. private double robberyRate = 0.0;
  22. private int aggravatedAssault = 0;
  23. private double aggravatedAssaultRate = 0.0;
  24. private int propertyCrime = 0;
  25. private double propertyCrimeRate = 0.0;
  26. private int burglary = 0;
  27. private double burglaryRate = 0.0;
  28. private int larcenyTheft = 0;
  29. private double larcenyTheftRate = 0.0;
  30. private int motorVehicleTheft = 0;
  31. private double motorVehicleTheftRate = 0.0;
  32.  
  33. // Default constructor
  34. public CrimeDataClass() {
  35. } // End Constructor
  36.  
  37. // Full Parameterize Constructor
  38. public CrimeDataClass(int year, int population, int violentCrime, double violentCrimeRate,
  39. int murder, double murderRate, int rape, double rapeRate, int robbery, double robberyRate,
  40. int aggravatedAssault, double aggravatedAssaultRate, int propertyCrime, double propertyCrimeRate,
  41. int burglary, double burglaryRate, int larcenyTheft, double larcenyTheftRate, int motorVehicleTheft,
  42. double motorVehicleTheftRate) {
  43. this.year = year;
  44. this.population = population;
  45. this.violentCrime = violentCrime;
  46. this.violentCrimeRate = violentCrimeRate;
  47. this.murder = murder;
  48. this.murderRate = murderRate;
  49. this.rape = rape;
  50. this.rapeRate = rapeRate;
  51. this.robbery = robbery;
  52. this.robberyRate = robberyRate;
  53. this.aggravatedAssault = aggravatedAssault;
  54. this.aggravatedAssaultRate = aggravatedAssaultRate;
  55. this.propertyCrime = propertyCrime;
  56. this.propertyCrimeRate = propertyCrimeRate;
  57. this.burglary = burglary;
  58. this.burglaryRate = burglaryRate;
  59. this.larcenyTheft = larcenyTheft;
  60. this.larcenyTheftRate = larcenyTheftRate;
  61. this.motorVehicleTheft = motorVehicleTheft;
  62. this.motorVehicleTheftRate = motorVehicleTheftRate;
  63.  
  64. } // End Constructor
  65.  
  66. // Getter Method
  67. public int getYear() {
  68. return this.year;
  69. }
  70.  
  71. public int getPopulation() {
  72. return this.population;
  73. }
  74.  
  75. public int getViolentCrime() {
  76. return this.violentCrime;
  77. }
  78.  
  79. public double getViolentCrimeRate() {
  80. return this.violentCrimeRate;
  81. }
  82.  
  83. public int getMurder() {
  84. return this.murder;
  85. }
  86.  
  87. public double getMurderRate() {
  88. return this.murderRate;
  89. }
  90.  
  91. public int getRape() {
  92. return this.rape;
  93. }
  94.  
  95. public double getRapeRate() {
  96. return this.rapeRate;
  97. }
  98.  
  99. public int getRobbery() {
  100. return this.robbery;
  101. }
  102.  
  103. public double getRobberyRate() {
  104. return this.robberyRate;
  105. }
  106.  
  107. public int getAggravatedAssault() {
  108. return this.aggravatedAssault;
  109. }
  110.  
  111. public double getAggravatedAssaultRate() {
  112. return this.aggravatedAssaultRate;
  113. }
  114.  
  115. public int getPropertyCrime() {
  116. return this.propertyCrime;
  117. }
  118.  
  119. public double getPropertyCrimeRate() {
  120. return this.propertyCrimeRate;
  121. }
  122.  
  123. public int getBurglary() {
  124. return this.burglary;
  125. }
  126.  
  127. public double getBurglaryRate() {
  128. return this.burglaryRate;
  129. }
  130.  
  131. public int getLarcenyTheft() {
  132. return this.larcenyTheft;
  133. }
  134.  
  135. public double getLarcenyTheftRate() {
  136. return this.larcenyTheftRate;
  137. }
  138.  
  139. public int getMotorVehicleTheft() {
  140. return this.motorVehicleTheft;
  141. }
  142.  
  143. public double getMotorVehicleTheftRate() {
  144. return this.motorVehicleTheftRate;
  145. } // End Getter Method
  146.  
  147. // Setter Method
  148. // Objects are unchangeable due to using values from CSV
  149.  
  150. //toString Method
  151. public String toString() {
  152. return String.format("\nYear: %d"
  153. + "\nPopulation: %d"
  154. + "\nViolent Crime: %d"
  155. + "\nViolent Crime Rate: %.2f"
  156. + "\nMurder: %d"
  157. + "\nMurder Rate: %.2f"
  158. + "\nRape: %d"
  159. + "\nRape Rate: %.2f"
  160. + "\nRobbery: %d"
  161. + "\nRobbery Rate: %.2f"
  162. + "\nAggravated Assault: %d"
  163. + "\nAggravated Assault Rate: %.2f"
  164. + "\nProperty Crime: %d"
  165. + "\nProperty Crime Rate: %.2f"
  166. + "\nBurglary: %d"
  167. + "\nBurglary Rate: %.2f"
  168. + "\nLarceny-Theft: %d"
  169. + "\nLarceny-Theft Rate: %.2f"
  170. + "\nMotor Vehicle Theft: %d"
  171. + "\nMotor Vehicle Theft Rate: %.2f", this.year,
  172. this.population, this.violentCrime, this.violentCrimeRate,
  173. this.murder, this.murderRate, this.rape, this.rapeRate,
  174. this.robbery, this.robberyRate, this.aggravatedAssault,
  175. this.aggravatedAssaultRate, this.propertyCrime, this.propertyCrimeRate,
  176. this.burglary, this.burglaryRate, this.larcenyTheft, this.larcenyTheftRate,
  177. this.motorVehicleTheft, this.motorVehicleTheftRate);
  178.  
  179. } // End toString Method
  180.  
  181. double year() {
  182. throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  183. }
  184.  
  185. } // End Class
  186.  
  187.  
  188. /**
  189.  * File: CrimeDataArray.java
  190.  * Author: Anthony Francis
  191.  * Date: Mar 16, 2019
  192.  * Purpose: Create an array using the data from Crime.csv
  193.  */
  194. package crimedata;
  195.  
  196. import java.io.BufferedReader;
  197. import java.io.FileInputStream;
  198. import java.io.FileReader;
  199. import java.io.IOException;
  200. import java.util.Arrays;
  201. import java.util.Scanner;
  202.  
  203. public class CrimeDataArray {
  204.  
  205. private CrimeDataClass[] crimes;
  206. // csv file read setup
  207. static Scanner scannerIn = null;
  208. static FileInputStream in = null;
  209. static BufferedReader inputStream = null;
  210. static String fileLocation = "Crimes.csv";
  211.  
  212. // Method for reading Crime.csv file
  213. public static void readFile() throws IOException {
  214. int fileChar;
  215. String fileLine;
  216. in = new FileInputStream("Crime.csv");
  217. System.out.println("ReadIt File Contents");
  218. // Reads one char at a time
  219. while ((fileChar = in.read()) != -1) {
  220. // convert int to char
  221. System.out.print((char) fileChar);
  222. }
  223. // Separate the file output
  224. System.out.println("");
  225. System.out.println("Crime.csv File Contents using BufferedReader");
  226. // Use of Scanner and BufferedReader
  227. inputStream = new BufferedReader(new FileReader("Crime.csv"));
  228. scannerIn = new Scanner(inputStream);
  229. while (scannerIn.hasNext()) {
  230. if (scannerIn.hasNextInt()) {
  231. System.out.println(scannerIn.nextInt());
  232. }
  233. if (scannerIn.hasNextDouble()) {
  234. System.out.println(scannerIn.nextDouble());
  235. } else {
  236. scannerIn.next();
  237. }
  238. }
  239. // Separe the file output
  240. System.out.println("");
  241. // Use of
  242. inputStream = new BufferedReader(new FileReader("Crime.csv"));
  243. System.out.println("Crime.csv contents");
  244. // Read one Line using BufferedReader
  245. while ((fileLine = inputStream.readLine()) != null) {
  246. System.out.println(fileLine);
  247. }
  248. }
  249.  
  250. // Method to calculates number of rows in data file
  251. private static int countRows(String dataFile) {
  252.  
  253. String fileLine;
  254. BufferedReader inputStream = null;
  255. int rowCount = 0;
  256.  
  257. try {
  258. // Count rows in file
  259. inputStream = new BufferedReader(new FileReader("Crime.csv"));
  260. while ((fileLine = inputStream.readLine()) != null) {
  261. rowCount++;
  262. } // End While
  263.  
  264. } // End Try
  265. catch (IOException io) {
  266. System.out.println("File IO Exception" + io.getMessage());
  267.  
  268. } // End Catch
  269. finally {
  270. // Need another catch for closing streams
  271. try {
  272. // Close the streams
  273. if (inputStream != null) {
  274. inputStream.close();
  275. } // End If
  276.  
  277. } // End Try
  278. catch (IOException io) {
  279. System.out.println("Issue closing the Files" + io.getMessage());
  280. } // End Catch
  281.  
  282. } // End Finally
  283. return rowCount;
  284. } // End countRows
  285.  
  286. // getPopulationGrowth
  287. public void getPopulationGrowth() {
  288. for (int i=0; i<=(crimes.length - 2); i++) {
  289. System.out.printf("\n%d - %d: %.4f%%", crimes[i].getYear(), crimes[i+1].getYear(),
  290. ((crimes[i+1].getPopulation() - crimes[i].getPopulation()) / (float)crimes[i].getPopulation())*100);
  291. } // End For
  292. } // End getPopulationGrowth
  293.  
  294. // getMaxViolentCrimeRate
  295. public int getMaxViolentCrimeRate() {
  296. double violentCrimeRate = crimes[0].getViolentCrimeRate();
  297. double max;
  298. int i;
  299.  
  300. // Define max value
  301. max = violentCrimeRate;
  302.  
  303. // Loop to find max value
  304. for (i = 0; i <= crimes.length; i++) {
  305. if (violentCrimeRate > max) {
  306. max = violentCrimeRate;
  307. } // End If
  308. } // End For
  309. return crimes[i].getYear();
  310. } // End getMaxViolentCrimeRate
  311.  
  312. // getMinViolentCrimeRate
  313. public int getMinViolentCrimeRate() {
  314. double violentCrimeRate = crimes[0].getViolentCrimeRate();
  315. double min;
  316. int i;
  317.  
  318. // Define min value
  319. min = violentCrimeRate;
  320.  
  321. // Loop to find min value
  322. for (i = 0; i > crimes.length; i++) {
  323. if (violentCrimeRate < min) {
  324. min = violentCrimeRate;
  325. } // End If
  326. } // End For
  327. return crimes[i].getYear();
  328. } // End getMinViolentCrimeRate
  329.  
  330. // getMaxMurderRate
  331. public int getMaxMurderRate() {
  332. double murderRate = crimes[0].getMurderRate();
  333. double max;
  334. int i;
  335.  
  336. // Define max value
  337. max = murderRate;
  338.  
  339. // Loop to find max value
  340. for (i = 0; i <= (crimes.length - 2); i++) {
  341. if (murderRate > max) {
  342. max = murderRate;
  343. } // End If
  344. } // End For
  345. return crimes[i].getYear();
  346. } // End getMaxMurderRate
  347.  
  348. // getMinMurderRate
  349. public double getMinMurderRate() {
  350. double murderRate = crimes[0].getMurderRate();
  351. double min;
  352. int i;
  353.  
  354. // Define max value
  355. min = murderRate;
  356.  
  357. // Loop to find max value
  358. for (i = 0; i > crimes.length; i++) {
  359. if (murderRate < min) {
  360. min = murderRate;
  361. } // End If
  362. } // End For
  363. return crimes[i].getYear();
  364. } // End getMinMurderRate
  365.  
  366. // getMaxRapeRate
  367. public int getMaxRapeRate() {
  368. double rapeRate = crimes[0].getRapeRate();
  369. double max;
  370. int i;
  371.  
  372. // Define max value
  373. max = rapeRate;
  374.  
  375. // Loop to find max value
  376. for (i = 0; i <= crimes.length; i++) {
  377. if (rapeRate > max) {
  378. max = rapeRate;
  379. } // End If
  380. } // End For
  381. return crimes[i].getYear();
  382. } // End getMaxRapeRate
  383.  
  384. // getMinRapeRate
  385. public int getMinRapeRate() {
  386. double rapeRate = crimes[0].getRapeRate();
  387. double min;
  388. int i;
  389.  
  390. // Define max value
  391. min = rapeRate;
  392.  
  393. // Loop to find max value
  394. for (i = 0; i > crimes.length; i++) {
  395. if (rapeRate < min) {
  396. min = rapeRate;
  397. } // End If
  398. } // End For
  399. return crimes[i].getYear();
  400. } // End getMinRapeRate
  401.  
  402. // getMaxRobberyRate
  403. public int getMaxRobberyRate() {
  404. double robberyRate = crimes[0].getRobberyRate();
  405. double max;
  406. int i;
  407.  
  408. // Define max value
  409. max = robberyRate;
  410.  
  411. // Loop to find max value
  412. for (i = 0; i <= crimes.length; i++) {
  413. if (robberyRate > max) {
  414. max = robberyRate;
  415. } // End If
  416. } // End For
  417. return crimes[i].getYear();
  418. } // End getMaxRobberyRate
  419.  
  420. // getMinRobberyRate
  421. public int getMinRobberyRate() {
  422. double robberyRate = crimes[0].getRobberyRate();
  423. double min;
  424. int i;
  425.  
  426. // Define max value
  427. min = robberyRate;
  428.  
  429. // Loop to find max value
  430. for (i = 0; i > crimes.length; i++) {
  431. if (robberyRate < min) {
  432. min = robberyRate;
  433. } // End If
  434. } // End For
  435. return crimes[i].getYear();
  436. } // End getMinRobberyRate
  437.  
  438. // getMaxAggravatedAssaultRate
  439. public int getMaxAggravatedAssaultRate() {
  440. double aggravatedAssaultRate = crimes[0].getAggravatedAssaultRate();
  441. double max;
  442. int i;
  443.  
  444. // Define max value
  445. max = aggravatedAssaultRate;
  446.  
  447. // Loop to find max value
  448. for (i = 0; i <= crimes.length; i++) {
  449. if (aggravatedAssaultRate > max) {
  450. max = aggravatedAssaultRate;
  451. } // End If
  452. } // End For
  453. return crimes[i].getYear();
  454. } // End getMaxAggravatedAssaultRate
  455.  
  456. // getMinAggravatedAssaultRate
  457. public int getMinAggravatedAssaultRate() {
  458. double aggravatedAssaultRate = crimes[0].getAggravatedAssaultRate();
  459. double min;
  460. int i;
  461.  
  462. // Define max value
  463. min = aggravatedAssaultRate;
  464.  
  465. // Loop to find max value
  466. for (i = 0; i > crimes.length; i++) {
  467. if (aggravatedAssaultRate < min) {
  468. min = aggravatedAssaultRate;
  469. } // End If
  470. } // End For
  471. return crimes[i].getYear();
  472. } // End getMinAggravatedAssaultRate
  473.  
  474. // getMaxPropertyCrimeRate
  475. public int getMaxPropertyCrimeRate() {
  476. double propertyCrimeRate = crimes[0].getPropertyCrimeRate();
  477. double max;
  478. int i;
  479.  
  480. // Define max value
  481. max = propertyCrimeRate;
  482.  
  483. // Loop to find max value
  484. for (i = 0; i <= crimes.length; i++) {
  485. if (propertyCrimeRate > max) {
  486. max = propertyCrimeRate;
  487. } // End If
  488. } // End For
  489. return crimes[i].getYear();
  490. } // End getMaxPropertyCrimeRate
  491.  
  492. // getMinPropertyCrimeRate
  493. public int getMinPropertyCrimeRate() {
  494. double propertyCrimeRate = crimes[0].getPropertyCrimeRate();
  495. double min;
  496. int i;
  497.  
  498. // Define max value
  499. min = propertyCrimeRate;
  500.  
  501. // Loop to find max value
  502. for (i = 0; i > crimes.length; i++) {
  503. if (propertyCrimeRate < min) {
  504. min = propertyCrimeRate;
  505. } // End If
  506. } // End For
  507. return crimes[i].getYear();
  508. } // End getMinPropertyCrimeRate
  509.  
  510. // getMaxBurglaryRate
  511. public int getMaxBurglaryRate() {
  512. double burglaryRate = crimes[0].getBurglaryRate();
  513. double max;
  514. int i;
  515.  
  516. // Define max value
  517. max = burglaryRate;
  518.  
  519. // Loop to find max value
  520. for (i = 0; i <= crimes.length; i++) {
  521. if (burglaryRate > max) {
  522. max = burglaryRate;
  523. } // End If
  524. } // End For
  525. return crimes[i].getYear();
  526. } // End getMaxBurglaryRate
  527.  
  528. // getMinBurglaryRate
  529. public int getMinBurglaryRate() {
  530. double burglaryRate = crimes[0].getBurglaryRate();
  531. double min;
  532. int i;
  533.  
  534. // Define max value
  535. min = burglaryRate;
  536.  
  537. // Loop to find max value
  538. for (i = 0; i > crimes.length; i++) {
  539. if (burglaryRate < min) {
  540. min = burglaryRate;
  541. } // End If
  542. } // End For
  543. return crimes[i].getYear();
  544. } // End getMinBurglaryRate
  545.  
  546. // getMaxLarcenyTheftRate
  547. public int getMaxLarcenyTheftRate() {
  548. double larcenyTheftRate = crimes[0].getLarcenyTheftRate();
  549. double max;
  550. int i;
  551.  
  552. // Define max value
  553. max = larcenyTheftRate;
  554.  
  555. // Loop to find max value
  556. for (i = 0; i <= crimes.length; i++) {
  557. if (larcenyTheftRate > max) {
  558. max = larcenyTheftRate;
  559. } // End If
  560. } // End For
  561. return crimes[i].getYear();
  562. } // End getMaxLarcenyTheftRate
  563.  
  564. // getMinLarcenyTheftRate
  565. public int getMinLarcenyTheftRate() {
  566. double larcenyTheftRate = crimes[0].getLarcenyTheftRate();
  567. double min;
  568. int i;
  569.  
  570. // Define max value
  571. min = larcenyTheftRate;
  572.  
  573. // Loop to find max value
  574. for (i = 0; i > crimes.length; i++) {
  575. if (larcenyTheftRate < min) {
  576. min = larcenyTheftRate;
  577. } // End If
  578. } // End For
  579. return crimes[i].getYear();
  580. } // End getMinLarcenyTheftRate
  581.  
  582. // getMaxMotorVehicleTheftRate
  583. public int getMaxMotorVehicleTheftRate() {
  584. double motorVehicleTheftRate = crimes[0].getMotorVehicleTheftRate();
  585. double max;
  586. int i;
  587.  
  588. // Define max value
  589. max = motorVehicleTheftRate;
  590.  
  591. // Loop to find max value
  592. for (i = 0; i <= crimes.length; i++) {
  593. if (motorVehicleTheftRate > max) {
  594. max = motorVehicleTheftRate;
  595. } // End If
  596. } // End For
  597. return crimes[i].getYear();
  598. } // End getMaxMotorVehicleTheftRate
  599.  
  600. // getMinMotorVehicleTheftRate
  601. public int getMinMotorVehicleTheftRate() {
  602. double motorVehicleTheftRate = crimes[0].getMotorVehicleTheftRate();
  603. double min;
  604. int i;
  605.  
  606. // Define max value
  607. min = motorVehicleTheftRate;
  608.  
  609. // Loop to find max value
  610. for (i = 0; i > crimes.length; i++) {
  611. if (motorVehicleTheftRate < min) {
  612. min = motorVehicleTheftRate;
  613. } // End If
  614. } // End For
  615. return crimes[i].getYear();
  616. } // End getMinMotorVehicleTheftRate
  617.  
  618. // toString
  619. public String toString() {
  620. return Arrays.toString(this.crimes);
  621. }
  622.  
  623. } // End Class
  624.  
  625. /**
  626.  * File: TestCrimeData.java
  627.  * Author: Anthony Francis
  628.  * Date: Mar 17, 2019
  629.  * Purpose: Compile all classes the contains data from Crime.csv
  630.  */
  631. package crimedata;
  632.  
  633. import java.io.IOException;
  634. import java.time.Duration;
  635. import java.time.Instant;
  636. import java.util.Scanner;
  637.  
  638. public class TestCrimeData {
  639.  
  640. public static void main(String[] args) throws IOException {
  641.  
  642. // Start time
  643. Instant start = Instant.now();
  644. String fileName = ("");
  645.  
  646. // Command Line Argument
  647. try {
  648. if (args.length == 1) {
  649. fileName = args[0];
  650. } // End If
  651. else {
  652. System.out.println("Require Crime.csv");
  653. } // End Else
  654.  
  655. } // End Try
  656. catch (Exception e) {
  657. System.out.println("Try Again");
  658.  
  659. } // End Catch
  660.  
  661. // Create Data array
  662. CrimeDataArray myCrimes = new CrimeDataArray();
  663.  
  664. CrimeDataArray.readFile();
  665.  
  666. // Interaction menu
  667. menu(myCrimes);
  668.  
  669. // End time
  670. Instant end = Instant.now();
  671. System.out.println("Elapsed time (seconds): "
  672. + Duration.between(start, end).toNanos() / 1_000_000_000.0);
  673.  
  674. } // End Main
  675.  
  676. private static void menu(CrimeDataArray crimes) {
  677.  
  678. // Interaction with data
  679. Scanner scannerIn = new Scanner(System.in);
  680.  
  681. System.out.println("********** Welcome to the US Crime Statistical Application **************************");
  682. while (true) {
  683. System.out.println("");
  684. System.out.println("\nEnter the number of the question you want answered. Enter ‘Q’ to quit the program.\n"
  685. + "\n1. What were the percentages in population growth for each consecutive year from 1994 – 2013?"
  686. + "\n2. What year had the highest Violent crime rate?"
  687. + "\n3. What year had the lowest Violent crime rate?"
  688. + "\n4. What year had the highest Murder rate?"
  689. + "\n5. What year had the lowest Murder rate?"
  690. + "\n6. What year had the highest Robbery rate?"
  691. + "\n7. What year had the lowest Robbery rate?"
  692. + "\n8. What year had the highest Rape rate?"
  693. + "\n9. What year had the lowest Rape rate?"
  694. + "\n10. What year had the highest Aggravated Assault rate?"
  695. + "\n11. What year had the lowest Aggravated Assault rate?"
  696. + "\n12. What year had the highest Property crime rate?"
  697. + "\n13. What year had the lowest Property crime rate?"
  698. + "\n14. What year had the highest Burglary rate?"
  699. + "\n15. What year had the lowest Burglary rate?"
  700. + "\n16. What year had the highest Larceny theft rate?"
  701. + "\n17. What year had the lowest Larceny theft rate?"
  702. + "\n18. What year had the highest Motor Vehicle theft rate?"
  703. + "\n19. What year had the lowest Motor Vehicle theft rate?"
  704. + "\n20. What are the total crimes commited for each year from 1994 – 2013?"
  705. + "\nQ. Quit program."
  706. + "\nEnter your selection:");
  707.  
  708. // Read next line
  709. String selection = scannerIn.nextLine().trim().toUpperCase();
  710. if (selection.equals("Q")) {
  711. System.out.println("Thank you for trying the US Crimes Statistics Program.");
  712. // End loop when Q is entered
  713. break;
  714. } // End If
  715. else {
  716. switch (selection) {
  717. case "1":
  718. crimes.getPopulationGrowth();
  719. break;
  720. case "2":
  721. System.out.printf("The Violent Crime rate was highest in %d", crimes.getMaxViolentCrimeRate());
  722. break;
  723. case "3":
  724. System.out.printf("The Violent Crime rate was lowest in %d", crimes.getMinViolentCrimeRate());
  725. break;
  726. case "4":
  727. System.out.printf("The Murder rate was highest in %d", crimes.getMaxMurderRate());
  728. break;
  729. case "5":
  730. System.out.printf("The Murder rate was lowest in %d", crimes.getMinMurderRate());
  731. break;
  732. case "6":
  733. System.out.printf("The Rape rate was highest in %d", crimes.getMaxRapeRate());
  734. break;
  735. case "7":
  736. System.out.printf("The Rape rate was lowest in %d", crimes.getMinRapeRate());
  737. break;
  738. case "8":
  739. System.out.printf("The Robbery rate was highest in %d", crimes.getMaxRobberyRate());
  740. break;
  741. case "9":
  742. System.out.printf("The Robbery rate was lowest in %d", crimes.getMinRobberyRate());
  743. break;
  744. case "10":
  745. System.out.printf("The Aggravated Assault rate was highest in %d", crimes.getMaxAggravatedAssaultRate());
  746. break;
  747. case "11":
  748. System.out.printf("The Aggravated Assault rate was lowest in %d", crimes.getMinAggravatedAssaultRate());
  749. break;
  750. case "12":
  751. System.out.printf("The Aggravated Assault rate was highest in %d", crimes.getMaxPropertyCrimeRate());
  752. break;
  753. case "13":
  754. System.out.printf("The Aggravated Assault rate was lowest in %d", crimes.getMinPropertyCrimeRate());
  755. break;
  756. case "14":
  757. System.out.printf("The Burglary rate was highest in %d", crimes.getMaxBurglaryRate());
  758. break;
  759. case "15":
  760. System.out.printf("The Burglary rate was lowest in %d", crimes.getMinBurglaryRate());
  761. break;
  762. case "16":
  763. System.out.printf("The Larceny theft was rate was highest in %d", crimes.getMaxLarcenyTheftRate());
  764. break;
  765. case "17":
  766. System.out.printf("The Larceny theft was lowest in %d", crimes.getMinLarcenyTheftRate());
  767. break;
  768. case "18":
  769. System.out.printf("The Motor Vehicle theft was rate was highest in %d", crimes.getMaxMotorVehicleTheftRate());
  770. break;
  771. case "19":
  772. System.out.printf("The Motor Vehicle theft was lowest in %d", crimes.getMinMotorVehicleTheftRate());
  773. case "20":
  774. System.out.println(crimes.toString());
  775. break;
  776. default:
  777. System.out.println("Invalid selection. Please try again.");
  778. break;
  779.  
  780. } // End Switch
  781.  
  782. } // End Else
  783.  
  784. } // End While
  785.  
  786. scannerIn.close();
  787.  
  788. } // End Menu
  789.  
  790. } // End Class
  791.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:194: error: class, interface, or enum expected
package crimedata;
^
Main.java:196: error: class, interface, or enum expected
import java.io.BufferedReader;
^
Main.java:197: error: class, interface, or enum expected
import java.io.FileInputStream;
^
Main.java:198: error: class, interface, or enum expected
import java.io.FileReader;
^
Main.java:199: error: class, interface, or enum expected
import java.io.IOException;
^
Main.java:200: error: class, interface, or enum expected
import java.util.Arrays;
^
Main.java:201: error: class, interface, or enum expected
import java.util.Scanner;
^
Main.java:631: error: class, interface, or enum expected
package crimedata;
^
Main.java:633: error: class, interface, or enum expected
import java.io.IOException;
^
Main.java:634: error: class, interface, or enum expected
import java.time.Duration;
^
Main.java:635: error: class, interface, or enum expected
import java.time.Instant;
^
Main.java:636: error: class, interface, or enum expected
import java.util.Scanner;
^
12 errors
stdout
Standard output is empty