|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On November 30 2012 22:14 Morfildur wrote:Show nested quote +On November 30 2012 20:49 icystorage wrote:I'm sorry guys but this is kind of a homework problem and got stuck. im not really good in Java but how do you fix this problem? + Show Spoiler +the scanner totally skips the 'Enter Student Name' part and directly proceeds to the Enter Student Id. Did I do something wrong? the x = null; part is just a hunch coz i thought x wasn't initialized properly. + Show Spoiler +import java.util.Scanner;
public class Driver {
public static void main(String[] args) { int choice, numberCourses, y; String x; Scanner input = new Scanner(System.in); boolean loop = true; while(loop == true){ System.out.println("Student Record Menu"); System.out.println("[1] New Record"); System.out.println("[2] Display Records"); System.out.println("[3] Quit"); choice = input.nextInt(); switch(choice) { case 1: System.out.println("New Record:"); Record record = new Record(); record.createStudent(); System.out.println("Enter Student Name:"); x = null; x = input.nextLine(); record.setName(x); System.out.println("Enter Student ID:"); x = input.nextLine(); record.setId(x); System.out.println("Enter Course:"); x = input.nextLine(); record.setCourse(x); System.out.println("Enter number of Subjects:"); numberCourses = input.nextInt(); for (int i = 1; i < numberCourses; i++) { Course course = new Course(); System.out.println("For Subject " + i); System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); System.out.println("Enter Description:"); x = input.nextLine(); course.setDesc(x); System.out.println("Enter Subject Units:"); y = input.nextInt(); course.setUnits(y); System.out.println("Enter Grade:"); y = input.nextInt(); course.setGrade(y); record.addCourse(course); } System.out.println("Done Adding..."); case 2: case 3: loop = false; } }
}
}
the entire Driver code. A simple google search for "java nextLine skips" gave me the correct solution so i suggest next time you'll just try googling it first. As opposed to what you might expect from a method called "nextLine", it doesn't return the whole line but only the part until the EOL characters (basically the enter key). You have to call another input.nextLine() after reading each line, i.e.: System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); input.nextLine(); // <-- don't need to store output
...
Eh imo the nextLine() method works exactly as you'd expect. It returns all the characters till the next newline character. If it didn't behave this way, you'd end up wondering what happens with a call to nextLine() after something like a call to nextInt().
E.g. if the input were //this is your problem icystorage 1\n //or \r\n Next line\n
and you call nextInt() to advance to scanner beyond 1 - what should nextLine() return? It should be the empty string, because otherwise that character just gets lost.
I mean if the input were
1 2\n Next line\n
And you called nextInt() than nextLine(), you'd expect nextLine() to return 2 otherwise it'd be even more confusing.
|
On November 30 2012 22:43 teamamerica wrote:Show nested quote +On November 30 2012 22:14 Morfildur wrote:On November 30 2012 20:49 icystorage wrote:I'm sorry guys but this is kind of a homework problem and got stuck. im not really good in Java but how do you fix this problem? + Show Spoiler +the scanner totally skips the 'Enter Student Name' part and directly proceeds to the Enter Student Id. Did I do something wrong? the x = null; part is just a hunch coz i thought x wasn't initialized properly. + Show Spoiler +import java.util.Scanner;
public class Driver {
public static void main(String[] args) { int choice, numberCourses, y; String x; Scanner input = new Scanner(System.in); boolean loop = true; while(loop == true){ System.out.println("Student Record Menu"); System.out.println("[1] New Record"); System.out.println("[2] Display Records"); System.out.println("[3] Quit"); choice = input.nextInt(); switch(choice) { case 1: System.out.println("New Record:"); Record record = new Record(); record.createStudent(); System.out.println("Enter Student Name:"); x = null; x = input.nextLine(); record.setName(x); System.out.println("Enter Student ID:"); x = input.nextLine(); record.setId(x); System.out.println("Enter Course:"); x = input.nextLine(); record.setCourse(x); System.out.println("Enter number of Subjects:"); numberCourses = input.nextInt(); for (int i = 1; i < numberCourses; i++) { Course course = new Course(); System.out.println("For Subject " + i); System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); System.out.println("Enter Description:"); x = input.nextLine(); course.setDesc(x); System.out.println("Enter Subject Units:"); y = input.nextInt(); course.setUnits(y); System.out.println("Enter Grade:"); y = input.nextInt(); course.setGrade(y); record.addCourse(course); } System.out.println("Done Adding..."); case 2: case 3: loop = false; } }
}
}
the entire Driver code. A simple google search for "java nextLine skips" gave me the correct solution so i suggest next time you'll just try googling it first. As opposed to what you might expect from a method called "nextLine", it doesn't return the whole line but only the part until the EOL characters (basically the enter key). You have to call another input.nextLine() after reading each line, i.e.: System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); input.nextLine(); // <-- don't need to store output
...
Eh imo the nextLine() method works exactly as you'd expect. It returns all the characters till the next newline character. If it didn't behave this way, you'd end up wondering what happens with a call to nextLine() after something like a call to nextInt(). E.g. if the input were //this is your problem icystorage 1\n //or \r\n Next line\n and you call nextInt() to advance to scanner beyond 1 - what should nextLine() return? It should be the empty string, because otherwise that character just gets lost. I mean if the input were 1 2\n Next line\n And you called nextInt() than nextLine(), you'd expect nextLine() to return 2 otherwise it'd be even more confusing.
Well, my definition of "Line" includes the line ending as part of the line. From the first character in the buffer until and including the \n|\r\n. After a call to nextInt, the call to nextLine should from my point of view return just the \n|\r\n. That is why i would expect nextLine to return everything, not needing another call to nextLine to finish the line i requested in the previous nextLine and forcing programmers to use nextLine twice for each line.
However, it's the same behaviour in Java as in C, so i know that it's common to do it the way Java has implemented it but i still don't agree with it... though there are lots of language design decisions in all programming languages that i don't agree with, so it's just a minor point 
|
thanks for the replies guys
@Morfildur I'm sorry, i only go to TL as a last resort. it's my first time encountering this problem and seriously, it didn't enter my mind what the proper keywords were for a google search. sorry and thank you!
|
On November 30 2012 23:01 Morfildur wrote:Show nested quote +On November 30 2012 22:43 teamamerica wrote:On November 30 2012 22:14 Morfildur wrote:On November 30 2012 20:49 icystorage wrote:I'm sorry guys but this is kind of a homework problem and got stuck. im not really good in Java but how do you fix this problem? + Show Spoiler +the scanner totally skips the 'Enter Student Name' part and directly proceeds to the Enter Student Id. Did I do something wrong? the x = null; part is just a hunch coz i thought x wasn't initialized properly. + Show Spoiler +import java.util.Scanner;
public class Driver {
public static void main(String[] args) { int choice, numberCourses, y; String x; Scanner input = new Scanner(System.in); boolean loop = true; while(loop == true){ System.out.println("Student Record Menu"); System.out.println("[1] New Record"); System.out.println("[2] Display Records"); System.out.println("[3] Quit"); choice = input.nextInt(); switch(choice) { case 1: System.out.println("New Record:"); Record record = new Record(); record.createStudent(); System.out.println("Enter Student Name:"); x = null; x = input.nextLine(); record.setName(x); System.out.println("Enter Student ID:"); x = input.nextLine(); record.setId(x); System.out.println("Enter Course:"); x = input.nextLine(); record.setCourse(x); System.out.println("Enter number of Subjects:"); numberCourses = input.nextInt(); for (int i = 1; i < numberCourses; i++) { Course course = new Course(); System.out.println("For Subject " + i); System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); System.out.println("Enter Description:"); x = input.nextLine(); course.setDesc(x); System.out.println("Enter Subject Units:"); y = input.nextInt(); course.setUnits(y); System.out.println("Enter Grade:"); y = input.nextInt(); course.setGrade(y); record.addCourse(course); } System.out.println("Done Adding..."); case 2: case 3: loop = false; } }
}
}
the entire Driver code. A simple google search for "java nextLine skips" gave me the correct solution so i suggest next time you'll just try googling it first. As opposed to what you might expect from a method called "nextLine", it doesn't return the whole line but only the part until the EOL characters (basically the enter key). You have to call another input.nextLine() after reading each line, i.e.: System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); input.nextLine(); // <-- don't need to store output
...
Eh imo the nextLine() method works exactly as you'd expect. It returns all the characters till the next newline character. If it didn't behave this way, you'd end up wondering what happens with a call to nextLine() after something like a call to nextInt(). E.g. if the input were //this is your problem icystorage 1\n //or \r\n Next line\n and you call nextInt() to advance to scanner beyond 1 - what should nextLine() return? It should be the empty string, because otherwise that character just gets lost. I mean if the input were 1 2\n Next line\n And you called nextInt() than nextLine(), you'd expect nextLine() to return 2 otherwise it'd be even more confusing. Well, my definition of "Line" includes the line ending as part of the line. From the first character in the buffer until and including the \n|\r\n. After a call to nextInt, the call to nextLine should from my point of view return just the \n|\r\n. That is why i would expect nextLine to return everything, not needing another call to nextLine to finish the line i requested in the previous nextLine and forcing programmers to use nextLine twice for each line. However, it's the same behaviour in Java as in C, so i know that it's common to do it the way Java has implemented it but i still don't agree with it... though there are lots of language design decisions in all programming languages that i don't agree with, so it's just a minor point 
Wait I don't get what you said - doesn't nextLine() behave the way you'd expect it to? Minus the fact it actually strips the new line characters, it does return all the characters in the buffer until the next new line character (in this case, there are no characters in the buffer till that newline). I'm a little confused as to how this wouldn't require a 2nd call to nextLine().
I'm sure I'm just missing your point so I'd appreciate if you could clarify.
|
On December 01 2012 00:05 teamamerica wrote:Show nested quote +On November 30 2012 23:01 Morfildur wrote:On November 30 2012 22:43 teamamerica wrote:On November 30 2012 22:14 Morfildur wrote:On November 30 2012 20:49 icystorage wrote:I'm sorry guys but this is kind of a homework problem and got stuck. im not really good in Java but how do you fix this problem? + Show Spoiler +the scanner totally skips the 'Enter Student Name' part and directly proceeds to the Enter Student Id. Did I do something wrong? the x = null; part is just a hunch coz i thought x wasn't initialized properly. + Show Spoiler +import java.util.Scanner;
public class Driver {
public static void main(String[] args) { int choice, numberCourses, y; String x; Scanner input = new Scanner(System.in); boolean loop = true; while(loop == true){ System.out.println("Student Record Menu"); System.out.println("[1] New Record"); System.out.println("[2] Display Records"); System.out.println("[3] Quit"); choice = input.nextInt(); switch(choice) { case 1: System.out.println("New Record:"); Record record = new Record(); record.createStudent(); System.out.println("Enter Student Name:"); x = null; x = input.nextLine(); record.setName(x); System.out.println("Enter Student ID:"); x = input.nextLine(); record.setId(x); System.out.println("Enter Course:"); x = input.nextLine(); record.setCourse(x); System.out.println("Enter number of Subjects:"); numberCourses = input.nextInt(); for (int i = 1; i < numberCourses; i++) { Course course = new Course(); System.out.println("For Subject " + i); System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); System.out.println("Enter Description:"); x = input.nextLine(); course.setDesc(x); System.out.println("Enter Subject Units:"); y = input.nextInt(); course.setUnits(y); System.out.println("Enter Grade:"); y = input.nextInt(); course.setGrade(y); record.addCourse(course); } System.out.println("Done Adding..."); case 2: case 3: loop = false; } }
}
}
the entire Driver code. A simple google search for "java nextLine skips" gave me the correct solution so i suggest next time you'll just try googling it first. As opposed to what you might expect from a method called "nextLine", it doesn't return the whole line but only the part until the EOL characters (basically the enter key). You have to call another input.nextLine() after reading each line, i.e.: System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); input.nextLine(); // <-- don't need to store output
...
Eh imo the nextLine() method works exactly as you'd expect. It returns all the characters till the next newline character. If it didn't behave this way, you'd end up wondering what happens with a call to nextLine() after something like a call to nextInt(). E.g. if the input were //this is your problem icystorage 1\n //or \r\n Next line\n and you call nextInt() to advance to scanner beyond 1 - what should nextLine() return? It should be the empty string, because otherwise that character just gets lost. I mean if the input were 1 2\n Next line\n And you called nextInt() than nextLine(), you'd expect nextLine() to return 2 otherwise it'd be even more confusing. Well, my definition of "Line" includes the line ending as part of the line. From the first character in the buffer until and including the \n|\r\n. After a call to nextInt, the call to nextLine should from my point of view return just the \n|\r\n. That is why i would expect nextLine to return everything, not needing another call to nextLine to finish the line i requested in the previous nextLine and forcing programmers to use nextLine twice for each line. However, it's the same behaviour in Java as in C, so i know that it's common to do it the way Java has implemented it but i still don't agree with it... though there are lots of language design decisions in all programming languages that i don't agree with, so it's just a minor point  Wait I don't get what you said - doesn't nextLine() behave the way you'd expect it to? Minus the fact it actually strips the new line characters, it does return all the characters in the buffer until the next new line character (in this case, there are no characters in the buffer till that newline). I'm a little confused as to how this wouldn't require a 2nd call to nextLine(). I'm sure I'm just missing your point so I'd appreciate if you could clarify.
It doesn't strip the EOL characters, it leaves them in the buffer, so you have to call nextLine twice for every line. If it would read the whole line including EOL characters you would only need to call it once per line, which would result in nextLine always returning the real next line, not alternating the line, the EOL, then the line again, then the EOL again, etc.
|
Is Scala worth learning?
I already know C++, C# and Java. I ask cuz there's a sweet course from the creator himself being offered on Coursera.
|
On December 01 2012 02:36 Fyodor wrote: Is Scala worth learning?
I already know C++, C# and Java. I ask cuz there's a sweet course from the creator himself being offered on Coursera.
Will it land you a job? I don't know, I'm only in my second year myself. Is functional programming awesome? Is the course awesome? Is Scala awesome? Yes! Scala is similar to what you know (Object Oriented) yet different enough (Functional) that it requires a different way of thinking.
In the past year Scala has grown to me to become my favourite language. Of course, the nice thing about Coursera is participation, or your degree thereof, is entirely voluntary.
|
On December 01 2012 03:16 MichaelEU wrote:Show nested quote +On December 01 2012 02:36 Fyodor wrote: Is Scala worth learning?
I already know C++, C# and Java. I ask cuz there's a sweet course from the creator himself being offered on Coursera. Will it land you a job? I don't know, I'm only in my second year myself. Is functional programming awesome? Is the course awesome? Is Scala awesome? Yes! Scala is similar to what you know (Object Oriented) yet different enough (Functional) that it requires a different way of thinking. In the past year Scala has grown to me to become my favourite language. Of course, the nice thing about Coursera is participation, or your degree thereof, is entirely voluntary.
- It most likely won't land you a job. - Functional programming is awesome and i recommend everyone to learn it, though i would recommend scheme or lisp for that. I learned scheme and it taught me a lot, eventhough i never actually used it again after playing around with it for a few days. - No idea. - Not a fan of Scala myself but learning new languages always gives you new insight into languages you already know so it's never wrong. If you have the opportunity, learn it.
|
The answer to questions in the form of "Is X worth learning?" is always yes. If you have the opportunity and the time to learn a new thing, you should.
^^^^ Life philosophy advice ^^^^
vvvv Programmer career advice vvvv
Learning a new programming language is always valuable. As a general rule, you're only going to get really intimately familiar with the ones you work with professionally (or on a really long term hobby project), but having a passing familiarity with a lot of different programming paradigms can give you very valuable perspective when you're thinking about how to solve a problem. Also, didn't we all start doing this because our dads showed us QBASIC or something and we thought learning to program was super fun? Learning to program is super fun! We should all do more of it!
|
On December 01 2012 01:51 Morfildur wrote:Show nested quote +On December 01 2012 00:05 teamamerica wrote:On November 30 2012 23:01 Morfildur wrote:On November 30 2012 22:43 teamamerica wrote:On November 30 2012 22:14 Morfildur wrote:On November 30 2012 20:49 icystorage wrote:I'm sorry guys but this is kind of a homework problem and got stuck. im not really good in Java but how do you fix this problem? + Show Spoiler +the scanner totally skips the 'Enter Student Name' part and directly proceeds to the Enter Student Id. Did I do something wrong? the x = null; part is just a hunch coz i thought x wasn't initialized properly. + Show Spoiler +import java.util.Scanner;
public class Driver {
public static void main(String[] args) { int choice, numberCourses, y; String x; Scanner input = new Scanner(System.in); boolean loop = true; while(loop == true){ System.out.println("Student Record Menu"); System.out.println("[1] New Record"); System.out.println("[2] Display Records"); System.out.println("[3] Quit"); choice = input.nextInt(); switch(choice) { case 1: System.out.println("New Record:"); Record record = new Record(); record.createStudent(); System.out.println("Enter Student Name:"); x = null; x = input.nextLine(); record.setName(x); System.out.println("Enter Student ID:"); x = input.nextLine(); record.setId(x); System.out.println("Enter Course:"); x = input.nextLine(); record.setCourse(x); System.out.println("Enter number of Subjects:"); numberCourses = input.nextInt(); for (int i = 1; i < numberCourses; i++) { Course course = new Course(); System.out.println("For Subject " + i); System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); System.out.println("Enter Description:"); x = input.nextLine(); course.setDesc(x); System.out.println("Enter Subject Units:"); y = input.nextInt(); course.setUnits(y); System.out.println("Enter Grade:"); y = input.nextInt(); course.setGrade(y); record.addCourse(course); } System.out.println("Done Adding..."); case 2: case 3: loop = false; } }
}
}
the entire Driver code. A simple google search for "java nextLine skips" gave me the correct solution so i suggest next time you'll just try googling it first. As opposed to what you might expect from a method called "nextLine", it doesn't return the whole line but only the part until the EOL characters (basically the enter key). You have to call another input.nextLine() after reading each line, i.e.: System.out.println("Enter Subject Code:"); x = input.nextLine(); course.setCode(x); input.nextLine(); // <-- don't need to store output
...
Eh imo the nextLine() method works exactly as you'd expect. It returns all the characters till the next newline character. If it didn't behave this way, you'd end up wondering what happens with a call to nextLine() after something like a call to nextInt(). E.g. if the input were //this is your problem icystorage 1\n //or \r\n Next line\n and you call nextInt() to advance to scanner beyond 1 - what should nextLine() return? It should be the empty string, because otherwise that character just gets lost. I mean if the input were 1 2\n Next line\n And you called nextInt() than nextLine(), you'd expect nextLine() to return 2 otherwise it'd be even more confusing. Well, my definition of "Line" includes the line ending as part of the line. From the first character in the buffer until and including the \n|\r\n. After a call to nextInt, the call to nextLine should from my point of view return just the \n|\r\n. That is why i would expect nextLine to return everything, not needing another call to nextLine to finish the line i requested in the previous nextLine and forcing programmers to use nextLine twice for each line. However, it's the same behaviour in Java as in C, so i know that it's common to do it the way Java has implemented it but i still don't agree with it... though there are lots of language design decisions in all programming languages that i don't agree with, so it's just a minor point  Wait I don't get what you said - doesn't nextLine() behave the way you'd expect it to? Minus the fact it actually strips the new line characters, it does return all the characters in the buffer until the next new line character (in this case, there are no characters in the buffer till that newline). I'm a little confused as to how this wouldn't require a 2nd call to nextLine(). I'm sure I'm just missing your point so I'd appreciate if you could clarify. It doesn't strip the EOL characters, it leaves them in the buffer, so you have to call nextLine twice for every line. If it would read the whole line including EOL characters you would only need to call it once per line, which would result in nextLine always returning the real next line, not alternating the line, the EOL, then the line again, then the EOL again, etc.
nextInt() doesn't strip EOL characters. nextLine() does, and leaves the buffer at the beginning of next line. You don't need to call nextLine() 2x for each line - you need to call it once for each EOL. The situation here is that nextInt() leaves the EOL charater in the buffer, so calling nextLine() the first time advances past that. I can't speak to how C does it but ya.
|
On December 01 2012 05:34 AmericanUmlaut wrote: The answer to questions in the form of "Is X worth learning?" is always yes. If you have the opportunity and the time to learn a new thing, you should.
^^^^ Life philosophy advice ^^^^
vvvv Programmer career advice vvvv
Learning a new programming language is always valuable. As a general rule, you're only going to get really intimately familiar with the ones you work with professionally (or on a really long term hobby project), but having a passing familiarity with a lot of different programming paradigms can give you very valuable perspective when you're thinking about how to solve a problem. Also, didn't we all start doing this because our dads showed us QBASIC or something and we thought learning to program was super fun? Learning to program is super fun! We should all do more of it! I used to be a Philosophy student and I can say with a good degree of confidence that there are some things which are of absolutely no value to learn.
It's happened fairly often that after reading a book or an essay I think to myself "Well my life has been very clearly made worse by me having read this." Happened enough that I quit.
Thanks to the others for the input too. How about Scala compared to "heterogeneous parallel programming" again on Coursera which teaches CUDA C++ and OpenCL.
I'm not a professional programmer right now and don't mind gambling on something which might be valuable in the future.
|
|
The archive is still up. I'm my own boss right now so I don't care too greatly about the certificate.
|
Anyone know a codecademy-like site for C++?
|
On December 01 2012 17:30 Fyodor wrote:The archive is still up. I'm my own boss right now so I don't care too greatly about the certificate. Well good, enjoy then Probably no better way to get an introduction to scala.
|
On December 01 2012 17:47 Arnstein wrote: Anyone know a codecademy-like site for C++?
Don't think there is one. I searched for one a while ago. The reason codeacademy has lessons on languages like Python and Javascript is because they are interpretted scripted languages, so implementing interactive lessons with them is much simpler than languages like C++
|
Hey, I just started coding but I keep messing up the syntax for else, elif and if statements in Python. Especially when to whitespace and where to put and, or and not. Could someone give me an example? Would be very much appreciated because I just can't figure it out :/ Also, are there other sites like CodeAcademy? I really like the "Review" parts where you have to solve these puzzles and code yourself with help ofcourse, but everything else is kinda boring to me.
Edit: Figured it out with the help of google. Still don't fully understand what whitespace does but atleast my code works. I believe I had no problems in Java with if and else statements.
|
Scala is interesting in that it meshes object and functional programming. I love the language but could never find a use for it in any of my projects (professional or personal). I'd say it's fairly dated though : if I recall correctly, when I learnt it, it was still based on Java 1.4, with Java 1.6 already out.
I would recommend F# over Scala for something "serious" (it's still marginal, but Microsoft is kind of pushing behind it). If it's just for an approach to functional programming, maybe going for a "purer" language would be a better idea (Haskell, one of the ML family languages, Scheme...).
|
Java: Is it possible to send output across the network to every user within a linked a list? If yes, how? I've tried some google search, but I found nothing.
|
On December 03 2012 05:56 darkness wrote: Java: Is it possible to send output across the network to every user within a linked a list? If yes, how? I've tried some google search, but I found nothing. for each loop? I'm not sure I understand at what level your problem is.
|
|
|
|