Разработка интерфейса прикладного программного обеспечения с использованием моделей построения «CyberCalk 1.0.»

Автор: Пользователь скрыл имя, 13 Мая 2012 в 10:37, курсовая работа

Описание работы

Цель работы: приобрести практические навыки в области разработки дизайна прикладного программного обеспечения (ПО), его функциональности, а также в области разработки тестов для юзабилити-тестирования пользователя ПО.
Цель такого ПО: частично совместить функциональность калькулятора и простого текстового редактора, с возможность сохранения полученных данных в тестовый файл.
Область применения: небольшие расчеты дома и на предприятиях.

Содержание

Введение………………………………………………………………………………...2
1. Описание актуальности, целей и задач разрабатываемого ПО, его назначение и область применения........................3
2. Обзор программных продуктов, имеющих аналогичные цели и назначение…...4
3. Разработка интерфейса ПО и краткое описание основных элементов управления…………………….9
3. 1 Описание назначения основных окон приложения, элементов управления.....9
3. 2 Описание функциональности ПО и способов взаимодействия пользователя с ним..........................13
3. 3 Описание принципов композиции и организации элементов управления и визуализации, а также описание выбранного стиля и цветовой гаммы...............13
4. Разработка алгоритмов и блок-схем, описывающих функциональность ПО….15
5. Разработка алгоритмов и блок-схем, описывающих процесс визуализации и модификации поведения нестандартных управляющих элементов....................19
6. Разработка прикладного программного обеспечения….…………………...…...21
7. Разработка тестов юзабилити-тестирования………………………...…………...23
Выводы………………………………………………………………………………...24
Перечень ссылок…………....………………………………………………………...25
Приложение А. Техническое задание
Приложение Б. Тексты (листинги) разработанного программного обеспечения...26
Приложение В. юзабилити-тест для ПО…………………………………………….36

Работа содержит 1 файл

Пояснительная записка.doc

— 1.95 Мб (Скачать)

Все управляющие элементы являются модифицированными стандартным компонентами среды разработки Microsoft Visual Studio, но были разработаны нестандартные графические элементы интерфейса разрабатываемого программного обеспечения, являющиеся смешением возможностей языка программирования С# и визуальных компонентов.

Например, мигающая надпись названия программы в диалоговом окне входа.

Блок-схема ее работы представлена на рисунке 5.1.

Рисунок 5.1 – Блок-схема работы мигающей надписи

 

6 РАЗРАБОТКА ПРИКЛАДНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

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

Для выполнения всех вышеописанных действий, в которые используются как визуальные элементы, так и не визуальные, были использованы стандартные компоненты среды программирования Microsoft Visual Studio.

Рассмотрим подробнее их применение на примере.

Для реализации функциональности текстового редактора были использованы следующие компоненты:

                  TextBox – для представления текстового поля, в котором будет осуществлен набор текта. Является визуальным компонентом;

                  Button – для создания экранной клавиатуры, с помощью которой будет производится набор текста. Является визуальным компонентом;

                  MenuStrip - для создания главного меню управления программой, с помощью которого производится выход из программы, сохранение и открытие документа, показ калькулятора, показ окна «О программе». Является визуальным компонентом;

                  StatusStrip - для отображения языка ввода с экранной клавиатуры, которое изменяется в зависимости при нажатии на клавиши «Shif + Ctrl”. Является визуальным компонентом;

                  ImageSet  - для создания коллекции изображений, которые будут использованы для задних фонов визуальных компонентов. Является не визуальным компонентом.

Для реализации функциональности диалогового окна входа в программу были использованы следующие компоненты:

                  Button – для создания клавиш «OK» и «CANCEL», которые позволяют пользователю либо запустить главное окно приложения (нажатие «OK»), либо закрыть приложение (нажатие «CANCEL»). Является визуальным компонентом;

                  Label - для создания текстового поля «ВОЙТИ». Является визуальным компонентом;

                  PictureBox - для воздания изображения мигающей надписи названия приложения. Является визуальным компонентом.

                  Timer - для контролирования частоты мигания надписи. Является не визуальным компонентом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7 РАЗРАБОТКА ТЕСТОВ ЮЗАБИЛИТИ-ТЕСТИРОВАНИЯ

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

      особенности инсталяции;

      особенности открытия данного приложения;

      имеющиеся у пользователя навыки для работы с Windows-приложениями;

      имеющиеся у пользователя навыки для работы с приложениями такого рода;

      имеющиеся у пользователя навыки для работы с редактированием текста;

      восприятие пользователем цветовой гаммы  и стиля данного приложения;

      соответствие данного приложения его назначению;

      пожелания пользователя к разработчику по улучшению приложения.

В соответствии с этим был разработан юзабилитти тест, приведённый в приложении В.

 

 

 

 

 

 

 

 

ВЫВОДЫ

В результате выполнения данной курсовой работы было разработано прикладное программное обеспечение, а именно  CyberCalk 1.0.

Как следствие были получены навыки разработки интерфейсов прикладного программного обеспечения, его функциональности, а так же навыки в области разработки тестов для юзабилити-тестирования пользователем ПО.

Естественно существуют направления по усовершенствованию данного приложения. В дальнейшем можно: разработать стоку инструментов работы с текстом (выбор шрифта, цвета и т.п.), возможность печати на внешние устройства, доработка калькулятора, добавить скинов и усовершенствовать внешний вид програмного обеспечения.

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЕРЕЧЕНЬ ССЫЛОК

1.      Королевство delphi http://www.delphikingdom.com/asp/viewitem.asp?catalogid=61    (15.01.2009)

2.      Narod.ru      

http://sea1608.narod.ru/LK2.htm                                              (15.01.2009)

3.      Шилд Г.Полный справочник по С#.  — М. : Издательский дом "Вильямс", 2004.-752 с.

4.      Лабор В. В.Си Шарп: Создание приложений для Windows.— Мн.: Харвест, 2003. -384 с.

5.      Либерти Дж. Программирование на С#. – М.: Символ Плюс, 2002.- 684с.

6.      Культин Н. Б. С# в задачах и примерах. – СПб.: БХВ-Петербург, 2007. -240.

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ Б. Тексты (листинги) разработанного программного обеспечения.

Текст Form1.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.IO;

using System.Windows.Forms;

using System.Collections;

using Microsoft.CSharp;

using Microsoft.VisualBasic;

using Microsoft.Win32;

 

namespace Kyrsach4

{

    public partial class Form1 : Form

    {

        Form4 form4=new Form4();

        Form3 form3 = new Form3();

        public Bitmap bm = new Bitmap("Data\\buttons\\images\\on.jpg");

        public Image temp;

        public bool flag;

        public bool caps = true;

        public bool[] rus_en = new bool[2];

       

        public Form1()

        {

            this.SetStyle(ControlStyles.FixedHeight, true);

            this.SetStyle(ControlStyles.FixedWidth, true);

            InitializeComponent();

            toolStripStatusLabel1.Text = "Русский"; // установка метки в строке состояния

            statusStrip1.Height = 24;

           

            form4.Deactivate+=new EventHandler(form4_Deactivate);

 

                       

        }

        private void button36_Click(object sender, EventArgs e)

        {

            if (form4.flag){

            textBox1.Text += ((Button)sender).Text;//вывод в текстовое поле

            }

        }

        private void button1_Click(object sender, EventArgs e) //метод, выполняемый после нажатия КэпсЛук

        {

            ((Button)sender).FlatStyle = ((Button)sender).FlatStyle == FlatStyle.Flat ? FlatStyle.Standard : FlatStyle.Flat;

            caps = caps == true ? false : true;

 

           

        }

 

        private void button2_Click(object sender, EventArgs e)//метод, выполняемый после нажания Shift

        {

            //((Button)sender).FlatStyle = ((Button)sender).FlatStyle == FlatStyle.Flat ? FlatStyle.Standard : FlatStyle.Flat;

            rus_en[0] = rus_en[0] == true ? false : true; // установка флажка,что был нажат Shift

           

            if ((rus_en[0]) && (rus_en[1])) // если были нажаты Ctrl b Shift

            {

                toolStripStatusLabel.Text = toolStripStatusLabel1.Text == "Русский" ? "Английски" : "Русский"; // переключение метки

            }

            else if ((!rus_en[0]) && (!rus_en[1]))// если были нажаты Ctrl b Shift

            {

                toolStripStatusLabel.Text = toolStripStatusLabel1.Text == "Русский" ? "Английски" : "Русский";// переключение метки

            }

           

        }

 

        private void button3_Click(object sender, EventArgs e)//метод, выполняемый после нажания Ctrl

        {

            //((Button)sender).FlatStyle = ((Button)sender).FlatStyle == FlatStyle.Flat ? FlatStyle.Standard : FlatStyle.Flat;

            rus_en[1] = rus_en[1] == true ? false : true; // установка флажка,что был нажат Ctrl

 

            if ((rus_en[0]) && (rus_en[1]))// если были нажаты Ctrl b Shift

            {

                toolStripStatusLabel.Text = toolStripStatusLabel.Text == "Русский" ? "Английский" : "Русский";// если были нажаты Ctrl b Shift

            }

            else if ((!rus_en[0]) && (!rus_en[1]))// если были нажаты Ctrl b Shift

            {

                toolStripStatusLabel.Text = toolStripStatusLabel.Text == "Русский" ? "Английски" : "Русский";// если были нажаты Ctrl b Shift

            }

        }

 

        private void click_to_key(object sender, EventArgs e) // метод, выполняемый после нажатия на буквенных клавишах

        {

            if (rus_en[0] && rus_en[1]) // проверка языка

            {

                if (!caps)    //проверка регистра букв

                {

                    textBox1.Text += ((Button)sender).Text[0].ToString().ToUpper(); //вывод в текстовое поле соответствующей буквы -- введена на кнопке

                } //верхний регистр

 

                else

                {

                    textBox1.Text += ((Button)sender).Text[0].ToString().ToLower();//вывод в текстовое поле соответствующей буквы -- введена на кнопке

                }

                //нижний регистр

            }

            else

            {

                if (!caps)//проверка регистра букв

                {   //верхний регистр

                    textBox1.Text += ((Button)sender).Text[2].ToString().ToUpper();//вывод в текстовое поле соответствующей буквы -- введена на кнопке

                }

                else

                {

                    textBox1.Text += ((Button)sender).Text[2].ToString().ToLower();//вывод в текстовое поле соответствующей буквы -- введена на кнопке

                } //нижний регистр

            }

           

        }

 

        private void click_for_tsifri(object sender, EventArgs e)// метод, выполняемый после нажатия на кнопку не чувствительной к регистру и языку

        {

            textBox1.Text += ((Button)sender).Text;//вывод в текстовое поле

        }

 

        private void backsp(object sender, EventArgs e)// метод, выполняемый после нажатия на Backspace

        {

            if (textBox1.Text.Length != 0)

            {

                textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1, 1);

            }

        }

 

        private void undoToolStripMenuItem_Click(object sender, EventArgs e)//пункт муню Endo

        {

            textBox1.Undo();

        }

 

 

        private void button34_Click(object sender, EventArgs e)// метод, выполняемый после нажатия на Tab

        {

            textBox1.Text += "    ";

        }

 

        private void button49_Click(object sender, EventArgs e)// метод, выполняемый после нажатия на Enter

        {

            textBox1.Text += "\n";

        }

 

        private void button33_Click(object sender, EventArgs e)// метод, выполняемый после нажатия на пробел

        {

            textBox1.Text += " ";

        }

 

        private void сохранитьToolStripMenuItem1_Click(object sender, EventArgs e)

        {

            SaveFileDialog k = new SaveFileDialog();

            k.Filter = "Text file (*.txt)|*.txt";//фильтр

            if (k.ShowDialog() == DialogResult.OK)//если были выбраны файлы

            {

                //создаем файловый поток

                FileStream fs = new FileStream(k.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);

                StreamWriter fwr = new StreamWriter(fs, Encoding.GetEncoding("windows-1251"));

                fwr.Write(textBox1.Text);

                fwr.Close();

                form4.Deactivate+=new EventHandler(form4_Deactivate);

            }

 

        }

        private void form4_Deactivate(object sender, EventArgs e)

        {

            if (form4.date!= null)

            {

                textBox1.Text += form4.date.ToString();

            }

            form4.Hide();

                    }

 

 

        private void открытьToolStripMenuItem1_Click(object sender, EventArgs e)

        {

            OpenFileDialog k = new OpenFileDialog();

            k.Filter = "Text file (*.txt)|*.txt";

            k.Multiselect = false;

            if (k.ShowDialog() == DialogResult.OK)

            {

                FileStream fs = new FileStream(k.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);

                StreamReader fwr = new StreamReader(fs, Encoding.GetEncoding("windows-1251"));

                textBox1.Text = fwr.ReadToEnd();

                fwr.Close();

            }

        }

 

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 

        private void Й_MouseHover_1(object sender, EventArgs e)

        {

           /* temp = ((Button)sender).BackgroundImage;

            ((Button)sender).BackgroundImage = bm;*/

        }

 

        private void Й_MouseLeave(object sender, EventArgs e)

        {

          

            //((Button)sender).BackgroundImage = temp;

        }

 

        private void показатьToolStripMenuItem1_Click(object sender, EventArgs e)

        {

            form4.date = null;

            form4.Show();

        }

 

private void скрытьToolStripMenuItem1_Click(object sender, EventArgs e)

        {

            form4.Hide();

        }

 

private void undoToolStripMenuItem_Click_1(object sender, EventArgs e)

        {

            textBox1.Undo();

 

        }

 

   private void redoToolStripMenuItem_Click(object sender, EventArgs e)

        {

            textBox1.Redo();

        }

 

  private void оПрограммеToolStripMenuItem2_Click(object sender, EventArgs e)

        {

            form3.Show();

        }

 

 

    }

}

 

Текст Form2.cs:
using System;

using System.Collections.Generic;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

using System.Media;

using System.Timers;

using System.Threading;

 

namespace Kyrsach 4

{

    public partial class Form2 : Form

Информация о работе Разработка интерфейса прикладного программного обеспечения с использованием моделей построения «CyberCalk 1.0.»