Электронная библиотека » Алексей Крючков » » онлайн чтение - страница 2

Текст книги "Java Code"


  • Текст добавлен: 12 января 2018, 17:00


Автор книги: Алексей Крючков


Жанр: Программирование, Компьютеры


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 2 (всего у книги 3 страниц)

Шрифт:
- 100% +

Пример проигрывания звука в android


void soundTime(int t){

        toast(«СИГНАЛ ЧЕРЕЗ „+t/60+“ МИН.»);

        new Handler().postDelayed(new Runnable() {

            @Override

            public void run() {

                mp= MediaPlayer.create(Sirena.this,R.raw.alarm);

                mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                    @Override

                    public void onCompletion(MediaPlayer mediaPlayer) {

                        mediaPlayer.release();

                    }

                });

                mp.setLooping(true);

                mp.start();

                b.setEnabled(true);

                b.setText(«ПОДЪЁМ!!!»);

            }

        },1000*t);

    }


Путь до директории с исполняемым файлом

Код определяет путь до директории где находиться исполняемый архив(jar) с программой. Может понадобиться при необходимости создания/удаления или(и) записи/чтения файлов из этой директории.


  import java.io.File;

    public class TestClass {

     public static void main(String[] args) {

     String myJarPath = TestClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();

     String dirPath = new File(myJarPath).getParent();

     System.out.println(dirPath);

     }

    }


Расчет гороскопов и психоматрицы(квадрат Пифагора)

Этот код может помочь при разработке какого-нибудь астрологического или нумерологического софта.


int ostHoroscope(int n){

        while (n>12){

            n-=12;

        }

        return n;

    }

    int zodiac(int n,int month){

        int f;

        if (month==3&&n>20||month==4&&n<21)f=1;

        else if (month==4&&n>20||month==5&&n<22)f=2;

        else if (month==5&&n>21||month==6&&n<22)f=3;

        else if (month==6&&n>21||month==7&&n<23)f=4;

        else if (month==7&&n>22||month==8&&n<22)f=5;

        else if (month==8&&n>21||month==9&&n<24)f=6;

        else if (month==9&&n>23||month==10&&n<24)f=7;

        else if (month==10&&n>23||month==11&&n<23)f=8;

        else if (month==11&&n>22||month==12&&n<23)f=9;

        else if (month==12&&n>22||month==1&&n<21)f=10;

        else if (month==1&&n>20||month==2&&n<20)f=11;

        else if (month==2&&n>19||month==3&&n<21)f=12;

        else return 13;

        return f;

    }

    int slavian(int n,int month){

        int f;

        if (month==3&&n>9||month==4&&n<11)f=1;

        else if (month==4&&n>9||month==5&&n<11)f=2;

        else if (month==5&&n>9||month==6&&n<11)f=3;

        else if (month==6&&n>9||month==7&&n<11)f=4;

        else if (month==7&&n>9||month==8&&n<11)f=5;

        else if (month==8&&n>9||month==9&&n<11)f=6;

        else if (month==9&&n>9||month==10&&n<11)f=7;

        else if (month==10&&n>9||month==11&&n<11)f=8;

        else if (month==11&&n>9||month==12&&n<11)f=9;

        else if (month==12&&n>9||month==1&&n<11)f=10;

        else if (month==1&&n>9||month==2&&n<11)f=11;

        else if (month==2&&n>9||month==3&&n<11)f=12;

        else return 13;

        return f;

    }

    int egypt(int n,int month){


        int f;

        if (month==1&&n>0&&n<8||month==6&&n>18&&n<29||month==9&&n>0&&n<8||month==11&&n>17&&n<27)f=1;

        else if (month==1&&n>7&&n<22||month==2&&n>0&&n<12)f=2;

        else if (month==1&&n>21&&n<32||month==9&&n>7&&n<23)f=3;

        else if (month==2&&n>11&&n<30||month==8&&n>19&&n<32)f=4;

        else if (month==3&&n>10&&n<32||month==10&&n>17&&n<30||month==12&&n>18&&n<32)f=5;

        else if (month==3&&n>0&&n<11||month==11&&n>26||month==12&&n<19)f=6;

        else if (month==4&&n>0&&n<20||month==11&&n>7&&n<18)f=7;

        else if (month==5&&n>0&&n<8||month==4&&n>19&&n<31||month==8&&n>11&&n<20)f=8;

        else if (month==5&&n>7&&n<28||month==6&&n>28||month==7&&n<14)f=9;

        else if (month==5&&n>27||month==6&&n<19||month==9&&n>27||month==10&&n<3)f=10;

        else if (month==7&&n>13&&n<29||month==9&&n>22&&n<28||month==10&&n>2&&n<18)f=11;

        else if (month==7&&n>28||month==8&&n<12||month==10&&n>29||month==11&&n<8)f=12;

        else return 13;

        return f;

    }

    String psychoMatrix(int n,int m,int l){

        int[]mas=new int[16];


        mas[0] = n / 10;

        mas[1] = n % 10;


        int c;

        int z;


        if (mas[0] == 0)

        {

            c= mas[1];

        } else

        {

            c= mas[0];

        }


        mas[4]= m % 10;

         z = m / 10;

        mas[5] = z % 10;

        z = z / 10;

        mas[6] = z % 10;

        z = z / 10;

        mas[7]=z;


      if(l<10){

          mas[2]=0;

          mas[3]=l;

      }else{

          mas[2]=1;

          mas[3]=l-10;

      }


        int sum = mas[0] + mas[1] + mas[2] + mas[3] + mas[4] + mas[5] + mas[6] + mas[7];


        mas[8] = sum/ 10;

        mas[9] = sum % 10;


        mas[10] = (mas[8]+mas[9])/ 10;

        mas[11] = (mas[8]+mas[9])% 10;


        mas[12] = (sum-(2*c)) / 10;

        mas[13] = (sum-(2*c)) % 10;


        mas[14] = (mas[12]+mas[13]) / 10;

        mas[15] = (mas[12]+mas[13]) % 10;


        String str1="«,str2=»",str3="«,str4=»",str5="«,str6=»",str7="«,str8=»",str9="";


        for (int i=0;i<16;i++){

            switch (mas[i]){

                case 0:break;

                case 1:str1+="1";break;

                case 2:str2+="2";break;

                case 3:str3+="3";break;

                case 4:str4+="4";break;

                case 5:str5+="5";break;

                case 6:str6+="6";break;

                case 7:str7+="7";break;

                case 8:str8+="8";break;

                case 9:str9+="9";break;default:break;

            }

        }


       return «Психоматрица: n»+str1+"   «+str2+»   «+str3+»n"+str4+"   «+str5+»   «+str6+»n"+str7+"   «+str8+»   "+str9;

    }


Класс клавиатурного калькулятора(javaFX)


public class FXMLCalculatorController implements Initializable {

    @FXML

    private TextArea t;

    @FXML

    private TextField e;

    float[]m;

    float result;

    int i=-1;

    int[]oper;

    @FXML

    private void resultButton(ActionEvent event) {

        resultate();

    }

    @FXML

    private void plus(ActionEvent event){

         fb(1,"+");

    }

    @FXML

    private void minus(ActionEvent event){

        fb(2, "-");

    }

    @FXML

    private void gPlus(ActionEvent event){

        fb(3, "*");

    }

    @FXML

    private void gMinus(ActionEvent event){

        fb(4, "/");

    }

    @FXML

    private void clean(ActionEvent event){

        clean();

    }

    @FXML

    private void keyAction(KeyEvent event){

        switch(event.getText()){

            case "+":

                fb(1, "+");

                break;

                case "-":

                    fb(2, "-");

                    break;

                    case "*":

                        fb(3, "*");

                        break;

                        case "/":

                            fb(4, "/");

                            break;

                            case "=":

                                resultate();

                                break;

                                case "c":

                                    clean();

                                    break;

                                    case "с":

                                        clean();

                                        break;  

                                        default:

                                            break;

        }

        if(event.getCode().getName().equals(«Enter»)){

            resultate();

        }

        if(event.getCode().getName().equals(«Delete»)){

            clean();

        }

    }

    @FXML

    private void keyPostAction(KeyEvent event){

        if(event.getText().equals("*")||event.getText().equals("/")||

                event.getText().equals("c")||event.getText().equals("с")) {

            e.setText("");

        }

        if(e.getText().contains("=")){

            e.setText(e.getText().substring(1));

        }

    }

    void resultate(){

        i++;

        if(i>19){

            alertWindow(«Угроза переполнения!»,"Внимание!");

            return;

        }

        try{

     m[i]=Float.parseFloat(e.getText());

        }catch(NumberFormatException ex){

            ex.getMessage();

            i–;

            e.setText("");

            e.requestFocus();

            return;

        }

        t.appendText(m[i]+"=");

        switch (oper[0]){

            case 1:result=m[0]+m[1];break;

            case 2:result=m[0]-m[1];break;

            case 3:result=m[0]*m[1];break;

            case 4:result=m[0]/m[1];break;

        }

        for (int j=1;j<i+1;j++){

            switch (oper[j]){

                case 1:result+=m[j+1];break;

                case 2:result-=m[j+1];break;

                case 3:result*=m[j+1];break;

                case 4:result/=m[j+1];break;

            }

        }

        e.setText(result+"");

    }

     void fb(int n,String s){

        i++;

        if(i>18){

        i–;

        alertWindow(«Угроза переполнения!»,"Внимание!");

        return;

     }

        try{

     m[i]=Float.parseFloat(e.getText());

        }catch(NumberFormatException ex){

            ex.getMessage();

            i–;

            e.setText("");

            e.requestFocus();

            return;

        }

        e.setText("");

        e.requestFocus();

     oper[i]=n;

     t.appendText(m[i]+""+s);

    }

    void clean(){

         i=-1;

        result=0;

        m=new float[20];

        oper=new int[20];

        t.setText("");

        e.setText("");

        e.requestFocus();

    }

    void alertWindow(String s,String str){

Alert alert = new Alert(AlertType.INFORMATION);

alert.setTitle(str);

alert.setHeaderText(null);

alert.setContentText(s);

alert.showAndWait();

    }

    @Override

    public void initialize(URL url, ResourceBundle rb) {

        m=new float[20];

        oper=new int[20];

        e.requestFocus();

    }    

}


Консольный калькулятор


public class CalculatorConsole {


    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        String answer,symbol;

        float num1=0,num2=0,result=0;

        Scanner sc=new Scanner(System.in);

        do{

        System.out.println(«Первое число:»);

        try{

        num1=sc.nextFloat();

        }catch(Exception e){

            System.out.println(«Некорректное значение»);

            return;

        }

        Scanner scSymb=new Scanner(System.in);

        System.out.println(«Знак:»);

        symbol=scSymb.nextLine();

        if(!"+".equals(symbol)&&!"-".equals(symbol)&&!"*".equals(symbol)&&!"/".equals(symbol)){

            System.out.println(«Некорректный символ»);

            return;

        }

        System.out.println(«Второе число:»);

        try{

        num2=sc.nextFloat();

        }catch(Exception e){

             System.out.println(«Некорректное значение»);

            return;

        }

        switch(symbol){

            case "+":

                result=plus(num1, num2);

                break;

                case "-":

                    result=minus(num1, num2);

                    break;

                    case "*":

                        result=multiPlus(num1, num2);

                        break;

                        case "/":

                            result=multiMinus(num1, num2);

                            break;

                            default:

                                break;

        }

        System.out.println(num1+symbol+num2+"="+result);

         Scanner scAns=new Scanner(System.in);

          System.out.println(«Начать заново?(д/н)»);

        answer=scAns.nextLine();

         if(!"д".equals(answer)&&!"y".equals(answer)){

            System.out.println(«Работа программы завершена»);

            return;

         }

        }while ("д".equals(answer)||"y".equals(answer));

    }

    static float plus(float a,float b){

        return a+b;

    }

    static float multiPlus(float a,float b){

        return a*b;

    }

    static float minus(float a,float b){

        return a-b;

    }

    static float multiMinus(float a,float b){

        return a/b;

    }

}


Запуск браузера(android)


 Uri wp = Uri.parse(«http://www.сайт»);

            Intent webIntent = new Intent(Intent.ACTION_VIEW, wp);

            startActivity(webIntent);


Класс простого ридера(javaFX)

Самый простой ридер какой может быть.


public class FXMLReaderController implements Initializable {

    @FXML

    private TextArea t;

    @FXML

    private void openButton(ActionEvent event) {

         FileChooser fileChooser = new FileChooser();

            fileChooser.setTitle(«Открытие файла»);

            File file = fileChooser.showOpenDialog(null);

            if (file != null) {

                t.setText(readerFile(file.getAbsolutePath()));

            }

    }

     String readerFile(String s){

          String str,f="";

        try{

            File file=new File(s);

            FileReader fr=new FileReader(file);

            BufferedReader br=new BufferedReader(fr);

            while((str = br.readLine()) != null){

                f+=str+"n";

            }

        }catch(IOException e){

             e.getMessage();

        }

        return f;

     }

    @Override

    public void initialize(URL url, ResourceBundle rb) {

        t.setText(«Программа для чтения текстовых файлов»);

    }    

}


Вызов SMS-клиента(android)


 Intent sendIntent = new Intent(Intent.ACTION_VIEW);

                    sendIntent.putExtra(«sms_body», «текст_сообщения»);

                    sendIntent.setType(«vnd.android-dir/mms-sms»);

                    startActivity(sendIntent);

Текстовый квест для android


Разбиваем текст на пронумерованные части и сохраняем их в виде txt в папке assets, откуда и читаем их при помощи метода read(int n)(см. ниже).




public class Quest extends AppCompatActivity {

    EditText input;

    TextView text;

    ScrollView s;

    File sdPath,sdFile;

    int m=0;

    final int newGame=1,showHistory=2,closeHistory=3,exit=4;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_quest);

        input=(EditText)findViewById(R.id.editText);

        text=(TextView)findViewById(R.id.textView);

        s=(ScrollView)findViewById(R.id.scrollView);

        if (!Environment.getExternalStorageState().equals(

                Environment.MEDIA_MOUNTED)) {

            Toast.makeText(getApplicationContext(),"Память недоступна", Toast.LENGTH_SHORT).show();

            return;

        }

        sdPath = Environment.getExternalStorageDirectory();

        sdPath = new File(sdPath.getAbsolutePath() + "/" + «TextQuest»);

        sdFile = new File(sdPath, «history»);

        if (!sdPath.exists()) {

            sdPath.mkdirs();

            text.setText(read(1));

            writeFile("0",true);

        }else {

            input.setText(readHistory(true));

            m=1;

            go(null);

            m=0;

        }

    }

    public void go(View view){

        int n;

        try{

            n=Integer.parseInt(input.getText().toString());

        }catch(NumberFormatException e){

            Toast.makeText(getApplicationContext(),"введите номер пункта",Toast.LENGTH_SHORT).show();

            input.setText("");

            input.requestFocus();

            return;

        }

        if(n>350||n<0){

            Toast.makeText(getApplicationContext(),"номер за пределами диапазона",Toast.LENGTH_SHORT).show();

            input.setText("");

            input.requestFocus();

            return;

        }

        text.setText(read(n+1));

        if(m==0){

            writeFile(n+"",true);

        }

        input.setText("");

        s.scrollTo(0,0);

    }

    String readHistory(boolean b){

        String str="«,f=»";

        try {

            BufferedReader br = new BufferedReader(new FileReader(sdFile));

            while ((str = br.readLine()) != null) {

                if (b)

                    f=str;

                else

                f+=str+"->";

            }

        } catch (FileNotFoundException e) {

            e.printStackTrace();

            Toast.makeText(getApplicationContext(),"Произошла ошибка", Toast.LENGTH_SHORT).show();

        } catch (IOException e) {

            e.printStackTrace();

            Toast.makeText(getApplicationContext(),"Произошла ошибка", Toast.LENGTH_SHORT).show();

        }

        return f;

    }

    String read(int n){

        String str,f="";

        try {

            BufferedReader reader=new BufferedReader(new InputStreamReader(getAssets().open(n+".txt")));

            str=reader.readLine();

            while (str!=null){

                f+=str+"n";

                str=reader.readLine();

            }

            reader.close();

        }

        catch (IOException e){

            Toast.makeText(getApplicationContext(),"ERROR FILE OPEN!", Toast.LENGTH_SHORT).show();

        }

        return f;

    }

    void writeFile(String s,boolean b){

        try {

            BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile,b));

            bw.write(s+"n");

            bw.close();

        } catch (IOException e) {

            e.printStackTrace();

            Toast.makeText(getApplicationContext(),"Произошла ошибка", Toast.LENGTH_SHORT).show();

            return;

        }

    }

    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.quest, menu);

        menu.add(0,newGame,0,"Начать Заново");

        menu.add(0,showHistory,0,"Показать историю");

        menu.add(0,closeHistory,0,"Скрыть историю");

        menu.add(0,exit,0,"ВЫХОД");

        return true;

    }

    public boolean onOptionsItemSelected(MenuItem item){

        switch (item.getItemId()){

            case newGame:

                text.setText(read(1));

                writeFile("0", false);

                s.scrollTo(0,0);

                break;

            case showHistory:

                text.setText(readHistory(false));

                s.scrollTo(0,0);

                break;

            case closeHistory:

                input.setText(readHistory(true));

                m=1;

                go(null);

                m=0;

                s.scrollTo(0,0);

                break;

            case exit:

                finish();

                break;

        }

        return super.onOptionsItemSelected(item);

    }

}


Конструктор текстовых тестов(с функцией тестирования)

Текстовый тест это тест без всяческих изображений, схем или диаграмм. Просто задаются вопросы с пронумерованными вариантами ответов и пользователь выбирает номер верного по его мнению ответа.


@FXML

    private void nextQuestionAction(ActionEvent event) {

          if("".equals(t.getText())){

               alertWindow("", «Введите вопрос и варианты ответа», «Ошибка»);

               return;

           }

         if("".equals(cb.getValue())){

             alertWindow("", «Выберите вариант ответа», «Ошибка»);

               return;

           }

       if(r==1){

           recordInFile(cb.getValue(),testPath+System.getProperty(separator)+"ответы1", true);

           recordInFile(t.getText(),testPath+System.getProperty(separator)+volumeAnswers(«ответы1»),false);

           l3.setText(«Вопрос №»+volumeAnswers(«ответы1»)+" сохранен");

           t.setText("");

           cb.setValue("");

       }else{

           calc++;

           if(calc==volumeAnswers(«ответы1»)){

               b.setText(«результат»);

           }

           if(calc>volumeAnswers(«ответы1»)){

               calc=0;

               recordInFile(cb.getValue(),testPath+System.getProperty(separator)+"ответы2", true);

               recordInFile(«n»+dayDateAndTime()+"n"+userName()+"n"+resultsTest(),testPath+

                       System.getProperty(separator)+"результаты", true);

               showMessage(resultsTest(),"Тест завершен","Результат");

               recordInFile(«„,testPath+System.getProperty(separator)+“ответы2», false);

               cleanAll();

               b.setText(«следующий вопрос»);

               b.setDisable(true);

               t.setEditable(false);

               return;

           }

           t.setText(readerFile(testPath+System.getProperty(separator)+calc));

           recordInFile(cb.getValue(),testPath+System.getProperty(separator)+"ответы2", true);

           l3.setText("Вопрос № «+calc+». Осталось вопросов: "+(volumeAnswers(«ответы1»)-calc));

           cb.setValue("");

       }

    }

    @FXML

    private void openItem(ActionEvent event){

         DirectoryChooser dc = new DirectoryChooser();

            dc.setTitle(«Открытие теста»);

            dc.setInitialDirectory(new File(path));

            File file = dc.showDialog(null);

            if(file!=null){

                testPath=file.getAbsolutePath();

                if(!new File(testPath+System.getProperty(separator)+"ответы1").exists()){

                    alertWindow("", «Тест „+file.getName()+“ пока пустой.Дополните его», «Внимание!»);

                    return;

                }

                if(volumeAnswers(«ответы2»)!=0){

                     Alert alert = new Alert(AlertType.CONFIRMATION);

alert.setTitle(«ВНИМАНИЕ!»);

alert.setHeaderText(«Тест не пройден!»);

alert.setContentText(«Хотите продолжить?»);


Optional<ButtonType> resultAlert = alert.showAndWait();

if (resultAlert.get() == ButtonType.OK){

    t.setText(readerFile(testPath+System.getProperty(separator)+(volumeAnswers(«ответы2»)+1)));

                l3.setText("Вопрос № «+(volumeAnswers(„ответы2“)+1)+». Осталось вопросов: "+(volumeAnswers(«ответы1»)-volumeAnswers(«ответы2»)-1));

                 l1.setText(file.getName());

                 l2.setText(«тестирование»);

                 if((volumeAnswers(«ответы1»)-volumeAnswers(«ответы2»)-1)==0){

                     b.setText(«результат»);

                 }else{

                 b.setText(«следующий вопрос»);

                 }

                 b.setDisable(false);

                 t.setEditable(false);

                 calc=volumeAnswers(«ответы2»)+1;

                 r=0;

                 return;

}

                }

                t.setText(readerFile(testPath+System.getProperty(separator)+"1"));

                recordInFile(«„,testPath+System.getProperty(separator)+“ответы2», false);

                l3.setText("Вопрос № 1. Осталось вопросов: "+(volumeAnswers(«ответы1»)-1));

                 l1.setText(file.getName());

                 l2.setText(«тестирование»);

                 if((volumeAnswers(«ответы1»)-1)==0){

                     b.setText(«результат»);

                 }else{

                 b.setText(«следующий вопрос»);

                 }

                 b.setDisable(false);

                 t.setEditable(false);

                 calc=1;

                 r=0;

            }

    }

    @FXML

    private void createItem(ActionEvent event){

        TextInputDialog dialog = new TextInputDialog("тест "+new Random().nextInt(10000));        

dialog.setTitle(«Создание теста»);

dialog.setHeaderText(«Введите название нового теста»);

dialog.setContentText(«Название теста:»);

        Optional<String> name = dialog.showAndWait();

        if(name.isPresent()&&!"".equals(name.get())){

                testPath=path+System.getProperty(separator)+name.get();

                File f=new File(testPath);

                if(f.exists()){

                    alertWindow("", «Тест с таким названием уже имеетсяnВыберите другое название», «Ошибка»);

                    return;

                }else{

                    f.mkdir();

                }

                l1.setText(f.getName());

                l2.setText(«конструирование»);

                l3.setText("");

                b.setText(«следующий вопрос»);

                b.setDisable(false);

                t.setEditable(true);

                t.setText("");

                r=1;

            }

    }


Страницы книги >> Предыдущая | 1 2 3 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации