webForumDet fria alternativet

Hjälp igen!

3 svar · 2 063 visningar · startad av ema

emaMedlem sedan mars 20113 inlägg
#1

Jag ska inte kunna mata in fler personer än det finns plats till. Är telefonboken på 2 personer så ska jag inte kunna mata in en tredje och krascha programmet.

Detta skrev våran lärare, hur ska jag kunna fixa det? Här kommer koden som används för att använda dom:

public static void main(String\[\] args)

{
System.out.println("Skriv hur stor telefonbok du vill göra");
Scanner in = new Scanner(System.in);
i = in.nextInt();
String[]name = new String*;
String[]number = new String*;
int val = 0;
while ( val != -1 ){ //loopen ska hålla på tills avslutning eller ogiltigt svar
switch(meny()){

	case 1: System.out.println("Ditt val: " + ett);
	System.out.println("Skriv namn och tryck enter och sedan nummer och tryck enter");
	String namen = in.next();
	String numbern = in.next();
	addInfo(namen, numbern, name, number);
		break;

public static void addInfo(String namen, String numbern, String \[\] name, String \[\] number){
	
	name\[j\]=namen;
	number\[j\]=numbern;
j++;

}
public static int getNameIndex(String namen, String [] name, String [] number){

for(int k=0; k\<name.length; k++){
	if(name\[k\].compareTo(namen) == 0){

	System.out.println("Nummer " + number\[k\]);
	break;

}
}
int minus = -1;
return minus;
}**

LaspMedlem sedan juli 200012 980 inlägg
#2

Det är inte mycket till telefonbok o den bara kan hålla två personer ;-)
Förövrigt är vi rätt så restriktiva till att lösa elevuppgifter här på wF
Men välkommen ändå säger Lasp ;-)

emaMedlem sedan mars 20113 inlägg
#3

Vi har skrivit hela koden men fattar bara inte vad som är felet. Man väljer hur stor telefonbok det ska vara, den behöver inte bara ha två platser.
Här kommer hela koden:

import java.util.Scanner;

public class inlamning6 {
private static int j = 0;
private static int i;
private static String ett = new String("1. Lägg in person");
private static String tva = new String("2. Sök namn");
private static String tre = new String("3. Sök nummer");
private static String fyra = new String("4. Sortera telefonboken");
private static String fem = new String("5. Skriv ut telefonboken");
private static String sex = new String("6. Avsluta");

//private static String[]name = new String*;
//private static int[]number = new int*;
public static void main(String[] args)
{
System.out.println("Skriv hur stor telefonbok du vill göra");
Scanner in = new Scanner(System.in);
i = in.nextInt();
String[]name = new String*;
String[]number = new String*;
int val = 0;
while ( val != -1 ){ //loopen ska hålla på tills avslutning eller ogiltigt svar
switch(meny()){

	case 1: System.out.println("Ditt val: " + ett);
	System.out.println("Skriv namn och tryck enter och sedan nummer och tryck enter");
	String namen = in.next();
	String numbern = in.next();
	addInfo(namen, numbern, name, number);
		break;

	case 2: System.out.println("Ditt val: " + tva);
	System.out.println("Skriv in namn att söka efter");
	String namen2 = in.next();
	getNameIndex(namen2, name, number);
		break;
	case 3: System.out.println("Ditt val: " + tre);
	String numbern2 = in.next();
	getNumberIndex(numbern2, number, name);
		break;

	case 4: System.out.println("Ditt val: " + fyra);
	sort(name,number);
		break;

	case 5: System.out.println("Ditt val: " + fem);
	print(name,number);
		break;

	case 6: System.out.println("Ditt val: " + sex);
	val = -1;
		break;
	default:System.out.println("Ogiltigt val, tjänsten avslutas");
	val = -1;	
		break;
} //switch slut
} // while slut

}
public static int meny(){

	int val = 0;
	Scanner in = new Scanner(System.in);
	System.out.println("Gör val, ange siffran:");
	System.out.println(ett);
	System.out.println(tva);
	System.out.println(tre);
	System.out.println(fyra);
	System.out.println(fem);
	System.out.println(sex);
	val = in.nextInt();
		return val;
}

public static void addInfo(String namen, String numbern, String \[\] name, String \[\] number){
	
	name\[j\]=namen;
	number\[j\]=numbern;
j++;

}
public static int getNameIndex(String namen, String [] name, String [] number){

for(int k=0; k\<name.length; k++){
	if(name\[k\].compareTo(namen) == 0){

	System.out.println("Nummer " + number\[k\]);
	break;

}
}
int minus = -1;
return minus;
}
public static int getNumberIndex(String numbern, String [] number, String [] name){

for(int k=0; k\<i; k++){
if(number\[k\].compareTo(numbern) == 0)

{
System.out.println("Namn " + name[k] );
break;
}
}
int minus = -1;
return minus;
}

public static void print(String \[\] name, String \[\] number){

for(int k = 0; k\<i; k++){
	System.out.println(name\[k\] +" "+ number\[k\]);
}

}

public static void sort(String \[\] name, String \[\] number){
	
	int j = 0;
	while(j\<name.length){
	for(int i=0; i\<name.length-1; i++){
	if(name*.compareTo(name\[i+1\]) \> 0 ){
	String temp = name*;
	name *\= name\[i+1\];
	name\[i+1\] = temp;
	String tempen = number*;
	number *\= number\[i+1\];
	number\[i+1\] = tempen;
}

}
j++;
}
}
}*********

msossnaMedlem sedan feb. 2002476 inlägg
#4

Tips 1: använd [ CODE]-taggar runt koden så blir det lättare att läsa.

Tips 2: Var kontrolleras att j inte är större än storleken på telefonboken?

131 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)