1. Введение
Напряженный график контрольных мероприятий учебного семестра требует от студента регулярной ежедневной работы. Наличие контроля выполнения графика со стороны деканата и куратора позволяет существенно повысить успеваемость студентов. Автоматизированная система учета текущей успеваемости позволить улучшить качество контроля успеваемости со стороны куратора и деканата, так как позволит получать сведения о динамике работы каждого студента.
2. Назначение
Система предназначена для хранения и обработки сведений о текущей успеваемости студентов учебной группы.
Система может быть использована при проведении смотров и для оценки текущей успеваемости каждого студента и группы в целом.
3. Требования к программе или программному изделию
3.1. Требования к функциональным характеристикам.
Система должна обеспечивать возможность выполнения следующих функций:
инициализацию системы (ввод списка группы и т.п.);
ввод и коррекцию текущей информации о ходе выполнения учебного графика конкретным студентом;
хранение информации в течение длительного времени;
получение сведений о текущем состоянии выполнения учебного графика студентами в следующих вариантах:
а) процент успеваемости по конкретному студенту по всем предметам;
б) процент успеваемости по всем студентам по конкретному заданию;
в) проценты успеваемости по всем студентам и группе в целом по всем предметам;
г) список студентов, не сдавших конкретное задание;
д) процент успеваемости каждого студента и группы по конкретному предмету.
Исходные данные:
список студентов группы;
перечень предметов, перечень заданий по каждому предмету и сроки их сдачи;
текущие данные (еженедельно): процент выполнения каждым студентом каждого задания учебного графика.
3.2. Требования к надежности.
1. Программный продукт должен соответствовать современному уровню требований к разработке программного обеспечения (структурному и объектно-ориентированному подходам).
2. Предусмотреть контроль вводимой информации.
3. Предусмотреть блокировку некорректных действий пользователя при работе с системой.
4. Обеспечить сохранение результатов предыдущей корректировки файла данных в файле с расширением .bak.
3.3. Требования к составу и параметрам технических средств.
Система должна работать на IBM совместимых персональных компьютерах.
Минимальная конфигурация:
тип процессора Intel 386 и выше
объем ОЗУ 8 Мб и более
тип монитора EGA и выше
тип манипулятора мышь
3.4. Требования к информационной и программной совместимости.
Система должна работать под управлением Windows XP и выше.
4. Требования к программной документации
Разрабатываемые программные модули должны быть самодокументированны, т.е. тексты программ должны содержать все необходимые комментарии.
Регулярные выражения
#pragma once
namespace Regul {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Text::RegularExpressions;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ labelDate;
protected:
private: System::Windows::Forms::TextBox^ textBoxDate;
private: System::Windows::Forms::Button^ buttonValid;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->labelDate = (gcnew System::Windows::Forms::Label());
this->textBoxDate = (gcnew System::Windows::Forms::TextBox());
this->buttonValid = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// labelDate
//
this->labelDate->AutoSize = true;
this->labelDate->Location = System::Drawing::Point(12, 29);
this->labelDate->Name = L"labelDate";
this->labelDate->Size = System::Drawing::Size(37, 13);
this->labelDate->TabIndex = 0;
this->labelDate->Text = L"Текст";
//
// textBoxDate
//
this->textBoxDate->Location = System::Drawing::Point(64, 26);
this->textBoxDate->Name = L"textBoxDate";
this->textBoxDate->Size = System::Drawing::Size(216, 20);
this->textBoxDate->TabIndex = 1;
//
// buttonValid
//
this->buttonValid->Location = System::Drawing::Point(64, 88);
this->buttonValid->Name = L"buttonValid";
this->buttonValid->Size = System::Drawing::Size(114, 23);
this->buttonValid->TabIndex = 2;
this->buttonValid->Text = L"Проверить";
this->buttonValid->UseVisualStyleBackColor = true;
this->buttonValid->Click += gcnew System::EventHandler(this, &Form1::buttonValid_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Controls->Add(this->buttonValid);
this->Controls->Add(this->textBoxDate);
this->Controls->Add(this->labelDate);
this->Name = L"Form1";
this->Text = L"Валидатор";
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void buttonValid_Click(System::Object^ sender, System::EventArgs^ e)
{
// кирилица, не менее 5 букв
String^ filter="[а-я]{5,}";
Regex^ reg= gcnew Regex(filter);
Match^ match = reg->Match(this->textBoxDate->Text);
if (match->Success)
{
MessageBox::Show("Введено не менее 5 букв");
}
else
{
MessageBox::Show("Ошибка ввода, повторите ввод");
this->textBoxDate->Text="";
}
}
};
}