Требования к составу и содержанию работ по созданию системы.

Стадии выполнения работ по созданию Системы.

Работы по созданию системы выполняются в соответствии с
ГОСТ 34.601-90, в 3 стадии:

- Технический проект;

- Рабочая документация;

- Ввод в эксплуатацию.

На стадии «Технический проект» должна быть осуществлена разработка проектных решений по Системе в целом и ее частям, включая информационную и функциональные модели деятельности, документации на Систему и ее частей, разработка и оформление документации на поставку изделий для комплектования системы.

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

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

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

Стадии «Технический проект» и «Рабочая документация» выполняются раздельно.

 

II.ОПИСАНИЕ ПРОГРАММНЫ

Функциональное назначение.

Разработанная автоматизированная информационная система, содержит сведения о наличии телефонных номеров в туристическом справочнике. В базе данных содержатся информации о номере и о имени. Когда данный ССП будет работать, в нём будут разрабатываться телефонные номера. Тогда программа производит поиск телефонных номеров в базе данных.

Описание структуры (диаграммы и сценарий).

При первой стадии разработки ТМ мы создавали диаграммы разных видов. Это важный этап жизненного цикла любого программного продукта.

1) Функциональные диаграммы нулевого уровня (подробный вариант) (рис.1) и начального уровня (рис. 2)

 

Рис. 1 функциональная диаграмма нулевого уровня

Рис. 2 Функциональная диаграмма начального уровня

2) STD – диаграмма (рис.3)

Рис. 3 диаграмма STD

3) Диаграмма вариантов использования (рис. 4)

Рис. 4 –диаграмма вариантов использования


Технологии разработки приложения на Microsoft Visual Studio C ++

Microsoft Visual Studio C++ (MSVC) — интегрированная среда разработки приложений на языке C++, разработанная корпорацией Microsoft и поставляемая либо как часть комплекта Microsoft Visual Studio, либо отдельно в виде бесплатного функционально ограниченного комплекта Visual C++ Express Edition. Сменила интегрированную среду разработки Microsoft QuickC.

Visual C++ поддерживает перечень приложений как на Managed C++ и C++/CLI, так и на обычном C++, и тем самым позволяет генерировать код как для платформы .NET Framework, так и для исполнения в среде «чистой» Windows. В этом отношении Visual C++ является уникальным среди других языковых средств, предоставляемых средой Visual Studio, поскольку ни Visual Basic .NET, ни Visual J# не способны генерировать код для чистого Win32, в отличие от предыдущих версий (Visual Basic и Visual С++ соответственно).

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

Классы:

· public class AddRes – добавление товара в общий список.

· public class FindRes – поиск товара.

Методы:

· Класса AddRes

o public void AddRs() – добавление товара.

· Класса FindRes

o public void FindResName() – поиск товара по наименованию.

o public void FindResXY() – поиск товара по стеллажу и ячейке.

Поля:

· Класса AddRes

o name = ""; - имя товара.

o numSt = 0; - номер стеллажа.

o numBl = 0; - номер ячейки.

o numKl = 0; - количество.

o temp = false; - одинаковая запись.

o temp1 = false; - одинаковое расположение.

· Класса FindRes

o nameFn = ""; - поиск по имени.

o xxxx, yyyy = ""; - поиск по стеллажу и ячейке.

 

 

Блок-схемы

Схема добавления записи (рис1):


Схема поиска записи (рис2):


Схема удаления записи (рис3):


Результат работы программы

Полный вид программы до заполнения информацией(рис.1) и после(рис.2):

Рис.1.

Рис.2.

Окно списка всех заявок с функцией удаления(рис.3):

Рис.3.

Поиск по названию(рис.4):

Рис.4.

Поиск по координатам(рис.5): Рис.5.

 

Код программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

 

namespace AutoInf

{

public partial class myFrm11 : Form

{

public myFrm11()

{

InitializeComponent();

}

 

private void myFrm11_Load(object sender, EventArgs e)

{

 

}

 

private void txtName_TextChanged(object sender, EventArgs e)

{

 

}

 

private void vtnAddName_Click(object sender, EventArgs e)

{

 

string text = txtName.Text.Trim();

bool logik = false;

if (txtName.Text != "")

{

foreach (string a in cmbName.Items)

if (a.ToLower() == text.ToLower()) { logik = true; break; }

if (logik) MessageBox.Show("Такое наименование уже существует!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); else { cmbName.Items.Add(text); txtName.Text = null; MessageBox.Show("Добавлено в список!", "Готово", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }

}

else MessageBox.Show("Поле пустое!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

 

private void btnAdd_Click(object sender, EventArgs e)

{

if (cmbName.SelectedIndex != -1)

{

AddRes myAddRes = new AddRes();

myAddRes.AddRs(cmbName.SelectedItem.ToString(), int.Parse(numStolb.Value.ToString()), int.Parse(numBlock.Value.ToString()), int.Parse(numKol.Value.ToString()), ref dtg);

}

}

 

private void btnDell_Click(object sender, EventArgs e)

{

try

{

int ind = dtg.SelectedCells[0].RowIndex;

dtg.Rows.RemoveAt(ind);

}

catch { MessageBox.Show("Удаление пустой строки!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); }

}

 

private void btnQest_Click(object sender, EventArgs e)

{

MessageBox.Show("- Если добавленый товар уже имеется на складе, то товар кладётся в ту же ячейку с увеличением единицы продукта!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

 

private void btnOpen_Click(object sender, EventArgs e)

{

Stream myStr = null;

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

{

if ((myStr = openFileDialog1.OpenFile()) != null)

{

StreamReader myRead = new StreamReader(myStr);

string[] str;

int _num = 0;

try

{

string[] str1 = myRead.ReadToEnd().Split('\n');

_num = str1.Count();

dtg.RowCount = _num;

for (int i = 0; i < _num; i++)

{

str = str1[i].Split('^');

for (int j = 0; j < dtg.ColumnCount; j++)

{

try

{

dtg.Rows[i].Cells[j].Value = str[j];

}

catch { }

}

}

}

catch (Exception ex) { MessageBox.Show(ex.Message); }

finally

{

myRead.Close();

}

myStr.Close();

}

MessageBox.Show("Готово!", "Готово", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

}

 

private void btnSave_Click(object sender, EventArgs e)

{

Stream myStr = null;

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

{

if ((myStr = saveFileDialog1.OpenFile()) != null)

{

StreamWriter mywrite = new StreamWriter(myStr);

try

{

for (int i = 0; i < dtg.RowCount - 1; i++)

{

for (int j = 0; j < dtg.ColumnCount; j++)

{

string dt = dtg.Rows[i].Cells[j].Value.ToString().Replace("^", "[etot_simvol]");

mywrite.Write(dt + "^");

}

mywrite.WriteLine();

}

}

catch (Exception ex) { MessageBox.Show(ex.Message); }

finally

{

mywrite.Close();

}

myStr.Close();

}

}

MessageBox.Show("Готово!", "Готово", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

 

private void btnFindname_Click(object sender, EventArgs e)

{

FindRes myFindRes = new FindRes();

string s1, s2 = "";

myFindRes.FindResName(txtFindName.Text, ref dtg, out s1, out s2);

lblFindName.Text = "Товар \"" + txtFindName.Text + "\" находится в " + s2 + " ячейке, в " + s1 + " колонке";

}

 

private void btnFindXY_Click(object sender, EventArgs e)

{

FindRes myFindRes = new FindRes();

string s1, s2 = "";

myFindRes.FindResXY(int.Parse(numFindStl.Value.ToString()), int.Parse(numFindBlock.Value.ToString()), ref dtg, out s1, out s2);

lblFindXY.Text= "В ячейке "+int.Parse(numFindBlock.Value.ToString())+", стелаже "+int.Parse(numFindStl.Value.ToString()) +", находится товар :"+s1+" ("+s2+"шт.)";

}

 

private void groupBox3_Enter(object sender, EventArgs e)

{

 

}

}

 

public class AddRes

{

string name = "";

int numSt = 0;

int numBl = 0;

int numKl = 0;

bool temp = false;

bool temp1 = false;

public void AddRs(string Name, int St, int Bl, int Kl, ref DataGridView _dtgTemp)

{

name = Name;

numSt = St;

numBl = Bl;

numKl = Kl;

 

if (_dtgTemp.RowCount == 1)

_dtgTemp.Rows.Add(name, numSt, numBl, numKl);

else

{

for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

{

if (_dtgTemp.Rows[i].Cells[0].Value.ToString().ToLower() == name.ToLower())

{

_dtgTemp.Rows[i].Cells[3].Value = int.Parse(_dtgTemp.Rows[i].Cells[3].Value.ToString()) + numKl;

temp = true;

break;

}

}

if (temp == false)

{

for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

if (_dtgTemp.Rows[i].Cells[1].Value.ToString() == numSt.ToString() && _dtgTemp.Rows[i].Cells[2].Value.ToString() == numBl.ToString())

{

temp1 = true;

MessageBox.Show("Эта ячейка уже занята товаром: " + _dtgTemp.Rows[i].Cells[0].Value.ToString(), "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

if (temp1 == false) _dtgTemp.Rows.Add(name, numSt, numBl, numKl);

}

}

 

}

 

}

public class FindRes

{

string nameFn = "";

string xxxx, yyyy = "";

public void FindResName(string n1, ref DataGridView _dtgTemp, out string st1, out string st2)

{

nameFn = n1;

st1 = st2 = "";

for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

{

if (_dtgTemp.Rows[i].Cells[0].Value.ToString().ToLower() == nameFn.ToLower())

{

st1 = _dtgTemp.Rows[i].Cells[1].Value.ToString();

st2 = _dtgTemp.Rows[i].Cells[2].Value.ToString();

break;

}

}

}

public void FindResXY(int x, int y, ref DataGridView _dtgTemp, out string st1, out string st2)

{

st1 = st2 = "";

xxxx = x.ToString();

yyyy = y.ToString();

 

for (int i = 0; i < _dtgTemp.RowCount - 1; i++)

{

if (_dtgTemp.Rows[i].Cells[1].Value.ToString() == xxxx && _dtgTemp.Rows[i].Cells[2].Value.ToString() == yyyy)

{

st1 = _dtgTemp.Rows[i].Cells[0].Value.ToString();

st2 = _dtgTemp.Rows[i].Cells[3].Value.ToString();

break;

}

}

}

}

}

 

 

Заключение

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

Список использованной литературы

1. Бойко В.В., Савинков В.М. “Проектирование информационной базы автоматизированной системы на основе СУБД.” М.: Финансы и статистика, 2016.

2. Волков С.И., Романов А.И. Организация машинной обработки экономической информации, 2017.

3. Глушаков С.В., Ломотько Д.В. Базы данных, 2016.

4. Джексон Г. Проектирование реляционных баз данных для использования с микро-ЭВМ М.: Финансы и статистика, 2016.

5. Зеленков Ю.А. Введение в базы данных. Центр Интернет ЯрГУ, 2015.

6. Ивлиев М.К., Порошина Л.А. Автоматизация оперативного и бухгалтерского учета товаров, 2016.

7. Качайлов А.Е. Автоматизация учета на базах и складах, 2014.

8. Кобевник В.Ф. “Охрана труда.” – К.: Высшая школа, 2016.

9. Крис Дейт. Введение в базы данных, 6-е изд. Киев, Диалектика, 2018.

10. Керри Н. Праг, Майкл Р. Ирвин, Access 2000 - Библия пользователя, Диалектика, 2017.

11. Лифшиц Н.И., Левин Е.Т Механизация и автоматизация процессов отборки и комплектования заказов на складах М., 2018.

12. Мартин Дж. Организация баз данных в вычислительных системах.

13. Рожнов В.С. АСОЭИ., М., Финансы и статистика., 2105.

14. Смирнова Г.Н., Сорокин А.А., Тельнов Ю.Ф. Проектирование экономических информационных систем, 2016.

15. Титоренко Г.А. Автоматизированные информационные технологии в экономике, 2018.

16. Трубилин И.Т., Семенов М.И., Лойко В.И., Барановская Т.П. Автоматизированные информационные технологии в экономике, 2016.

17. Справочник разработчика АСУ. под ред. Федоренко Н.П. и Карибского В.В., М., Экономика, 2017.

18. Хендерсон К. Руководство разработчика баз данных.