Пример оформления программного кода приложения.



 

Не менее одного класса должно быть самодокументировано с помощью XML-комментариев.

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

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

 

namespace ПроектРадиостанции

{

 //Каждый класс должен иметь XML-комментарий

/// <summary>

/// Абстрактный класс, являющийся предком 2х видов радиостанций

/// </summary>

[Serializable]

Public abstract class Радиостанция

{

   protected string позывной;                   // комментарий

   protected int дальность;          // комментарий

   protected int x;                    // комментарий

   protected int y;                    // комментарий

 

//Каждый метод класса должен должен иметь XML-комментарий

//с указанием назначения, входных и выходных параметров и возвращаемого значения.

   /// <summary>

   /// Конструктор класса "Радиостанция"

   /// </summary>

   /// <param name="позывной">Позывной радиостанции</param>

   /// <param name="дальность">дальность связи</param>

   /// <param name="x">Координата x</param>

   /// <param name="y">Координата y</param>

 

 

   public Радиостанция(string позывной, int дальность, int x, int y)

   {

       this.позывной = позывной;

       this.дальность = дальность;

       this.x = x;

       this.y = y;

   }

 

 

   /// <summary>

   /// Свойство, принимающее значение дальности связи радиостанции

   /// </summary>

   public int Дальность

   { get {return дальность;}

   }

 

   /// <summary>

   /// Свойство, принимающее значение позывного

   /// </summary>

   public string Позывной

   { get{ return позывной;}

   }

 

   /// <summary>

   /// Свойство, принимающее значение координаты x

   /// </summary>

   public int X

   {get {return x;}

   }

 

   /// <summary>

   /// Свойство, принимающее значение координаты y

   /// </summary>

   public int Y

   {get { return y;}

 

   }

 

}

}

Класс, представляющий подвижные радиостанции

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

using System.Windows.Forms;

using System.Drawing;

 

namespace ПроектРадиостанции

{

[Serializable]

public class Подвижная : Радиостанция   // комментарий

{

   private int[] точки_x;     // комментарий

   private int[] точки_y;     // комментарий

   private static int min_x = int.MaxValue, // комментарий

              min_y = int.MaxValue,

              max_x = 0,

              max_y = 0;

 

       // комментарий

Public Подвижная(string позывной, int дальность, int x, int y, ArrayList массив_точек_x,

ArrayList массив_точек_y)

       : base(позывной, дальность, x, y)

   {

       точки_x = new int[массив_точек_x.Count];

       точки_y = new int[массив_точек_y.Count];

       for (int i = 0; i < массив_точек_x.Count; i++)

       {

           точки_x[i] = (int)массив_точек_x[i];

           точки_y[i] = (int)массив_точек_y[i];

       }

   }

 

       // комментарий

   static public int Max_x

   {

       get { return max_x; }

       set

       { max_x = value; }}

 

       // комментарий

   static public int Min_x

   {get { return min_x; }

    set { min_x = value; } }

 

       // комментарий

   static public int Max_y

   {get { return max_y; }

    set { max_y = value; }}

 

       // комментарий

Static public int Min_y

   { get { return min_y; }

     set { min_y = value;} }

 

       // комментарий

   public int[] Точки_x

   {

       set { точки_x = value; }

      get{ return точки_x;} }

 

 

       // комментарий

   public int[] Точки_y

   {

       set { точки_y = value; }

       get { return точки_y;} }

 

 

       // комментарий

Public void Рисовать(Graphics полотно, Size размер, int шир_x, int выс_y,

Int масш_x, int масш_y, Pen pg)

   {

 

       int dy = размер.Height + (min_y-3)*масш_y,

           dx = -(min_x-3) * масш_x;

       int x1, x2, y1, y2;

       SolidBrush br = new SolidBrush(pg.Color);

       Font ft = new Font("Batang", 12);

       x1 = dx+(точки_x[0])*масш_x;

       y1 = dy - (точки_y[0])*масш_y ;

       полотно.FillEllipse(br, x1 - 5, y1 - 5, 10, 10);

       полотно.DrawString(точки_x[0].ToString() + "; " + точки_y[0].ToString(), ft,

                                        Brushes.Black, x1 + 3, y1);

       for (int i = 1; i < точки_x.Length; i++)

       {

           x2 = dx+ (точки_x[i]) * масш_x;

           y2 = dy - (точки_y[i]) * масш_y;

           полотно.DrawLine(pg, x1, y1, x2, y2);

           полотно.FillEllipse(br, x2 - 5, y2 - 5, 10, 10);

           полотно.DrawString(точки_x[i].ToString() + "; " + точки_y[i].ToString(), ft,

                                             Brushes.Black, x2 + 1, y2);

           x1 = x2;

           y1 = y2;

       }

   }

}

}

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

 

 

Класс, представляющий стационарные радиостанции

 

namespace ПроектРадиостанции

{

/// <summary>

/// Класс, представляющий стационарные радиостанции

/// </summary>

[Serializable]

public class Стационарная : Радиостанция

{

   private string насел_пункт;

 

   /// <summary>

   /// Конструктор класса "Стационарная"

   /// </summary>

   /// <param name="позывной">Позывной радиостанции</param>

   /// <param name="дальность">дальность связи</param>

   /// <param name="x">Координата x</param>

   /// <param name="y">Координата y</param>

   /// <param name="насел_пункт">Насел пункт, в котором расположена радиостанция</param>

   public Стационарная(string позывной, int дальность, int x, int y, string насел_пункт)

       : base(позывной, дальность, x, y)

   {

       this.насел_пункт = насел_пункт;

   }

 

   /// <summary>

   /// Свойство, выдающее значение населенного пункта

   /// </summary>

   /// <return> Населенный пункт радиостанции</return>

   public string Насел_пункт

   {get {return насел_пункт;}

 

   }

}

}

 

 

Форма Form1.

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Collections;

using System.IO;

using System.Runtime.Serialization.Formatters.Binary;

 

namespace ПроектРадиостанции

{

public partial class Form1 : Form

{

   public Form1()

   {

       InitializeComponent();

   }

   ArrayList база;

   ArrayList промежуточные_точки_x;

   ArrayList промежуточные_точки_y;

   Стационарная сс;

   Подвижная пс;

   Form2 Радиостанции_И;

   Form3 Графики;

   string имяЗапись;

   string имяЧтение;

   FileStream поток;

   int k = 1;

   private void Form1_Load(object sender, EventArgs e)

   {

       база = new ArrayList();

       dataGridView1.Columns.Add("", "Тип радиостанции");

       dataGridView1.Columns.Add("", "Позывной");

       dataGridView1.Columns.Add("", "Дальность связи");

       dataGridView1.Columns.Add("", "Расположение");

       dataGridView1.Columns.Add("", "Населенный пункт");

       промежуточные_точки_x = new ArrayList();

       промежуточные_точки_y = new ArrayList();

 

   }

 

 

       /// <summary>

       /// Предлагает пользователю сохранить базу данных в файл

       /// </summary>

   public void save()

   {

        if (имяЧтение != "") { saveFileDialog1.FileName = имяЧтение; }

       DialogResult ответ;

       ответ = saveFileDialog1.ShowDialog();

       if (ответ == DialogResult.OK)

       {

           имяЗапись = saveFileDialog1.FileName;

           поток = new FileStream(имяЗапись, FileMode.Create);

           BinaryFormatter форм = new BinaryFormatter();

           форм.Serialize(поток, база);

           поток.Close();

           Text = имяЗапись + " - Радиостанции";

       }

           

   }

 

 

       /// <summary>

       /// Предлагает пользователю сохранить данные перед выходом

       /// </summary>

   public void exit()

   {

       DialogResult ответ;

       ответ = MessageBox.Show("Сохранить изменения в базе данных?", "ВЫХОД",

                                                   MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

       if (ответ == DialogResult.Yes) { save(); }

       if (ответ == DialogResult.No) { Close(); }

       if (ответ == DialogResult.Cancel) { return; }

   }

 

 

   /// <summary>

   /// Добавляет в базу данных стационарную радиостанцию

   /// </summary>

   private void button2_Click(object sender, EventArgs e)

   {

       try

       {

           база.Add(new Стационарная(textBox1.Text, (int)numericUpDown1.Value,

                                 int.Parse(textBox2.Text), int.Parse(textBox3.Text), textBox4.Text));

         }

       catch

       {

           MessageBox.Show("Должны быть заполнены все поля и в поле 'координаты' должны быть введены только числа!", "Ошибка!");

           return;

 

       }

       сс = (Стационарная)база[база.Count - 1];

       dataGridView1.Rows.Insert(0, 1);

       dataGridView1[0, 0].Value = сс.GetType().Name;

       dataGridView1[1, 0].Value = textBox1.Text;

       dataGridView1[2, 0].Value = (int)numericUpDown1.Value;

       dataGridView1[3, 0].Value = (textBox2.Text + "; " + textBox3.Text);

       dataGridView1[4, 0].Value = textBox4.Text;

       textBox1.Clear();

       numericUpDown1.Value = 1;

       textBox2.Clear();

       textBox3.Clear();

       textBox4.Clear();

   }

 

 

       /// <summary>

       /// Добавляет в базу данных подвижную радиостанцию

       /// </summary>

   private void button4_Click(object sender, EventArgs e)

   {

 

       try

       {

            база.Add(new Подвижная(textBox1.Text, (int)numericUpDown1.Value, (int)промежуточные_точки_x[промежуточные_точки_y.Count - 1], (int)промежуточные_точки_y[промежуточные_точки_x.Count - 1], промежуточные_точки_x, промежуточные_точки_y));

       }

       catch

       {

           MessageBox.Show("Должны быть заполнены все поля и в поле 'координаты' должны быть введены только числа!", "Ошибка!");

           return;

       }

       пс = (Подвижная)база[база.Count - 1];

       dataGridView1.Rows.Insert(0, 1);

       dataGridView1[0, 0].Value = пс.GetType().Name;

       dataGridView1[1, 0].Value = textBox1.Text;

       dataGridView1[2, 0].Value = (int)numericUpDown1.Value;

       dataGridView1[3, 0].Value = пс.X + "; " + пс.Y;

       dataGridView1[4, 0].Value = "";

       промежуточные_точки_x.Clear();

       промежуточные_точки_y.Clear();

       textBox1.Clear();

       numericUpDown1.Value = 1;

           

          

   }

       

 

       /// <summary>

       /// Добавляет координаты новой точки в массив промежуточных точек

       /// </summary>

   private void button3_Click(object sender, EventArgs e)

   {

 

       try

       {

           промежуточные_точки_x.Add(int.Parse(textBox5.Text));

           промежуточные_точки_y.Add(int.Parse(textBox6.Text));

       }

       catch

       {

           MessageBox.Show("В поле 'координаты' должны быть введены только числа!", "Ошибка!");

           return;

       }

          

       textBox5.Clear();

       textBox6.Clear();

   }

 

       /// <summary>

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

       /// </summary>

   private void button5_Click(object sender, EventArgs e)

   {

       Подвижная.Max_x = 0;

       Подвижная.Max_y = 0;

       Подвижная.Min_x = int.MaxValue;

       Подвижная.Min_y = int.MaxValue;

       Подвижная подв;

         

           for (int i = 0; i < база.Count; i++)

           {

 

               if (база[i].GetType().Name == "Подвижная")

               {

                   подв = (Подвижная)база[i];

                   for (int j = 0; j < подв.Точки_x.Length; j++)

                   {

                       if (подв.Точки_x[j] < Подвижная.Min_x) { Подвижная.Min_x = подв.Точки_x[j]; }

                       if (подв.Точки_x[j] > Подвижная.Max_x) { Подвижная.Max_x = подв.Точки_x[j]; }

                   }

                   for (int j = 0; j < подв.Точки_y.Length; j++)

                   {

                       if (подв.Точки_y[j] < Подвижная.Min_y) { Подвижная.Min_y = подв.Точки_y[j]; }

                       if (подв.Точки_y[j] > Подвижная.Max_y) { Подвижная.Max_y = подв.Точки_y[j]; }

                   }

               }

 

           }

 

           Графики = new Form3();

           Графики.База = база;

           Графики.ShowDialog();

   }

               

 

       /// <summary>

       /// Открывает новую форму с перечислением стационарных радиостанций, расположенных в населенных пунктах, название которых начинается с буквы "И"

       /// </summary>


Дата добавления: 2018-05-12; просмотров: 208; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!