НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ
Программа «Агроном» предназначена только для ведения учета по всем культурам сельского хозяйства. Использование её не по назначению не несет в себе никакого смысла. Задача программы заключается в быстром доступе к необходимым данным, упрощению работы дачника-овощевода и максимальной автоматизации ведения учета всех культур сельского хозяйства.
Для работы программы не требуется высокопроизводительный компьютер, однако необходимо обязательное наличие NET.Framework 4.5. В противном случае программа не запустится. А также требуется любой текстовый редактор (блокнот, Notepad++, AkelPad и т.д.).
ПОДГОТОВКА К РАБОТЕ
Для запуска программы необходимо запустить файл Агроном.exe. После чего непосредственно откроется окно программы. Для добавления файла с данными необходимо нажать на кнопку с надписью «Добавить» и после внесения какойлибо информации или внисенияе в существующую запись коррективы нел\обходимо нажать на кнопку «Сохранить», для удоления записи необходимо выделить необходимую запись инажать кнопку «Удалить», для поиску необходимо в строку поска ввети хотябы адин символ который содержит слово и нажать кнопку «Найти» вы срузу же увидите результат.
ОПИСАНИЕ ОПЕРАЦИЙ
Программа способна выполнять добавление записей, удаление, редактирование, сортировку данных по любому полю, описывающему запись по овощу в таблице.
В главном меню программы находятся все управляющие кнопки, по которым можно переходить на другие формы программы для манипуляции данными. Рисунок 1 представляет краткое описание основных управляющих кнопок.
Рисунок 1 – Главное меню: 1 – сохранить информацию; 2 – добавить информацию; 3 – удаление информацию; 4 – найти информацию; 5 – строка поиска; 6 – окно предостовления всей информации.
По нажатию на кнопку 1 вся внесенная или измененная информация сохранится.
По нажатии на кнопку 2 появится новая форма для добавления записи (рисунок 2).
Рисунок 2 – Форма добавления новой записи
Для добавления новой записи необходимо заполнить данную форму и затем кликнуть по кнопке «Добавить». Чтобы вернуться в главное меню следует нажать на красный квадрат в правом верхнем углу.
По нажатии на кнопку 3 выделаная запись будет удалена не только из программы но и из файла, пример показан на (рисунок 3, 4, 5).
Рисунок 3 – Выдиление удоляемой записи
Рисунок 4 – Окно показывающае удаленную запись
Рисунок 5 – Рузультат выполненой задачи
Для того, чтобы удалить запись, необходимо выбрать её из списка и нажать на кнопку «Удалить». Возврат в главное меню осуществляется таким же образом, как при добавление.
По нажатию на кнопку 4 будет осуществлен поиск элемента по критерию который был введен в строку поиска под номером 5, представленный на рисунке 6.
Рисунок 6 – Осуществление поиска
Оставшиеся элементы управления не вызывают дополнительных окон, а лишь выполняют действия, соответствующие их названию.
АВАРИЙНЫЕ СИТУАЦИИ
Если вместо данных в программе получаются сплошные иероглифы, то следует проверить кодировку файла. Необходимая кодировка – windows-1251.
Если возникла исключительная аварийная ситуация, то следует описать вашу ошибку в подробном письме и отправить её на следующий mail адрес: ya.chyzmaxim@yandex.ry.
РЕКОМЕНДАЦИЯ ПО ОСВОЕНИЮ
Для освоения данной программы нет необходимости в изучении сторонних материалов. Требуются базовые знания управления компьютером: умения набирать текст, работать мышью, а также работать со стандартной программой ОС Windows – «Блокнот».
Приложение Б
(обязательное)
Листинг программы
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;
namespace Курсач
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
foreach (Агроном a in Файл.Читать())
Program.tree.Add(a);
OutputTree();
}
public void OutputTree()
{
this.dataGridView1.Rows.Clear();
Агроном[] a = Program.tree.DataSource().ToArray();
this.dataGridView1.ColumnCount = 4;
foreach (Агроном agr in a)
if (agr != null)
dataGridView1.Rows.Add(agr.НазваниеКультуры, agr.НазваниеУдобрения, agr.СтоимостьЕдиницыУдобрения, agr.ЕдиницаИзмеренияУдобрения);
}
private void button1_Click(object sender, EventArgs e)
{
(new Add(this)).Show();
}
private void button2_Click_1(object sender, EventArgs e)
{
Файл.Записать(Program.tree.DataSource().ToArray());
}
private void button3_Click(object sender, EventArgs e)
{
int rowid = this.dataGridView1.SelectedCells[0].RowIndex;
//MessageBox.Show("::" + this.dataGridView1[0, rowid].Value.ToString());
Program.tree.Delete(this.dataGridView1[0, rowid].Value.ToString());
this.OutputTree();
}
private void Form1_Load(object sender, EventArgs e)
{
this.dataGridView1.Columns[0].HeaderText = "Культура";
this.dataGridView1.Columns[1].HeaderText = "Удобрение";
this.dataGridView1.Columns[2].HeaderText = "Цена";
this.dataGridView1.Columns[3].HeaderText = "Единица измерения";
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.dataGridView1.Rows.Clear();
Агроном[] a = Program.tree.Search(textBox1.Text).ToArray();
this.dataGridView1.ColumnCount = 4;
foreach (Агроном agr in a)
if (agr != null)
dataGridView1.Rows.Add(agr.НазваниеКультуры, agr.НазваниеУдобрения, agr.СтоимостьЕдиницыУдобрения, agr.ЕдиницаИзмеренияУдобрения);
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Forms;
namespace Курсач
{
class Файл
{
public static string Путь = "database.txt";
public static void Записать(Агроном[] Агрономы)
{
StreamWriter Файлик = new StreamWriter(Файл.Путь);
for (int счётчик = 0; счётчик < Агрономы.Length; счётчик++)
if (Агрономы[счётчик] != null)
Файлик.Write(Агрономы[счётчик].НазваниеКультуры + "|"
+ Агрономы[счётчик].НазваниеУдобрения + "|"
+ Агрономы[счётчик].СтоимостьЕдиницыУдобрения + "|"
+ Агрономы[счётчик].ЕдиницаИзмеренияУдобрения + "\n");
Файлик.Close();
Файлик.Dispose();
}
public static Агроном[] Читать()
{
List<Агроном> Агрономы = new List<Агроном>();
StreamReader Файлик = new StreamReader(Файл.Путь);
string full = Файлик.ReadToEnd();
foreach (string s in full.Split('\n'))
{
string[] param = s.Split('|');
if (param.Length == 4)
Агрономы.Add(new Агроном(param));
}
Файлик.Close();
Файлик.Dispose();
return Агрономы.ToArray();
}
}
}
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;
namespace Курсач
{
public class Tree
{
public Node root;
public Tree()
{
this.root = new Node(null, null);
}
private void _add(Node node, Агроном агр)
{
if (node.right == null)
node.right = new Node(node, агр);
else
if (node.left == null)
node.left = new Node(node, агр);
else
{
if (node.right.IsFull())
{
_add(node.right, агр);
}
else
_add(node.left, агр);
}
}
public bool Is(Агроном a, string q)
{
return (a.НазваниеКультуры.IndexOf(q) > -1 ||
a.НазваниеУдобрения.IndexOf(q) > -1 ||
a.ЕдиницаИзмеренияУдобрения.IndexOf(q) > -1 ||
a.СтоимостьЕдиницыУдобрения.IndexOf(q) > -1
);
}
public List<Агроном> Search(string q)
{
List<Агроном> list = new List<Агроном>();
if (this.root.value != null)
if (this.Is(this.root.value, q))
list.Add(this.root.value);
list = _search(list, this.root, q);
return list;
}
private List<Агроном> _search(List<Агроном> list, Node node, string q)
{
if (node.right != null)
if (this.Is(node.right.value, q))
list.Add(node.right.value);
if (node.left != null)
if (this.Is(node.left.value, q))
list.Add(node.left.value);
if (node.right != null)
list = _search(list, node.right, q);
if (node.left != null)
list = _search(list, node.left, q);
return list;
}
public List<Агроном> DataSource()
{
List<Агроном> list = new List<Агроном>();
if (this.root.value != null)
list.Add(this.root.value);
list = datasource(list, this.root);
return list;
}
private List<Агроном> datasource(List<Агроном> list, Node node)
{
if (node.right != null)
list.Add(node.right.value);
if (node.left != null)
list.Add(node.left.value);
if (node.right != null)
list = datasource(list, node.right);
if (node.left != null)
list = datasource(list, node.left);
return list;
}
public void Add(Агроном агроном)
{
if (this.root.value == null)
this.root = new Node(null, агроном);
else
{
_add(this.root, агроном);
}
}
public void Delete(string name)
{
if (this.root.value != null && this.root.value.НазваниеКультуры == name)
this.root.value = null;
MessageBox.Show(name + "|");
_delete(this.root, name);
}
private void _delete(Node node, string name)
{
if (node.right != null)
if (node.right.value.НазваниеКультуры == name)
node.right.value = null;
if (node.left != null)
if (node.left.value.НазваниеКультуры == name)
node.left.value = null;
if (node.right != null)
_delete(node.right, name);
if (node.left != null)
_delete(node.left, name);
}
public void Output()
{
MessageBox.Show(this.root.value.НазваниеКультуры);
_output(this.root);
}
private void _output(Node node)
{
if (node.right != null)
MessageBox.Show(node.right.value.НазваниеКультуры);
if (node.left != null)
MessageBox.Show(node.left.value.НазваниеКультуры);
if (node.right != null)
_output(node.right);
if (node.left != null)
_output(node.left);
}
}
public class Node
{
public Node left;
public Node right;
public Node parent;
public Агроном value;
public bool IsFull()
{
return (this.left != null && this.right != null);
}
public Node(Node p, Агроном v)
{
parent = p;
value = v;
}
}
}
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;
namespace Курсач
{
public partial class Add : Form
{
private Form1 form;
public Add(Form1 form)
{
InitializeComponent();
this.form = form;
}
private void button1_Click(object sender, EventArgs e)
{
Program.tree.Add(new Агроном(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text));
this.form.OutputTree();
}
}
}
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|