Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- /* Aerij Saeed
- * CS140-002
- * Fall 2016
- * Programming Assignment 7
- * 10/24/2016
- */
- package programmingassignment7;
- import java.util.Scanner;
- import java.io.FileNotFoundException;
- import java.io.File;
- import java.io.PrintWriter;
- public class ProgrammingAssignment7 {
- final static int MAXSIZE = 50;
- public static void main(String[] args)
- {
- Scanner fin = null;
- PrintWriter fout = null;
- Scanner keyboard = new Scanner(System.in);
- String infileName;
- String outfileName;
- int index;
- String fileLine;
- String [] names = new String [MAXSIZE];
- double [] avgs = new double [MAXSIZE];
- String [] passNames = new String [MAXSIZE];
- double [] passAvgs = new double [MAXSIZE];
- int numStudents = 0;
- int numPass = 0;
- System.out.print("Enter the input file name: ");
- infileName = keyboard.next();
- fin = openInputFile(infileName);
- System.out.print("Enter the output file name: ");
- outfileName = keyboard.next();
- fout = openOutputFile(outfileName);
- numStudents = readAndLoadArray(fin, names ,avgs);
- sortArray (names, avgs, numStudents);
- numPass = passArrays(names, avgs, numStudents, passNames, passAvgs);
- fin.close();
- fout.close();
- }
- public static Scanner openInputFile(String fileName)
- {
- Scanner fin = null;
- try {
- fin = new Scanner(new File(fileName));
- } catch (FileNotFoundException error) {
- System.err.println(error);
- }
- return fin;
- }
- public static PrintWriter openOutputFile(String fileName)
- {
- PrintWriter fout = null;
- try {
- fout = new PrintWriter(fileName);
- }
- catch (FileNotFoundException e){
- System.out.println("error");
- }
- return fout;
- }
- public static double calculateAverage(String line) {
- double avg;
- int sum = 0;
- int count = 0;
- int pos = line.indexOf(",");
- while (pos >= 0) {
- String num = line.substring(0, pos);
- sum += Integer.parseInt(num);
- count++;
- line = line.substring(pos + 1);
- pos = line.indexOf(",");
- }
- avg = (double) sum / count;
- return avg;
- }
- public static int readAndLoadArray(Scanner fin, String [] names, double [] avg)
- {
- int students = 0;
- while (fin.hasNext() && students < MAXSIZE)
- {
- String line = fin.nextLine();
- int pos = line.indexOf(",");
- names[students] = line.substring (0,pos);
- line = line.substring(pos +1);
- pos = line.indexOf(",");
- line = line.substring (pos + 1);
- avg[students] = calculateAverage (line);
- students ++;
- }
- return students;
- }
- public static int passArrays(String [] names, double [] avg, int numStudents, String [] passNames, double [] passAvgs)
- {
- int passStudents = 0;
- for (int i = 0; i < avg.length; i ++)
- {
- if (avg[i] > 70){
- passNames[passStudents] = names [i];
- passAvgs[passStudents] = avg [i];
- passStudents ++;
- }
- }
- return passStudents;
- }
- public static void sortArray (String[] names, double[] avgs, int numStudents)
- {
- String smallest;
- int ios;
- String tempName;
- double tempAvg;
- for (int i = 0; i < numStudents -1; i++)
- {
- smallest = names [i];
- ios = i;
- for (int j = i+1; j < numStudents; j++)
- {
- if (smallest.compareTo (names[j]) > 0)
- {
- ios = j;
- smallest = names [j];
- }
- }
- if (i != ios)
- {
- tempName = names [i];
- tempAvg = avgs [i];
- names [i] = names [ios];
- avgs [i] = avgs [ios];
- names [ios] = tempName;
- avgs [ios] = tempAvg;
- }
- }
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement