-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMajorDataAnalysis.java
More file actions
135 lines (129 loc) · 5.16 KB
/
Copy pathMajorDataAnalysis.java
File metadata and controls
135 lines (129 loc) · 5.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import java.util.Scanner;
import java.io.File;
public class MajorDataAnalysis {
public static void main(String[] args) {
//collect user input
Scanner in = new Scanner(System.in);
System.out.println("Enter file name");
String userfilename = in.nextLine();
System.out.println("Enter number of years");
int yearnum = in.nextInt();
//call methods
StudentTotal(userfilename,yearnum);
GenderPercent(userfilename,yearnum);
PercentChange(userfilename, yearnum);
/*While analyzing the data for the engineering major, I observed that male students outnumber female students by over 4:1
I also observed that the number of male students is increasing at a greater rate than the number of female students.
I do not know enough about this field to explain this trend
My 2 questions:
What is the breakdown of gender and what are the percentage increases for the specific engineering disciplines (chemical, mechanical, etc.)?
Why is male student growth outpacing female student growth even as Women in STEM initiatives have become mainstream?
*/
}
public static void StudentTotal(String filename, int years) {
try {
File file = new File(filename);
Scanner fileread = new Scanner(file);
int total = 0;
//adds each year's total # of students to a grand total
for (int i=0; i<years; i++) {
total += Integer.parseInt(fileread.next().replaceAll(",", ""));
}
//output total
System.out.println("The total number of students over " + years + " years is " + total);
} catch(Exception e) {
System.out.println(e);
}
}
public static void GenderPercent(String filename, int years) {
try {
File file = new File(filename);
Scanner fileread = new Scanner(file);
double total = 0.0;
//finds total # of students over ten years in order to calculate percentages
for (int i=0; i<years; i++) {
total += Integer.parseInt(fileread.next().replaceAll(",", ""));
}
//finds total number of students in first gender of data
String gender = fileread.next().replaceAll(",", "");
double gendertotal = 0.0;
for (int j = 0; j<years;j++) {
gendertotal += Integer.parseInt(fileread.next().replaceAll(",", ""));
}
//calculate percent of first gender
double genpercent = gendertotal/total;
System.out.println("Total number of " + gender + " students: " + gendertotal);
//take inverse to find percent of second gender
double inversepercent = 1.0 - genpercent;
System.out.println("Percent of " + gender + " : " + genpercent);
if(gender.equals("Male")) {
int gt2 = (int)(total*inversepercent);
System.out.print("Total number of Female students: "+ gt2 );
System.out.println("Percent of Female: " + inversepercent);
} else {
int gt2 = (int)(total*inversepercent);
System.out.println("Total number of male students: " + gt2);
System.out.println("Percent of Male: " + inversepercent);
}
}catch(Exception e) {
System.out.println(e);
}
}
public static void PercentChange(String filename, int years) {
try {
File file = new File(filename);
Scanner fileread = new Scanner(file);
double second = Integer.parseInt(fileread.next().replaceAll(",", ""));
double initial = second;
double last = 0;
double first;
double totalpercent = 0.0;
//adds together the percent change year-over-year for each year available
for(int i = 0; i<years-1;i++) {
first = second;
second = Integer.parseInt(fileread.next().replaceAll(",", ""));
last = second;
totalpercent += (second/first)-1.0;
}
//calculates total percent change
double totalchange = last/initial;
System.out.println("Total percent change:" + (totalchange-1.0));
//calculates avg percent change
double avgpercent = totalpercent/years;
System.out.println("Total average percent change: " + avgpercent);
//uses same method to calculate percent change (total and average) with both genders and outputs
String gendername = fileread.next().replaceAll(",", "");
System.out.print(gendername + " average percent change: ");
second = Integer.parseInt(fileread.next().replaceAll(",", ""));
initial = second;
totalpercent = 0.0;
for(int i = 0; i<years-1;i++) {
first = second;
second = Integer.parseInt(fileread.next().replaceAll(",", ""));
last = second;
totalpercent += (second/first)-1.0;
}
totalchange = last/initial;
double avgpercent2 = totalpercent/years;
System.out.println(avgpercent2);
System.out.println(gendername + " total percent change: " + (totalchange-1.0));
gendername = fileread.next().replaceAll(",", "");
System.out.print(gendername + " average percent change: ");
second = Integer.parseInt(fileread.next().replaceAll(",", ""));
initial = second;
totalpercent = 0.0;
for(int i = 0; i<years-1;i++) {
first = second;
second = Integer.parseInt(fileread.next().replaceAll(",", ""));
last = second;
totalpercent += (second/first)-1.0;
}
totalchange = last/initial;
double avgpercent3 = totalpercent/years;
System.out.println(avgpercent3);
System.out.println(gendername + " total percent change:" + (totalchange - 1.0));
}catch (Exception e) {
System.out.println(e);
}
}
}