using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using ClassLibrary4;
using Microsoft.VisualBasic;
namespace Второй_курс
{
public partial class Form27 : Form
{
public Form27()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
String g = Interaction.InputBox("Введите количество элементов массива = ", "Введите значение", "", -1);
int n = Convert.ToInt16(g);
int[] masPrt = new int[n];
BD.Gen(n, masPrt);
BD.Vivod (n, dataGridView1, rezmas);
int k = 0;
int[] rezmas = new int[n];
BD.Kall(n, ref k, textBox1, masPrt);
BD.NewMass(n, k, masPrt, rezmas);
BD.Vivod(n, dataGridView1, rezmas);
int j = n;
try
{
BD.add();
BD.add_struct();
BD.add_zap(ref masPrt, ref rezmas, n,j);
}
catch (Exception exeption)
{
MessageBox.Show(exeption.Message);
return;
}
}
private void button2_Click(object sender, EventArgs e)
{
Form1 f = new Form1();
this.Hide();
f.ShowDialog();
}
}
}
ClassLibrary4.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
namespace ClassLibrary4
{
public class BD
{
public static void Gen(int n, params int[] masPrt)
{
Random a = new Random();
for (int i = 0; i < n; i++)
masPrt[i] = (int)(a.Next(0, 1000));
}
public static void Kall(int n, ref int k, TextBox t, int[] masPrt)
{
for (int i = 0; i < n; i++)
if (masPrt[i] % 16 == masPrt[i] % 8)
k++;
t.Text = Convert.ToString(k);
}
public static void Vivod(int n, int k, DataGridView grid, params int[] rezmas)
{
grid.RowCount = 2;
grid.ColumnCount = n;
grid.Rows.Add("Номер элемента", "Значение");
for (int i = 0; i < n; i++)
{
grid.Rows[0].Cells[i].Value = i + 1;
grid.Rows[1].Cells[i].Value = rezmas[i];
}
int Width = 0;
for (int s = 0; s < grid.ColumnCount; s++)
Width += grid.Columns[s].Width;
if (Width > 1000)
grid.Width = 1000;
else
grid.Width = Width;
}
public static void NewMass(int n, int k, int[] masPrt, params int[] rezmas)
{
for (int i = 0; i < n; i++)
{
int m = i;
if (m % 2 != 0)
rezmas[i] = k;
else
rezmas[i] = masPrt[i];
}
}
public static void add()
{
var k = new ADOX.Catalog();
try
{
k.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= F:\\ТП\\mas.mbd");
MessageBox.Show("БД успешно создана");
}
catch (System.Runtime.InteropServices.COMException sit)
{
MessageBox.Show(sit.Message);
}
finally
{
k = null;
}
}
public static void add_struct()
{
var p = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\ТП\\mas.mbd");
p.Open();
var c = new OleDbCommand("CREATE TABLE [MASSIVS]([Номер элемента] counter, [Исходный массив] char(200), [Результирующий массив] char (200))", p);
try
{
c.ExecuteNonQuery();
MessageBox.Show("Структура БД записана");
}
catch (Exception situation)
{
MessageBox.Show(situation.Message);
}
p.Close();
}
public static void add_zap(ref int[] mas, ref int[] rezmas, int len)
{
for (int i = 0; i < len; i++)
{
if (i < j)
{
var c = new OleDbCommand("INSERT INTO [MASSIVS](" + " [Исходный массив],[Результирующий массив]) VALUES('" + mas[i] + "','" + rezmas[i] + "')");
c.Connection = p;
c.ExecuteNonQuery();
}
else
{
var c = new OleDbCommand("INSERT INTO [MASSIVS](" + " [Исходный массив],[Результирующий массив]) VALUES('" + mas[i] + "','')");
c.Connection = p;
c.ExecuteNonQuery();
}
p.Close();
}
MessageBox.Show("В таблицу БД была добвлена запись", "Информация", MessageBoxButtons.OK, MessageBoxIcon.None);
}
}
}
На рисунках 6-10 представлена работа программного продукта.
Рисунок 6 – Ввод количества элементов массива
Рисунок 7 – Создание БД
Рисунок 8 – Создание структуры БД
Рисунок 9 – Запись исходного и результирующего массивов
Рисунок 10 – Созданная БД
Если мы попробуем еще раз запустить программу и введем другое значение количества элементов массива, то столкнемся с тем, что БД уже создана и еще раз создать БД с таким же названием не получится (рисунок 11).
Рисунок 11 – Вывод сообщения при повторном запуске программы
1) ГОСТ 7.1-2001 СИБИД. Библиографическая запись. Библиографическое описание. Общие требования и правила составления [электронный ресурс] URL: https://internet-law.ru/gosts/gost/1560 (дата обращения 6.11.2020)
2) ГОСТ 7.32-2001 СИБИД. Отчет о научно-исследовательской работе. Структура и правила оформления (с Изменением N 1) [электронный ресурс] URL: http://docs.cntd.ru/document/gost-7-32-2001-sibid (дата обращения 6.11.2020)
3) ГОСТ 19.201-78 Единая система программной документации (ЕСПД). Техническое задание. Требования к содержанию и оформлению (с Изменением N 1) [электронный ресурс] URL: https://www.internet-law.ru/gosts/gost/31884 (дата обращения 6.11.2020))