Bibliothek per "Struktur" anlegen

Hi Leute,

ich bin neue in der javawelt und wollte zu folgender aufgabe tips haben:

"Implementieren Sie ein Bibliotheksprogramm, welches empfohlene Bücher für Ihr Studium verwaltet.
Alle Daten eines Buches wie Titel, Autor, ISBN, Verlag Erscheinungsjahr und Preis sollen in einem
kompositen Datentyp zusammengefasst und über die Konsole eingegeben werden. Da Sie nur über ein
begrenztes Budget verfügen, lassen Sie sich alle Bücher, die nach 1995 erschienen sind und weniger
als 50 € kosten, auf dem Bildschirm anzeigen.

Definieren Sie einen Datentyp für die Beschreibung von Buchobjekten, wobei für den Autor (Name,
Vorname) ein eigener Datentyp zu definieren ist. Gehen Sie davon aus, dass maximal 100 Bücher
verwaltet werden."

Zunächst wollte ich fragen was es denn heißt, dass ich diese Bibliothek implementieren soll.

Dann habe ich folgendes programm mit meinen aktuellen kenntnisstand zusammengeschustert:

[JAVA=42]
import java.util.Scanner;
class a{

public static void main(String[] args) {
//int n=0;
//while(n<=100){
Scanner in = new Scanner(System.in);


//n++;

class AutorInfo{
String name;
String vorname;
}
class Buch{
String Titel;
AutorInfo Autor;
String Verlag;
int ISBN;
int Erscheinung;
double Preis;
}



Buch neu = new Buch();
System.out.print("Titel: ");
neu.Titel = in.next();

neu.Autor = new AutorInfo();
System.out.print("Name und Vorname des Autors");
System.out.print("Name : ");
neu.Autor.name = in.next();

System.out.print("Vorname: ");
neu.Autor.vorname = in.next();

System.out.print("Verlag: ");
neu.Verlag = in.next();

System.out.print("ISBN: ");
neu.ISBN = in.nextInt();

System.out.print("Erscheinung: ");
neu.Erscheinung = in.nextInt();

System.out.print("Preis: ");
neu.Preis = in.nextDouble();

System.out.print("Alle Daten des Buches Zusammengefasst:");
zeile52 System.out.print(neu.Titel +" "+ neu.Info.Name +" "+ neu.Info.Vorname +" "+ neu.ISBN +"\n"+ neu.Verlag +" "+ neu.Erscheinung +" "+ neu.Preis);

}}//}
[/code]

Hier erhalte ich beim kompilieren die für Zeile 52(also die ausgabezeile) die Fehlermeldung:

cannot find symbol, symbol: variable Info, location: class Buch

Ich hoffe das ist alles halbwegs übersichtlich.

Hoffe auf eure Unterstützung.

Grüße

simon
 
Zuletzt bearbeitet:
Ich hoffe das ist alles halbwegs übersichtlich.
Nein, überhaupt nicht. Der große rote Warntext die Java Tags zu benutzen steht da nicht ohne Grund.

Zunächst wollte ich fragen was es denn heißt, dass ich diese Bibliothek implementieren soll.
Du sollst das Programm schreiben.

Zu deinem Programm. Lager die Sachen aus der main aus, vor allem die Klassen. Die gehören in eine separate Datei. Den Rest hab ich mir nicht angeschaut, formatier dein Posting bitte zuerst mal.
 
Ja sorry nochmal, das war natürlich wieder völlig unnötig, habs schnellstens korriegiert...peinlich!

Ich bekomme immernoch eine fehlermeldung im bezug auf die ausgabe. Es ist immernoch dieselbe meldung und die variable "Erscheinung" sowie das letzte semikolon hinter der ausgabe sind markiert, alles zeile 52.
Habe ich jetzt die richtige variable gewählt?

@Eike

mit dem auslagern der klassendeklaration tuh ich mich echt schwer. kannste mir vielleicht einen link für ein beispiel schicken?

danke im voraus leute

Java:
import java.util.Scanner;
class a{



public static void main(String[] args) {
	//int n=0;
	//while(n<=100){
	Scanner in = new Scanner(System.in);
	
	
	//n++;
	
	class AutorInfo{	
					String name;
					String vorname;
					}
	class Buch{
				String Titel;
				AutorInfo Autor;
				String Verlag;
				int ISBN;
				int Erscheinung;
				double Preis; 
				}
				
	
	
	Buch neu = new Buch();
	System.out.print("Titel: ");
	neu.Titel = in.next();
	
	neu.Autor = new AutorInfo();
	System.out.print("Name und Vorname des Autors");
	System.out.print("Name : ");
	neu.Autor.name = in.next();
	
	System.out.print("Vorname: ");
	neu.Autor.vorname = in.next();
	
	System.out.print("Verlag: ");
	neu.Verlag = in.next();
	
	System.out.print("ISBN: ");
	neu.ISBN = in.nextInt();
	
	System.out.print("Erscheinung: ");
	neu.Erscheinung = in.nextInt();
	
	System.out.print("Preis: ");
	neu.Preis = in.nextDouble();
	
	System.out.print("Alle Daten des Buches Zusammengefasst:");
	System.out.print(neu.Titel +" "+ neu.Autor.Name +" "+ neu.Autor.Vorname +" "+ neu.ISBN +"\n"+ neu.Verlag +" "+ neu.Erscheinung +" "+ neu.Preis);
	
	}}//}
 
Habe ich jetzt die richtige variable gewählt?

Java ist CaseSensitive, das bedeutet, dass du auf die Klein- und Großschreibung achten musst.

Code:
MeineVariable
ist nicht das gleiche wie
Code:
meineVariable


mit dem auslagern der klassendeklaration tuh ich mich echt schwer. kannste mir vielleicht einen link für ein beispiel schicken?

Ab Kapitel 5: Galileo Computing :: Java ist auch eine Insel - 5 Eigene Klassen schreiben
 
Zuletzt bearbeitet:
Boah danke!!! endlich kann ichs wenigstens compilieren. Wenn ich jetzt noch meine while schleife laufen lasse, um eben nach 100 eingetragenen büchern zu stoppen, wird dann eig jedes mal dieselbe Klasse(ist das eine) Buch beschrieben? So dass eig gar keine kartei angelegt wird sondern nur überschrieben wird?

Durch das tutorial muss ich mich nochmal durcharbeiten.

aber danke schonmal vielmals!

grüße simon

Java:
 import java.util.Scanner;
class a{



public static void main(String[] args) {
	int n=0;
	while(n<=100){
	Scanner in = new Scanner(System.in);
	
	
	n++;
	
	class AutorInfo{	
					String Name;
					String Vorname;
					}
	class Buch{
				String Titel;
				AutorInfo Autor;
				String Verlag;
				int ISBN;
				int Erscheinung;
				double Preis; 
				}
				
	
	
	Buch neu = new Buch();
	System.out.print("\nTitel: ");
	neu.Titel = in.next();
	
	neu.Autor = new AutorInfo();
	System.out.println("\nName und Vorname des Autors");
	System.out.print("\nName : ");
	neu.Autor.Name = in.next();
	
	System.out.print("\nVorname: ");
	neu.Autor.Vorname = in.next();
	
	System.out.print("\nVerlag: ");
	neu.Verlag = in.next();
	
	System.out.print("\nISBN: ");
	neu.ISBN = in.nextInt();
	
	System.out.print("\nErscheinung: ");
	neu.Erscheinung = in.nextInt();
	
	System.out.print("\nPreis: ");
	neu.Preis = in.nextDouble();
	
	System.out.println("\nAlle Daten des Buches Zusammengefasst:");
	System.out.println(neu.Titel +"\n"+ neu.Autor.Name +"\n"+ neu.Autor.Vorname +"\n"+ neu.ISBN +"\n"+ neu.Verlag +"\n"+ neu.Erscheinung +"\n"+ neu.Preis);
	
	}}}
 

Zurück
Oben