/*-------------------------------------------------------------------------------------------------
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!!
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!!