import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
public class BabyBirth {
public void printName(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
if(numBorn <= 100){
System.out.println("Name :"+rec.get(0) +
", Gender :"+rec.get(1) +
", Num Born :"+rec.get(2));
}
}
}
public void totalBirth(FileResource fr){
int totalNumberOfBorn = 0;
int totalBoys=0;
int totalGirls=0;
int numberofboysname = 0;
int numberofgirlsname = 0;
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
totalNumberOfBorn += numBorn;
if(rec.get(1).equals("M")){
totalBoys += numBorn;
numberofboysname = numberofboysname+1;
}
else{
totalGirls += numBorn;
numberofgirlsname = numberofgirlsname+1;
}
}
System.out.println("totalNumberOfBorn : "+totalNumberOfBorn);
System.out.println("totalBoys : "+totalBoys);
System.out.println("totalGirls : "+totalGirls);
System.out.println("numberofboysname : "+numberofboysname);
System.out.println("numberofgirlsname : "+numberofgirlsname);
System.out.println(" - - - - - - - - - - - - - - - - - - - ");
}
public void testtotalBirth(){
FileResource fr = new FileResource ("testing/yob2012short.csv");
totalBirth(fr);
fr = new FileResource ("testing/yob2013short.csv");
totalBirth(fr);
fr = new FileResource ("testing/yob2014short.csv");
totalBirth(fr);
}
// getname
public String getName(int year, int rank, String gender ){
int rank1=0;
int count=0;
String name1= null;
String filename = "testing/yob"+year+"short.csv";
FileResource fr = new FileResource (filename);
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
String sex1 = (rec.get(1));
if(sex1.equals(gender)){
count = count+1;
if(count==rank){
name1 = (rec.get(0));
}
}
else{
name1= "NO NAME";
}
}
return name1;
}
public void testGetName(){
String receiveName = getName(2012,30,"M");
System.out.println("receiveName : "+receiveName);
}
public void whatIsNameInYear(String name, int year, int newyear, String gender){
int rank1=0;
int count=0;
String filename = "testing/yob"+year+"short.csv";
int rank2=0;
int count2=0;
String name2= null;
String filename1 = "testing/yob"+newyear+"short.csv";
FileResource fr = new FileResource (filename);
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
String name1 = (rec.get(0));
String sex1 = (rec.get(1));
if(sex1.equals(gender)){
count = count+1;
if(name1.equals(name)){
break;
}
}
else{
count= -1;
}
}
rank2=count;
FileResource fr2 = new FileResource(filename1);
CSVParser parser2 = fr2.getCSVParser(false);// no header file
for(CSVRecord rec2 : parser2){
String sex2 = (rec2.get(1));
if(sex2.equals(gender)){
count2 = count2+1;
System.out.println(count2);
System.out.println(rank2);
if(count2==rank2){
name2 = (rec2.get(0));
break;
}
}
else{
name2= "NO NAME";
}
}
System.out.println(name+" born in "+ year +" would be "+ name2 +" if she was born in "+ newyear);
}
public void testnewyearname(){
whatIsNameInYear("Isabella",2012,2014,"F");
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BabyNameSimplePrint1 {
public void printName(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
System.out.println("Name :"+rec.get(0) +
", Gender :"+rec.get(1) +
", Num Born :"+rec.get(2));
}
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BabyNameBirthLessThan2 {
public void printName(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
if(numBorn <= 100){
System.out.println("Name :"+rec.get(0) +
", Gender :"+rec.get(1) +
", Num Born :"+rec.get(2));
}
}
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BabyNameTotalNumBorn3 {
public void printName(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
if(numBorn <= 100){
System.out.println("Name :"+rec.get(0) +
", Gender :"+rec.get(1) +
", Num Born :"+rec.get(2));
}
}
}
public void totalBirth(FileResource fr){
int totalNumberOfBorn = 0;
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
totalNumberOfBorn += numBorn;
}
System.out.println(totalNumberOfBorn);
}
public void testtotalBirth(){
FileResource fr = new FileResource ("example-small.csv");
totalBirth(fr);
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BabyNameTotalBoyTotalGirl4 {
public void printName(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
if(numBorn <= 100){
System.out.println("Name :"+rec.get(0) +
", Gender :"+rec.get(1) +
", Num Born :"+rec.get(2));
}
}
}
public void totalBirth(FileResource fr){
int totalNumberOfBorn = 0;
int totalBoys=0;
int totalGirls=0;
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
totalNumberOfBorn += numBorn;
if(rec.get(1).equals("M")){
totalBoys += numBorn;
}
else{
totalGirls += numBorn;
}
}
System.out.println(totalNumberOfBorn);
System.out.println(totalBoys);
System.out.println(totalGirls);
}
public void testtotalBirth(){
FileResource fr = new FileResource ("data/yob2014.csv");
totalBirth(fr);
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BbNumOfName5 {
public void printName(){
FileResource fr = new FileResource();
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
if(numBorn <= 100){
System.out.println("Name :"+rec.get(0) +
", Gender :"+rec.get(1) +
", Num Born :"+rec.get(2));
}
}
}
public void totalBirth(FileResource fr){
int totalNumberOfBorn = 0;
int totalBoys=0;
int totalGirls=0;
int numberofboysname = 0;
int numberofgirlsname = 0;
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
int numBorn = Integer.parseInt(rec.get(2));
totalNumberOfBorn += numBorn;
if(rec.get(1).equals("M")){
totalBoys += numBorn;
numberofboysname = numberofboysname+1;
}
else{
totalGirls += numBorn;
numberofgirlsname = numberofgirlsname+1;
}
}
System.out.println("totalNumberOfBorn : "+totalNumberOfBorn);
System.out.println("totalBoys : "+totalBoys);
System.out.println("totalGirls : "+totalGirls);
System.out.println("numberofboysname : "+numberofboysname);
System.out.println("numberofgirlsname : "+numberofgirlsname);
System.out.println(" - - - - - - - - - - - - - - - - - - - ");
}
public void testtotalBirth(){
FileResource fr = new FileResource ("testing/yob2012short.csv");
totalBirth(fr);
fr = new FileResource ("testing/yob2013short.csv");
totalBirth(fr);
fr = new FileResource ("testing/yob2014short.csv");
totalBirth(fr);
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BBGetRank6 {
public int getRank(int year, String name, String gender ){
int rank1=0;
int count=0;
String filename = "testing/yob"+year+"short.csv";
FileResource fr = new FileResource (filename);
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
String name1 = (rec.get(0));
String sex1 = (rec.get(1));
if(sex1.equals(gender)){
count = count+1;
if(name1.equals(name)){
break;
}
}
else{
count= -1;
}
}
return count;
}
public void testRank(){
int receiveRank = getRank(2012,"Mason","M");
System.out.println("receiveRank : "+receiveRank);
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BBGetName7 {
public String getName(int year, int rank, String gender ){
int rank1=0;
int count=0;
String name1= null;
String filename = "testing/yob"+year+"short.csv";
FileResource fr = new FileResource (filename);
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
String sex1 = (rec.get(1));
if(sex1.equals(gender)){
count = count+1;
if(count==rank){
name1 = (rec.get(0));
}
}
else{
name1= "NO NAME";
}
}
return name1;
}
public void testGetName(){
String receiveName = getName(2012,2,"M");
System.out.println("receiveName : "+receiveName);
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
public class BBNewNameNewYear8 {
public void whatIsNameInYear(String name, int year, int newyear, String gender){
int rank1=0;
int count=0;
String filename = "testing/yob"+year+"short.csv";
int rank2=0;
int count2=0;
String name2= null;
String filename1 = "testing/yob"+newyear+"short.csv";
FileResource fr = new FileResource (filename);
CSVParser parser = fr.getCSVParser(false);// no header file
for(CSVRecord rec : parser){
String name1 = (rec.get(0));
String sex1 = (rec.get(1));
if(sex1.equals(gender)){
count = count+1;
if(name1.equals(name)){
break;
}
}
else{
count= -1;
}
}
rank2=count;
FileResource fr2 = new FileResource(filename1);
CSVParser parser2 = fr2.getCSVParser(false);// no header file
for(CSVRecord rec2 : parser2){
String sex2 = (rec2.get(1));
if(sex2.equals(gender)){
count2 = count2+1;
if(count2==rank2){
name2 = (rec2.get(0));
break;
}
}
else{
name2= "NO NAME";
}
}
System.out.println(name+" born in "+ year +" would be "+ name2 +" if she was born in "+ newyear);
}
public void testnewyearname(){
whatIsNameInYear("Isabella",2012,2014,"F");
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
import java.util.HashMap;
public class YearOfHighRank9 {
public int getRank(File file, String name, String gender) {
int rank = 0;
int count = 0;
FileResource fr = new FileResource(file);
CSVParser parser = fr.getCSVParser(false); // no header file
for (CSVRecord rec : parser) {
String name1 = rec.get(0);
String sex1 = rec.get(1);
if (sex1.equals(gender)) {
count++;
if (name1.equals(name)) {
return count;
}
}
}
return -1; // Return -1 if the name is not found for the specified gender
}
// Method to find the file with the lowest rank (highest rank number) for the given name and gender
public String findFileWithLowestRank(String name, String gender) {
DirectoryResource dr = new DirectoryResource();
HashMap<String, Integer> fileRanks = new HashMap<>();
// Process each file selected by the user
for (File f : dr.selectedFiles()) {
int rank = getRank(f, name, gender);
if (rank != -1) { // Ignore files where name and gender are not found
fileRanks.put(f.getName(), rank);
}
}
// Find the file with the highest rank number (lowest position)
String lowestRankFile = null;
int lowestRank = Integer.MIN_VALUE;
for (String filename : fileRanks.keySet()) {
int currentRank = fileRanks.get(filename);
if (currentRank > lowestRank) {
lowestRank = currentRank;
lowestRankFile = filename;
}
}
return lowestRankFile;
}
public void testRank() {
String lowestRankFile = findFileWithLowestRank("Sophia", "F");
if (lowestRankFile != null) {
System.out.println("File with the lowest rank (largest rank number): " + lowestRankFile);
} else {
System.out.println("Name not found in any selected file.");
}
}
}
import edu.duke.*;
import org.apache.commons.csv.*;
import java.io.File;
import java.util.HashMap;
public class GetAverageRank10 {
public int getRank(File file, String name, String gender) {
int rank = 0;
int count = 0;
FileResource fr = new FileResource(file);
CSVParser parser = fr.getCSVParser(false); // no header file
for (CSVRecord rec : parser) {
String name1 = rec.get(0);
String sex1 = rec.get(1);
if (sex1.equals(gender)) {
count++;
if (name1.equals(name)) {
return count;
}
}
}
return -1; // Return -1 if the name is not found for the specified gender
}
// Method to get the average rank across selected files
public double getAverageRank(String name, String gender) {
DirectoryResource dr = new DirectoryResource();
int totalRank = 0;
int fileCount = 0;
// Process each file selected by the user
for (File f : dr.selectedFiles()) {
int rank = getRank(f, name, gender);
if (rank != -1) { // Only add ranks if the name is found
totalRank += rank;
fileCount++;
}
}
// Calculate the average rank if the name was found in any file
if (fileCount > 0) {
return (double) totalRank / fileCount;
} else {
return -1.0; // Return -1.0 if the name is not ranked in any file
}
}
public void testAverageRank() {
double averageRank = getAverageRank("Jacob", "M");
if (averageRank != -1.0) {
System.out.println("Average rank for Mason (M) across selected files: " + averageRank);
} else {
System.out.println("Name not ranked in any selected file.");
}
}
}