Автор: Пользователь скрыл имя, 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 Выводы
Выводы
Перечень ссылок
Приложение А
AddEditErrorProvider.
AddEditErrorProvider.SetError(
}
else
{
AddEditErrorProvider.Clear();
}
}
private void _cbSpec_Validated(object sender, EventArgs e)
{
if (_cbSpec.Text == "")
{
AddEditErrorProvider.
AddEditErrorProvider.
AddEditErrorProvider.BlinkRate = 500;
AddEditErrorProvider.
AddEditErrorProvider.SetError(
}
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.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
}
else
{
AddEditSchoolProvider.Clear();
}
}
private void _NumSchoolBox_Validated(object sender, EventArgs e)
{
if (_NumSchoolBox.Text =="")
{
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
}
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[
{
throw new Exception("Недопустимое значение!");
}
}
AddEditSchoolProvider.Clear();
}
catch (Exception ex)
{
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
}
}
private void _MarkMathBox_Validated(object sender, EventArgs e)
{
int a = 0;
if (!int.TryParse(_MarkMathBox.
{
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
}
else
{
AddEditSchoolProvider.Clear();
}
}
private void _MarkMovaBox_Validated(object sender, EventArgs e)
{
int a = 0;
if (!int.TryParse(_MarkMovaBox.
{
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
AddEditSchoolProvider.
}
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].
for (int i = 1; i < this.dataABITUR.Data_List.
{
if (max < this.dataABITUR.Data_List[i].
{
max = this.dataABITUR.Data_List[i].
}
}
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.
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,
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].
}
}
catch (Exception)
{
}
#endregion
}
private void pbGraphic_Click(object sender, EventArgs e)
{
}
private void AbiturientuBox_
{
}
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.
DATA_TABLE.Rows[DATA_TABLE.
DATA_TABLE.Rows[DATA_TABLE.
DATA_TABLE.Rows[DATA_TABLE.
DATA_TABLE.Rows[DATA_TABLE.
DATA_TABLE.Rows[DATA_TABLE.
DATA_TABLE.Rows[DATA_TABLE.
DATA_TABLE.Rows[DATA_TABLE.
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(
this.abiturientu.IsSaved = true;
}
else
{
miSerialAndSaveDB_Click(
}
}
//
// Сериализация и сохранение
//
private void miSerialAndSaveDB_Click(object sender, EventArgs e)
Информация о работе Разработка приложения для работы с много файловой базой данных