Курсовые работы / ПРИС П _15
.pdfandroid:layout_alignEnd="@+id/gaz_plita_button" android:layout_alignStart="@+id/gaz_plita_button" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:background="@drawable/roundedbutton"/>
<ImageView android:layout_width="40dp" android:layout_height="30dp" android:id="@+id/Plita_imageView"
android:layout_alignTop="@+id/gaz_plita_button" android:layout_alignLeft="@+id/gaz_all_button" android:layout_alignBottom="@+id/gaz_plita_button" android:src="@drawable/plita"/>
<ImageView android:layout_width="40dp" android:layout_height="30dp"
android:id="@+id/Duhovka_imageView" android:layout_alignTop="@+id/gaz_duhovka_button" android:layout_alignLeft="@+id/Plita_imageView" android:layout_alignBottom="@+id/gaz_duhovka_button" android:src="@drawable/duhovka"/>
<ImageView android:layout_width="40dp" android:layout_height="30dp" android:id="@+id/Tv_imageView"
android:layout_alignTop="@+id/gaz_gorelka_button" android:layout_alignLeft="@+id/Duhovka_imageView" android:layout_alignBottom="@+id/gaz_gorelka_button" android:src="@drawable/gorelka"/>
<ImageView android:layout_width="40dp" android:layout_height="30dp" android:id="@+id/Kotel_imageView"
android:layout_alignTop="@+id/gaz_kotel_button" android:layout_alignLeft="@+id/Duhovka_imageView" android:layout_alignBottom="@+id/gaz_kotel_button" android:src="@drawable/kotel"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
Фрагмент исходного кода программы (модуль формы изучения правил безопасности эксплуатации газовых приборов мобильного приложения)
package com.example.sly.safety; import android.media.MediaPlayer; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar;
42
import android.view.View;
import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast;
public class RulesGazActivity extends AppCompatActivity { public static final String PARAM_RULES = "rulesTheme"; int rulesTheme;
MediaPlayer mPlayer;
ImageButton startButton, pauseButton, stopButton; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_rules_gaz);
rulesTheme = getIntent().getIntExtra(PARAM_RULES, 0); TextView twRules = (TextView) findViewById(R.id.textView);
startButton = (ImageButton) findViewById(R.id.QuestionPlayimageButton); pauseButton = (ImageButton) findViewById(R.id.QuestionPauseimageButton); stopButton = (ImageButton) findViewById(R.id.QuestionStopimageButton); pauseButton.setEnabled(false);
stopButton.setEnabled(false); if (rulesTheme==1) {
twRules.setText("Инструкция по технике безопасности при работе с газовой плитой\n" + "1. Перед началом работы необходимо проветрить помещение, включить
механическую вентиляцию или держать открытыми естественные вентиляционные отверстия.\n" + "2. Следите за тем, чтобы пламя горелки было равномерным, синего цвета. Если оно
желтого цвета и отрывается от горелки, отрегулируйте горелку.\n" + "3. Не оставляйте работающую плиту без присмотра;\n" + "4. Не используйте плиту для обогрева помещения;\n" +
"5. Периодически (не реже одного раза в полгода) проверяйте состояние гибкого шланга подвода газа. \n" +
"6. Чтобы почистить горелки или помыть стол плиты, горелки необходимо снять.\n" + "7. Газовые каналы на шляпках горелок необходимо чистить щеткой, после чего их
нужно промыть и хорошо высушить.\n");
mPlayer = MediaPlayer.create(this, R.raw.seventhsong); mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) { stop();
}
});
}
if (rulesTheme==2) {
twRules.setText("Инструкция по технике безопасности при работе с жарочным шкафом\n" + "1. Перед началом работы проверьте надёжность подсоединения защитного заземления
к корпусу жарочного шкафа, а также целостность подводящего электрического кабеля. \n" +
"2. Доводите температуру в жарочном шкафу до установленной нормы в зависимости от исходных изделий. \n" +
"3. Соблюдайте осторожность при открывании жарочного шкафа во избежание ожогов лица и дыхательных путей раскалённым воздухом. \n" +
"4. Во избежание ожогов рук ставьте и вынимайте противни с выпечкой из жарочного шкафа, используя полотенце или прихватки. \n" +
43
"5. Следите за температурой жарочного шкафа, не допускайте его перегревания. \n" + "6. Не оставляйте без присмотра включенный в сеть жарочный шкаф.\n");
mPlayer = MediaPlayer.create(this, R.raw.eighthsong); mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) { stop();
}
});
}
if (rulesTheme==3) {
twRules.setText("Инструкция по технике безопасности при работе с газовой горелкой\n" + "1. При подготовке горелки к работе необходимо отвинтить колпачок баллона,
вращением маховика вентиля против часовой стрелки установить иглу вентиля в верхнее положение и ввернуть вентиль непосредственно в баллон. \n" +
"2. В случае появления утечки из вентиля баллона сжиженного углеводородного газа пользоваться баллоном запрещается. \n" +
"3. Присоединение шланга к баллону должно производиться ключом и обеспечивать плотность соединения, исключающую утечку газа. \n" +
"4. Для зажигания газовой горелки необходимо открыть полностью вентиль на баллоне, затем приоткрыть клапан горелки и поднести к концу сопла горящую спичку. \n" +
"5. Величину пламени газовой горелки при пайке кабеля следует регулировать клапаном горелки. \n" +
"6. Не допускается полное выгорание газа из баллона. Малое пламя горелки указывает на недостаточное количество газа в баллоне, засор диффузора горелки или капсюля баллона. \n" +
"7. При пользовании газовой горелкой не должен ощущаться запах газа. Проверить утечку газа можно путем нанесения мыльной эмульсии на место предполагаемой утечки газа. \n");
mPlayer = MediaPlayer.create(this, R.raw.ninthsong); mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) { stop();
}
});
}
}
private void stop(){ mPlayer.stop(); pauseButton.setEnabled(false); stopButton.setEnabled(false); try {
mPlayer.prepare();
mPlayer.seekTo(0);
startButton.setEnabled(true);
}
catch (Throwable t) {
Toast.makeText(this, t.getMessage(), Toast.LENGTH_SHORT).show();
}
}
public void startAudio(View view){ mPlayer.start(); startButton.setEnabled(false);
44
pauseButton.setEnabled(true);
stopButton.setEnabled(true);
}
public void pauseAudio(View view){ mPlayer.pause(); startButton.setEnabled(true); pauseButton.setEnabled(false); stopButton.setEnabled(true);
}
public void stopAudio(View view){ stop();
}
@Override
public void onDestroy() { super.onDestroy();
if (stopButton.isEnabled()) { stop();
}
}
}
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.example.sly.safety.RulesGazActivity"> <include layout="@layout/content_rules_gaz" />
</android.support.design.widget.CoordinatorLayout>
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/scrollView"
android:fillViewport="true"
android:scrollbars="none">
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout
android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sly.safety.RulesGazActivity" tools:showIn="@layout/activity_rules_gaz"> <ImageView
android:layout_width="fill_parent"
45
android:layout_height="fill_parent" android:id="@+id/Gaz_imageView" android:layout_alignParentTop="false" android:layout_alignParentRight="false" android:layout_alignParentEnd="false" android:scaleType="centerCrop" android:src="@drawable/gaz" android:layout_alignParentStart="false" android:layout_alignParentLeft="false" android:layout_alignParentBottom="false" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" android:text="Large Text"
android:id="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:textStyle="italic" android:textAlignment="inherit" android:textColor="#ffffff" />
<ImageButton android:layout_width="48dp" android:layout_height="48dp"
android:id="@+id/QuestionPlayimageButton" android:src="@android:drawable/ic_media_play" android:onClick="startAudio" android:layout_alignTop="@+id/QuestionPauseimageButton" android:layout_toLeftOf="@+id/QuestionPauseimageButton" android:layout_toStartOf="@+id/QuestionPauseimageButton" />
<ImageButton android:layout_width="48dp" android:layout_height="48dp"
android:id="@+id/QuestionPauseimageButton" android:src="@android:drawable/ic_media_pause" android:onClick="pauseAudio" android:layout_below="@id/textView" android:layout_marginTop="30dp" android:layout_centerHorizontal="true" android:layout_marginLeft="10dp"/>
<ImageButton android:layout_width="48dp" android:layout_height="48dp"
android:id="@+id/QuestionStopimageButton" android:layout_alignTop="@+id/QuestionPauseimageButton" android:layout_toRightOf="@+id/QuestionPauseimageButton" android:layout_toEndOf="@+id/QuestionPauseimageButton" android:src="@android:drawable/ic_menu_close_clear_cancel" android:onClick="stopAudio"
46
android:layout_marginLeft="10dp"/> </RelativeLayout>
</LinearLayout>
</ScrollView>
Фрагмент исходного кода программы (модуль формы контрольного теста мобильного приложения)
package com.example.sly.safety; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar;
import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.Random;
public class TestActivity extends AppCompatActivity { TextView Question;
String[] QuestionsMassive = new String[6]; int[] UsedQuestionsMassive = new int[6]; int diapazon, q, p, g, perebor, right, result=0; Button answer1, answer2, answer3; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test);
Question = (TextView) findViewById(R.id.QuestiontextView); for (q = 0; q < 6; q++) {
if (q == 0)
QuestionsMassive[q] = "На каком расстоянии от глаз пользователя должен находиться экран монитора?";
if (q == 1)
QuestionsMassive[q] = "На каком расстоянии от источников тепла необходимо устанавливать холодильник?";
if (q == 2)
QuestionsMassive[q] = "С какой периодичностью необходимо проверять состояние гибкого шланга подвода газа?";
if (q == 3)
QuestionsMassive[q] = "На каком расстоянии от края стола, обращенного к пользователю, необходимо располагать клавиатуру?";
if (q == 4)
QuestionsMassive[q] = "Как следует отключать прибор от сети?"; if (q == 5)
QuestionsMassive[q] = "Допустимое значение коэффициента отражения для ПК и его устройств";
}
answer1 = (Button) findViewById(R.id.FirstAnswerbutton); answer2 = (Button) findViewById(R.id.SecondAnswerbutton); answer3 = (Button) findViewById(R.id.ThirdAnswerbutton); for (p = 0; p < 6; p++)
UsedQuestionsMassive[p] = -1;
47
perebor = 0; right = 0;
showQuestion(Question);
showAnswers(answer1);
answer1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {
buttonsClick(0, 3);
}
});
answer2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {
buttonsClick(1, 4);
}
});
answer3.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {
buttonsClick(2, 5);
}
});
}
public void showQuestion(View view) {
diapazon = new Random().nextInt(QuestionsMassive.length); do {
g=0;
for (p=0;p<6;p++) {
if (UsedQuestionsMassive[p]==diapazon) g=g+1;
}
if (g>0)
diapazon = new Random().nextInt(QuestionsMassive.length); } while (g>0);
for (p=0;p<6;p++) { if (p==diapazon) {
UsedQuestionsMassive[p]=diapazon;
perebor=perebor+1;
}
}
Question.setText(QuestionsMassive[diapazon]);
}
public void showAnswers(View view) { if (diapazon == 0) {
answer1.setText("600-700 мм"); answer2.setText("500-600 мм"); answer3.setText("700-800 мм");
}
if (diapazon == 1) { answer1.setText("Не менее 1 м"); answer2.setText("Не менее 50 см"); answer3.setText("Не менее 1,5 м");
}
if (diapazon == 2) { answer1.setText("Раз в год");
48
answer2.setText("Раз в полтора года"); answer3.setText("Раз в полгода");
}
if (diapazon == 3) { answer1.setText("100-300 мм"); answer2.setText("300-500 мм"); answer3.setText("500-700 мм");
}
if (diapazon == 4) { answer1.setText("За шнур"); answer2.setText("За вилку"); answer3.setText("Не отключать");
}
if (diapazon == 5) { answer1.setText("0,1-0,3"); answer2.setText("0,7-0,9"); answer3.setText("0,4-0,6");
}
}
public void buttonsNotEnabled () { answer1.setEnabled(false); answer2.setEnabled(false); answer3.setEnabled(false);
}
public void buttonsClick (int rightAnswer1, int rightAnswer2) { if (perebor==6) {
buttonsNotEnabled();
if ((right==0)||(right==5)||(right==6))
Question.setText("Вы ответили верно на "+right+" вопросов из 6"); if ((right==2)||(right==3)||(right==4))
Question.setText("Вы ответили верно на "+right+" вопроса из 6"); if (right==1)
Question.setText("Вы ответили верно на "+right+" вопрос из 6");
}
else {
if ((diapazon==rightAnswer1)||(diapazon==rightAnswer2)) right=right+1;
if (result<right) result=right;
showQuestion(Question);
showAnswers(answer1);
}
}
}
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
49
android:fitsSystemWindows="true"
tools:context="com.example.sly.safety.TestActivity"> <include layout="@layout/content_test" />
</android.support.design.widget.CoordinatorLayout>
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/scrollView"
android:fillViewport="true"
android:scrollbars="none">
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout
android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sly.safety.TestActivity" tools:showIn="@layout/activity_test"> <ImageView
android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/Test_imageView" android:layout_alignParentTop="false" android:layout_alignParentRight="false" android:layout_alignParentEnd="false" android:scaleType="centerCrop" android:src="@drawable/test" android:layout_alignParentStart="false" android:layout_alignParentLeft="false" android:layout_alignParentBottom="false" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/QuestiontextView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:textStyle="italic" android:textAlignment="center" android:textColor="#ffffff" />
<Button
style="?android:attr/buttonStyleSmall" android:layout_width="222dp" android:layout_height="wrap_content" android:id="@+id/FirstAnswerbutton" android:layout_below="@+id/QuestiontextView"
50
android:layout_centerHorizontal="true" android:background="@drawable/roundedbutton" android:layout_marginTop="10dp"/>
<Button
style="?android:attr/buttonStyleSmall" android:layout_width="222dp" android:layout_height="wrap_content" android:id="@+id/SecondAnswerbutton" android:layout_below="@+id/FirstAnswerbutton" android:layout_centerHorizontal="true" android:background="@drawable/roundedbutton" android:layout_marginTop="10dp"/>
<Button
style="?android:attr/buttonStyleSmall" android:layout_width="222dp" android:layout_height="wrap_content" android:id="@+id/ThirdAnswerbutton" android:layout_below="@+id/SecondAnswerbutton" android:layout_centerHorizontal="true" android:background="@drawable/roundedbutton" android:layout_marginTop="10dp"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
51