Schulprojekt :D

wagner3011

Neues Mitglied
/*-------------------------------------------------------------------------------------------------

Aufgabenstellung:
Die Istlängen von Schrauben dürfen von einer vorgegebenen Solllänge um maximal p% abweichen.
Ermittle von einer Produktion von n Schrauben den %-Anteil der Ausschussware!

---------------------------------------------------------------------------------------------------
@Date: 2014-03-17
@Autor: Patrik Wagner
@Version: 1.0
-------------------------------------------------------------------------------------------------*/

public class Ausschussware {
public static void main(String[] args) {
do{
int auswahl = einlesenAutoManuell();
if(auswahl == 1){
double ausschussware = berechneAusschusswareAutomatisch();
Console.printPrompt("Ausschussware in Prozent: " + ausschussware + "\n\n");
}
else if(auswahl == 2){
double autausschussware = berechneAusschusswareManuell();
Console.printPrompt("Ausschussware in Prozent: " + autausschussware + "\n\n");
}
}while(wiederhole());
}//main
private static int einlesenNschrauben() {
int input = Console.readInt("Geben Sie die zu produzierende Schraubenanzahl ein: ");
while (input<=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readInt("Geben Sie die zu produzierende Schraubenanzahl ein: ");
}
return input;
}
private static double einlesenIstlaengen() {
double input = Console.readDouble("Geben Sie die Istlaengen ein: ");
while (input<=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readDouble("Geben Sie die Istlaengen ein: ");
}
return input;
}
private static double einlesenSolllaenge() {
double input = Console.readDouble("Geben Sie die Solllaenge ein: ");
while (input<=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readDouble("Geben Sie die Solllaenge ein: ");
}
return input;
}
private static double einlesenMaxProAbweichung() {
double input = Console.readDouble("Geben Sie die maximale prozentuelle Abweichung ein: ");
while (input<=0||input>100){
Console.printPrompt ("Geben Sie eine Zahl ein die zwischen 0 und 100 liegt.\n");
input = Console.readDouble("Geben Sie die maximale prozentuelle Abweichung ein: ");
}
return input;
}
private static int einlesenZahlenbereich(){
int input = Console.readInt("Bitte geben Sie einen Zahlenbereich \nfuer die Istlaenge der Schrauben ein: 0 - ");
while(input <=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readInt("Bitte geben Sie einen Zahlenbereich \nfuer die Istlaenge der Schrauben ein: 0 - ");
}
return input;
}
private static double berechneAusschusswareAutomatisch(){
double solllaenge = einlesenSolllaenge();
double maxProAbweichung = einlesenMaxProAbweichung();
int ausschussware = 0;
int nschrauben = einlesenNschrauben();
int zahlenbereich = einlesenZahlenbereich();
double[] iaZahlen = new double[nschrauben];
for(int i=0; i < iaZahlen.length;i++){
iaZahlen=Math.random()*zahlenbereich;
Console.printPrompt("Schraube NR: " + i + " : " + iaZahlen + "\n");
double pruefen = 0;
pruefen = solllaenge - iaZahlen;
if(pruefen < 0)
pruefen=pruefen*(-1);
else
pruefen = pruefen*100/solllaenge;
if(pruefen >= maxProAbweichung)
ausschussware++;
}
double proAusschussware = ausschussware * 100/(double)nschrauben;
return proAusschussware;
}
private static double berechneAusschusswareManuell(){
double solllaenge = einlesenSolllaenge();
double maxProAbweichung = einlesenMaxProAbweichung();
int ausschussware = 0;
int nschrauben = einlesenNschrauben();
double[] iaZahlen = new double [nschrauben];
for(int i=0;i<iaZahlen.length;i++){
iaZahlen=(double)einlesenIstlaengen();
double pruefen = 0;
pruefen = solllaenge - iaZahlen;
if(pruefen < 0)
pruefen=pruefen*(-1);
else
pruefen = pruefen*100/solllaenge;
if(pruefen >= maxProAbweichung)
ausschussware++;
}
double proAusschussware = ausschussware * 100/(double)nschrauben;
return proAusschussware;
}
private static int einlesenAutoManuell(){
int input = Console.readInt("Wollen Sie die Zahlen 1: automatisch oder 2: manuell einlesen?");
while(input < 1){
Console.printPrompt("Bitte geben Sie fuer automatisches Einlesen \ndie Zahl 1 ein, fuer manuelles Einlesen 2!\n");
input = Console.readInt("\nWollen Sie die Zahlen 1: automatisch oder 2: manuell einlesen?");
}
while(input > 2){
Console.printPrompt("Bitte geben Sie fuer automatisches Einlesen \ndie Zahl 1 ein, fuer manuelles Einlesen 2!\n");
input = Console.readInt("\nWollen Sie die Zahlen 1: automatisch oder 2: manuell einlesen?");
}
return input;

} private static boolean wiederhole() {
char taste;
do {
taste=Console.readChar("w(eiter) / b(eenden) ", true);
} while (taste != 'W' && taste != 'B');
return taste=='W';
} // wiederhole
} // Ausschussware


Ich bräuchte ganz dringend verbesserungsvorschläge!!
Wäre sehr nett wenn sich jemand finden würde was ich verbessern kann bzw was ich einfacher machen kann.

besten dank im vorraus!!
 

Highchiller

Bekanntes Mitglied
Deine Hausaufgaben machen wir hier sicherlich nicht!

Erst mal packst du deinen ganzen Code bitte in ein Java-Block, damit man das auch lesen kann.
Und dann sagst du uns bitte genau wo dein Problem liegt. Geht das Programm nicht? Wenn es geht, wieso bist du dann hier? Wenn nicht, was geht denn nicht?

Etwas mehr als Hilfe rufen wenns nicht brennt, wäre dann schon nötig :p
 

Beatsleigher

Bekanntes Mitglied
Erstens: Ich zitiere: " Java™ Quelltext ist bitte in
Java:
-Tags zu schreiben: [code=Java]hier Java Code einfügen
"

Also:
Java:
/*-------------------------------------------------------------------------------------------------

Aufgabenstellung:
Die Istlängen von Schrauben dürfen von einer vorgegebenen Solllänge um maximal p% abweichen.
Ermittle von einer Produktion von n Schrauben den %-Anteil der Ausschussware!

---------------------------------------------------------------------------------------------------
@Date: 2014-03-17
@Autor: Patrik Wagner
@Version: 1.0
-------------------------------------------------------------------------------------------------*/

public class Ausschussware {
public static void main(String[] args) {
do{
int auswahl = einlesenAutoManuell();
if(auswahl == 1){
double ausschussware = berechneAusschusswareAutomatisch();
Console.printPrompt("Ausschussware in Prozent: " + ausschussware + "\n\n");
}
else if(auswahl == 2){
double autausschussware = berechneAusschusswareManuell();
Console.printPrompt("Ausschussware in Prozent: " + autausschussware + "\n\n");
}
}while(wiederhole());
}//main
private static int einlesenNschrauben() {
int input = Console.readInt("Geben Sie die zu produzierende Schraubenanzahl ein: ");
while (input<=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readInt("Geben Sie die zu produzierende Schraubenanzahl ein: ");
}
return input;
}
private static double einlesenIstlaengen() {
double input = Console.readDouble("Geben Sie die Istlaengen ein: ");
while (input<=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readDouble("Geben Sie die Istlaengen ein: ");
}
return input;
}
private static double einlesenSolllaenge() {
double input = Console.readDouble("Geben Sie die Solllaenge ein: ");
while (input<=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readDouble("Geben Sie die Solllaenge ein: ");
}
return input;
}
private static double einlesenMaxProAbweichung() {
double input = Console.readDouble("Geben Sie die maximale prozentuelle Abweichung ein: ");
while (input<=0||input>100){
Console.printPrompt ("Geben Sie eine Zahl ein die zwischen 0 und 100 liegt.\n");
input = Console.readDouble("Geben Sie die maximale prozentuelle Abweichung ein: ");
}
return input;
}
private static int einlesenZahlenbereich(){
int input = Console.readInt("Bitte geben Sie einen Zahlenbereich \nfuer die Istlaenge der Schrauben ein: 0 - ");
while(input <=0){
Console.printPrompt ("Geben Sie eine Zahl ein die groesser als 0 ist.\n");
input = Console.readInt("Bitte geben Sie einen Zahlenbereich \nfuer die Istlaenge der Schrauben ein: 0 - ");
}
return input;
}
private static double berechneAusschusswareAutomatisch(){
double solllaenge = einlesenSolllaenge();
double maxProAbweichung = einlesenMaxProAbweichung();
int ausschussware = 0;
int nschrauben = einlesenNschrauben();
int zahlenbereich = einlesenZahlenbereich();
double[] iaZahlen = new double[nschrauben];
for(int i=0; i < iaZahlen.length;i++){
iaZahlen[i]=Math.random()*zahlenbereich;
Console.printPrompt("Schraube NR: " + i + " : " + iaZahlen[i] + "\n");
double pruefen = 0;
pruefen = solllaenge - iaZahlen[i];
if(pruefen < 0)
pruefen=pruefen*(-1);
else
pruefen = pruefen*100/solllaenge;
if(pruefen >= maxProAbweichung)
ausschussware++;
}
double proAusschussware = ausschussware * 100/(double)nschrauben;
return proAusschussware;
}
private static double berechneAusschusswareManuell(){
double solllaenge = einlesenSolllaenge();
double maxProAbweichung = einlesenMaxProAbweichung();
int ausschussware = 0;
int nschrauben = einlesenNschrauben();
double[] iaZahlen = new double [nschrauben];
for(int i=0;i<iaZahlen.length;i++){
iaZahlen[i]=(double)einlesenIstlaengen();
double pruefen = 0;
pruefen = solllaenge - iaZahlen[i];
if(pruefen < 0)
pruefen=pruefen*(-1);
else
pruefen = pruefen*100/solllaenge;
if(pruefen >= maxProAbweichung)
ausschussware++;
}
double proAusschussware = ausschussware * 100/(double)nschrauben;
return proAusschussware;
}
private static int einlesenAutoManuell(){
int input = Console.readInt("Wollen Sie die Zahlen 1: automatisch oder 2: manuell einlesen?");
while(input < 1){
Console.printPrompt("Bitte geben Sie fuer automatisches Einlesen \ndie Zahl 1 ein, fuer manuelles Einlesen 2!\n");
input = Console.readInt("\nWollen Sie die Zahlen 1: automatisch oder 2: manuell einlesen?");
}
while(input > 2){
Console.printPrompt("Bitte geben Sie fuer automatisches Einlesen \ndie Zahl 1 ein, fuer manuelles Einlesen 2!\n");
input = Console.readInt("\nWollen Sie die Zahlen 1: automatisch oder 2: manuell einlesen?");
}
return input;

} private static boolean wiederhole() {
char taste;
do {
taste=Console.readChar("w(eiter) / b(eenden) ", true);
} while (taste != 'W' && taste != 'B');
return taste=='W';
} // wiederhole
} // Ausschussware

Zweitens: Dein Code ist beschissen formattiert.

Drittens (Ich hätte beinahe dreittens geschrieben :autsch:) : Wir sind mit 200%iger Sicherheit nicht hier, um deine Hausaufgaben zu erledigen. Du musst schon einen Eigenanteil bringen, und sei es, dass du uns wenigstens kurz sagst, was der Code tut und lässt, und uns eventuell mal ganz nett darum bitten, dir Verbesserungsvorschläge zu geben.
So tun wir persé schon mal gar nichts.
 

strußi

Top Contributor
wo liegt das Problem

deine werte einlesen und dann mittels zwei methoden die auswertung machen

Für die auswertung brauchst in etwa sowas


double xpercent x.x; //Erlaubte Abweichung
double size; //mindesgröße

double[] schraubenlängen; // einzelne schrauben


methode zur auswertung ob die schraube ausschuss ist oder nicht
Schraube Element [ size-xpercent; size +xpercent]
=>true gutteil /false ausschuss =>zähler erhöhen
return anzahl ausschuss

methode zur prozentausrechnung
ausschuss /schraubenanzahl *100 = x%;

oder jede schraube einzeln prüfen, aber selbe vorgehensweise

fertig

also kein hexenwerk :popcorn: knabbern und zurücklehnen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Programmvorschläge für Schulprojekt Allgemeine Java-Themen 26

Ähnliche Java Themen

Neue Themen


Oben