Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пантелеева_БСТ1904.docx
Скачиваний:
11
Добавлен:
04.03.2022
Размер:
16.2 Mб
Скачать

7 Разработка блок-схемы

Разработаем блок-схему функции Gen(int n, params int[] masPrt) и представим на рисунке 1.

Рисунок 1 – Блок схемы функции Gen()

Разработаем блок-схему функции Kall(int n, ref int k, TextBox t, int[] masPrt) и представим на рисунке 2.

Рисунок 2 – Блок-схема функции Kall()

Разработаем блок-схему метода Vivod(int n, int k, DataGridView grid, params int[] rezmas) и представим на рисунке 3.

Рисунок 3 – Блок-схема функции Vivod()

Разработаем блок-схему функции, которая создает результирующий массив void NewMass(int n, int k, int[] masPrt, params int[] rezmas) и представим на рисунке 4.

Рисунок 4 – Блок-схема функции NewMass()

Разработаем блок-схему событийного метода button1_Click и представим на рисунке 5.

Рисунок 5 – Блок-схема событийной функции button1_Click

Разработаем блок-схему событийного метода button7_Click и представим на рисунке 6.

Рисунок 6 – Блок-схема событийной функции button7_Click

Разработаем блок-схему событийного метода button2_Click и представим на рисунке 7.

Рисунок 7 – Блок-схема событийной функции button2_Click

Разработаем блок-схему событийного метода button3_Click и представим на рисунке 8.

Рисунок 8 – Блок-схема событийной функции button3_Click

Разработаем блок-схему событийного метода button5_Click и представим на рисунке 9.

Рисунок 9 – Блок-схема событийной функции button5_Click

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

Form1.cs

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.Threading.Tasks;

using System.Windows.Forms;

namespace _3semectr

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Form2 f = new Form2();

this.Hide();

f.ShowDialog();

}

private void button2_Click(object sender, EventArgs e)

{

Form5 f = new Form5();

this.Hide();

f.ShowDialog();

}

private void button3_Click(object sender, EventArgs e)

{

Form6 f = new Form6();

this.Hide();

f.ShowDialog();

}

private void button4_Click(object sender, EventArgs e)

{

Form23 f = new Form23();

this.Hide();

f.ShowDialog();

}

private void button5_Click(object sender, EventArgs e)

{

Form26 f = new Form26();

this.Hide();

f.ShowDialog();

}

}

}

Form26.cs

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.Data.OleDb;

using massivs;

using Microsoft.VisualBasic;

using iTextSharp;

namespace _3semectr

{

public partial class Form26 : Form

{

public Form26()

{

InitializeComponent();

}

public static int n { get; set; }

public static int[] mas { get; set; }

public static int[] rezmas { get; set; }

private void button1_Click(object sender, EventArgs e)

{

String g = Interaction.InputBox("Введите количество элементов массива = ", "", "", -1, -1);

n = Convert.ToInt32(g);

mas = new int[n];

LB4.Gen(n, mas);

LB4.Vivod(n, dataGridView1, mas);

int k = 0;

rezmas = new int[n];

LB4.Kall(n, ref k, textBox2, mas);

LB4.NewMass(n, k, mas, rezmas);

LB4.Vivod(n, dataGridView2, rezmas);

}

private void Form26_Load(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

LB4.Add_pdf(n, mas, rezmas);

}

private void button3_Click(object sender, EventArgs e)

{

LB4.ZapisBloknot(n, mas, rezmas);

}

private void button5_Click(object sender, EventArgs e)

{

LB4.ZapisWord(n, mas, rezmas);

}

private void button7_Click(object sender, EventArgs e)

{

int m = n;

int[] masPrt = mas;

int[] rezzz = rezmas;

int j = m;

LB4.add();

LB4.add_struct();

LB4.add_zap(ref masPrt, ref rezzz, n, j);

}

private void button4_Click(object sender, EventArgs e)

{

Form1 f = new Form1();

this.Hide();

f.ShowDialog();

}

}

}

massivs.dll

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

using PdfSharp.Pdf;

using PdfSharp;

using RazorPDF;

using iTextSharp;

using iTextSharp.text;

using iTextSharp.text.pdf;

using System.Data.OleDb;

using Microsoft.Office.Interop.Word;

using Font = iTextSharp.text.Font;

using Microsoft.Office.Interop.Excel;

namespace massivs

{

public class LB4

{

public static void Gen(int n, params int[] mas)

{

Random a = new Random();

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

mas[i] = (int)(a.Next(0, 1000));

}

public static void Kall(int n, ref int k, System.Windows.Forms.TextBox t, int[] mas)

{

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

if (mas[i] % 16 == mas[i] % 8)

k++;

t.Text = Convert.ToString(k);

}

public static void Vivod(int n, 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[] mas, params int[] rezmas)

{

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

{

int m = i;

if (m % 2 != 0)

rezmas[i] = k;

else

rezmas[i] = mas[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, int j)

{

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

{

var p = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\ТП\\mas.mbd");

p.Open();

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);

}

public static void Add_pdf(int lenght, int[] mas, int[] rezmas)

{

var Document = new iTextSharp.text.Document();

var Zap = PdfWriter.GetInstance(Document, new System.IO.FileStream("Massivss.pdf", System.IO.FileMode.Create));

Document.Open();

var Shrift = BaseFont.CreateFont(@"C:\Windows\Fonts\Arial.ttf", "CP1251",BaseFont.EMBEDDED);

var ft = new Font(Shrift, 10, Font.NORMAL, BaseColor.BLACK);

var tabl = new PdfPTable(2);

var cell = new PdfPCell();

cell.HorizontalAlignment = Element.ALIGN_CENTER;

cell.Colspan = 2;

cell.Border = 0;

cell.FixedHeight = 16.0F;

cell.Phrase = new Phrase("Одномерные массивы", ft);

tabl.AddCell(cell);

cell.BackgroundColor = BaseColor.MAGENTA;

cell.Colspan = 1;

cell.Border = 15;

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

{

cell.Phrase = new Phrase(mas[i].ToString(), ft);

tabl.AddCell(cell);

cell.Phrase = new Phrase(rezmas[i].ToString(), ft);

tabl.AddCell(cell);

}

tabl.TotalWidth = Document.PageSize.Width - 400;

tabl.WriteSelectedRows(0, -1, 40, Document.PageSize.Height - 30, Zap.DirectContent);

Document.Close();

Zap.Close();

System.Diagnostics.Process.Start("IExplore.exe", System.IO.Directory.GetCurrentDirectory() + @"Massivss.pdf");

}

public static void ZapisBloknot(int length, int[] mas, int[] rezmas)

{

StreamWriter rez = File.CreateText("Одномерные массивы");

rez.WriteLine("Исходный массив");

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

rez.WriteLine(mas[i]);

rez.WriteLine("Результирующий массив");

for (int s = 0; s < length; s++)

rez.WriteLine(rezmas[s]);

rez.Close();

}

public static void ZapisWord(int length, int[] mas, int[] rezmas)

{

Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();

application.Visible = true;

var type = Type.Missing;

var doc = application.Documents.Add(type, type, type, type);

String str;

application.Selection.TypeText("Одномерные массивы");

object tableBehavior = Microsoft.Office.Interop.Word.WdDefaultTableBehavior.wdWord9TableBehavior;

object autoFitBehavior = Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitContent;

Microsoft.Office.Interop.Word.Table table = application.ActiveDocument.Tables.Add(application.Selection.Range, 3, length, tableBehavior, autoFitBehavior);

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

{

table.Cell(1, i + 1).Range.InsertAfter("[" + (i + 1) + "]");

str = String.Format("{0:f0}", mas[i]);

table.Cell(2, i + 1).Range.InsertAfter(str);

str = String.Format("{0:f0}", rezmas[i]);

table.Cell(3, i + 1).Range.InsertAfter(str);

}

}

}

}

Соседние файлы в предмете Технологии программирования