Разработка программного обеспечения для обслуживания автосалона

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 06.01.2013
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Анализ исходных данных
  • 1.1 Характеристика требований на разработку
  • 1.2 Анализ предметной области
  • 1.3 Специальное и общесистемное программное обеспечение
  • 2. Программное проектирование
  • 2.1 Разработка диаграммы прецедентов
  • 2.2 Разработка диаграммы классов
  • 2.3 Разработка диаграммы деятельности
  • 2.4 Разработка диаграммы состояний
  • 3. Программная реализация
  • 3.1 Детальная реализация функциональных частей программного обеспечения
  • 3.1.1 Реализация программного обеспечения
  • 3.1.2 Разработкапользовательскогоинтерфейса
  • 3.2 Документирование программного обеспечения
  • 3.2.1 Разработка описания программы
  • 3.2.2 Разработка руководства пользователя
  • 3.2.3 Программа и методика испытаний
  • 3.4 Тестирование программного обеспечения
  • Заключение
  • Литература
  • Приложения

Введение

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

Актуальность задачи заключается в том, что язык, выбранный для написания данного программного обеспечения - C# - является одним из самых молодых языков программирования. Вместе с тем, он открывает большие возможности для программиста.

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

1. Анализ исходных данных

1.1 Характеристика требований на разработку

Необходимо разработать программное обеспечение для обслуживания автосалона со следующими требованиями:

– Графический интерфейс основной программы. Предполагается использовать стандартные оконные формы, такие как Button, TextBox, DataGridViewи т.д. для реализации данного требования;

– Загрузка и хранение данных на диске. Загрузка файла базы будет осуществляться автоматически, при открытии той или иной вкладки базы. Сохранение новой сущности, а так же измененной, происходит так же автоматически, без участия пользователя;

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

– Поиск по различным признакам. Одним из элементов окна базы является DataGridView, поиск по которому не представляет труда. Так в поле поиска необходимо ввести ключ поиска, и если хотя бы одно совпадение найдено (вне зависимости от поля) строка DataGridViewбудет выделена.

– Разработать и использовать не менее восьми сущностей. Предполагается работа со следующими сущностями:

o Абстрактный класс Product;

o Auto;

o Disk;

o Bus;

o Moto;

o Klient;

o Saller;

o Password;

o Интерфейс Serialization_Deserialization.

– Обязательно использование наследования и полиморфизма.

Язык программирования и среда разработки - C/C++, C#, MS VisualStudio 2005/2010. Платформа реализации - ОС Windows XP/Vista/7/2003/2008.

1.2 Анализ предметной области

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

Предполагается работа пользователя со следующими сущностями:

– Автомобиль;

– Диск;

– Шина;

– Мототехника;

– Клиент;

– Продавец.

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

– Добавление данных:

o добавление автомобиля:

· для продажи;

· для проката;

o добавление клиента;

o добавление мототехники;

o добавление дисков;

o добавление шин;

o добавление продавца (если пользователь вошел под учетной записью Администратора);

– Поиск по любым совпадениям ключа;

– Сортировка по всем полям и направлениям (по возрастанию, по убыванию) в DataGridView, в зависимости от выбора пользователя

– Редактирование данных:

o редактирование информации о диске;

o редактирование информации об автомобиле;

o редактирование информации о шины;

o редактирование информации о мототехнике;

o редактирование информации о продавце;

– Просмотр информации:

o просмотр информации о мототехнике;

o просмотр информации о шинах;

o просмотр информации о клиентах;

o просмотр информации об автомобилях;

o просмотр информации о дисках;

o просмотр информации о продавцах (если пользователь вошел под учетной записью Администратора);

– Работа с файлами:

o загрузка базы из файла (происходит автоматически);

o сохранение базы в файл (происходит автоматически);

– Изменение пароля (если пользователь вошел под учетной записью Администратора):

o изменение пароля учетной записи Администратора;

o изменение пароля учетной записи Продавца.

1.3 Специальное и общесистемное программное обеспечение

При написании данного курсового проекта использовалось следующее стороннее программное обеспечение и инструментарий:

– Microsoft Visual Studio 2010 - написание программы;

– Microsoft Office Word 2013 - написание пояснительной записки, описания программы, руководства пользователя;

– Enterprise Architect 7.5 - проектирование и подготовка диаграмм.

программное обеспечение руководство пользователь

2. Программное проектирование

2.1 Разработка диаграммы прецедентов

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

В данной курсовой работе в качестве актеров выступают Администратор и Продавец. К прецедентам Продавца относятся:

– Добавление данных:

o Добавление автомобиля;

o Добавление мотоцикла;

o Добавление шин;

o Добавление дисков;

o Добавление клиента;

– Поиск по любым совпадениям активной таблицы базы;

– Сортировка по любым полям в прямом и обратном порядке;

– Редактирование ранее введенных данных, кроме данных о клиентах;

– Просмотр информации в виде таблицы:

o Просмотр информации об автомобилях;

o Просмотр информации о клиентах;

o Просмотр информации о шинах;

o Просмотр информации о дисках;

o Просмотр информации о мотоциклах;

– Работа с файлами:

o Загрузка данных из файлов баз и сохранение данных в файлы происходит автоматически при открытии таблицы базы и добавлении/редактировании информации соответственно;

К прецедентам Администратора относятся все прецеденты Продавца, а также:

– Добавление продавца;

– Редактирование данных о продавце;

– Просмотр информации о продавцах;

– Изменение пароля учетной записи Продавца;

– Изменение пароля учетной записи Администратора.

На основании вышесказанного была построена диаграмма прецедентов, представленная в приложении А.

2.2 Разработка диаграммы классов

На диаграмме классов отображаются все классы, участвующие в работе программы, а также все свойства и методы классов и отношения между ними.

Краткая характеристика классов, используемых в данной курсовой работе, представлена в таблице 2.2.1.

Таблица 2.2.1 - Классы их методы и свойства

Класс

(интерфейс)

Краткая характеристикаметодов

<<interface>>

Serialization_Deserialization

Предоставляет классам, зависящим от данного возможность реализации методов сериализации и десериализации

Product

Абстрактный класс с основными свойствами и методами, необходимыми для работы с товаром

Person

Абстрактный класс, являющийся базовым для классов Sallerи Klient.

Auto

Класс автомобиль, содержащий свойства автомобиля, а так же реализующий интерфейс Serialization_Deserialization

Moto

Класс мототехника, содержащий свойства мототехники, а так же реализующий интерфейс Serialization_Deserialization

Bus

Класс шина, содержащий свойства шин, а так же реализующий интерфейс Serialization_Deserialization

Disk

Класс диск, содержащий свойства дисков, а так же реализующий интерфейс Serialization_Deserialization

Klient

Класс клиент, содержащий информацию оклиенте, а так же реализующий интерфейс Serialization_Deserialization

Saller

Класс продавец, содержащий информацию о продавце, а так же реализующий интерфейс Serialization_Deserialization

Password

Класс пароль, содержащий свойство хеш значение пароля (администратора или продавца), а также методы для работы с паролем

2.3 Разработка диаграммы деятельности

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

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

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

Диаграмма деятельности для данного курсового проекта представлена в приложении Д.

2.4 Разработка диаграммы состояний

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

В языке UML под состоянием понимается абстрактный метакласс, используемый для моделирования отдельной ситуации, в течение которой выполняются некоторые условия. Состояние может быть задано в виде набора конкретных значений атрибутов класса или объекта. Изменение отдельных значений атрибутов будет отражать изменение состояния моделируемого класса или объекта.

Под действием в языке UML понимают некоторую атомарную операцию, выполнение которой приводит к изменению состояния или возврату некоторого значения.

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

3. Программная реализация

3.1 Детальная реализация функциональных частей программного обеспечения

3.1.1 Реализация программного обеспечения

Описание методов классов

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

Корректность ввода пароля проверяется по хеш-значению текущего пароля и введенного пароля пользователем методом PasswordIsValid (stringhash1, stringhash2) класса Password, в качестве параметров в который передаются два хеш-значения. Первое - истинное хеш-значение пароля, хранящееся в файле на диске в папке вместе с программой, второе - полученное из введенного пользователем пароля. Если хеш-значения совпадают, функция возвращает True.

Хеш-значения паролей (Администратора и Продавца) хранятся в файле на диске (HashAdmin. dat - для Администратора, HashSaler. dat - для Продавца), и получаются методомgetHashSalerPassword (), для пароля Продавца и методомgetHashAdminPassword () того же класса Password, для пароля Администратора.

В классе Passwordтак же содержится метод NewPassword (stringnewpassword, intfl), который изменяет пароли Продавца или Администратора. В качестве параметров ему передается новое значение пароля и флаг изменения. Если флаг равен 0, то необходимо изменить пароль Администратора, если 1 - пароль Продавца. Пароль меняется простой перезаписью файла, содержащего хеш-значение текущего пароля, на хеш-значение нового пароля.

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

usingSystem.runtime. Serialization. Formatters. Binary;

usingSystem.runtime. Serialization;

using System. IO;

Методы сериализации и десериализации для каждого класса реализуют интерфейс Serealization_Deserialization.

Разберем вышенаписанное на примере классаAuto (см. листинг 3.1.1.1).

Листинг 3.1.1.1 - Методы доступа к свойствам класса

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

publicstringgetEngineType () {returnEngineType; }

publicfloatgetEngineVolume () {returnEngineVolume; }

publicintgetGuaranteeTime () {returnGuaranteeTime; }

publicstringgetHireCost () {returnHireCost; }

publicstringgetIsHire () {returnIsHire; }

publicstringgetModel () {return Model; }

publicstringgetTransmission () {return Transmission; }

publicintgetYear () { return Year; }

publicstringgetOwner () { return Owner; }

publicstringgetSaleData () { returnSaleData; }

publicstringgetColour () { returnColour; }

publicstringgetDrive () { return Drive; }

// перегруженные методы доступа из абстрактного класса Product

public override string getComeData () { return ComeData; }

public override string getCost () { return Cost; }

public override string getIsIt () { return IsIt; }

public override string getName () { return Name; }

// конструктор класса AutoВ кечестве базового принят абстрактный класс Product

public Auto (string _comedata, string _cost, string _isit, string _name, string _enginetype, float _enginevolume, int _guaranteeperiod,

string _colour, string _hirecost, string _ishire, string _model, string _transmission, int _year, string _owner, string _saledata, string _drive): base (_comedata, _cost, _isit, _name)

{

EngineType = _enginetype;

EngineVolume = _enginevolume;

GuaranteeTime = _guaranteeperiod;

HireCost = _hirecost;

IsHire = _ishire;

Model = _model;

Transmission = _transmission;

Year = _year;

Owner = _owner;

SaleData = _saledata;

Colour = _colour;

Drive = _drive;

}

/*метод десериализации данных при чтении из файла. Прочитанные данные из файла записываются в структуру типа List<Auto>. В случае не удачи чтения выводится соответствующее сообщение*/

publicvoidDeserialization (string file)

{

FileStreamautobasa = newFileStream (file, FileMode. OpenOrCreate);

BinaryFormatter formatter = newBinaryFormatter ();

try

{

ListAuto = (List<Auto>) formatter. Deserialize (autobasa);

}

catch (SerializationException)

{

System. Windows. Forms. MessageBox. Show ("Неудалосьпрочитатьфайл. ");

}

autobasa. Close ();

}

// методсериализации данных при записи на диск

publicvoidSerialization ()

{

FileStreamautobasa = newFileStream (file, FileMode. Create);

BinaryFormatter formatter = newBinaryFormatter ();

formatter. Serialize (autobasa, Auto. ListAuto);

autobasa. Close ();

}

Таким образом описываются классы: Saller, Moto, Klient, Disk, BusиAuto.

Описание функционала окна смены паролей

После удачного входа в систему под учетной записью Администратора пользователю будет предложено выбрать одно из действий:

– Изменить пароль Администратора;

– Изменить пароль Продавца;

– Перейти к просмотру (редактированию) базы.

При переходе к изменению паролей (Администратора или Продавца) пользователь получает возможность изменить пароль. Изменение пароля происходит по средствам вызова метода изменения пароля из класса Passwordсоответствующей учетной записи. При изменении пароля осуществляется контроль правильности ввода текущего пароля (методом PasswordIsValid) и совпадения проверки ввода нового пароля. Изменение пароля представлено в листинге 3.1.1.2.

Листинг 3.1.1.2 - Изменение пароля

if (Password. PasswordIsValid ( ( (NewAdminPasswordOld. Text). GetHashCode ()). ToString (), Password. getHashAdminPassword ()))

{

if (NewAdminPasswordNew1. Text == NewAdminPasswordNew2. Text)

{

Password. NewPassword (NewAdminPasswordNew1. Text, 0);

System. Windows. Forms. MessageBox. Show ("Парольуспешноизменен");

this. Close ();

}

else

{

System. Windows. Forms. MessageBox. Show ("Паролинесовпадают");

}

}

else

{

System. Windows. Forms. MessageBox. Show ("Неверновведенпароль");

}

Описание функционала главного окна базы и окон, вызывающихся с главного окна

При открытии главного окна базы происходит его инициализация, разграничение прав доступа к вкладкам (Продавец не имеет права просматривать базу продавцов). Вывод списка автомобилей в таблицу и десериализация базы клиентов (см. листинг 3.1.3.3).

Листинг 3.1.3.3 - Начальные действия главного окна базы

/*если HelloWindow. flagutorization = 0, то это означает, что был произведен вход под учетной записью продавца, следовательно необходимо скрыть базу продавцов, вызывая методAutosalonSaller. Dispose () */

publicAutosalonWindow ()

{

InitializeComponent ();

if (HelloWindow. flagutorization == 0)

{

AutosalonSaller. Dispose ();

}

if (HelloWindow. flagutorization == 1)

{

HelloWindow. flagutorization = 0;

}

ListAutoPrint ();

Klient. KlientDesirialization ();

}

В классе главного окна базы описаны следующие методы для вывода данных из List<Type>в таблицу базы, для выбора просмотра нужной вкладки базы, методы действий при нажатии на ту или иную кнопку в главном окне.

Разберем методы вывода данных из List<Type>в таблицу базы на примере метода ListAutoPrint () - метод вывода автомобилей.

Для начала необходимо десериализовать данные из файла базы автомобилей (BasaAuto. dat). Далее в цикле, по очереди (от 0-го до последнего) осуществляется вывод данных в таблицу базы (DataGridView) с помощью метода AutosalonAutoTable. Rows. Add (…), который в качестве параметров принимает значения переменных, которые необходимо вывести в соответствующих столбцах таблицы (по очереди слева на право). Вышеописанное представлено в листинге 3.1.3.4.

Листинг 3.1.3.4 - Вывод данных об автомобилях из файла базы в таблицу

publicvoidListAutoPrint ()

{

Auto a = new Auto ();

a. Deserialization ("BasaAuto. dat");

inttmp = Auto. ListAuto. Count;

for (inti = 0; i<tmp; ++i)

{

AutosalonAutoTable. Rows. Add (Auto. ListAuto [i]. getName (), Auto. ListAuto [i]. getModel (),

Auto. ListAuto [i]. getYear (), Auto. ListAuto [i]. getEngineType (),Auto. ListAuto [i]. getEngineVolume (), Auto. ListAuto [i]. getDrive (), Auto. ListAuto [i]. getTransmission (),

Auto. ListAuto [i]. getColour (), Auto. ListAuto [i]. getGuaranteeTime (),

Auto. ListAuto [i]. getComeData (), Auto. ListAuto [i]. getSaleData (),

Auto. ListAuto [i]. getIsHire (),

Auto. ListAuto [i]. getIsIt (),

Auto. ListAuto [i]. getHireCost (),

Auto. ListAuto [i]. getCost (),

Auto. ListAuto [i]. getOwner ());

}

}

Таким же образом происходит вывод в таблицу данных о клиентах, мотоциклах, шинах, дисках и продавцах.

МетоддоступаквкладкамбазыAutosalonBase_Selecting (objectsender, TabControlCancelEventArgse) принимает в качестве параметров объект, порождающий событие и событие изменения текущей вкладки таблицы.

С помощью конструкции switch … caseи массива флагов int [] flag = {0,0,0,0,0}изначально инициализированного нулями, нужного для того, чтобы не переписывать таблицу несколько раз, осуществляется выбор нужнойвкладки. Свойство AutosalonBase. SelectedIndexхранит номера вкладок, начиная с нуля. Так, если выбирается вкладка, определяется ее индекс и происходит переход к нужной метке case. Отсчет ведется с единицы, так как вкладка 0 (база автомобилей) автоматически отображается при открытии окна базы. В нужной метке caseвызвается нужный метод вывода в таблицу:

– ListMotoPrint () - для мотоциклов;

– ListBusPrint () - для шин;

– ListDiskPrint () - для дисков;

– ListKlientPrint () - для клиентов;

– ListSallerPrint () - для продавцов.

Вышеописанный метод представлен в листинге 3.1.3.5.

Листинг 3.1.3.5 - Метод вывода данных в таблицы базы

AutosalonBase_Selecting (object sender, TabControlCancelEventArgs e)

{ switch (AutosalonBase. SelectedIndex) {

case 1:

{

if (flag [AutosalonBase. SelectedIndex - 1] == 0)

{

ListMotoPrint ();

flag [AutosalonBase. SelectedIndex - 1] = 1;

}

break;

}

case 2:

{

if (flag [AutosalonBase. SelectedIndex - 1] == 0)

{

ListBusPrint ();

flag [AutosalonBase. SelectedIndex - 1] = 1;

}

break;

}

case 3:

{

if (flag [AutosalonBase. SelectedIndex - 1] == 0)

{

ListDiskPrint ();

flag [AutosalonBase. SelectedIndex - 1] = 1;

}

break;

}

case 4:

{

if (flag [AutosalonBase. SelectedIndex - 1] == 0)

{

ListKlientPrint ();

flag [AutosalonBase. SelectedIndex - 1] = 1;

}

break;

}

case 5:

{

if (flag [AutosalonBase. SelectedIndex - 1] == 0)

{

ListSallerPrint ();

flag [AutosalonBase. SelectedIndex - 1] = 1;

}

break; } }}

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

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

AutosalonButtonAddAuto_Click (objectsender, EventArgse) - метод для описания реакции программы на нажатие кнопки добавления автомобиля. Логика работы метода следующая (код представлен на листинге 3.1.3.6):

Сначала вызывается окно добавления автомобиля. В классе окна добавления автомобиля описан метод, который реагирует на нажатие кнопок этого окна (Добавить, Сохранить, Прикрепить покупателя/временного владельца). Если в окне добавления автомобиля была нажата кнопка "Добавить", будет заполнена временная переменная, в которой будет хранится введенная информация (см. листинг 3.1.3.7). Эта переменная видна в классе основного окна базы и ее значение переносится в таблицу данных об автомобилях. Далее осуществляется добавление автомобиля в структуру ListAuto (типа List<Auto>) и сериализация данной структуры. В случае нажатия кнопки "Прикрепить покупателя/временного владельца" вызовется окно добавление клиента. Информация о котором так же будет записана по нажатии кнопки "Добавить" во временную переменную, видимую в классе главного окна и выведена в соответствующую таблицу (таблицу клиентов), а так же сериализована. Если же данные от таком клиенте уже присутствуют, то в таблицу клиентов они еще раз не попадут, но будет заполнено соответствующее поле базы автомобилей (владелец).

Листинг 3.1.3.6 - Метод добавления автомобиля в таблицу

publicvoidAutosalonButtonAddAuto_Click (object sender, EventArgs e)

{

AutoWindowAddautowindowadd = newAutoWindowAdd ();

autowindowadd. ShowDialog ();

if (AutoWindowAdd. tmpauto! = null)

{

Auto. ListAuto. Add (AutoWindowAdd. tmpauto);

AutosalonAutoTable. Rows. Add (AutoWindowAdd. tmpauto. getName (),

AutoWindowAdd. tmpauto. getModel (),

AutoWindowAdd. tmpauto. getYear (),

AutoWindowAdd. tmpauto. getEngineType (),

AutoWindowAdd. tmpauto. getEngineVolume (),

AutoWindowAdd. tmpauto. getDrive (),

AutoWindowAdd. tmpauto. getTransmission (),

AutoWindowAdd. tmpauto. getColour (),

AutoWindowAdd. tmpauto. getGuaranteeTime (),

AutoWindowAdd. tmpauto. getComeData (),

AutoWindowAdd. tmpauto. getSaleData (),

AutoWindowAdd. tmpauto. getIsHire (),

AutoWindowAdd. tmpauto. getIsIt (),

AutoWindowAdd. tmpauto. getHireCost (),

AutoWindowAdd. tmpauto. getCost (),

AutoWindowAdd. owner);

if ( (AutoWindowAdd. flagaddklient == 1) && (KlientWindowAdd. tmpklient! = null))

{

AutoWindowAdd. flagaddklient = 0;

AutosalonKlientTable. Rows. Add (KlientWindowAdd. tmpklient. getLastName (), KlientWindowAdd. tmpklient. getFirstName (),

KlientWindowAdd. tmpklient. getPatronymic (), KlientWindowAdd. tmpklient. getSex (),

KlientWindowAdd. tmpklient. getPaspotrNum (), KlientWindowAdd. tmpklient. getPasportGive (),

KlientWindowAdd. tmpklient. getPasportDate (), KlientWindowAdd. tmpklient. getPasportID (),

KlientWindowAdd. tmpklient. getAdress ());

KlientWindowAdd. tmpklient = null;

}

AutoWindowAdd. tmpauto. Serialization ("BasaAuto. dat");

AutoWindowAdd. tmpauto = null;

}

}

Листинг 3.1.3.7 - Метод реакции программы на нажатие кнопки "Добавить" в окне добавление автомобиля

privatevoidAutoButtonAdd_Click (object sender, EventArgs e)

{

stringtmpMarka;

if (AutoMarkaAlter. Text! = "")

{

tmpMarka = AutoMarkaAlter. Text;

}

else

{

tmpMarka = AutoMarka. Text;

}

stringtmpProkat;

if (AutoProkat. Checked)

{

tmpProkat = "Да";

}

else

{

tmpProkat = "Нет";

}

stringtmpIsIt;

if (AutoSale. Checked)

{

tmpIsIt = "Да";

}

else

{

tmpIsIt = "Нет";

}

tmpauto = newAuto (AutoComeData. Text, AutoPriceSale. Text,

tmpIsIt, tmpMarka, AutoEngineType. Text,

(float) AutoVolumeEngeen. Value,

(int) AutoGaranteePeriod. Value,

AutoColour. Text, AutoPriceProkat. Text,

tmpProkat,

AutoModel. Text,AutoTransmission. Text,

(int) AutoYear. Value, owner,

AutoWindowAddDataSale. Text, AutoDrive. Text);

this. Close ();

}

Здесь значение переменной owner - владелец определяется, если было вызвано окно добавления клиента методом AutoKlientButtonAdd_Click (objectsender, EventArgse), который описывает реакцию программы на нажатие кнопки добавления клиента. В переменную ownerзапишутся имя, фамилия и отчество владельца (временного владельца) автомобиля.

Добавление диска имеет более простую структуру. При нажатии кнопки добавления диска появляется соответствующее окно. По нажатии кнопки "Добавить" в окне добавления диска происходит заполнение временной переменной введенными значениями. Эта временная переменная видна в классе основного окна базы и если она была инициализирована (заполнена значениями), то происходит добавление в структуру ListDiskтипа List<Disk> и в главном окне базы в таблицу добавляется соответствующая строка с только что введенными данными о диске. После чего происходит серилизация структуры ListDisk. Вышеописанное демонстрируют листинги 3.1.3.8 и 3.1.3.9.

Листинг 3.1.3.8 - Метод реакции программы на нажатие кнопки добавления диска

privatevoidAutosalonWindowDiskButtonAdd_Click (object sender, EventArgs e)

{

DiskWindowAdddiskwindowadd = newDiskWindowAdd ();

diskwindowadd. ShowDialog ();

if (DiskWindowAdd. tmpdisk! = null)

{

Disk. ListDisk. Add (DiskWindowAdd. tmpdisk);

AutosalonDiskTable. Rows. Add (DiskWindowAdd. tmpdisk. getName (),

DiskWindowAdd. tmpdisk. getET (),

DiskWindowAdd. tmpdisk. getPSD (),

DiskWindowAdd. tmpdisk. getSum (),

DiskWindowAdd. tmpdisk. getRimWidth (),

DiskWindowAdd. tmpdisk. getDiameterCentreOpening (),

DiskWindowAdd. tmpdisk. getDiam (),

DiskWindowAdd. tmpdisk. getType (),

DiskWindowAdd. tmpdisk. getComeData (),

DiskWindowAdd. tmpdisk. getCount (),

DiskWindowAdd. tmpdisk. getCost ());

DiskWindowAdd. tmpdisk. Serialization ("BasaDisk. dat");

DiskWindowAdd. tmpdisk = null;

}

}

Листинг 3.1.3.9 - Метод класса окна добавления диска, реагирующий на нажатие кнопки "Добавить"

publicvoidDiskButtonAdd_Click (object sender, EventArgs e)

{ stringtmpMarka;

if (DiskProducerAlter. Text! = "")

{tmpMarka = DiskProducerAlter. Text; }

else

{

tmpMarka = DiskProducerEnter. Text;

}

stringtmpIsIt;

if (DiskSale. Checked)

{

tmpIsIt = "Да";

}

else

{

tmpIsIt = "Нет";

}

tmpdisk = newDisk (DiskComeData. Text, DiskPriceSale. Text,

tmpIsIt, tmpMarka, (int) DiskDiam. Value,

DiskType. Text, (float) DiskRimWidth. Value,

(int) DiskSum. Value, (int) DiskPSD. Value,

(float) DiskDiameterCentreOpening. Value,

(float) DiskET. Value, (int) DiskCount. Value);

this. Close ();

}

AutosalonWindowButtonSearch_Click (object sender, EventArgs e) - данный метод описывает действия при нажатии кнопки поиска по базе. Попросту - осуществляет поиск по любым совпадениям открытой вкладки базы. Если совпадение найдено, выделяется строчка, с найденным совпадением. Данное представлено в листинге 3.1.3.10 на примере поиске в базе автомобилей. Поиск в других таблицах базы аналогичен.

Листинг 3.1.3.10 - Поиск по базе

if (search! = "")

{

for (inti = 0; i<AutosalonAutoTable. Rows. Count; i++)

{

for (int j = 0; j <AutosalonAutoTable. Columns. Count; j++)

{

if (AutosalonAutoTable. Rows [i]. Cells [j]. Value! = null)

{

if (AutosalonAutoTable. Rows [i]. Cells [j]. Value. ToString () == search)

{

AutosalonAutoTable. Rows [i]. Selected = true;

isfind = 1;

}

}

}

}

}

По окончание поиска, если совпадение было найдено флагу isfind приравнивается 1 и в конце поиска будет выведено сообщение об окончание поиска. Если совпадений не найдено - isfind равняется 0 и выводится сообщение о том, что совпадений не было найдено.

AutosalonWindowButtonRefresh_Click (objectsender, EventArgse) - метод, отвечающий за реакцию программы на нажатие кнопки обновления таблицы (отмена выделения всех строк). Данный метод представлен в листинге 3.1.3.10 на примере базы автомобилей. Происходит построчный перебор таблицы, если найдена выделенная строка - выделение снимается.

Листинг 3.1.3.10 - Обновление таблицы (на примере таблицы автомобилей)

for (inti = 0; i<AutosalonAutoTable. Rows. Count; i++)

{

if (AutosalonAutoTable. Rows [i]. Selected)

{

AutosalonAutoTable. Rows [i]. Selected = false;

}

}

AutosalonWindowButtonChange_Click (object sender, EventArgs e) - метод обработки события нажатия на кнопку изменения элемента. Работает для всех таблиц одинаково (кроме таблицы клиентов, т.к. ее редактирование запрещено).

Логика работы заключается в следующем: после нажатия кнопки изменения происходит проход по всей таблице в поиске выделенной строки. Если выделенная строка не была найдена, ничего не произойдет. Если же была найдена выделенная строка, то вызовется окно редактирования (которое совпадает с окном добавления) того или иного элемента. Также произойдет запоминание в переменных той информации, которая соответствует данной строке. Окно редактирования вызовется с заполненными полями (заполнены они будут той информацией, которая хранится в данной строке). После нажатия кнопки "Сохранить" в окне редактирования, (если данные были изменены) произойдет изменение соответствующей записи в структуре ListObject (Object-объект, изменение которого разрешено) сериализация ListObject и обновление записи в таблице. Может быть изменена любая информация, связанная с объектом.

3.1.2 Разработкапользовательскогоинтерфейса

Пользовательский интерфейс данной программы был разработан с использованием стандартных форм, предоставляемых средой разработки MicrosoftVisualStudio 2010.

Были задействованы такие элементы как:

– ComboBox - для предоставления пользователю выбора возмодных значений данных;

– Label - для текстовой отметки того или иного места, поля и т.д.;

– MascedTextBox - для маскировки вводимого пароля;

– TextBox - для ввода произвольного текста;

– Button - кнопка;

– PictureBox - для вывода картинки;

– DataGridView - для вывода самой базы данных;

– TabControl - для вкладки с таблицами базы;

– DateTimePacker - ввод даты;

– CheckBox - выбор, в виде "галочки";

– NumericUpDown - ввод числовых данных.

После запуска программы открывается окно "AUTOSALON - HelloWindow" (см. рис.3.2.1) в котором предлагается выбрать имя пользователя (Администратор или Продавец) и ввести пароль. Выбор учетной записи осуществляется с помощью элемента ConboBox. Ввод пароля необходимо осуществить в соответствующее поле - MascedTextBox. Для попытки входа в систему необходимо нажать кнопку "Вход" (элемент Button). Если пароль введен не корректно, то ничего не произойдет. У пользователя имеется неограниченное количество попыток ввести верный пароль и войти в систему.

Рис.3.1.1 - Окно "AUTOSALON - Hello Window"

Отсюда и далее все изображения, вставленные в окно, отображаются с помощью PictureBox.

Все текстовые матки полей отображаются с помощью Label.

Если была выбрана учетная запись Администратора и пароль принят, будет выведено окно выбора действий для администратора, которое изображено на рисунке 3.1.2 В данном окне пользователю будет предложено выбрать действие с помощью ComboBox:

– Изменение пароля учетной записи Администратора;

– Изменение пароля учетной записи Продавца;

– Просмотр (редактирование) базы.

Рис.3.1.2 - Окно выбора действий Администратора

Для перехода на нужное действие необходимо нажать на кнопку "Перейти" (элемент Button).

Если пользователь выбирает "Изменение пароля учетной записи Администратора" или "Изменение пароля учетной записи Продавца", то откроется окно изменения пароля, которое представлено на рисунке 3.1.3.

Рис.3.1.3 - Окно изменения пароля

В окне изменения пароля задействованы такие элементы как TextEdit и Button.

Если пользователь выберет "Просмотр (редактирование) базы", то появится основное окно базы данных (см. рис.3.1.4).

Рис.3.1.4 - Главное окно базы

Таблицы базы размещены на вкладках TabControl. Сама таблица отображается с помощью DataGridView. В главном окне базы так же присутствуют элементы Buttonдля добавления, редактирования и поиска данных.

При нажатии кнопки добавления, (см. рис.3.1.5-3.1.10) на экране появится окно для добавления элемента, в котором присутствуют TextBox, Button, ComboBox, DateTimePacker, CheckBox, NumericUpDown.

Рис.3.1.5 - Окно добавления автомобиля

Рис.3.1.6 - Окно добавления мотоцикла

Рис.3.1.7 - Окно добавления шин

Рис.3.1.8 - Окно добавления дисков

Рис.3.1.9 - Окно добавления клиента

Рис.3.1.10 - Окно добавления продавца

3.2 Документирование программного обеспечения

3.2.1 Разработка описания программы

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

Необходимо указать типы ЭВМ и устройств, которое используются при работе программы, способы вызова программы с соответствующих носителей данных.

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

Описание программы представлено в приложении.

3.2.2 Разработка руководства пользователя

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

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

Руководство пользователя представлено в приложении.

3.2.3 Программа и методика испытаний

Одним из тестов данного программного обеспечения была замена стандартного файла базы на файл другого содержания (размером 690мб и размером 2 кб), но с расширением, с которым работает данная программа. При попытке загрузить такой файл сбоя не произошло, а было выведено сообщение о том, что не удалось прочитать файл базы.

При попытке удаления файла базы во время работы файла был удален, однако работа приложения не нарушилась и данные не потерялись из-за использования структуры List.

При размерности базы свыше 10000 элементов в каждом файле (что соответствует примерно 51 кб) возможно замедление загрузки таблицы при запуске программы. Графики быстродействия, загрузки ЦП и хронологии использования физической памяти при загрузки размерности фалов базы в 10000 элементов представлен на рисунке 3.1.11.

Рис.3.1.11 - Графики быстродействия, загрузки ЦП и хронологии использования физической памяти

3.4 Тестирование программного обеспечения

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

Данные о последних обнаруженных ошибках и их исправлении представлены в таблице 3.4.1.

Таблица 3.4.1 - Ошибки и отметки об их исправлении.

Ошибка

Дата

Отметка об исправлении

Ошибка при попытке открытия отсутствующего файла с хеш-значением пароля.

30.11.2012 г.

Ошибка исправлена.

Ошибка при добавлении фото продавца. Если фото не указано, осуществляется заполнение данного поля фото последнего добавленного продавца.

30.11.2012 г.

Ошибка исправлена.

Ошибка при попытке добавления в качестве фото продавца вместо файла изображения любого другого файла

7.12.2012 г.

Ошибка исправлена.

Заключение

В процессе работы над данным курсовым проектом была создана программа, которая позволяет обслуживать автосалоны. Данная программа работает под управлением операционной системы Windows XP/Vista/7/2003/2008.

Были закреплены практические навыки работы с объектно-ориентированным подходом в программировании.

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

Литература

1. Форум программистов и сисадминов CyberForum.ru // Электронный ресурс: URL: http://www.cyberforum.ru/

2. Язык UML. Руководство пользователя // Электронный ресурс: URL: http://sitemonitor.ru/doc/UML_HTM/index. htm

3. Информационные системы. Проектирование и разработка информационных, автоматизированных и аналитических систем // Электронный ресурс: URL: http://www.info-system.ru

4. Кухта С.В. Стандартизация и сертификация программного обеспечения. Учебно-методический комплекс для студентов специальности 1-40 01 01 "Программное обеспечение информационных технологий"

Приложение А

Описание программы

ОБЩИЕ СВЕДЕНИЯ

Обозначение и наименование программного продукта: приложение, позволяющее вести учет автомобилей, дисков, шин, мототехники, продавцов и клиентов автосалона.

Наименование: "Autosalon".

Стороннее программное обеспечение, необходимое для функционирования программы:

– Операционная система Windows XP/Vista/7/2003/2008;

– Framework.net 4.

Язык программирования

Для разработки данного приложения использовался язык программирования C#.

Д.1 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ

Программа Autosalon предназначение для ведения учетности товаров автосалона (автомобилей, мототехники, шин, дисков), а также клиентов и продавцов.

Ее возможности включают в себя добавление данных:

– Добавление автомобиля;

– Добавление дисков;

– Добавление шин;

– Добавление мототехники;

– Добавление клиента;

– Добавление продавца.

Просмотр информации в виде таблицы:

– Просмотр информации об автомобилях;

– Просмотр информации о клиентах;

– Просмотр информации о шинах;

– Просмотр информации о дисках;

– Просмотр информации о мототехнике;

– Просмотр информации о продавцах.

Поиск данных по любым совпадениям базы. Сортировка по любому столбцу таблицы базы в прямом и обратном порядке. Редактирование элементов базы (кроме редактирования клиентов):

– Редактирование данных о шинах;

– Редактирование данных об автомобиле;

– Редактирование данных о дисках;

– Редактирование данных о мототехнике;

– Редактирование данных о продавцах.

Автоматическое сохранение в файл и загрузка базы из файла

Д.2 ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ

Алгоритм программы

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

1) Проверяется хеш-значение введенного пароля и текущего (истинного) пароля;

2) Если хеш-значения совпадают, переход к шагу 2.

3) Если хеш-значения не совпадают, ожидание ввода корректного пароля.

2. Если была выбрана учетная запись Администратора и пароль введен правильно, то на экране появляется окно, в котором необходимо выбрать действие, доступное Администратору:

– Изменение пароля учетной записи Администратора;

– Изменение пароля учетной записи Продавца;

– Просмотр (редактирование) базы.

3. Если выбрано действие смены пароля, то на появляется окно смены пароля:

1) Ввод текущего пароля;

2) Ввод нового пароля;

3) Повторение нового пароля;

4) Если введенный пароль совпадает с текущим, переход к 4); если нет - вывод соответствующего сообщения и ожидание ввода корректного пароля;

5) Проверка на совпадение полей ввода нового пароля;

6) Если пароли совпадают, смена пароля; если нет - вывод соответствующего сообщения и ожидание ввода совпадающих паролей.

4. Если выбрано действие просмотра (редактирования) базы появляется главное окно базы.

1) При выборе одной из вкладок базы осуществляется десериализация соответствующего файла базы:

2) Если десериализация прошла успешно (файл существует) - запись десериализованных данных в струкутуру типа List<Type> и переход к 3); если нет - вывод соответствующего сообщения о невозможности прочитать файл и создание нового файла базы;

3) Вывод данных в таблицу.

5. При выборе действия добавления элемента в главном окне базы или дочернем окне появляется окно для добавления соответствующего элемента (автомобиля, мотоцикла, шин, дисков, продавца):

1) Считывание данных из соответствующих полей;

2) Создание экземпляра переменной соответствующего типа;

3) Заполнение значениями при помощи конструктора класса;

4) Добавление в структуру типа List<Type>;

5) Вывод (изменение, если выбрано действие изменения - см. описание ниже) только что введенных данных в таблицу базы.

6. При выборе действия изменения данных открывается окно изменения данных и выполняются шаги действия 5.

7. При выборе действия поиска (если ключ поиска введен) происходит поиск по всем совпадениям активной в данный момент таблицы:

1) Проход по ячейкам активной таблицы; если таблица закончилась - вывод сообщения о результатах поиска;

2) Если ключ совпадает со значением текущий ячейки выделить строчку; если нет переход к 1)

8. Если выбрано действие обновления активной в данный момент таблицы базы происходит проход по всей базе и снятие выделения с выделенных строк:

1) Проход по строкам; если таблица закончилась выход из цикла прохода по строкам;

2) Если текущая строка выделена - снять выделение; переход к 1).

9. Если была выбрана учетная запись Продавца и пароль введен корректно, то на экране появляется главное окно базы, для которого характерны действия 4 - 8.

Используемые методы

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

Структура программы

При попытке входа в программу осуществляется проверка корректности ввода пароля по средствам получения хеш-значения введенного пароля и текущего.

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

При просмотре базы пользователь может отсортировать данные по любому из столбцов по возрастанию или убыванию.

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

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

При прикреплении к автомобилю временного владельца или покупателя и к мотоциклу покупателя открывается окно добавления покупателя, в которое необходимо ввести нужные данные и нажать кнопку "Добавить".

При выборе функции поиска, необходимо ввести ключ поиска и нажать кнопку "Поиск".

Для работы данного приложения необходимо установленное ПО, указанное в пункте "Общие сведения".

Д.3 ИСПОЛЬЗУЕМЫЕ ТЕХНИЧЕСКИЕ СРЕДСТВА

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

– ОС Windows XP;

– 256 мб ОЗУ;

– 15 мб свободного места на жестком диске для установки приложения;

– Клавиатура;

– Мышь;

– Монитор.

Д.4 ВЫЗОВ И ЗАГРУЗКА

Программу можно запустить двойным кликом левой клавиши мыши по исполняемому файлу "Autosalon. exe". Если создан ярлык существует возможность запуска через двойной клик левой клавишей мыши по ярлыку.

Д.5 ВХОДНЫЕ ДАННЫЕ

Никакая подготовка входных данных для работы данного приложения не требуется. Файла базы, если они отсутствуют в папке с исполняемым файлом, будут созданы.

Входные данные (файла базы с расширением *. dat) должны находиться в папке с исполняемым файлов приложения.

Д.6 ВЫХОДНЫЕ ДАННЫЕ

Выходными данными работы программы являются таблицы базы, а так же файла, с сохраненными данными.

Приложение Б

Руководство пользователя

Е.1 НАЗНАЧЕНИЕ ПРОГРАММЫ

Данная программа предназначена для обслуживания автосалона - ведения учета поступления и продажи:

ѕ Автомобилей;

ѕ Мотоциклов;

ѕ Шин;

ѕ Дисков.

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

Е.2 УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ

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

– ОС Windows XP;

– 256 мб ОЗУ;

– 15 мб свободного места на жестком диске для установки приложения;

– Клавиатура;

– Мышь;

– Монитор.

Е.3 ВЫПОЛНЕНИЕ ПРОГРАММЫ

Запуск программы

Запуск программы осуществляется при помощи исполняемого файла "Autosalon. exe".

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

Вход под учетной записью Администратора

При корректном вводе пароля и выборе учетной записи Администратора на экране появится окно с выбором действий для Администратора. Администратор может выполнять следующие действия:

ѕ Изменение пароля учетной записи Администратора;

ѕ Изменение пароля учетной записи Продавца;

ѕ Просмотр (редактирование) базы.

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

При выборе действия просмотра (редактирования) базы на экране появится основное окно программы - вкладки с таблицами базы.

Для добавления элемента в активную таблицу необходимо нажать кнопку добавления. Далее необходимо ввести нужные значения в соответствующие поля и нажать кнопку "Добавить".

Для изменения элемента активной базы необходимо выделить изменяемую строку и нажать кнопку "Изменить". Далее поменять значения в нужных полях и нажать кнопку "Сохранить". Для добавления покупателя к автомобилю или мотоциклу, а так же временного владельца к автомобилю необходимо нажать соответствующие кнопки в окне добавления/редактирования автомобиля или мотоцикла. Для удаления временного владельца автомобиля необходимо в окне редактирования автомобиля нажать кнопку "Удалить временного владельца".

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

Для поиска элементов, удовлетворяющих некоторому ключу, необходимо в соответствующее поле - "Ключ поиска" ввести ключ и нажать кнопку "Поиск". В случае, если были найдены совпадения в текущей таблице будут выделены соответствующие строки.

Для отмены выделения строк/строки необходимо нажать на кнопку "Обновить".

Вход под учетной записью Продавца

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

Другие действия программы

Сохранение элементов в файл происходит автоматически при их добавлении или изменении.


Подобные документы

  • Тестирование как составляющая часть процесса отладки программного обеспечения, его роль для обеспечения качества продукта. Обнаружение ошибок в программах, выявление причин их возникновения. Подходы к формулированию критериев полноты тестирования.

    курсовая работа [1,6 M], добавлен 20.12.2012

  • Классификация программного обеспечения, его особенности, назначение. Программное обеспечение для работы с текстом, изображением, прикладное, офисное, для работы в Интернете. Системы программирования, специфика программного обеспечения, что такое вирусы.

    презентация [1,2 M], добавлен 25.02.2010

  • Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.

    курсовая работа [97,7 K], добавлен 14.12.2012

  • Изучение различных видов тестирования программного обеспечения. Выявление в программной системе скрытых дефектов до того, как она будет сдана заказчику. Тестирование методом черного ящика. Требования, предъявляемые к процессу тестирования больших систем.

    курсовая работа [3,0 M], добавлен 19.11.2009

  • Понятие локализации программного обеспечения как процесса его адаптации к культуре какой-либо страны. Перевод пользовательского интерфейса, документации и сопутствующих файлов программного обеспечения. Инструментарий для локализации. Языковые теги и коды.

    презентация [243,7 K], добавлен 07.10.2013

  • Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.

    курсовая работа [30,4 K], добавлен 29.06.2010

  • Проектирование структур данных и пользовательского интерфейса. Разработка руководства системного программиста и пользователя. Основные элементы организации работы менеджера по работе с клиентами. Характеристика программного обеспечения ООО "Доминион+".

    курсовая работа [1,7 M], добавлен 14.10.2012

  • Имитационное моделирование деятельности "Центра обслуживания абонентов". Диаграммы потоков данных. Выявление вариантов использования. Моделирование видов деятельности и взаимодействий. Проектирование пользовательского интерфейса и архитектуры приложения.

    дипломная работа [1,3 M], добавлен 24.10.2010

  • Сетевая система контроля знаний студентов на основе объектно-ориентированного подхода. Выбор программно-технических средств для реализации проекта. Алгоритмическое и программное обеспечение, интерфейс пользователя. Разработка элементов базы данных.

    дипломная работа [1,3 M], добавлен 04.02.2013

  • Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.

    курсовая работа [501,4 K], добавлен 07.12.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.