Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- /*
- ==========================================
- ONYEN: jqpublic
- NAME: John Q. Public
- ASSIGNMENT: A7
- CLASS: COMP 110-004 fall 2010
- INSTRUCTOR: Stotts
- ==========================================
- */
- class HW7 {
- public static void main (String[] args) throws IOException {
- int i;
- String line;
- // get two run line arguments (2 integers)
- int NSTUDENTS = Integer.parseInt(args[0]);
- int NGRADES = Integer.parseInt(args[1]);
- if (NSTUDENTS <= 0){
- System.out.println("Number of students must be greater than 0");
- return;
- }
- if (NGRADES <= 0){
- System.out.println("Number of grades must be greater than 0");
- return;
- }
- // create an array of Student objects
- Student[] people = new Student[NSTUDENTS];
- Student stu;
- Prompter prompter;
- // create the Student objects and fill them
- // use a for loop
- for ( i = 0; i < NSTUDENTS; i++ ) {
- // access each slot in the array
- int year;
- // create a new student object
- stu = new Student(NGRADES);
- prompter = new Prompter();
- // fill the student object with info
- // typed at the keyboard
- line = prompter.prompt("Input first name: ");
- stu.setFname(line); // of course, you have to get the line
- // from the user, convert to num if needed
- line = prompter.prompt("Input last name: ");
- stu.setLname(line);
- line = prompter.prompt("Input major: ");
- stu.setMajor(line);
- line = prompter.prompt("Input year: ");
- year = Integer.parseInt(line);
- if ( year <= 0 || year > 5){
- System.out.println("Year must be 1 through 5");
- return;
- }
- stu.setYear(year);
- // store the filled student object in the current array slot
- people[i] = stu;
- }
- // go into a forever loop
- while(true){
- // show the menu
- System.out.println("Select an action to perform: "
- + "\n 0 - quit"
- + "\n 1 - show class roster (showing grade average for each student)"
- + "\n 2 - add an exam grade for all students"
- + "\n 3 - show student information"
- + "\n 4 - show class average"
- + "\n 5 - show overall average for a specific major"
- + "\n 6 - show overall average for a specific year"
- + "\n 7 - show class \"distribution\"... how many A's, B's, C's, D's, F's");
- // get user selection as keyboard input
- prompter = new Prompter();
- int userSelection = Integer.parseInt(prompter.prompt(""));
- int count;
- // switch statement on user selection
- switch (userSelection) {
- case 0:
- System.out.println("quitting...");
- System.exit(0); // ends the program
- break;
- case 1:
- System.out.println("show class roster");
- doShowRoster(people);
- break;
- case 2:
- System.out.println("add grade to each student");
- doAddGrades(people);
- break;
- case 3:
- String name = prompter.prompt("Enter student name \"first last\": ");
- for (i = 0; i < NSTUDENTS; i++){
- if (name.equalsIgnoreCase(people[i].getName())){
- System.out.println(people[i].getName()
- + ", " + people[i].getMajor()
- + ", " + people[i].getYear()
- + "\n" + people[i].getGrades()
- + "\n" + people[i].getAverage());
- }
- }
- break;
- case 4:
- double average = 0;
- for (i = 0; i < NSTUDENTS; i++){
- average += people[i].getAverage();
- }
- average = average / NSTUDENTS;
- System.out.println("Class average: " + average);
- break;
- case 5:
- String major = prompter.prompt("Enter which major: ");
- average = 0;
- count = 0;
- for (i = 0; i < NSTUDENTS; i++){
- if (major.equalsIgnoreCase(people[i].getMajor())){
- average += people[i].getAverage();
- count += 1;
- }
- }
- average = average / count;
- System.out.println("Average for " + major + ": " + average);
- break;
- case 6:
- int year = Integer.parseInt(prompter.prompt("Enter which year: "));
- if ( year <= 0 || year > 5){
- System.out.println("Year must be 1 through 5");
- break;
- }
- average = 0;
- count = 0;
- for (i = 0; i < NSTUDENTS; i++){
- if (year == people[i].getYear()){
- average += people[i].getAverage();
- count += 1;
- }
- }
- average = average / count;
- System.out.println("Average for " + year + ": " + average);
- break;
- case 7:
- int nA = 0;
- int nB = 0;
- int nC = 0;
- int nD = 0;
- int nF = 0;
- double grade;
- for (i = 0; i < NSTUDENTS; i++){
- grade = people[i].getAverage();
- if (grade >= 90){
- nA += 1;
- }
- else if (grade >= 80){
- nB += 1;
- }
- else if (grade >= 70){
- nC += 1;
- }
- else if (grade >= 60){
- nD += 1;
- }
- else {
- nF += 1;
- }
- }
- System.out.println("A's: " + nA + " B's: " + nB + " C's: " + nC + " D's: " + nD + " F's: " + nF);
- break;
- default:
- System.out.println("bad selection");
- break;
- }
- }
- // end of the forever loop body
- }
- public static void doShowRoster(Student[] all) { // stub
- // you may need more parameters
- int i;
- for (i = 0; i < all.length; i++ ){
- System.out.println(all[i].getName() + " " + all[i].getAverage());
- }
- }
- public static void doAddGrades (Student[] all) throws NumberFormatException, IOException { // stub
- // you may need more parameters
- Prompter prompter = new Prompter();
- int i;
- for (i = 0; i < all.length; i++){
- double grade = Double.parseDouble(prompter.prompt("Enter grade for " + all[i].getName() +": "));
- if (grade > 0.00 || grade < 100.00){
- all[i].addGrade(grade);
- }
- else {
- System.out.println("Must be between 0.00 and 100.00");
- i -= 1;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment