Скачать 0.69 Mb.
|
В рамках прохождения преддипломной практики было разработано программное средство «Электронный журнал педагога», позволяющее автоматизировать работу преподавателя. Данное программное средство направлено на облегчение личного учета нагрузки педагога. Такого рода программа упрощает работу, связанную с учетом нагрузки педагога, учетом посещаемости и оценок учащихся, учетом дисциплин, формированием отчетов по пропускам, баллам и рейтингам учащихся, отчетов преподавателей. Программное средство имеет ряд достоинств: простой и понятный интерфейс, небольшой объем памяти, занимаемой приложением на различных носителях информации. В программе реализованы такие задачи, как: - организация ведения базы данных: заполнение таблиц, в которых будут храниться данные об учащихся, дисциплинах, педагогах; - личный учет нагрузки педагога; - формирование отчетов по пропускам учащихся; - формирование отчетов по баллам и рейтингам учащихся; - формирование отчета преподавателя; - создание справочной системы приложения; - обеспечение приложения развитым пользовательским интерфейсом; - обеспечение разграничения прав доступа. Программа реализована в полном объеме и в соответствии с заданными требованиями. Полностью отлажена и протестирована. Поставленные задачи выполнены. Возможным недостатком является: отсутствие обработки ошибок пользователя, что и планируется исправить в последующих версиях программы. В процессе разработки программы использовался в большом объеме материал по программированию, что способствовало закреплению наработанных навыков и умений в этих областях знаний. Список используемых источников
информация об операционной системе Windows 7.
информация о среде программирования Visual Studio 2010.
информация об объектно-ориентированном языке программирования.
информация об реляционной СУБД Microsoft Access 2010.
информация о программном средстве визуального моделирования Rational Rose.
информация о программе создания справок Help&Manual.
информация о программном средстве для создания инсталляторов. Приложение А (обязательное) Текст программы //AdminForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Класс-форма для администратора /// public partial class AdminForm : Form { #region Поля класса /// /// Список педагогов /// private List /// /// Список дисциплин /// public List #endregion #region Конструктор /// /// Конструктор по умолчанию для класса /// public AdminForm() { InitializeComponent(); ShowTeachers(teachers); ShowDisciplines(disciplines); } #endregion #region Методы класса /// /// Отображение списка учитилей /// /// Список учителей private void ShowTeachers(List { teachersListView.Items.Clear(); foreach (Teacher t in ts) teachersListView.Items.Add(new ListViewItem(t.ToString())); } /// /// Отображение списка дисциплин /// /// список дисциплин private void ShowDisciplines(List { disciplinesListView.Items.Clear(); foreach (Discipline d in ds) disciplinesListView.Items.Add(d.Name); } /// /// Нажатия на пункт меню "выход" /// private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } /// /// Удаление записи о педагоге /// private void deleteToolStripMenuItem_Click(object sender, EventArgs e) { if (teachersListView.SelectedIndices.Count == 0) return; int id = teachersListView.SelectedIndices[0]; Teacher selectedTeacher = teachers[id]; teachersListView.Items.RemoveAt(id); DatabaseManager.DeleteEntity(selectedTeacher.ID, EntityType.Teacher); teachers.Remove(selectedTeacher); } /// /// Удаление дисциплины /// private void deleteDisciplineToolStripMenuItem_Click(object sender, EventArgs e) { if (disciplinesListView.SelectedIndices.Count == 0) return; int id = disciplinesListView.SelectedIndices[0]; Discipline selectedDiscipline = disciplines[id]; disciplinesListView.Items.RemoveAt(id); DatabaseManager.DeleteEntity(selectedDiscipline.ID, EntityType.Discipline); disciplines.Remove(selectedDiscipline); } /// /// Создание записи о новом педагоге /// private void createTeacherToolStripMenuItem_Click(object sender, EventArgs e) { using (ViewTeacher form = new ViewTeacher()) { DialogResult res = form.ShowDialog(); if (res == DialogResult.OK) { Teacher createdTeacher = form.ViewedTeacher; if (createdTeacher.ID < 0) return; teachersListView.Items.Add(createdTeacher.ToString()); teachers.Add(createdTeacher); } } } /// /// Создание записи о новой дисциплине /// private void createDisciplineToolStripMenuItem_Click(object sender, EventArgs e) { using (ViewDiscipline form = new ViewDiscipline()) { DialogResult res = form.ShowDialog(); if (res == DialogResult.OK) { Discipline createdDiscipline = form.ViewedDiscipline; if (createdDiscipline.ID < 0) return; disciplines.Add(createdDiscipline); disciplinesListView.Items.Add(createdDiscipline.Name); } } } /// /// Показать информацию о дисциплине /// private void disciplinesListView_DoubleClick(object sender, EventArgs e) { if (disciplinesListView.SelectedIndices.Count == 0) return; int id = disciplinesListView.SelectedIndices[0]; using (ViewDiscipline form = new ViewDiscipline(disciplines[id])) { form.ShowDialog(); } } /// /// Показать информацию о педагоге /// private void teachersListView_DoubleClick(object sender, EventArgs e) { if (teachersListView.SelectedIndices.Count == 0) return; int id = teachersListView.SelectedIndices[0]; using (ViewTeacher form = new ViewTeacher(teachers[id])) { form.ShowDialog(); } } #endregion } } //HelloForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace PupilsJournal { /// /// Форма приветствия /// public partial class HelloForm : Form { #region Поля /// /// Список учителей /// private List #endregion #region Конструктор /// /// Конструктор формы /// public HelloForm() { InitializeComponent(); } #endregion #region Методы /// /// Измнение статуса кноки "Войти" /// private void loginTextBox_TextChanged(object sender, EventArgs e) { enterButton.Enabled = loginTextBox.Text.Length > 0; } /// /// Нажатия кнопки "Войти" /// private void enterButton_Click(object sender, EventArgs e) { if (loginTextBox.Text == @"Admin" && passwordTextBox.Text == @"admin") { // показать меню администратора using (AdminForm form = new AdminForm()) { Visible = false; form.ShowDialog(); Visible = true; } } else { // проверка логина и пароля String login = loginTextBox.Text; IEnumerable if (ts.Count { MessageBox.Show(String.Format(@"Нет записи с таком логином: {0}", login), @"Ошибка входа в систему", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Debug.Assert(ts.Count Teacher selectedTeacher = ts.ElementAt if (selectedTeacher.Pasword != passwordTextBox.Text) { MessageBox.Show(String.Format(@"Неправильный пароль для логина {0}", login), @"Ошибка входа в систему", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } using (TeacherForm form = new TeacherForm(selectedTeacher)) { form.ShowDialog(); } } loginTextBox.Text = string.Empty; passwordTextBox.Text = string.Empty; } /// /// Нажатие на кнопку отчеты /// private void reportButton_Click(object sender, EventArgs e) { using (Reports form = new Reports()) { Visible = false; form.ShowDialog(); Visible = true; } } #endregion } } //PrivateCabinetForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Форма - личный кабинет /// public partial class PrivateCabinetForm : Form { #region Пoля /// /// Учитель /// private Teacher teacher = null; /// /// Список дисциплин /// private List /// /// Список добавленных дисциплин /// private List #endregion #region Конструктор /// /// Конструктор с параметрами /// /// педагог public PrivateCabinetForm(Teacher t) { InitializeComponent(); teacher = t; Text = String.Format(Text, t.ToString()); // получение списка дисциплин ownDiscipline = DatabaseManager.SelectPrivateDiscipline(teacher.ID); foreach (Discipline d in ownDiscipline) privateDisciplinesListBox.Items.Add(d.Name); disciplines = (from d in disciplines where ownDiscipline.Contains(d) == false select d).ToList foreach (Discipline d in disciplines) allDisciplinesListBox.Items.Add(d.Name); } #endregion #region Методы /// /// Добавление новой дисциплины в список /// private void addButton_Click(object sender, EventArgs e) { if (allDisciplinesListBox.SelectedIndices.Count == 0) return; int id = allDisciplinesListBox.SelectedIndices[0]; Discipline d = disciplines[id]; allDisciplinesListBox.Items.RemoveAt(id); privateDisciplinesListBox.Items.Add(d.Name); disciplines.Remove(d); ownDiscipline.Add(d); // добавление новой дисциплины для педагога в базу DatabaseManager.InsertPrivateDiscipline(teacher.ID, d.ID); } /// /// Изменение состояния кнопки добавления /// private void allDisciplinesListBox_SelectedIndexChanged(object sender, EventArgs e) { addButton.Enabled = allDisciplinesListBox.SelectedIndices.Count > 0; } #endregion } } //ReportForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { public partial class Reports : Form { public Reports() { InitializeComponent(); } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } private void classComboBox_SelectedIndexChanged(object sender, EventArgs e) { MessageBox.Show(@"Класс изменен. Должны ниже показать ученики выбранного класса"); } private void pupilsListView_DoubleClick(object sender, EventArgs e) { MessageBox.Show(@"Отчет по ученику"); } private void teachersListView_DoubleClick(object sender, EventArgs e) { MessageBox.Show(@"Отчет по учителям"); } private void teachersListView_SelectedIndexChanged(object sender, EventArgs e) { } } } //TeacherForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Форма педагога /// public partial class TeacherForm : Form { #region Поля /// /// Педагог /// private Teacher teacher = null; /// /// Список групп /// private List private List #endregion #region Конструктор /// /// Конструктор с параметрами /// /// педагог public TeacherForm(Teacher teacher) { InitializeComponent(); this.teacher = teacher; Text = String.Format(Text, teacher.ToString()); // отображени списка групп foreach (Group g in groups) groupComboBox.Items.Add(g.Name); // отображение списка дисциплин foreach (Discipline d in disciplies) disciplineComboBox.Items.Add(d.Name); } #endregion #region Методы /// /// Нажатие на кнопку выход /// private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } /// /// Создание новой группы /// private void createClassToolStripMenuItem_Click(object sender, EventArgs e) { using (ViewClassForm form = new ViewClassForm()) { DialogResult res = form.ShowDialog(); if (res == DialogResult.OK) { Group createdGroup = form.ViewedGroup; if (createdGroup.ID < 0) return; groups.Add(createdGroup); groupComboBox.Items.Add(createdGroup.Name); // добавление учащихся группы в базу foreach (Pupil p in form.ViewedPupils) { p.GroupID = createdGroup.ID; p.ID = DatabaseManager.InsertEntity(p, EntityType.Pupil); } } } } /// /// Показать личный кабинет /// private void showCabinetToolStripMenuItem_Click(object sender, EventArgs e) { using (PrivateCabinetForm form = new PrivateCabinetForm(teacher)) { form.ShowDialog(); } } /// /// Изменение статуса кнопки "Начать занятие" /// private void groupComboBox_SelectedIndexChanged(object sender, EventArgs e) { doLessonButton.Enabled = groupComboBox.SelectedIndex >= 0 && disciplineComboBox.SelectedIndex > 0; } /// /// Начать занятие /// private void doLessonButton_Click(object sender, EventArgs e) { MessageBox.Show(@"Началось занятие", @"Тихо! урок!"); } #endregion } } //ViewClassForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Форма для просмотра или создания нового класса /// public partial class ViewClassForm : Form { #region Поля /// /// Группа /// public Group ViewedGroup { private set; get; } /// /// Список учащихся группы /// public List ViewedPupils { set; get; } #endregion #region Конструктор /// /// Конструктор с параметром /// /// группа public ViewClassForm(Group g = null) { InitializeComponent(); ViewedGroup = g; if (ViewedGroup == null) { // режим создания новой групп ViewedGroup = new Group(); ViewedPupils = new List (); } else { // режим просмотра nameTextBox.Text = ViewedGroup.Name; nameTextBox.Enabled = false; addButton.Enabled = true; addButton.Text = @"OK"; foreach (Pupil p in ViewedPupils) pupilsListView.Items.Add(p.ToString()); } } #endregion #region Методы /// /// Добавление нового учащегося /// private void addPupilButton_Click(object sender, EventArgs e) { // добавление нового учащегося using (ViewPupilForm form = new ViewPupilForm()) { DialogResult res = form.ShowDialog(); if (DialogResult.OK == res) { Pupil createdPupil = form.ViewedPupil; pupilsListView.Items.Add(createdPupil.ToString()); ViewedPupils.Add(createdPupil); nameTextBox_TextChanged(sender, e); } } } /// /// Изменение статуса кнопки /// private void nameTextBox_TextChanged(object sender, EventArgs e) { addButton.Enabled = nameTextBox.Text.Length > 0 && ViewedPupils.Count > 0; } /// /// Добавление новой записи /// private void addButton_Click(object sender, EventArgs e) { ViewedGroup.Name = nameTextBox.Text; // добавление записи в базу данных ViewedGroup.ID = DatabaseManager.InsertEntity(ViewedGroup as Object, EntityType.Group); } #endregion } } //ViewDisciplineForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Класс для просмотра или создания новой дисциплины /// public partial class ViewDiscipline : Form { #region Поля /// /// Дисциплина /// public Discipline ViewedDiscipline { private set; get; } #endregion #region Конструктор /// /// Конструктор класса /// /// дисциплина public ViewDiscipline(Discipline d = null) { InitializeComponent(); ViewedDiscipline = d; if (ViewedDiscipline == null) { // режим создания ViewedDiscipline = new Discipline(); addButton.Click += new EventHandler(addButton_Click); } else { // режим просмотра nameTextBox.Enabled = false; nameTextBox.Text = ViewedDiscipline.Name; addButton.Enabled = true; addButton.Text = @"OK"; Text = @"Просмотр информации о дисциплине"; } } #endregion #region Методы /// /// Добавление информации о дисциплине в базу /// void addButton_Click(object sender, EventArgs e) { // считывание информации из базы ViewedDiscipline.Name = nameTextBox.Text; // добавление записи в базу данных ViewedDiscipline.ID = DatabaseManager.InsertEntity(ViewedDiscipline, EntityType.Discipline); } /// /// Изменение информации на форме /// private void nameTextBox_TextChanged(object sender, EventArgs e) { addButton.Enabled = nameTextBox.Text.Length > 0; } #endregion private void addButton_Click_1(object sender, EventArgs e) { } } } //ViewTeacherForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Форма для просмотра информации или добавления нового учителя /// public partial class ViewTeacher : Form { #region Поля /// /// Учитель /// public Teacher ViewedTeacher { private set; get; } #endregion #region Конструктор /// /// Конструктор с параметрами /// /// учитель public ViewTeacher(Teacher value = null) { InitializeComponent(); ViewedTeacher = value; if (ViewedTeacher == null) { // режим создания ViewedTeacher = new Teacher(); addButton.Click += new EventHandler(addButton_Click); } else { // режим просмотра информации Text = String.Format(@"Просмотр информации об {0}", ViewedTeacher.ToString()); firstNameTextBox.Enabled = false; middleNameTextBox.Enabled = false; lastNameTextBox.Enabled = false; loginTextBox.Enabled = false; biographyRichTextBox.Enabled = false; passwordTextBox.Enabled = false; firstNameTextBox.Text = ViewedTeacher.FirstName; middleNameTextBox.Text = ViewedTeacher.MiddleName; lastNameTextBox.Text = ViewedTeacher.LastName; biographyRichTextBox.Text = ViewedTeacher.Biography; loginTextBox.Text = ViewedTeacher.Login; passwordTextBox.Text = ViewedTeacher.Pasword; addButton.Enabled = true; addButton.Text = @"OK"; } } #endregion #region Методы /// /// Добавление новой сущности /// void addButton_Click(object sender, EventArgs e) { // считывание информации с формы ViewedTeacher.FirstName = firstNameTextBox.Text; ViewedTeacher.MiddleName = middleNameTextBox.Text; ViewedTeacher.LastName = lastNameTextBox.Text; ViewedTeacher.Biography = biographyRichTextBox.Text; ViewedTeacher.Login = loginTextBox.Text; ViewedTeacher.Pasword = passwordTextBox.Text; // добавление записи в базу данных ViewedTeacher.ID = DatabaseManager.InsertEntity(ViewedTeacher as Object, EntityType.Teacher); } /// /// Изменение основной информации о педагоге /// private void firstNameTextBox_TextChanged(object sender, EventArgs e) { addButton.Enabled = firstNameTextBox.Text.Length > 0 && middleNameTextBox.Text.Length > 0 && lastNameTextBox.Text.Length > 0 && loginTextBox.Text.Length > 0; } #endregion private void addButton_Click_1(object sender, EventArgs e) { } } } //ViewPupilForm using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PupilsJournal { /// /// Форма просмотра или создания /// public partial class ViewPupilForm : Form { #region Поля /// /// Учащийся /// public Pupil ViewedPupil { private set; get; } #endregion #region Конструктор /// /// Конструктор с параметрами /// /// учащийся public ViewPupilForm(Pupil p = null) { InitializeComponent(); ViewedPupil = p; if (ViewedPupil == null) { // режим создания ViewedPupil = new Pupil(); addButton.Click += new EventHandler(addButton_Click); } else { // режим просмотра информации Text = @"Просмотр информации об учащемся"; firstNameTextBox.Enabled = false; lastNameTextBox.Enabled = false; middleNameTextBox.Enabled = false; firstNameTextBox.Text = ViewedPupil.FirstName; middleNameTextBox.Text = ViewedPupil.MiddleName; lastNameTextBox.Text = ViewedPupil.LastName; addButton.Text = @"OK"; addButton.Enabled = true; } } #endregion #region Методы /// /// Добавление нового учащегося /// void addButton_Click(object sender, EventArgs e) { // чтение информации с формы ViewedPupil.FirstName = firstNameTextBox.Text; ViewedPupil.MiddleName = middleNameTextBox.Text; ViewedPupil.LastName = lastNameTextBox.Text; } /// /// Изменение статуса кнопки /// private void firstNameTextBox_TextChanged(object sender, EventArgs e) { addButton.Enabled = firstNameTextBox.Text.Length > 0 && lastNameTextBox.Text.Length > 0 && middleNameTextBox.Text.Length > 0; } #endregion private void addButton_Click_1(object sender, EventArgs e) { } } } Приложение Б (справочное) Выходные документы Рисунок Б.1 Рисунок Б.2 |