Разработка приложения для работы с много файловой базой данных

Автор: Пользователь скрыл имя, 11 Марта 2012 в 21:00, курсовая работа

Краткое описание

Целью данного курсового проекта является разработка приложения для работы с много файловой базой данных – ведение базы данных об абитуриентах, подавших документы для поступления в ВУЗ. Программа должна определять средний балл аттестата по итогам ввода данных; регистрировать данные об абитуриентах, поступающих в ВУЗ; сортировать данные по факультету и специальности, а также итоговой оценке абитуриента; производить отбор данных по: факультету, специальности итоговой оценке, среднему баллу аттестата; строить гистограмму распределения итоговых оценок абитуриентов. Данное приложение призвано ускорить процесс расчета и заполнения базы данных.

Оглавление

Введение
1. Разработка архитектуры приложения «Абитуриент»
1.1 Назначение разработки и основание для ее выполнения
1.2 Постановка задачи
1.3 Требования к программе
1.3.1 Требования к графическому интерфейсу пользователя
1.3.2 Требования к архитектуре приложения
1.3.3 Требования к функциональности приложения
1.3.4 Требования к программной документации
1.4 Требование к тестированию
1.5 Архитектура приложения (первоначальная)
1.6 Этапы разработки
1.7 Выводы
2 . Программная документация для проекта «Абитуриент»
2.1 Тестирование программы
2.2. Руководство программиста
2.2.1 Структура программы
2.2.2. Настройка и проверка программы
2.3. Руководство пользователя
2.3.1 Общие сведения о программе
2.3.2.Условие выполнения программы
2.3.3 Выполнение программы
2.4.Сообщения оператору
2.5 Выводы
Выводы
Перечень ссылок
Приложение А

Файлы: 1 файл

Пояснительна записка(Бец)на сдачу.doc

— 1.41 Мб (Скачать)

                AddEditErrorProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditErrorProvider.SetError(_cbFuck, "Не должно быть пустым");

            }

            else

            {

                AddEditErrorProvider.Clear();

            }

        }

 

        private void _cbSpec_Validated(object sender, EventArgs e)

        {

            if (_cbSpec.Text == "")

            {

                AddEditErrorProvider.SetIconAlignment(_cbSpec, ErrorIconAlignment.MiddleRight);

                AddEditErrorProvider.SetIconPadding(_cbSpec, 2);

                AddEditErrorProvider.BlinkRate = 500;

                AddEditErrorProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditErrorProvider.SetError(_cbSpec, "Не должно быть пустым");

            }

            else

            {

                AddEditErrorProvider.Clear();

            }

        }

 

       

    }

}

Класс AddEditSchoolDialog.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace KURSOVOJ

{

    public partial class AddEditSchoolDialog : Form

    {

        public AddEditSchoolDialog()

        {

            InitializeComponent();

        }

 

        private void _FioBox_Validated(object sender, EventArgs e)

        {

            if (_FioBox.Text == "")

            {

                AddEditSchoolProvider.SetIconAlignment(_FioBox, ErrorIconAlignment.MiddleRight);

                AddEditSchoolProvider.SetIconPadding(_FioBox, 2);

                AddEditSchoolProvider.BlinkRate = 500;

                AddEditSchoolProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditSchoolProvider.SetError(_FioBox, "Не должно быть пустым!");

            }

            else

            {

                AddEditSchoolProvider.Clear();

            }

        }

 

        private void _NumSchoolBox_Validated(object sender, EventArgs e)

        {

            if (_NumSchoolBox.Text =="")

            {

                AddEditSchoolProvider.SetIconAlignment(_NumSchoolBox, ErrorIconAlignment.MiddleRight);

                AddEditSchoolProvider.SetIconPadding(_NumSchoolBox, 2);

                AddEditSchoolProvider.BlinkRate = 500;

                AddEditSchoolProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditSchoolProvider.SetError(_NumSchoolBox, "Не должно быть пустым!");

            }

            else

            {

                AddEditSchoolProvider.Clear();

            }

        }

 

        private void _YearBox_Validated(object sender, EventArgs e)

        {

            try

            {

                for (int i = 0; i < _YearBox.Text.Length; i++)

                {

                    if (!Char.IsDigit(_YearBox.Text[i]))

                    {

                        throw new Exception("Недопустимое значение!");

                    }

                }

                AddEditSchoolProvider.Clear();

            }

            catch (Exception ex)

            {

                AddEditSchoolProvider.SetIconAlignment(_YearBox, ErrorIconAlignment.MiddleRight);

                AddEditSchoolProvider.SetIconPadding(_YearBox, 2);

                AddEditSchoolProvider.BlinkRate = 500;

                AddEditSchoolProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditSchoolProvider.SetError(_YearBox, ex.Message);

            }

        }

 

        private void _MarkMathBox_Validated(object sender, EventArgs e)

        {

            int a = 0;

            if (!int.TryParse(_MarkMathBox.Text, out a))

            {

                AddEditSchoolProvider.SetIconAlignment(_MarkMathBox, ErrorIconAlignment.MiddleRight);

                AddEditSchoolProvider.SetIconPadding(_MarkMathBox, 2);

                AddEditSchoolProvider.BlinkRate = 500;

                AddEditSchoolProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditSchoolProvider.SetError(_MarkMathBox, "Недопустимое значение!");

            }

            else

            {

                AddEditSchoolProvider.Clear();

            }

        }

 

        private void _MarkMovaBox_Validated(object sender, EventArgs e)

        {

            int a = 0;

            if (!int.TryParse(_MarkMovaBox.Text,out a))

            {

                AddEditSchoolProvider.SetIconAlignment(_MarkMovaBox, ErrorIconAlignment.MiddleRight);

                AddEditSchoolProvider.SetIconPadding(_MarkMovaBox, 2);

                AddEditSchoolProvider.BlinkRate = 500;

                AddEditSchoolProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;

                AddEditSchoolProvider.SetError(_MarkMovaBox, "Недопустимое значение!");

            }

            else

            {

                AddEditSchoolProvider.Clear();

            }

        }

               

    }

}

 

Класс GraphicForm.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace KURSOVOJ

{

    public partial class GraphicForm : Form

    {

        ABITURIENTU dataABITUR;

        double FindMax()

        {

            double max = this.dataABITUR.Data_List[0].ITOG;

 

            for (int i = 1; i < this.dataABITUR.Data_List.Count; i++)

            {

                if (max < this.dataABITUR.Data_List[i].ITOG)

                {

                    max = this.dataABITUR.Data_List[i].ITOG;

                }

            }

 

            return max;

        }

        public GraphicForm()

        {

            InitializeComponent();

        }

 

        public GraphicForm(ABITURIENTU ab)

        {

            InitializeComponent();

            this.dataABITUR = ab;

        }

 

        private void GraphicForm_Load(object sender, EventArgs e)

        {

           

 

        }

 

        private void pbGraphic_Paint(object sender, PaintEventArgs e)

        {

            Graphics gr = e.Graphics;// pbGraphic.CreateGraphics();

 

            double maxY = FindMax();

            double maxX = this.dataABITUR.Data_List.Count;

 

            double cenaX = 560 / maxX;

            double cenaY = 440 / maxY;

 

            double cenaYy = maxY / 10;

            //double cenaXx = maxX /

            gr.Clear(Color.White);

 

            // Рисование осей

            gr.DrawLine(Pens.Black, new Point(40, 10), new Point(40, 510 - 40));

            gr.DrawLine(Pens.Black, new Point(40, 510 - 40), new Point(630 - 10, 510 - 40));

            // Рисование стрелки на оси Y

            gr.DrawLine(Pens.Black, new Point(40, 10), new Point(35, 25));

            gr.DrawLine(Pens.Black, new Point(40, 10), new Point(45, 25));

            gr.DrawString("Y", new Font(new FontFamily("Arial"), 8f), Brushes.Black, new PointF(20f, 5f));

 

            // Рисование стрелки на оси X

            gr.DrawLine(Pens.Black, new Point(630 - 10, 510 - 40), new Point(630 - 25, 510 - 45));

            gr.DrawLine(Pens.Black, new Point(630 - 10, 510 - 40), new Point(630 - 25, 510 - 35));

            gr.DrawString("X", new Font(new FontFamily("Arial"), 8f), Brushes.Black, new PointF(630 - 25, 510 - 30));

            int bal = 1;

 

            #region Разметка осей

            // Разметка по оси Y

            for (int i = 465; i > 35; i--)

            {

                if (i % 5 == 0)

                {

                    gr.DrawLine(Pens.Black, new Point(40, i), new Point(38, i));

                }

            }

            while (bal < 13)

            {

                gr.DrawLine(Pens.Black, new Point(40, 470 - bal * 36), new Point(35, 470 - bal * 36));

                gr.DrawString(bal.ToString(), new Font(new FontFamily("Arial"), 8f), Brushes.Black, new PointF(20f, (float)470 - bal * 36));

                bal++;

            }

            int Shag = Convert.ToInt32(550 / maxX);

            int nom = 1;

            // Легенда

            AbiturientuBox.Items.Clear();

            AbiturientuBox.Items.Add("Y - Ось оценок");

            AbiturientuBox.Items.Add("X - Ось Студентов");

            AbiturientuBox.Items.Add("");

            AbiturientuBox.Items.Add("");

            // Разметка по оси X

            for (int i = 45; i < 600; i++)

            {

                if (i % Shag == 0)

                {

                    gr.DrawLine(Pens.Black, new Point(i, 470), new Point(i, 477));

                    gr.DrawString(nom.ToString(), new Font(new FontFamily("Arial"), 8f), Brushes.Black, new PointF((float)i, 480f ));

                    nom++;

                }

 

            }

            #endregion

 

            #region Рисование Гистограммы

            try

            {

                int curr = 0;

                for (int i = 45; i < 600; i++)

                {

                    if (i % Shag == 0)

                    {

                        if (curr < dataABITUR.Data_List.Count)

                        {

                            gr.FillRectangle(Brushes.Blue, new Rectangle(i - 3,

                                Convert.ToInt32(470 - dataABITUR.Data_List[curr].ITOG * 36), 6, Convert.ToInt32(470 - (470 - dataABITUR.Data_List[curr].ITOG * 36))));

                            curr++;

                        }

                    }

                }

                for (int i = 0; i < dataABITUR.Data_List.Count; i++)

                {

                    AbiturientuBox.Items.Add((i + 1).ToString() + ". " + dataABITUR.Data_List[i].FIO + " " + dataABITUR.Data_List[i].FAKULTET);

                }

            }

            catch (Exception)

            {

               

            }

            #endregion

        }

 

        private void pbGraphic_Click(object sender, EventArgs e)

        {

 

        }

 

        private void AbiturientuBox_SelectedIndexChanged(object sender, EventArgs e)

        {

 

        }

 

        private void btClose_Click(object sender, EventArgs e)

        {

            this.Close();

        }

    }

}

 

Класс KoefDialog.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace KURSOVOJ

{

    public partial class KoefDialog : Form

    {

        public KoefDialog()

        {

            InitializeComponent();

        }

 

        private void btOk_Click(object sender, EventArgs e)

        {

 

            try

            {

                if (double.Parse(kMathBox.Text) + double.Parse(kMovaBox.Text) != 1)

                {

                    MessageBox.Show("Сумма индексов должна быть равна 1!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                }

                else

                {

                    this.DialogResult = DialogResult.OK;

                    this.Close();

                }

            }

            catch (Exception)

            {

                MessageBox.Show("Введены некорктные данные!", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

 

        }

    }

}

 

Класс MainWindow.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace KURSOVOJ

{

    public partial class MainWindow : Form

    {

 

        ABITURIENT abitur;

        ABITURIENTU abiturientu;

 

        double kMat;

        double kUkr;

 

        string fileName = "";

        /// <summary>

        /// Обновление базы данных

        /// </summary>

        /// <param name="abituru">Список абитуриентов</param>

        void RefreshDataTable(ABITURIENTU abituru)

        {

            this.DATA_TABLE.Rows.Clear();

            for (int i = 0; i < abituru.Data_List.Count; i++)

            {

                DATA_TABLE.Rows.Add();

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["NOM"].Value = i + 1;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["FIO"].Value = abituru.Data_List[i].FIO;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["FUCK"].Value = abituru.Data_List[i].FAKULTET;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["SPEC"].Value = abituru.Data_List[i].SPECIALNOST;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["MIDLE_MARK_ATT"].Value = abituru.Data_List[i].SR_ATESTAT;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["MATH"].Value = abituru.Data_List[i].OCENKA_TEST_MATH;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["MOVA"].Value = abituru.Data_List[i].OCENKA_TEST_MOVA;

                DATA_TABLE.Rows[DATA_TABLE.Rows.Count - 1].Cells["ITOG"].Value = abituru.Data_List[i].ITOG;

                DATA_TABLE.Update();

            }

        }

        //

        //

        //

        public MainWindow()

        {

            InitializeComponent();

            this.DATA_TABLE.Visible = false;

            abiturientu = new ABITURIENTU();

            abiturientu.IsSaved = true;

        }

        //

        // Создание базы данных

        //

        private void miCreateDB_Click(object sender, EventArgs e)

        {

            KoefDialog kd = new KoefDialog();

            if (abiturientu.IsSaved)

            {

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

                {

                    abiturientu = new ABITURIENTU();

                    fileName = "";

 

                    this.DATA_TABLE.Visible = true;

                    this.DATA_TABLE.Rows.Clear();

 

                    this.kMat = double.Parse(kd.kMathBox.Text);

                    this.kUkr = double.Parse(kd.kMovaBox.Text);

 

                    this.tsKoefMath.Text = kd.kMathBox.Text;

                    this.tsKoefMova.Text = kd.kMovaBox.Text;

 

                    tsNew.Enabled = true;

                    tsSave.Enabled = true;

                    tsAdd.Enabled = true;

                    tsDelete.Enabled = true;

                    tsEdit.Enabled = true;

                    tsISelecttog.Enabled = true;

                    tsMiddleMark.Enabled = true;

                    tsSelectAll.Enabled = true;

                    tsSelectFak.Enabled = true;

                    tsSelectSpec.Enabled = true;

 

                    miEdit.Enabled = true;

                    miVuborka.Enabled = true;

                    miSave.Enabled = true;

                    miSerialAndSaveDB.Enabled = true;

                    miItog.Enabled = true;

                }

            }

            else

            {

                if (MessageBox.Show("Текущая база не сохранена!\n Сохранить?", "Внимание!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.OK)

                {

                    miSave_Click(sender, e);

                }

                else

                {

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

                    {

                        abiturientu = new ABITURIENTU();

                        fileName = "";

 

                        this.DATA_TABLE.Visible = true;

                        this.DATA_TABLE.Rows.Clear();

 

                        this.kMat = double.Parse(kd.kMathBox.Text);

                        this.kUkr = double.Parse(kd.kMovaBox.Text);

                    }

                }

            }

        }

        //

        // Сохранение Базы Данных

        //

        private void miSave_Click(object sender, EventArgs e)

        {

            if (fileName != "")

            {

                abiturientu.SaveDataBase(fileName);

                this.abiturientu.IsSaved = true;

            }

            else

            {

                miSerialAndSaveDB_Click(sender, e);               

            }

        }

        //

        // Сериализация и сохранение

        //

        private void miSerialAndSaveDB_Click(object sender, EventArgs e)

Информация о работе Разработка приложения для работы с много файловой базой данных