Хелпикс

Главная

Контакты

Случайная статья





Государственное автономное профессиональное образовательное учреждение



Государственное автономное профессиональное образовательное учреждение

Стерлитамакский многопрофильный профессиональный колледж

(ГАПОУ СМПК)

 

 

ОТЧЕТ

ПО УЧЕБНОЙ ПРАКТИКЕ

 

по профессиональному модулю

УП.02. МДК 01.03/01.04

 

 

  студентки группы ИСП-31 специальности 09.02.07 Информационные системы и программирование Байгелов Александр Алфредович     Сроки прохождения практики:   начало «27» апреля 2020 г. окончание «30» мая 2020 г.

 

 

Стерлитамак, 2020 г


 

СОДЕРЖАНИЕ

 

ЗАДАНИЕ 1. 3

ЗАДАНИЕ 2. 5

ЗАДАНИЕ 3. 6

ЗАДАНИЕ 4. 8

ЗАДАНИЕ 5. 9

 


 

ЗАДАНИЕ 1

 

Разработка технического задания для мобильного приложения «Записная книжка студента»:

1. Сбор и анализ информации, формулировка потребности клиента, выбор вида деятельности.

2. Оформление технического задания по шаблону согласно ГОСТ 19.201-78 или 34.602-89.

 

Разработано техническое задание для многооконного приложения по разработке анализ приложения «Записная книжка». Произведены сбор и формулировка потребности клиента, выбор вида деятельности. Оформление технического задания по шаблону согласно ГОСТ 19.201-78. Выполненное задание соответствует требованиям: техническое задание разработано в соответствии с ГОСТ 19.201-78.

 

 

ЗАДАНИЕ 2

 

Создание и разработка пользовательского интерфейса (UI) многооконного мобильного приложения «Записная книжка» в соответствии с техническим заданием:

1. Создание интерфейса в XML файле на главном активити.

2. Использование различных разметок при создании главного активити.

3. Определение расположения компонентов на активити.

4. Создание фона.

5.

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

 

                                                 ЗАДАНИЕ 3

 

Создание и разработка пользовательского интерфейса (UI) многооконного мобильного приложения «Записная книжка» в соответствии с техническим заданием:

1. Создание интерфейса в XML файлах дочерних активити.

2. Определение расположения компонентов на активити.

3. Создание фона с использованием элементов стиля, изображений.

 

Были созданы интерфейсы в XML файлах дочерних активити. Настроены свойства компонентов разметки. Осуществлено эстетичное расположение стандартных элементов, назначение которых понятно пользователю. Определен фон и стиль приложения.

 

ЗАДАНИЕ 4

 

Разработка логики приложения. Наличие управляющих элементов:

1. На главном активити.

2. Перехода между активити.

3. На дочерних активити.

 

Были разработаны все стандартные элементы, кнопки: сохранение удаление и создание, поле для ввода текста заметки. В активити реализованы различные методы для взаимодействия элементов приложения между собой.

 

ЗАДАНИЕ 5

 

Реализация взаимодействия между активити:

1. Возможность перехода с главного активити к дочернему;

2. Создание и сохранение данных в активити;

3. Организации передачи данных между активити;

4. Возможность обратного перехода на главное активити.

 

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

 

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:orientation="vertical" >

 

<Button

   android:id="@+id/btn_new"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:text="@string/main_btn_new_task" />

 

<ListView

   android:id="@+id/view_task_list"

   android:layout_width="fill_parent"

   android:layout_height="0dip"

   android:layout_weight="1" >

</ListView>

 

<LinearLayout

   android:layout_width="fill_parent"

   android:layout_height="wrap_content" >

 

   <ToggleButton

       android:id="@+id/btn_incomplete"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:layout_weight="1"

       android:text="@string/main_btn_show_incompleted"

       android:textOff="@string/main_btn_show_incompleted"

       android:textOn="@string/main_btn_show_incompleted" />

 

   <ToggleButton

       android:id="@+id/btn_complete"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:layout_weight="1"

       android:text="@string/main_btn_show_completed"

       android:textOff="@string/main_btn_show_completed"

       android:textOn="@string/main_btn_show_completed" />

 

</LinearLayout>

 

</LinearLayout>

Task.xml

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"

   android:id="@+id/checkedTextView1"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:checkMark="?android:attr/textCheckMark">

</CheckedTextView>

 

MainActivity.java

 

package com.SpisokDel.todo;

 

import com.bobboau.todo.TaskListAdapter.LIST_MODE;

 

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.ToggleButton;

 

 

public class MainActivity extends Activity {

           

       /**

        * адаптер для списка задач

        */

       TaskListAdapter task_list_adapter;

           

       /**

        * кнопки главно активити

        */

ToggleButton complete_button;

ToggleButton incomplete_button;

 

       /**

        * функция, которая настраивает пользовательский интерфейс

        */

@Override

public void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

   setContentView(R.layout.activity_main);

   // добавление прослушивателей к элементам активити

 

 

final Button add_new_button = (Button) findViewById(R.id.btn_new);

   complete_button = (ToggleButton) findViewById(R.id.btn_complete);

   incomplete_button = (ToggleButton) findViewById(R.id.btn_incomplete);

   final ListView task_list_view = (ListView) findViewById(R.id.view_task_list);

       

   complete_button.setOnClickListener(new View.OnClickListener() {

                              public void onClick(View v)

                              {

                                          showComplete();

                              }

                   });

       

   incomplete_button.setOnClickListener(new View.OnClickListener() {

                              public void onClick(View v)

                              {

                                          showIncomplete();

                              }

                   });

       

   add_new_button.setOnClickListener(new View.OnClickListener() {

                              public void onClick(View v)

                              {

                                          addNew();

                              }

                   });

       

   //set up the listview and it's adapter

   task_list_adapter = new TaskListAdapter(this);

   task_list_view.setAdapter(

   task_list_adapter

   );

       

   //показать задачу

   incomplete_button.setChecked(false);

   showIncomplete();

}

 

@Override

public boolean onCreateOptionsMenu(Menu menu) {

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

   return true;

}

 

private void showComplete()

{

   task_list_adapter.setMode(LIST_MODE.COMPLETE);

                   complete_button.setChecked(true);

                   incomplete_button.setChecked(false);

       }

 

private void showIncomplete()

{

   task_list_adapter.setMode(LIST_MODE.INCOMPLETE);

                   incomplete_button.setChecked(true);

                   complete_button.setChecked(false);

}

   

private void addNew()

{

   //get the description from the user

   AlertDialog.Builder alert = new AlertDialog.Builder(this);

 

   alert.setTitle("New Task");

   alert.setMessage("Введите текст задачи");

       

   final EditText input = new EditText(this);

   input.setEnabled(true);

   alert.setView(input);

 

   alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

                   public void onClick(DialogInterface dialog, int whichButton) {

                              String description = input.getText().toString();

                              task_list_adapter.addTask(description);

                   }

                   });

 

                   alert.setNegativeButton("Cancel", null);

                       

                   alert.show();

}

}

 

 

TaskListAdapter.java

 

package com.bobboau.todo;

 

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InvalidClassException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.List;

 

import TaskList.TaskList;

import android.content.Context;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.CheckedTextView;

 

/**

 * адаптер, который принимает список задач и позволяет просматривать его.

 */

public class TaskListAdapter extends BaseAdapter {

 

       /**

        * файл список задач сериализуется в      

       */

       private static final String todo_list_file = "todo_list";

           

       TaskList task_list;

           

       /**

        * определяет, в каких возможных режимах мы могли бы находиться для показа задач

        */

       public enum LIST_MODE {COMPLETE, INCOMPLETE};

           

       /**

        * каков наш текущий режим        

       */

       LIST_MODE list_mode;

           

       /**

        * ссылка на MainActivity

        */

       private MainActivity activity;

           

       /**

        * конструктор

        */

       public TaskListAdapter(MainActivity a)

       {

                   activity = a;

                   deserializeTaskList();

                   list_mode = LIST_MODE.INCOMPLETE;

                   notifyDataSetChanged();

       }

 

       /**

        * извлекает объект списка задач из файловой системы           

        * @return TaskList

        */

       private void deserializeTaskList()

       {

                   task_list = null;

                       

                   try

                   {

                              FileInputStream in_file = activity.openFileInput(todo_list_file);

                              ObjectInputStream in_stream = new ObjectInputStream(in_file);

                                  

                              task_list = (TaskList)in_stream.readObject();

                                  

                              in_stream.close();

                              in_file.close();

                   }

                   catch(FileNotFoundException e)

                   {

                              task_list = new TaskList();

                   }

                   catch(InvalidClassException e)

                   {

                              //wrong serialization version

                              activity.deleteFile(todo_list_file);

                              task_list = new TaskList();

                   }

                   catch(IOException i)

   {

       Log.e(TAG, "Error loading ToDo list. "+i.getLocalizedMessage());

   }

                   catch(ClassNotFoundException c)

   {

                              Log.e(TAG, "Class TaskList not found. "+c.getLocalizedMessage());

   }

                   catch(Exception e)

                   {

                              Log.e(TAG, "Error loading ToDo list. "+e.getLocalizedMessage());

                   }

       }

           

       /**

        * возвращает список задач обратно в поле

        */

       private void serializeTaskList()

       {

                   try

                   {

                              FileOutputStream out_file = activity.openFileOutput(todo_list_file, Context.MODE_PRIVATE);

                              ObjectOutputStream out_stream = new ObjectOutputStream(out_file);

                                  

                              out_stream.writeObject(task_list);

                                  

                              out_stream.close();

                              out_file.close();

                   }

                   catch(IOException i)

                   {

       Log.e(TAG, "Error saving ToDo list. "+i.getLocalizedMessage());

                   }

       }

           

       private List<Integer> getItems()

       {

                   List<Integer> items = null;

                       

                   switch(list_mode)

                   {

                              case COMPLETE:

                                          items = task_list.getCompleteTasks();

                              break;

                                  

                              case INCOMPLETE:

                                          items = task_list.getIncompleteTasks();

                              break;

                   }

                       

                   return items;

       }

 

       /**

        * возвращает количество элементов в списке задач

        */

       @Override

       public int getCount()

       {

                   return getItems().size();

       }

 

       /**

        * получение элемента определяемого как индекс

        */

       @Override

       public Object getItem(int idx)

       {

                   return getItems().get(idx);

       }

 

           

       @Override

       public long getItemId(int idx)

       {

                   return getItems().get(idx);

       }

 

       /**

        * создает то что видит пользователь

        */

       @Override

       public View getView(int idx, View view, ViewGroup parent)

       {

                   if(view == null)

                   {

                              LayoutInflater vi = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

       view = vi.inflate(R.layout.task, null);

                   }

                       

                   final Integer handle = getItems().get(idx);

                       

                   //event handler for clicking (on the checkbox)

                   ((CheckedTextView)view).setOnClickListener(

                              new View.OnClickListener() {

                          public void onClick(View v)

                          {

                                      ((CheckedTextView)v).toggle();

                                          

                                      if(((CheckedTextView)v).isChecked())

                                      {

                                                  task_list.setComplete(handle);

                                      }

                                      else

                                      {

                                                  task_list.setIncomplete(handle);

                                      }

                                      dataChanged();

                          }

                              }

                   );

                       

                   ((CheckedTextView)view).setText(task_list.getDescription(handle));

                   ((CheckedTextView)view).setChecked(task_list.isComplete(handle));

                       

                   return view;

       }

 

       /**

        * устанавливает режим просмотра          

       * @param mode

        */

       public void setMode(LIST_MODE mode)

       {

                   list_mode = mode;

                   notifyDataSetChanged();

       }

           

       /**

        * добавление задач

        */

       public void addTask(String description)

       {

   task_list.addTask(description);

    dataChanged();

       }

           

       /**

        * действия при изменении данных

        */

       private void dataChanged()

       {

                   serializeTaskList();

                   notifyDataSetChanged();

       }

}

 

Task.java

package TaskList;

 

/**

 * класс, который представляет собой то, что нужно сделать

 *

 */

public class Task implements java.io.Serializable

{

       /**

        * используется для того, чтобы убедиться, что файл имеет ту же версию, что и *текущий загруженный класс 

*/

       private static final long serialVersionUID = 1L;

           

       /**

        * опишите что требуется сделать

        */

       private String description;

           

       /**

        * сделано-ли это?

        */

       private boolean completed;

           

       /**

        * constructor

        * @param _description

        */

       Task(String _description, boolean _completed)

       {

                   description = _description;

                   completed = _completed;

       }

           

       /**

        * описание

        * @return String

        */

       public String getDescription()

       {

                   return description;

       }

           

       /*

        * @return String

        */

       public void setDescription(String _description)

       {

                   description = _description;

       }

           

       /**

        * проверка на выполнение задачи

        */

       public boolean isComplete()

       {

                   return completed;

       }

           

       /**

        * пометить задачу как выполненную

        */

       public void setComplete()

       {

                   completed = true;

       }

           

       /**

        * пометить задачу как не выполненную

        */

       public void setIncomplete()

       {

                   completed = false;

       }

}

 

TaskList.java

 

package TaskList;

 

import java.util.ArrayList;

import java.util.List;

 

/**

 * класс, который представляет собой список дел, которые нужно сделать

 *

 */

public class TaskList implements java.io.Serializable

{

       private static final long serialVersionUID = 1L;

           

       /**

        * то что нужно сделать

        *@var List<Task>

        */

       ArrayList <Task> tasks;

           

       /**

        * конструктор

        */

       public TaskList()

       {

                   tasks = new ArrayList<Task>();

       }

           

       /**

        * добавление задач в список

        * @param description

        * @return Integer -- дескриптор для добавления созданной задачи

        */

       public Integer addTask(String description)

       {

                   tasks.add(

                              new Task(description, false)

                   );

                       

                   return tasks.size()-1;

       }

           

       /**

        * возвращает список дескрипторов задач, удовлетворяющих переданным критериям  * @param boolean completed -- если true, то получите только завершенные задачи, в противном случае получите только неполные задачи * return List<Integer>

        */

       public List<Integer> get(boolean completed)

       {

                   List<Integer> found = new ArrayList<Integer>();

                   for(Integer i = 0; i<tasks.size(); i++)

                   {

                              Task task = tasks.get(i);

                              if(task.isComplete() == completed)

                              {

                                          found.add(i);

                              }

                   }

                   return found;

       }

           

       /**

        * возвращает список дескрипторов задач, которые были завершены           

        * @return List<Integer>

        */

       public List<Integer> getCompleteTasks()

       {

                   return get(true);

       }

           

       /**

        * возвращает неполный список дескрипторов задач   

       * @return List<Integer>

        */

       public List<Integer> getIncompleteTasks()

       {

                   return get(false);

       }

           

       /**

        * завершена ли задача, определяемая переданным дескриптором

        * @param Integer handle

        * @return boolean

        */

       public boolean isComplete(Integer handel)

       {

                   return tasks.get(handel).isComplete();

       }

           

       /**

        * возвращает описание задачи, идентифицированной переданным дескриптором

        * @param Integer handle

        * @return String

        */

       public String getDescription(Integer handel)

       {

                   return tasks.get(handel).getDescription();

       }

           

       /**

        * @param Integer handle

        * @return String

        */

       public void setDescription(Integer handel, String description)

       {

                   tasks.get(handel).setDescription(description);

       }

           

       /**

        * устанавливает задачу, идентифицированную переданным дескриптором, как завершенную

        * @param Integer handle

        */

       public void setComplete(Integer handel)

       {

                   tasks.get(handel).setComplete();

       }

           

       /**

        * устанавливает задачу, идентифицированную переданным дескриптором, как не завершенную

        * @param Integer handle

        */

       public void setIncomplete(Integer handel)

       {

                   tasks.get(handel).setIncomplete();

       }

}



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.