From 14dd59d7adcfbfa704a3dd0d3f746f1fedb8652d Mon Sep 17 00:00:00 2001 From: Bryson Date: Tue, 5 Sep 2017 01:20:03 -0400 Subject: [PATCH 1/3] Initial commit --- Missing Number/.classpath | 6 ++ Missing Number/.gitignore | 1 + Missing Number/.project | 17 +++++ Missing Number/src/MainWindow.java | 117 +++++++++++++++++++++++++++++ Missing Number/src/Runner.java | 13 ++++ 5 files changed, 154 insertions(+) create mode 100644 Missing Number/.classpath create mode 100644 Missing Number/.gitignore create mode 100644 Missing Number/.project create mode 100644 Missing Number/src/MainWindow.java create mode 100644 Missing Number/src/Runner.java diff --git a/Missing Number/.classpath b/Missing Number/.classpath new file mode 100644 index 0000000..d171cd4 --- /dev/null +++ b/Missing Number/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/Missing Number/.gitignore b/Missing Number/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Missing Number/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Missing Number/.project b/Missing Number/.project new file mode 100644 index 0000000..745ef5b --- /dev/null +++ b/Missing Number/.project @@ -0,0 +1,17 @@ + + + Missing Number + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Missing Number/src/MainWindow.java b/Missing Number/src/MainWindow.java new file mode 100644 index 0000000..27ee681 --- /dev/null +++ b/Missing Number/src/MainWindow.java @@ -0,0 +1,117 @@ +import java.awt.TextArea; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTextArea; + +/** + * + * @author Bryson Hair + * + */ +public class MainWindow extends JFrame +{ + public MainWindow() + { + this.setTitle("Find Missing Sequence Number"); + this.setSize(1000,1000); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); + + addComponents(); + + this.setVisible(true); + } + + private void addComponents() + { + JTextArea textArea = new JTextArea(); + textArea.setRows(10); + textArea.setColumns(40); + + JButton button = new JButton("Select File"); + button.addActionListener(new ActionListener(){ + + @Override + public void actionPerformed(ActionEvent event) { + JFileChooser fc = new JFileChooser(); + int returnVal = fc.showOpenDialog(button); + if(returnVal == JFileChooser.APPROVE_OPTION) + { + File file = fc.getSelectedFile(); + List lines = null; + try { + lines = Files.readAllLines(file.toPath()); + } catch (IOException exception) { + // TODO Auto-generated catch block + exception.printStackTrace(); + } + + ArrayList intList = new ArrayList(); + //Convert the list of strings into a list of sorted int arrays + for(int i = 0; i < lines.size(); i++) + { + String [] strArray = lines.get(i).split(","); + int [] intArray = new int [strArray.length]; + + for(int j = 0; j < strArray.length; j++) + { + intArray[j] = Integer.parseInt(strArray[j]); + } + + Arrays.sort(intArray); + intList.add(intArray); + } + + int [] missingNumbers = findMissingNumbers(intList); + String str = ""; + for(int i = 0; i < missingNumbers.length; i++) + { + str += missingNumbers[i] + "\n"; + } + + textArea.setText(str); + } + } + }); + + this.add(button); + this.add(textArea); + } + + private int [] findMissingNumbers(ArrayList intArrays) + { + int [] ints = new int [intArrays.size()]; + + //find and return an array of missing ints + for(int i = 0; i < intArrays.size(); i++) + { + int [] arr = intArrays.get(i); + int curValue = arr[0]; + for(int j = 1; j < arr.length; j++) + { + if(arr[j] - 1 == curValue) + { + curValue = arr[j]; + } + else + { + ints[i] = curValue + 1; + } + } + } + + return ints; + } +} \ No newline at end of file diff --git a/Missing Number/src/Runner.java b/Missing Number/src/Runner.java new file mode 100644 index 0000000..a6f2e2b --- /dev/null +++ b/Missing Number/src/Runner.java @@ -0,0 +1,13 @@ + +/** + * + * @author Bryson Hair + * + */ +public class Runner +{ + public static void main(String [] args) + { + MainWindow window = new MainWindow(); + } +} \ No newline at end of file From 0009ccb0ff95b70fd4c560df91888abd660a8a2e Mon Sep 17 00:00:00 2001 From: Bryson Date: Tue, 5 Sep 2017 09:19:13 -0400 Subject: [PATCH 2/3] Add some comments --- Missing Number/src/MainWindow.java | 3 +-- Missing Number/src/Runner.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Missing Number/src/MainWindow.java b/Missing Number/src/MainWindow.java index 27ee681..fb2d221 100644 --- a/Missing Number/src/MainWindow.java +++ b/Missing Number/src/MainWindow.java @@ -16,7 +16,7 @@ import javax.swing.JTextArea; /** - * + * Window that takes in a flat file and prints out the missing numbers in a sequence * @author Bryson Hair * */ @@ -54,7 +54,6 @@ public void actionPerformed(ActionEvent event) { try { lines = Files.readAllLines(file.toPath()); } catch (IOException exception) { - // TODO Auto-generated catch block exception.printStackTrace(); } diff --git a/Missing Number/src/Runner.java b/Missing Number/src/Runner.java index a6f2e2b..e2415b3 100644 --- a/Missing Number/src/Runner.java +++ b/Missing Number/src/Runner.java @@ -1,6 +1,6 @@ /** - * + * The runner class. * @author Bryson Hair * */ From 3c7dc2daa85957b25b190d0aeda7495e338c2af2 Mon Sep 17 00:00:00 2001 From: Bryson Date: Tue, 5 Sep 2017 09:21:26 -0400 Subject: [PATCH 3/3] Removed unused imports --- Missing Number/src/MainWindow.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/Missing Number/src/MainWindow.java b/Missing Number/src/MainWindow.java index fb2d221..3a88818 100644 --- a/Missing Number/src/MainWindow.java +++ b/Missing Number/src/MainWindow.java @@ -1,4 +1,3 @@ -import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -12,7 +11,6 @@ import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; -import javax.swing.JPanel; import javax.swing.JTextArea; /**