Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Требуется помощь в записи в фаил 
:(
    Опции темы
ShanderYO
Дата 6.1.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



Пишу курсовую работу. В ней нужно  вычислить сигнал на входе и выходе в зависимости от времени, сигнал на входе вычисляется по разным формулам  в периуд от 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();



}}


PM MAIL   Вверх
rygel
Дата 6.1.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 21.9.2007
Где: Харьков

Репутация: 6
Всего: 7



Код

import java.io.*;
import java.util.Formatter;

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 {
    String sig1(){
        StringBuilder result = new StringBuilder();
        result.append("Td = ").append(td).append("\n");
        result.append("time\t     Uin\t      Uout\n");

        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);
//преобразование переменной в страку

            result.append(new Formatter().format("%3f\t %8f\t %8f\n", tn, Uin, Uout).toString());
            tn += td;

        }

        return result.toString();
    }
}
class Signal2 extends Data{

    String sig2(){
        StringBuilder result = new StringBuilder();

        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);
                result.append(new Formatter().format("%3f\t %8f\t %8f\n", tn, Uin, Uout));
                tn += td;
            }
            else
            {
                Uin=0;
                Uout=0;
                result.append(new Formatter().format("%3f\t %8f\t %8f\n", tn, Uin, Uout));
            }
        }
        return result.toString();
    }


}
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();

        pw.append(sigI.sig1());
        pw.append(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.append((srt) +"             "+(srin)+"         "+(srout));// записываем строку в файл
        pw.close();
    }}


В общем так... но над кодом надо бы поработать smile
PM MAIL   Вверх
ShanderYO
Дата 6.1.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



 Ща попробую)

Это сообщение отредактировал(а) ShanderYO - 6.1.2009, 18:34
PM MAIL   Вверх
diablero
Дата 6.1.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 1
Всего: 5



Код

import java.io.FileWriter;

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 {
    public String sig1() {
        StringBuffer buff = new StringBuffer();
        String out;
        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;
            }
            out = String.format("%3f\t %8f\t %8f\n", tn, Uin, Uout);
            buff.append(out);
            tn += td;
            
            System.out.printf(out);
        }
        return buff.toString();
    }
}
class Signal2 extends Data {
    public String sig2() {
        StringBuffer buff = new StringBuffer();
        String out;
        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;
                }
                out = String.format("%3f\t %8f\t %8f\n", tn, Uin, Uout);
                buff.append(out);
                System.out.printf(out);
                tn += td;
            } else {
                Uin = 0;
                Uout = 0;
                out = String.format("%3f\t %8f\t %8f\n", tn, Uin, Uout);
                buff.append(out);
                System.out.printf(out);
            }
        }
        return buff.toString();
    }
    
}
public class ElectroCep extends Data {
    public static void main(String[] args)
    {
        try
        {
            Signal1 sigI = new Signal1();
            Signal2 sigII = new Signal2();
        
            FileWriter fwriter = new FileWriter("D:\\test.txt");
            fwriter.write(sigI.sig1());
            fwriter.write(sigII.sig2());
            fwriter.flush();
            fwriter.close();
        }
        catch(Exception err)
        {
            System.out.println(err.getMessage());
        }
    }
}


Цитата(rygel @  6.1.2009,  18:20 Найти цитируемый пост)
В общем так... но над кодом надо бы поработать


Советую, а то:

Цитата(ShanderYO @  6.1.2009,  17:47 Найти цитируемый пост)
Реализовать программу в нескольких классах это часть задания


Выполнили плохо.



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
ShanderYO
Дата 6.1.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



diablero спасибо большое за помощь)))

Цитата

Советую, а то:


Цитата(ShanderYO @  6.1.2009,  17:47 ) 
Реализовать программу в нескольких классах это часть задания 



Выполнили плохо.



На счет того, что реализованно плохо с вами согласен, но в виду моего не долгосрочного знакомства с java  и поджимающих сроков здачи курсовой сильно улучшить программу врядли получится. Хотя я еще реализовал не все, что необходимо по заданию и после этого попробую ее переделать немного. 

Я понял в общих чертах как ваш способ записи в фаил, но при здачи курсовой мне нужно на 100% знать все что я пременил в программе и объяснить по всему этому теорию. Поэтому немогли бы вы подсказать где можно про этот способ прочитать. Я конечно попробою сейчас так сказать погуглить, просто если вы знайте хороший источник подскажите)

Это сообщение отредактировал(а) ShanderYO - 6.1.2009, 19:34
PM MAIL   Вверх
diablero
Дата 6.1.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 1
Всего: 5



Документации по яве огромное количество, я бы посоветовал для начала:
Java. Руководство по подготовке к сдаче сертификационного экзамена СХ-310-035
Thinking in Java, 2nd Edition

Ну и google вам в помощьsmile
Пишите, спрашивайте если что...


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1253 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.