Liebe Community,
ich arbeite an einem Program das die Aufladung eines Kondensators berechnet und mir die Daten die ich über printf in einer Tabelle ausgeben möchte in eine CSV Datei schreibt damit ich später in Excel ein Diagramm erstellen kann dass mir die Aufladung in einem Diagramm zeigt. Die Achsen sollen mit Spannung (U) und Zeit (t) beschriftet sein.
Bitte beachtet ich bin Anfänger
Hier mein code:
Edit:
Verbesserungsvorschläge höre ich gerne
ich arbeite an einem Program das die Aufladung eines Kondensators berechnet und mir die Daten die ich über printf in einer Tabelle ausgeben möchte in eine CSV Datei schreibt damit ich später in Excel ein Diagramm erstellen kann dass mir die Aufladung in einem Diagramm zeigt. Die Achsen sollen mit Spannung (U) und Zeit (t) beschriftet sein.
Bitte beachtet ich bin Anfänger
Hier mein code:
Java:
import jxl.*;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.text.BreakIterator;
import java.util.Date;
import jxl.*;
import jxl.write.*;
import jxl.write.Boolean;
import jxl.write.Number;
import jxl.write.biff.RowsExceededException;
import java.util.*;
public class KondensatorAufladung {
public static void main(String[] args) {
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.print("Gib U ein: "+"\n");
double u = Integer.parseInt(br.readLine());
System.out.print("Gib I ein: \n");
double i = Integer.parseInt(br.readLine());
System.out.print("Gib R (Vorwiederstand) ein: \n");
double r = Integer.parseInt(br.readLine());
System.out.print("Gib t (in ms) ein: \n");
double t = Integer.parseInt(br.readLine());
//Hier wird gerechnet
double q = i*t;
double c = q/u;
double zk = r*c; //zk ist die Zeitkonstante(T)
//System.out.printf("%.2f",t);
System.out.printf("%10s |%10s %n", "Tabelle", "Zeit (t)");
System.out.println("------------------------------" );
//System.out.printf("%10.2f |%10.2f |%10.2f |%10.2f %n" , 1.768, 22.777, 333.8888, 4444.777654);
//System.out.printf("%10.2f |%10.2f |%10.2f |%10.2f %n" , 12.999, 123.875478, 124.46, 125345.5463728);
float q_2 = (float) q;
float i_start=-10;
//float t_start=-1;
float u_start=-10;
for (int a=0; a<=(u/10); a++){
u_start=u_start+10;
i_start=i_start+10;
float t_stelle=q_2/i_start;
//t_start=t_start+1;
//String i_string = String.valueOf(i_start);
//String t_string = String.valueOf(t_start);
System.out.printf("%10.2f |%10.2f%n" , u_start, t_stelle);
}
File exlFile = new File("h:/test_excel.xls");
WritableWorkbook writableWorkbook = Workbook.createWorkbook(exlFile);
WritableSheet writableSheet = writableWorkbook.createSheet("Kondensator Aufladung", 0);
Label ueberschrift1_label = new Label(0,0, "Werte für U:");
Label u_label = new Label(0, 1, String.valueOf(u));
Label ueberschrift2_label = new Label(1,0, "Werte für Q:");
Label q_label = new Label(1,1, String.valueOf(q));
Label ueberschrift3_label = new Label(2,0, "Berechnete Werte für Kapazität (C):");
Label c_label = new Label(2,1, String.valueOf(c));
Label ueberschrift4_label = new Label(0,3, "Wert für I:");
Label i_label = new Label(0,4, String.valueOf(i));
Label ueberschrift5_label = new Label(1,3, "Wert für t:");
Label t_label = new Label(1,4, String.valueOf(t));
//Add the created Cells to the sheet
writableSheet.addCell(u_label);
writableSheet.addCell(q_label);
writableSheet.addCell(c_label);
writableSheet.addCell(i_label);
writableSheet.addCell(t_label);
writableSheet.addCell(ueberschrift1_label);
writableSheet.addCell(ueberschrift2_label);
writableSheet.addCell(ueberschrift3_label);
writableSheet.addCell(ueberschrift4_label);
writableSheet.addCell(ueberschrift5_label);
//Write and close the workbook
writableWorkbook.write();
writableWorkbook.close();
FileWriter csv_datei = new FileWriter("h:/testfile.csv");
csv_datei.append(String.valueOf(u));
csv_datei.append('\n');
csv_datei.append(String.valueOf(q));
csv_datei.append("\n");
csv_datei.append(String.valueOf(c));
csv_datei.append("\n");
csv_datei.append(String.valueOf(i));
csv_datei.append("\n");
csv_datei.append(String.valueOf(t));
csv_datei.append("\n");
csv_datei.flush();
csv_datei.close();
} catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
Edit:
Verbesserungsvorschläge höre ich gerne