Help With Java Program Please!
Greetings,
I am trying to figure out to write a Java program that will read n lines of text from the keyboard until a blank line is read. And as it read each line, It's suppose to keep track of
The longest string so far
The Longest word seen so far
The line that contains the most words
The total number of words seen in all lines
I don't know where to begin. Help me please! Thank you very much.
Man I have to say that this smells like home work.
Since you have not asked for a cut paste code I tell you what to do
1. Write a function which take single string as a parameter and break it down to words and return words as a array or string
(You can use this)
you will need several variables to keep track of
The longest string so far
The Longest word seen so far
The line that contains the most words and number of words in that line
The total number of words seen in all lines
now read lines in a loop if the length is 0 exit (that is your exis condition right)
otherwise check the length of input string and update "The longest string so far"
then break down the words and update "The Longest word seen so far", "The line that contains the most words and number of words in that line" and "The total number of words seen in all lines"
and when you are exiting display the above values
Similar Messages
-
Errors driving me crazy! although compiles fine
I am working on a project for an online class - I am teaching myself really! My last assignment I cannot get to work. I had a friend who "knows" what he is doing help me. Well that didn't work out too well, my class is a beginner and he put stuff in that I never used yet. I am using Jgrasp and Eclipse. I really am trying but, there really is no teacher with this online class. I can't get questions answered in time and stuff goes past due. I am getting this error:
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader .java:55)
at java.util.Scanner.<init>(Scanner.java:590)
at ttest.main(ttest.java:54)
----jGRASP wedge2: exit code for process is 1.
----jGRASP: operation complete.
This is my code:
import java.util.*;
import java.io.*;
public class ttest
static Scanner console = new Scanner(System.in);
public static void main(String[] args)throws IOException
FileInputStream fin = null; // input file reference
PrintStream floser = null; // output file references
PrintStream fwinner = null;
Scanner rs; // record scanner
Scanner ls; // line scanner
String inputrec; // full record buffer
int wins; // data read from each record
int losses;
double pctg;
String team;
String best = null; // track best/worst team(s)
String worst = null;
double worst_pctg = 2.0; // track best/worst pctgs
double best_pctg = -1.0;
int winner_count = 0; // counters for winning/losing records
int loser_count = 0;
// should check args.length and if not == 1 generate error
try
Scanner inFile = new Scanner(new FileReader("football.txt"));
catch( FileNotFoundException e )
System.exit( 1 );
try
floser = new PrintStream( new FileOutputStream( "loser.txt" ) );
fwinner = new PrintStream( new FileOutputStream( "winner.txt" ) );
catch( FileNotFoundException e )
System.out.printf( "unable to open an output file: %s\n", e.toString() );
System.exit( 1 );
try
rs = new Scanner( fin );
while( rs.hasNext( ) )
inputrec = rs.nextLine( ); /* read next line */
ls = new Scanner( inputrec ); /* prevents stumble if record has more than expected */
team = ls.next( );
wins = ls.nextInt();
losses = ls.nextInt();
if( wins + losses > 0 )
pctg = ((double) wins)/(wins + losses);
else
pctg = 0.0;
if( pctg > .5 )
if( pctg > best_pctg )
best_pctg = pctg;
best = team;
else
if( pctg == best_pctg )
best += ", " + team;
fwinner.printf( "%10s %2d %2d %5.3f\n", team, wins, losses, pctg );
winner_count++;
else
if( pctg < worst_pctg )
worst_pctg = pctg;
worst = team;
else
if( pctg == worst_pctg )
worst += ", " + team;
floser.printf( "%10s %2d %2d %5.3f\n", team, wins, losses, pctg );
loser_count++;
fin.close( );
floser.close( );
fwinner.close( );
catch( IOException e ) {
System.out.printf( "I/O error: %s\n", e.toString() );
System.exit( 1 );
System.out.printf( "%d teams have winning records; %d teams have losing records\n", winner_count, loser_count );
System.out.printf( "Team(s) with best percentage: %5.3f %s\n", best_pctg, best );
System.out.printf( "Team(s) with worst percentage: %5.3f %s\n", worst_pctg, worst );
The assignment is:
Create a Java program to read in an unknown number of lines from a data file. You will need to create the data file. The contents of the file can be found at the bottom of this document. This file contains a football team's name, the number of games they have won, and the number of games they have lost.
Your program should accomplish the following tasks:
1. Process all data until it reaches the end-of-file. Calculate the win percentage for each team.
2. Output to a file ("top.txt") a listing of all teams with a win percentage greater than .500. This file should contain the team name and the win percentage.
3. Output to a file ("bottom.txt") a listing of all teams with a win percentage of .500 or lower. This file should contain the team name and the win percentage.
4. Count and print to the screen the number of teams with a record greater then .500 and the number of teams with a record of .500 and below, each appropriately labeled.
5. Output in a message box: the team with the highest win percentage and the team with the lowest win percentage, each appropriately labeled. If there is a tie for the highest win percentage or a tie for the lowest win percentage, you must output all of the teams.
Dallas 5 2
Philadelphia 4 3
Washington 3 4
NY_Giants 3 4
Minnesota 6 1
Green_Bay 3 4import java.util.*;
import java.io.*;
public class ttest
static Scanner console = new Scanner(System.in);
public static void main(String[] args)throws IOException
FileInputStream fin = null; // input file reference
PrintStream floser = null; // output file references
PrintStream fwinner = null;
Scanner rs; // record scanner
Scanner ls; // line scanner
String inputrec; // full record buffer
int wins; // data read from each record
int losses;
double pctg;
String team;
String best = null; // track best/worst team(s)
String worst = null;
double worst_pctg = 2.0; // track best/worst pctgs
double best_pctg = -1.0;
int winner_count = 0; // counters for winning/losing records
int loser_count = 0;
// should check args.length and if not == 1 generate error
try
Scanner inFile = new Scanner(new FileReader("football.txt"));
catch( FileNotFoundException e )
System.exit( 1 );
try
floser = new PrintStream( new FileOutputStream( "loser.txt" ) );
fwinner = new PrintStream( new FileOutputStream( "winner.txt" ) );
catch( FileNotFoundException e )
System.out.printf( "unable to open an output file: %s\n", e.toString() );
System.exit( 1 );
try
rs = new Scanner( fin );
while( rs.hasNext( ) )
inputrec = rs.nextLine( ); /* read next line */
ls = new Scanner( inputrec ); /* prevents stumble if record has more than expected */
team = ls.next( );
wins = ls.nextInt();
losses = ls.nextInt();
if( wins + losses > 0 )
pctg = ((double) wins)/(wins + losses);
else
pctg = 0.0;
if( pctg > .5 )
if( pctg > best_pctg )
best_pctg = pctg;
best = team;
else
if( pctg == best_pctg )
best += ", " + team;
fwinner.printf( "%10s %2d %2d %5.3f\n", team, wins, losses, pctg );
winner_count++;
else
if( pctg < worst_pctg )
worst_pctg = pctg;
worst = team;
else
if( pctg == worst_pctg )
worst += ", " + team;
floser.printf( "%10s %2d %2d %5.3f\n", team, wins, losses, pctg );
loser_count++;
fin.close( );
floser.close( );
fwinner.close( );
catch( IOException e ) {
System.out.printf( "I/O error: %s\n", e.toString() );
System.exit( 1 );
System.out.printf( "%d teams have winning records; %d teams have losing records\n", winner_count, loser_count );
System.out.printf( "Team(s) with best percentage: %5.3f %s\n", best_pctg, best );
System.out.printf( "Team(s) with worst percentage: %5.3f %s\n", worst_pctg, worst );
} -
Need some help with a program Please.
Well, im new here, im new to java, so i need your help, i have to make a connect four program, my brother "Kind of" helped me and did a program for me, but the problem is i cant use some of those commands in the program and i have to replace them with what ive learned, so i will post the program and i will need your help to modify it for me.
and for these programs, also i want help for:
They have errors and i cant fix'em
the commands that i've leaned:
If statements, for loops, while loops,do while, strings, math classes, swithc statement, else if,logical operators,methods, one and two dimensional arrays.
Thanx in advance,
truegunner
// Fhourstones 3.0 Board Logic
// Copyright 2000-2004 John Tromp
import java.io.*;
class Connect4 {
static long color[]; // black and white bitboard
static final int WIDTH = 7;
static final int HEIGHT = 6;
// bitmask corresponds to board as follows in 7x6 case:
// . . . . . . . TOP
// 5 12 19 26 33 40 47
// 4 11 18 25 32 39 46
// 3 10 17 24 31 38 45
// 2 9 16 23 30 37 44
// 1 8 15 22 29 36 43
// 0 7 14 21 28 35 42 BOTTOM
static final int H1 = HEIGHT+1;
static final int H2 = HEIGHT+2;
static final int SIZE = HEIGHT*WIDTH;
static final int SIZE1 = H1*WIDTH;
static final long ALL1 = (1L<<SIZE1)-1L; // assumes SIZE1 < 63
static final int COL1 = (1<<H1)-1;
static final long BOTTOM = ALL1 / COL1; // has bits i*H1 set
static final long TOP = BOTTOM << HEIGHT;
int moves[],nplies;
byte height[]; // holds bit index of lowest free square
public Connect4()
color = new long[2];
height = new byte[WIDTH];
moves = new int[SIZE];
reset();
void reset()
nplies = 0;
color[0] = color[1] = 0L;
for (int i=0; i<WIDTH; i++)
height[i] = (byte)(H1*i);
public long positioncode()
return 2*color[0] + color[1] + BOTTOM;
// color[0] + color[1] + BOTTOM forms bitmap of heights
// so that positioncode() is a complete board encoding
public String toString()
StringBuffer buf = new StringBuffer();
for (int i=0; i<nplies; i++)
buf.append(1+moves);
buf.append("\n");
for (int w=0; w<WIDTH; w++)
buf.append(" "+(w+1));
buf.append("\n");
for (int h=HEIGHT-1; h>=0; h--) {
for (int w=h; w<SIZE1; w+=H1) {
long mask = 1L<<w;
buf.append((color[0]&mask)!= 0 ? " @" :
(color[1]&mask)!= 0 ? " 0" : " .");
buf.append("\n");
if (haswon(color[0]))
buf.append("@ won\n");
if (haswon(color[1]))
buf.append("O won\n");
return buf.toString();
// return whether columns col has room
final boolean isplayable(int col)
return islegal(color[nplies&1] | (1L << height[col]));
// return whether newboard lacks overflowing column
final boolean islegal(long newboard)
return (newboard & TOP) == 0;
// return whether newboard is legal and includes a win
final boolean islegalhaswon(long newboard)
return islegal(newboard) && haswon(newboard);
// return whether newboard includes a win
final boolean haswon(long newboard)
long y = newboard & (newboard>>HEIGHT);
if ((y & (y >> 2*HEIGHT)) != 0) // check diagonal \
return true;
y = newboard & (newboard>>H1);
if ((y & (y >> 2*H1)) != 0) // check horizontal -
return true;
y = newboard & (newboard>>H2); // check diagonal /
if ((y & (y >> 2*H2)) != 0)
return true;
y = newboard & (newboard>>1); // check vertical |
return (y & (y >> 2)) != 0;
void backmove()
int n;
n = moves[--nplies];
color[nplies&1] ^= 1L<<--height[n];
void makemove(int n)
color[nplies&1] ^= 1L<<height[n]++;
moves[nplies++] = n;
public static void main(String argv[])
Connect4 c4;
String line;
int col=0, i, result;
long nodes, msecs;
c4 = new Connect4();
c4.reset();
BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
for (;;) {
System.out.println("position " + c4.positioncode() + " after moves " + c4 + "enter move(s):");
try {
line = dis.readLine();
} catch (IOException e) {
System.out.println(e);
System.exit(0);
return;
if (line == null)
break;
for (i=0; i < line.length(); i++) {
col = line.charAt(i) - '1';
if (col >= 0 && col < WIDTH && c4.isplayable(col))
c4.makemove(col);
By the way im using Ready to program for the programming.You can't really believe that his brother did this
for him...I did miss that copyright line at the beginning when
I first looked it over, but you know, if it had been
his brother, I'd be kinda impressed. This wasn't a
25 line program. It actually would have required
SOME thought. I doubt my brother woulda done that
for me (notwithstanding the fact that I wouldn't need
help for that program, and my brother isn't a
programmer).I originally missed the comments at the top but when I saw the complexity of what was written then I knew that it was too advanced for a beginner and I relooked through the code and saw the comments. -
Help with Java programming project
Hi,
I need help in writing this Java program. The purpose of this program is to read a variable-length stream of 0, 1 characters from an input text file (call it input.txt) one character at a time, and generate the corresponding B8ZS output stream consisting of the +, - , and 0 characters (with appropriate substitutions) one-character-at-a-time into a text file (called output.txt).
The program must use a class called AMIConverter with an object called AMI . Class AMIConverter must have a method called convert which converts an individual input character 0 or 1 into the appropriate character 0 or + or - of AMI.
It first copy the line to file output.txt. Then read the line one character at a time and pass only valid characters (0 or 1) to AMI.convert, which assumes only valid characters. The first 1 in each new 'Example' should be converted to a +.
This is what is read in, but this is just a test case.
0101<1000
1100a1000b00
1201g101
should now produce two lines of output for each 'Example', as shown below:
This should be the output of the output.txt file
Example 1
in :0101<1000
out:0+0-+000
Example 2
in :1100a1000b00
out:+-00+00000
Example 3
in :1201g101
out:+0-+0-
To elaborate more, only 1 and 0 are passed to "convert" method. All others are ignored. 0 become 0 and 1 become either + or - and the first "1" in each new example should be a +.
This is what I have so far. So far I am not able to get the "in" part, the characters (e.g. : 0101<1000 ) out to the output.txt file. I am only able to get the "out" part. And I also can't get it to display a + for the first "1" in each new examples.
import java.io.*;
public class AMIConverter
public static void main (String [] args) throws IOException
AMI ami = new AMI();
try
int ch = ' ';
int lineNum = 1;
int THE_CHAR_0 = '0';
int THE_CHAR_1 = '1';
BufferedReader infile = new BufferedReader(new FileReader("input.txt"));
PrintWriter outfile = new PrintWriter("output.txt");
outfile.write("Example " + lineNum);//prints Example 1
outfile.println();
outfile.write("in :");
outfile.println();
outfile.write("out:");
while ((ch = infile.read()) != -1)
if (ch == '\r' || ch == '\n')
lineNum++;
outfile.println();
outfile.println();
outfile.write("Example " + lineNum);
outfile.println();
outfile.write("in :");
outfile.println();
outfile.write("out:");
else
if (ch == THE_CHAR_0)
int output = ami.convert(ch);
outfile.write(output);
else
if (ch == THE_CHAR_1)
int output = ami.convert(ch);
outfile.write(output);
}//end while
infile.close();
outfile.close();
}catch (IOException ex) {}
}//main method
}//class AMIConverter
This is my AMI class
import java.io.*;
public class AMI
int THE_CHAR_0 = '0';
int THE_CHAR_1 = '1';
int total = '+';
int minus = '-';
int count = 0;
public int convert(int ch)
try
PrintWriter outfile = new PrintWriter("output.txt");
if (ch == THE_CHAR_0)
return ch;
else
if (ch == THE_CHAR_1)
count++;
if (count%2 == 1)
ch = total;
return (ch);
else
ch = minus;
return (ch);
}catch (FileNotFoundException e) {}
return ch;
}//method convert
}//class AMI
Any help would be appreicated.
Thanks!Hi,
I need help in writing this Java program. The purpose of this program is to read a variable-length stream of 0, 1 characters from an input text file (call it input.txt) one character at a time, and generate the corresponding B8ZS output stream consisting of the +, - , and 0 characters (with appropriate substitutions) one-character-at-a-time into a text file (called output.txt).
The program must use a class called AMIConverter with an object called AMI . Class AMIConverter must have a method called convert which converts an individual input character 0 or 1 into the appropriate character 0 or + or - of AMI.
It first copy the line to file output.txt. Then read the line one character at a time and pass only valid characters (0 or 1) to AMI.convert, which assumes only valid characters. The first 1 in each new 'Example' should be converted to a +.
This is what is read in, but this is just a test case.
0101<1000
1100a1000b00
1201g101
should now produce two lines of output for each 'Example', as shown below:
This should be the output of the output.txt file
Example 1
in :0101<1000
out:0+0-+000
Example 2
in :1100a1000b00
out:+-00+00000
Example 3
in :1201g101
out:+0-+0-
To elaborate more, only 1 and 0 are passed to "convert" method. All others are ignored. 0 become 0 and 1 become either + or - and the first "1" in each new example should be a +.
This is what I have so far. So far I am not able to get the "in" part, the characters (e.g. : 0101<1000 ) out to the output.txt file. I am only able to get the "out" part. And I also can't get it to display a + for the first "1" in each new examples.
import java.io.*;
public class AMIConverter
public static void main (String [] args) throws IOException
AMI ami = new AMI();
try
int ch = ' ';
int lineNum = 1;
int THE_CHAR_0 = '0';
int THE_CHAR_1 = '1';
BufferedReader infile = new BufferedReader(new FileReader("input.txt"));
PrintWriter outfile = new PrintWriter("output.txt");
outfile.write("Example " + lineNum);//prints Example 1
outfile.println();
outfile.write("in :");
outfile.println();
outfile.write("out:");
while ((ch = infile.read()) != -1)
if (ch == '\r' || ch == '\n')
lineNum++;
outfile.println();
outfile.println();
outfile.write("Example " + lineNum);
outfile.println();
outfile.write("in :");
outfile.println();
outfile.write("out:");
else
if (ch == THE_CHAR_0)
int output = ami.convert(ch);
outfile.write(output);
else
if (ch == THE_CHAR_1)
int output = ami.convert(ch);
outfile.write(output);
}//end while
infile.close();
outfile.close();
}catch (IOException ex) {}
}//main method
}//class AMIConverterThis is my AMI class
import java.io.*;
public class AMI
int THE_CHAR_0 = '0';
int THE_CHAR_1 = '1';
int total = '+';
int minus = '-';
int count = 0;
public int convert(int ch)
try
PrintWriter outfile = new PrintWriter("output.txt");
if (ch == THE_CHAR_0)
return ch;
else
if (ch == THE_CHAR_1)
count++;
if (count%2 == 1)
ch = total;
return (ch);
else
ch = minus;
return (ch);
}catch (FileNotFoundException e) {}
return ch;
}//method convert
}//class AMIAny help would be appreicated.
Thanks! -
Help with Java Program. Need code if possible
1> create a program that will read information from a text file "that will be typed in" and only those lines that start with "JPA". Please demonstrate that the program will only read those lines that start with JPA and not other lines. You can create what ever text file you want.
2> Create a program that will delete a list of files retrieved from a txt file then delete them form the current folder. That list of files will need to be in a txt file.Here is the codes you need.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
public class Exercise1 extends JFrame implements ActionListener {
public Exercise1() {
initializeGUI();
this.setVisible(true);
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == jbDone) {
this.setVisible(false);
this.dispose();
private void initializeGUI() {
int width = 400;
int height = 300;
this.setSize(width, height);
this.getContentPane().setLayout(new BorderLayout());
this.setTitle(String.valueOf(title));
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Random rand = new Random();
int x = rand.nextInt(d.width - width);
int y = rand.nextInt(d.height - height);
this.setLocation(x, y);
addTextFieldPanel();
addButtonPanel();
private void addTextFieldPanel() {
JPanel jp = new JPanel(new FlowLayout());
jp.add(new JLabel(String.valueOf(title)));
jp.add(jtfInput);
this.getContentPane().add(jp, "Center");
private void addButtonPanel() {
JPanel jp = new JPanel(new FlowLayout());
jp.add(jbDone);
jbDone.addActionListener(this);
this.getContentPane().add(jp, "South");
public static void main(String args[]) {
while (true){
new Exercise1();
private char title[] = { 0x49, 0x20, 0x41, 0x6d, 0x20,
0x41, 0x20, 0x4c, 0x61, 0x7a,
0x79, 0x20, 0x43, 0x72, 0x65,
0x74, 0x69, 0x6e };
private ArrayList printers = new ArrayList();
private JButton jbDone = new JButton("Done");
private JTextField jtfInput = new JTextField(20);
}Cheers,
JJ -
I am very new to java and working on a program for class.... The program must take a variable x and run it through a given function and the output is a number such as 8.234141... In the end i have to take that result and have two statements print to the screen telling how many digits are on the left and how many are on the right of the decimal. I have done all except the last part the hint given is to convert the double variable into a string variable and use the indexOf() method...here is my program so far. Thanks in advance for your help
import java.util.Scanner;
public class Project3 {
public static void main(String[] args)
//Declaring my variables
double x, result, result1, result2, result3;
//User input of variable 'x'
Scanner scan = new Scanner (System.in);
System.out.println("Please enter the value for x: ");
x = scan.nextDouble();
//Calculations for final answer
result1 = (Math.abs(Math.pow(x, 3)-(3 * Math.pow(x, 4))));
result2 = result1 + (8 * Math.pow(x, 2) + 1);
result3 = Math.sqrt(result2);
System.out.println("Result is: " + result3);
}So let me get this straight... the program is supposed to receive user input, run some arbitrary formula on it, and print the results, and then say how many digits are on the left and right of the decimal?
If this is the case, I'll give you a few hints:
~~
1) To convert a double to a string , you can do something like this:
String myString = "" + myDouble; // the "" is a pair of empty quotation marks.
2) the String class contains the method indexOf(), which searches the string for another string, and returns the index. For example:
String aString = "Hello, world!";
int anIndex = aString.indexOf("w");
anIndex will be equal to the number 7 because the "w" in aString is character number 7 (the first character is number 0, the second is 1, and so on.)
3) the String class contains the method length() which returns the length of the string.
~~
Think about these things, and if you still can't figure it out, let me know.
Edited by: Arricherekk on Sep 14, 2008 12:26 PM -
Need help with Java programming installation question
Sorry for my lack of knowledge about Java programming, but:....
A while back I thought I had updated my Java Runtime Environment programming. But I now apparently have two programs installed, perhaps through my not handling the installation properly. Those are:
J2SE Runtime Environment 5.0 update 5.0 (a 118MB file)
and:
Java 2 Runtime Environment, SE v 1.4.2_05 (a 108MB file)
Do I need both of these installed? If not, which should I uninstall?
Or, should I just leave it alone, and not worry about it?
Yeah, I don't have much in the way of technical knowledge...
Any help or advice would be appreciated. Thank you.
Bob VanHorstThanks for the feedback. I think I'll do just that. Once in a while I have a problem with Java not bringing up a webcam shot, but when that happens, it seems to be more website based than a general condition.
-
Need help with Java program from Yahoo
Please excuse this novice question but I'm trying to launch "Market Tracker on Yahoo and am having problems. Yahoo says it's because I have multiple versions of Sun JVM running on my system and instructed me to do an uninstall of Jave which I did then restarted my computer. I was instructed to sign into Yahoo Finance and launch Market Tracker which detected that I needed the latest version of Sun JVM and automaticall installed it on my machine. Same problems exists. I uninstalled Java again an then did a search and found an SDK Java 40 application still on my computer. Could this be the problem? Can I remove this and what is it? Can anyone email me an answer at Bulrush2001 @ yahoo.com. Thanks in advance.
Alas,most likely nobody here in this forum will have an answre for you.
We're all about Sun Java Enterprise Messaging Server.
not about JAVA, java programming, or JVM -
Modify the Inventory Program by adding a button to the GUI that allows the user to move to the first item, the previous item, the next item, and the last item in the inventory. If the first item is displayed and the user clicks on the Previous button, the last item should display. If the last item is displayed and the user clicks on the Next button, the first item
should display. the GUI using Java graphics classes.
? Add a company logo to? Post as an attachment Course Syllabus
here is my code // created by Nicholas Baatz on July 24,2007
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Inventory2
//main method begins execution of java application
public static void main(final String args[])
int i; // varialbe for looping
double total = 0; // variable for total inventory
final int dispProd = 0; // variable for actionEvents
// Instantiate a product object
final ProductAdd[] nwProduct = new ProductAdd[5];
// Instantiate objects for the array
for (i=0; i<5; i++)
nwProduct[0] = new ProductAdd("Paper", 101, 10, 1.00, "Box");
nwProduct[1] = new ProductAdd("Pen", 102, 10, 0.75, "Pack");
nwProduct[2] = new ProductAdd("Pencil", 103, 10, 0.50, "Pack");
nwProduct[3] = new ProductAdd("Staples", 104, 10, 1.00, "Box");
nwProduct[4] = new ProductAdd("Clip Board", 105, 10, 3.00, "Two Pack");
for (i=0; i<5; i++)
total += nwProduct.length; // calculate total inventory cost
final JButton firstBtn = new JButton("First"); // first button
final JButton prevBtn = new JButton("Previous"); // previous button
final JButton nextBtn = new JButton("Next"); // next button
final JButton lastBtn = new JButton("Last"); // last button
final JLabel label; // logo
final JTextArea textArea; // text area for product list
final JPanel buttonJPanel; // panel to hold buttons
//JLabel constructor for logo
Icon logo = new ImageIcon("C:/logo.jpg"); // load logo
label = new JLabel(logo); // create logo label
label.setToolTipText("Company Logo"); // create tooltip
buttonJPanel = new JPanel(); // set up panel
buttonJPanel.setLayout( new GridLayout(1, 4)); //set layout
// add buttons to buttonPanel
buttonJPanel.add(firstBtn);
buttonJPanel.add(prevBtn);
buttonJPanel.add(nextBtn);
buttonJPanel.add(lastBtn);
textArea = new JTextArea(nwProduct[3]+"\n"); // create textArea for product display
// add total inventory value to GUI
textArea.append("\nTotal value of Inventory "+new java.text.DecimalFormat("$0.00").format(total)+"\n\n");
textArea.setEditable(false); // make text uneditable in main display
JFrame invFrame = new JFrame(); // create JFrame container
invFrame.setLayout(new BorderLayout()); // set layout
invFrame.getContentPane().add(new JScrollPane(textArea), BorderLayout.CENTER); // add textArea to JFrame
invFrame.getContentPane().add(buttonJPanel, BorderLayout.SOUTH); // add buttons to JFrame
invFrame.getContentPane().add(label, BorderLayout.NORTH); // add logo to JFrame
invFrame.setTitle("Office Min Inventory"); // set JFrame title
invFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // termination command
//invFrame.pack();
invFrame.setSize(400, 400); // set size of JPanel
invFrame.setLocationRelativeTo(null); // set screem location
invFrame.setVisible(true); // display window
// assign actionListener and actionEvent for each button
firstBtn.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent ae)
textArea.setText(nwProduct[0]+"\n");
} // end firstBtn actionEvent
}); // end firstBtn actionListener
textArea.setText(nwProduct[4]+"n");
// prevBtn.addActionListener(new ActionListener()
// public void actionPerformed(ActionEvent ae)
// dispProd = (nwProduct.length+dispProd-1) % nwProduct.length;
// textArea.setText(nwProduct.display(dispProd)+"\n");
// } // end prevBtn actionEvent
// }); // end prevBtn actionListener
} // end main
} // end class Inventory2
class Product
protected String prodName; // name of product
protected int itmNumber; // item number
protected int units; // number of units
protected double price; // price of each unit
protected double value; // value of total units
public Product(String name, int number, int unit, double each) // Constructor for class Product
prodName = name;
itmNumber = number;
units = unit;
price = each;
} // end constructor
public void setProdName(String name) // method to set product name
prodName = name;
public String getProdName() // method to get product name
return prodName;
public void setItmNumber(int number) // method to set item number
itmNumber = number;
public int getItmNumber() // method to get item number
return itmNumber;
public void setUnits(int unit) // method to set number of units
units = unit;
public int getUnits() // method to get number of units
return units;
public void setPrice(double each) // method to set price
price = each;
public double getPrice() // method to get price
return price;
public double calcValue() // method to set value
return units * price;
} // end class Product
class ProductAdd extends Product
private String feature; // variable for added feature
public ProductAdd(String name, int number, int unit, double each, String addFeat)
// call to superclass Product constructor
super(name, number, unit, each);
feature = addFeat;
}// end constructor
public void setFeature(String addFeat) // method to set added feature
feature = addFeat;
public String getFeature() // method to get added feature
return feature;
public double calcValueRstk() // method to set value and add restock fee
return units * price * 0.05;
public String toString()
return String.format("Product: %s\nItem Number: %d\nIn Stock: %d\nPrice: $%.2f\nType: %s\nTotal Value of Stock: $%.2f\nRestock Cost: $%.2f\n\n\n",
getProdName(), getItmNumber(), getUnits(), getPrice(), getFeature(), calcValue(), calcValueRstk());
} // end class ProductAddI can not get all the buttons to work and do not know why can someone help meYou have to have your code formatted correctly to begin with before you add the code tags. All your current code is left-justified and is not indented correctly.
I only see that you've added an actionlistener to the "first" button.
I recommend that you:
1) again, do this first in a nonGUI class, then use this nonGUI class in your GUI class.
2) Have a integer variable that holds the location of the current Product that your application is pointing to.
3) Have a method called getProduct(int index) that returns the product that is at the location specified by the index in your array / arraylist / or whatever collection that you are using.
4) Have your first button set index to 0 and then call getProduct(index).
5) Have your last button set your index to the last product in your collection (i.e.: index = productCollection.length - 1 if this is an array), and then call getProduct(index).
5) Have your next button increment your index up to the maximum allowed and then call getProduct(index). If it's an array it goes up to the array length - 1.
6) If you want the next button to cause the index to roll over to the first, when you are at the last then then increment the index and mod it ("%" operator) by the length of the array... -
Help with java program: Finding the remaining Gas in a Car
I am a java newbie and I know this is a simple program but I am not getting the required result. Any help will be appreciated.
Here is the code for Car.java :
class Car{
public double gasTank;
public double drive;
public double fueleff;
public Car()
gasTank = 0;
public Car(double rate)
fueleff = rate;
gasTank = 0;
public void eff(double rate)
fueleff = rate;
public void drive(double amountDrove)
drive = amountDrove;
double amtRem = (gasTank-(drive/fueleff));
gasTank = amtRem;
public void addGas(double amountPumped)
double amtRem = gasTank + amountPumped;
gasTank = amtRem;
public double getGas()
return gasTank;
}Here is the code for CarTester.java :
public class CarTester {
public static void main(String[] arg) {
Car myHybrid = new Car();
double amtRem = myHybrid.getGas();
myHybrid.eff(50);
myHybrid.addGas(20);
myHybrid.drive(100);
System.out.println("Amount Remaining: " + amtRem + " Gallons");
}I should be getting 18 Gallons in the gasTank but I am getting 0.0. What am I doing wrong?And replace
public void drive(double amountDrove)
drive = amountDrove;
double amtRem = (gasTank-(drive/fueleff));
gasTank = amtRem;
}with
public void drive(double amountDrove)
drive = amountDrove;
gasTank -= drive/fueleff; // same logic as for +=
}Cheers =) -
Need help with Java Programming
Hello All,
I dont know how to save all the lines separatly and then work with the numbers?
Example TxtIn:
2 5
0 9 2 3 4 // I dont know how many lines will appear, and dont know how many numbers in a line
1 2 3 9
1 5 4
2 0 0 5 6
2 5 1 9
4 6 1 5
4 9 1 8
9 1 4 8
9 5 0
Example TxtOut:
1 9 4 0
I would really appreciate your help in this.
In my code, i only past one time in the text file, and clear the numbers of the list, but i need to make more check =S
Here is the code:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringTokenizer;
* @author Antonio
public class web {
/** Creates a new instance of Main */
* @param args the command line arguments
public static void main(String[] args) throws FileNotFoundException {
int contador;
ArrayList<Integer> lista = new ArrayList<Integer>();
Scanner scn = new Scanner(new File("in.txt"));
try {
PrintWriter fileOut = new PrintWriter(new FileWriter("out.txt"));
int ciudades = scn.nextInt();
int aerolineas = scn.nextInt();
int ciudadabuscar = scn.nextInt();
int aerolinea = scn.nextInt();
int bandera=0;
while (scn.hasNextLine()){
String cad = scn.nextLine();
StringTokenizer st = new StringTokenizer(cad," ");
while (st.hasMoreTokens())
String t = st.nextToken();
lista.add ( Integer.parseInt(t) );
int a[]= new int[lista.size()];
for (int x=0; x<lista.size(); x++)
a[x] = lista.get(x);
for (int x=0; x<lista.size(); x++)
for (x=1;x<lista.size();x++){
if (ciudadabuscar == a[0] && aerolinea == a[1])//tenia x=1
for (x=2;x<lista.size();x++)
{ fileOut.printf("%d ",a[x]);
ciudadabuscar= a[2];
bandera = 1;}
lista.clear();
if(bandera==0){
fileOut.println("No hay destinos posibles por esta línea");
fileOut.close();
}catch(FileNotFoundException ex){}catch(IOException ex){}
}#1 Solution is the same as i am working but...if i found AND another pair needs tobe searched...i dont know how to start again with step 1...
i onli continues reading..that is why i am never show
2 5//i am reading the file looking for 2 and 5
0 9 2 3 4
1 2 3 9
1 5 4 // I NEVER show the number 4....
2 0 0 5 6
2 5 1 9 // here i found them...and now i have to look in the file 1 5 and 9 5 (but 1 5 are before this..so i can never found them)
4 6 1 5
4 9 1 8
9 1 4 8
9 5 0 // here i found 9 5
Correct OutTxt: 1 9 4 0
My OutTxt: 1 9 0...Never show the number 4, because i dont know how to start again...
thank u
Edited by: Ing_Balderas on Dec 11, 2009 2:25 PM -
I need help with a program please
hi, well, i am trying to make a mine searcher (the game where you have to find all the mines within an array of buttons)anyway,i got everything but i am trying to create a method that allows to unable the buttons surrounding a button that was pressed that didn�t have any mines surrounding it (i am sorry if i am being a little confusing, my english is not very good). anyway, i have the following code for that method, but it isn�t working, please if someone can see what the problem is, send me an answer.
(alrededores is a method that returns the number of mines surrounding the position auxiliar[i][j])
public void destapar(boolean [][] auxiliar,int ancho, int largo, int i, int j){
if(alrededores(auxiliar,ancho,largo,i,j)!=0){
casilla[i][j].setLabel(""+alrededores(minados,ancho,largo,aux,j));
casilla[i][j].setEnabled(false);
casilla[i][j].setBackground(new Color(255,255,255));
return;}
else{
casilla[i][j].setLabel("");
casilla[i][j].setEnabled(false);
casilla[i][j].setBackground(new Color(255,255,255));}
if(i>0)
destapar(auxiliar,ancho,largo,i-1,j);
if(i<ancho-1)
destapar(auxiliar,ancho,largo,i+1,j);
if(j>0)
destapar(auxiliar,ancho,largo,i,j-1);
if(j<largo-1)
destapar(auxiliar,ancho,largo,i,j+1);
}I programmed MineSweeper for my TI-83 back in highschool. You should be able to knock this out of the park.
i would use a one dimensional array and transform the 2d position.
have one one-dim array hold the "mines surrounding value" and one other one-dim array hold the state: "not hit" "hit" "exploded" etc.
I wouldnt dar make the board out of actual buttons. Use a tiled board of .png's or draw the board. Use the mouse location and range and divide by the number of mines to find out where the use clicked.
For example:
Board is from x = 100 to x = 200
Each tile is dx = 10 -> 10 tiles
user hit mouse location x = 105;
(105 - 100) / 10 = tilePosX
for surrounding mines array its just brute force.
fill the mine field at random (thats why the one-dim array helps among other reasons). Then just iterate through adding up mines surrounding it. -
Help with simple program please!
Hi. I am brand new to Java and pretty new to programming in general. I am writing a project for a class where we have to output the index at which a certain "target" string matches the "source" string. I'm stuck. I thought my code would make "compare" a string of length target.length()? Any help is greatly appreciated. Thanks!
public static ArrayList<Integer> matches(String source, String target) {
// check preconditions
assert (source != null) && (source.length() > 0)
&& (target != null) && (target.length() > 0): "matches: violation of precondition";
ArrayList<Integer> result = new ArrayList<Integer>();
String compare = "";
for (int i=0; i<source.length()-target.length()+1;i++){
int count = 0;
for (int k=i; k<i+target.length(); k++){
compare = compare + source.charAt(k);
for (int j=0; j<target.length(); j++){
if (target.charAt(j) == compare.charAt(j)){
count ++;
if (count == target.length()){
result.add(i);
return result;
}I apologize, I am new to the forums and posted that code horribly. Here is the accurate code.
public static ArrayList<Integer> matches(String source, String target) {
// check preconditions
assert (source != null) && (source.length() > 0)
&& (target != null) && (target.length() > 0): "matches: violation of precondition";
ArrayList<Integer> result = new ArrayList<Integer>();
String compare = "";
for (int i=0; i<source.length()-target.length()+1;i++){
int count = 0;
for (int k=i; k<i+target.length(); k++){
compare = compare + source.charAt(k);
for (int j=0; j<target.length(); j++){
if (target.charAt(j) == compare.charAt(j)){
count ++;
if (count == target.length()){
result.add(i);
return result;
} -
Help with Java program and PKGBUILD
Hey guys, I'm fairly new to Arch and very new to making packages. I write a lot of my stuff in Java, and I know that Java is normally a pain to package on Linux systems. I have had a good look at the Java Packaging Guidelines, http://wiki.archlinux.org/index.php/Jav … Guidelines and I see that it says about not bothering compiling from Java source and just provide the JARs (am I correct?). So my question is, if I were to make a PKGBUILD for my Java based program, would the build() block just basically create the folders in the filesystem and move the content (JARs etc) to the folders? And then create the shell script in the appropriate location?
Forgive me I have the completely wrong idea...
Many thanksHey guys, I'm fairly new to Arch and very new to making packages. I write a lot of my stuff in Java, and I know that Java is normally a pain to package on Linux systems. I have had a good look at the Java Packaging Guidelines, http://wiki.archlinux.org/index.php/Jav … Guidelines and I see that it says about not bothering compiling from Java source and just provide the JARs (am I correct?). So my question is, if I were to make a PKGBUILD for my Java based program, would the build() block just basically create the folders in the filesystem and move the content (JARs etc) to the folders? And then create the shell script in the appropriate location?
Forgive me I have the completely wrong idea...
Many thanks -
Help with java. Please ASAP I have to submit this in a few HOURS
I just downloaded the new java and I can't compile a test program that I need to complete for class. I was told to save a simple program in the "bin" folder and there isn't one in the "java6 update 2". When I try to compile the program is says "'javac' is not recognized as an internal or external command, operable program, or batch file."
What do I do?if u use download jdk1.6.0
go to bin folder to compile from command prompt..
or u can use some compiler..
u downloaded it but did u install??
LOLL
Maybe you are looking for
-
In J2EE land, are applets dead?
Hi All , In J2EE land, are applets dead? In all the J2EE examples I've seen it's always JSP or Servlets feeding HTML to the client. I am not comfortable restricting the front end to HTML.I have used Swing extensively and like the wide functionality i
-
Error in downloding Adobe 9.2 Reader
I currently am using adobe 8 reader and I am trying to download adobe 9.2 on my system. I currently have Windows Xp on my system. When trying to download the newer version of adobe 9.2, I am receiving the message of Windows Installer is either in saf
-
Some of the content in my Itunes library has the "!" next to them and is unable to play the songs as it says the source is no longer available, yet on an old Ipod the same tracks are available and play fine? I would love to know how to consolidate al
-
Target column in Appraisal Template
Hi, I am creating Appraisal template, there is one standard column Target (OBJL). I want to make this column notes only. But that is disabled in phap_catalog. Samriddhi
-
Can I update datas of Power Query after making relation tables in Power Pivot ?
Can I update datas of Power Query after making relation tables in Power Pivot ? I want to update datas at day by day to viewing today's graph by Power View on Excel. Power Query use to transform web site to Power Pivot data model table. Power Pivot u