Пишу курсовую работу. В ней нужно вычислить сигнал на входе и выходе в зависимости от времени, сигнал на входе вычисляется по разным формулам в периуд от 0 до 1 сек и от 1 до 2 сек. Результат выводится в 3 столбца 1ый время 2ой сигнал на входе 3ий сигнал на выходе. Мне нужно записать этот результат в фаил. Но с этим возникли сложности. Прошу посмотрите где я зделал ошику и поправте меня или подскажите др способ записи в фаил. Реализовать программу в нескольких классах это часть задания, в этом то кокраз и сложность так как когда я делал похожую программу с 1 классом, таким сособом выводился результат без проблем.
| Код |
import java.io.*;
class Data { double U1 = 4.0, U2 = 100.0, Uin, Uout, UDin = 0, UDout = 0; double a = 20.0, b = 0.75 , c = 5.0, tn =0.0, tk = 2.0, t1 = 1.0; int n = 20; double td = (tk - tn)/n;
}
class Signal1 extends Data{ void sig1(){
System.out.println("Td = " + td); System.out.println("time\t Uin\t Uout");
for(int i = 0; i<(n/2); i++){
Uin = a*(1-Math.exp((-b)*tn)); if(Uin < U1) { Uout = (95*Uin)/6; } else { Uout = U2; }
String srt = String.valueOf(tn); String srin = String.valueOf(Uin); String srout = String.valueOf(Uout); //преобразование переменной в страку
System.out.printf("%3f\t %8f\t %8f\n", tn, Uin, Uout); tn += td;
} } }
class Signal2 extends Data{ void sig2(){ tn++; for(int i = 0; i<=(n/2); i++){ Uin = (a*(1-Math.exp((-b)*tn)))*(Math.exp((-c)*(tn-t1)));
if(tn < 2){ if(Uin < U1) { Uout = (95*Uin)/6; } else { Uout = U2; }
String srt = String.valueOf(tn); String srin = String.valueOf(Uin); String srout = String.valueOf(Uout);
System.out.printf("%3f\t %8f\t %8f\n", tn, Uin, Uout); tn += td;
} else { Uin=0; Uout=0; System.out.printf("%3f\t %8f\t %8f\n", tn, Uin, Uout);
} } } }
public class ElectroCep extends Data{ public static void main(String[] args)throws IOException {
PrintWriter pw = null;// класс с методами записи строк pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:/file1.txt"))); // класс преобразователь, класс записи байтов в файл
Signal1 sigI = new Signal1(); Signal2 sigII = new Signal2();
sigI.sig1(); sigII.sig2();
Data st = new Data();
String srt = String.valueOf(st.tn); String srin = String.valueOf(st.Uin); String srout = String.valueOf(st.Uout); //преобразование переменной в страку
pw.println((srt) +" "+(srin)+" "+(srout));// записываем строку в файл pw.close();
}}
|
|