Homework help

Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
Reply

Join Date: Jun 2005
Posts: 4
Reputation: Tenchi is an unknown quantity at this point 
Solved Threads: 0
Tenchi's Avatar
Tenchi Tenchi is offline Offline
Newbie Poster

Homework help

 
0
  #1
Jun 17th, 2005
Hi all,

I'm new here, and am currently taking an introductory programming course taught with Java 5. I really hate to come here, and bother people with my homework, but I really don't have anywhere else to turn at the moment. I have a couple of quick questions about some assignments. Any help you all could give me would be very much apreciated.

My first question concerns an assignment I have already completed, but had alot of problems with scanner commands on. We were given a shell program to copy, and modify, however there was a problem with a section of the program that I coppied not working correctly.

Here is the problem section:
  1. import java.util.Scanner;
  2. import java.text.NumberFormat;
  3.  
  4. public class Salary
  5. {
  6. public static void main (String[] args)
  7. {
  8. double currentSalary; // employee's current salary
  9. double raise; // amount of the raise
  10. double newSalary; // new salary for the employee
  11. String rating; // performance rating
  12.  
  13. Scanner scan = new Scanner(System.in);
  14.  
  15. System.out.print ("Enter the current salary: ");
  16. currentSalary = scan.nextDouble();
  17. System.out.print ("Enter the performance rating (Excellent, Good, or Poor): ");
  18. rating = scan.nextLine();

For some reason when the program ran the "rating = scan.nextLine();" was ignored. When the previous scan command "currentSalary = scan.nextDouble();" was removed from the program though the scan.nextLine(); command would work. I wound up using scan.next instead of scan.nextLine, and the program ran as intended.

I'm just curious why this happened.

My second question concerns a CodeLab(a programming Q & A website) question that I have been stuck on for quite some time. Here is the question:

A class named Clock has two instance variables: hours (type int ) and isTicking (type boolean) . Write a constructor that takes a reference to an existing Clock object as a parameter and copies that object's instance variables to the object being created.

Your task: Write a Clock constructor that makes this possible. Just write this constructor -- don't write the whole class or any code outside of the class!

For example, if cl is a reference to a Clock object, whose hours and isTicking values are 10 and false respectively, the expression new Clock(cl) results in a new Clock object, whose instance variables' values are also 10 and false.
I know how to write a constructor, my problem is using the previous instance as a parameter. I've played with this problem for hours, but haven't figured out a working constructor yet. If anyone could give me some kind of hint on what kind parameter type I should use for this it would be a big help.

Thanks in advance.
Reply With Quote Quick reply to this message  
Join Date: Jun 2004
Posts: 2,108
Reputation: server_crash is on a distinguished road 
Solved Threads: 18
server_crash server_crash is offline Offline
Postaholic

Re: Homework help

 
0
  #2
Jun 17th, 2005
On the first exercise, you should have used .next() to read the string instead of .readLine(). I'm not sure why that didn't work unless that method is only for the BufferedReader. Maybe someone can help clarify that for you.

  1. rating = scan.next();


On the second assignment, you should have something of the sort:

  1. variable 1;
  2. variable 2;
  3. public constructorName(Clock c)
  4. {
  5. this.variable1 = c.getVariable1();
  6. this.variable2 = c.getVariable2();
  7. }
  8. }

That is of course only the constructor. That should help you out a little. For me to help you out more, you'll have to show some work so I don't get yelled at for doing someones homework. One more thing, when I'm assigning those objects variables to the current objects, I'm guessing you have methods in the other class that returns the variables value.
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 4
Reputation: Tenchi is an unknown quantity at this point 
Solved Threads: 0
Tenchi's Avatar
Tenchi Tenchi is offline Offline
Newbie Poster

Re: Homework help

 
0
  #3
Jun 17th, 2005
Thank you very much. Turns out I was using the right parameter, and just forgetting the "c." infront of my getters. So it was easy to fix with your help.
Reply With Quote Quick reply to this message  
Join Date: Jun 2004
Posts: 2,108
Reputation: server_crash is on a distinguished road 
Solved Threads: 18
server_crash server_crash is offline Offline
Postaholic

Re: Homework help

 
0
  #4
Jun 18th, 2005
I was reading the api for Scanner and I could not find any readLine method. I think the reason it was allowed to compile, is somewhere down the line it inherits that method...But if it inherited it, it should be able to use it...?? I'm confused on that one. I know the readLine() method is suppose to be for the BufferedReader, but it didn't give us a syntax error.
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 4
Reputation: Tenchi is an unknown quantity at this point 
Solved Threads: 0
Tenchi's Avatar
Tenchi Tenchi is offline Offline
Newbie Poster

Re: Homework help

 
0
  #5
Jun 18th, 2005
You missunderstood my question conserning the scanner methods a bit. The problem command was nextLine, not readLine. I'll try and explain a little better.

As part of a larger program I need to scan a double and a string token, and for some reason the nextLine command would not work when proceeded by a nextDouble, however it would work if the proceeding nextDouble was removed from the program. So here are three short programs I used to test the issue, and the results...

  1. import java.util.Scanner;
  2.  
  3.  
  4. public class STest
  5. {
  6. public static void main (String[] args)
  7. {
  8. double currentSalary; // employee's current salary
  9. String rating; // performance rating
  10.  
  11. Scanner scan = new Scanner(System.in);
  12.  
  13. System.out.print ("Enter the current salary: ");
  14. currentSalary = scan.nextDouble();
  15. System.out.print ("Enter the performance rating (Excellent, Good, or Poor): ");
  16. rating = scan.nextLine();
  17. System.out.println(""+currentSalary);
  18. System.out.println(""+rating);
  19.  
  20. }
  21. }

This would scan the double, then print the double, and then end. Skipping the nextLine command in the process.

  1.  
  2. import java.util.Scanner;
  3.  
  4.  
  5. public class STest
  6. {
  7. public static void main (String[] args)
  8. {
  9.  
  10. String rating; // performance rating
  11.  
  12. Scanner scan = new Scanner(System.in);
  13.  
  14.  
  15. System.out.print ("Enter the performance rating (Excellent, Good, or Poor): ");
  16. rating = scan.next();
  17. System.out.println(""+currentSalary);
  18.  
  19.  
  20. }
  21. }

Now without the proceeding nextDouble. It will scan the string, and print it.

  1.  
  2. import java.util.Scanner;
  3.  
  4.  
  5. public class STest
  6. {
  7. public static void main (String[] args)
  8. {
  9. double currentSalary; // employee's current salary
  10. String rating; // performance rating
  11.  
  12. Scanner scan = new Scanner(System.in);
  13.  
  14. System.out.print ("Enter the current salary: ");
  15. currentSalary = scan.nextDouble();
  16. System.out.print ("Enter the performance rating (Excellent, Good, or Poor): ");
  17. rating = scan.next();
  18. System.out.println(""+currentSalary);
  19. System.out.println(""+rating);
  20.  
  21. }
  22. }

Finally, if I use next instead of nextLine. It scans both the double, and the string token, and prints both.
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 4
Reputation: Tenchi is an unknown quantity at this point 
Solved Threads: 0
Tenchi's Avatar
Tenchi Tenchi is offline Offline
Newbie Poster

Re: Homework help

 
0
  #6
Jun 19th, 2005
Opps the second program should use the nextLine method not the next method so...

  1.  
  2. import java.util.Scanner;
  3.  
  4.  
  5. public class STest
  6. {
  7. public static void main (String[] args)
  8. {
  9.  
  10. String rating; // performance rating
  11.  
  12. Scanner scan = new Scanner(System.in);
  13.  
  14.  
  15. System.out.print ("Enter the performance rating (Excellent, Good, or Poor): ");
  16. rating = scan.nextLine();
  17. System.out.println(""+currentSalary);
  18.  
  19.  
  20. }
  21. }
Reply With Quote Quick reply to this message  
Join Date: Oct 2009
Posts: 1
Reputation: haidarsss is an unknown quantity at this point 
Solved Threads: 0
haidarsss haidarsss is offline Offline
Newbie Poster
 
0
  #7
Oct 22nd, 2009
hey I am new in java and i want a program that makes the user enter his e_mail address like (user1@liu.edu.uk) and the program output it's:
country code: uk
master domain: edu
sub domain: liu
user name: user1
please can anny one made it??
Reply With Quote Quick reply to this message  
Join Date: Sep 2008
Posts: 1,657
Reputation: BestJewSinceJC is a splendid one to behold BestJewSinceJC is a splendid one to behold BestJewSinceJC is a splendid one to behold BestJewSinceJC is a splendid one to behold BestJewSinceJC is a splendid one to behold BestJewSinceJC is a splendid one to behold 
Solved Threads: 206
BestJewSinceJC BestJewSinceJC is offline Offline
Posting Virtuoso
 
0
  #8
Oct 22nd, 2009
Tenchi, your problem with the nextLine() not working is the same problem I recently explained to another user on Daniweb. I'll paste my response to him here since the problem you have is exactly identical.


"The reason it gives you trouble is because when the user enters an integer then hits enter, two things have just been entered - the integer and a "newline" which is \n. The method you are calling, "nextInt", only reads in the integer, which leaves the newline in the input stream. But calling nextLine() does read in newlines, which is why you had to call nextLine() before your code would work. You could have also called next(), which would also have read in the newline."
Out.
Reply With Quote Quick reply to this message  
Join Date: May 2006
Posts: 1,867
Reputation: ithelp is a name known to all ithelp is a name known to all ithelp is a name known to all ithelp is a name known to all ithelp is a name known to all ithelp is a name known to all 
Solved Threads: 120
ithelp's Avatar
ithelp ithelp is offline Offline
Posting Virtuoso
 
0
  #9
Oct 23rd, 2009
Originally Posted by haidarsss View Post
hey I am new in java and i want a program that makes the user enter his e_mail address like (user1@liu.edu.uk) and the program output it's:
country code: uk
master domain: edu
sub domain: liu
user name: user1
please can anny one made it??
No, this forum does not allow members doing other's homework .
Reply With Quote Quick reply to this message  
Reply

Message:




Views: 3320 | Replies: 8
Thread Tools Search this Thread



Tag cloud for Java
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC