Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая.docx
Скачиваний:
24
Добавлен:
27.08.2024
Размер:
3 Мб
Скачать
    1. Наполнение главной страницы

Реализуется наполнение главной страницы. Это представлено на рисунке 12.

Рисунок 12 – Описание главной страницы

    1. Реализация запроса

Реализуется наполнение страницы Raspisanie.aspx с расписанием при помощи SQL-запроса. Производится поиск занятий по дням недели, где выводится номер урока, начало и окончание урока, предмет, фамилия учителя и класс, у которого занятие. Аналогично можно сделать фильтрацию по классу и одновременно по классу и дню недели. Страница в конструкторе представлена на рисунке 13, результат на рисунке 14. Логика передачи SQL-запроса таблице заложена в кнопках, которые представлены в Приложении.

Рисунок 13 – Страница поиска заказа в конструкторе

Рисунок 14 – Результат выполнения запроса на сайте расписания

    1. Фильтрация данных

На сайте Tasks.aspx же поиска заданий по классу реализована отдельная страница. Здесь выводится информация о задании класса с такими данными: название предмета, название задания, описание, дедлайн, максимальный балл. Сайт в конструкторе представлен на рисунке 15, результат выполнения запроса на сайте на рисунке 16. Логика работы представления таблицы заложена в SqlDataSource.

Рисунок 15 - Страница сайта каталогов в конструкторе

Рисунок 16 – Фильтрация по сезону и типу одежды

  1. Реализация авторизации и регистрации

    1. Авторизация

Реализуется блок авторизации в конструкторе на шаблоне главной страницы. Здесь пользователя для авторизации должен указать логин и пароль, а также указать одну из ролей: учитель, ученик, родитель. Если пользователь неверно вводит пароль, то высвечивается сообщение о неправильном вводе. При успешном вводе появляется сообщение «Привет, …», а также пропадают все поля ввода. Также здесь же существует кнопка для перехода к окну регистрации. Авторизация в конструкторе представлена на рисунке 17, результат работы на рисунках 18-19. Логика работы представлена в Приложении (main.Page.master.cs).

Рисунок 17 – Авторизация в конструкторе

Рисунок 18 – Авторизация при неверном вводе

Рисунок 19 – Пример успешной авторизации

    1. Регистрация

При нажатии на кнопку регистрации появляется окно для заполнения данных в другой веб-форме. Веб-форма в конструкторе представлена на рисунке 20.

Рисунок 20 – Регистрация в конструкторе

Здесь пользователь должен заполнить данные о себе: Имя, Фамилия, Отчество, Телефон, Логин и Пароль. Здесь же предусмотрена валидация на обязательное заполнение полей. Также он должен указать свою роль для работы. При нажатии на кнопку регистрации происходит SQL-запрос в БД на добавление. Результат заполнения формы на сайте представлен на рисунке 21, проверка в БД на рисунке 22. Логика регистрации представлена в Приложении (Raspisanie.aspx.cs).

Рисунок 21 – Регистрация на сайте

Рисунок 22 – Появление данных в БД Access

ЗАКЛЮЧЕНИЕ

Подготовлена презентация для обсуждения требований к ИС школы. Выделены основные категории пользователей и сформулированы функциональные требования к системе.

Выделены объекты и изучены отношения между объектами ИС школы. Разработаны диаграммы последовательности событий для сложных прецедентов.

Произведена визуализация, конструирование и документация динамических аспектов информационной системы школы.

Создана полная атрибутивная модель, содержащая все сущности в 3-ей нормальной форме с атрибутами и связями.

Создана информационная система при помощи технологии ASP.NET. В разработанной системе реализован следующий основной функционал:

  • Фильтрация данных по определенным критериям

  • Авторизация

  • Регистрация нового пользователя

ПРИЛОЖЕНИЕ

Файл main.Page.master.cs

using System;

using System.Collections.Generic;

using System.Diagnostics;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data.OleDb;

using System.Data.SqlClient;

using System.Reflection.Emit;

namespace maxim

{

public partial class Site1 : System.Web.UI.MasterPage

{

protected void LinkButton1_Click(object sender, EventArgs e)

{

Response.Redirect("Homepage.aspx");

}

protected void Page_Load(object sender, EventArgs e)

{

long iduser = Convert.ToInt64(Session["IDP"]);

string myuser = Convert.ToString(Session["IdU"]);

if (iduser != 0)

{

TextBox1.Visible = false;

TextBox2.Visible = false;

Label1.Visible = true;

Label2.Visible = false;

Label3.Visible = false;

Label4.Visible = false;

Label5.Visible = false;

Button2.Visible = true;

Button1.Visible = false;

Button3.Visible = false;

RoleDropDownList.Visible = false;

Label1.Text = "Привет, " + myuser;

LinkButton3.Visible = true;

}

else

{

TextBox1.Visible = true;

TextBox2.Visible = true;

Label1.Visible = false;

Label2.Visible = false;

Label3.Visible = true;

Label4.Visible = true;

Label5.Visible = true;

Button2.Visible = false;

Button1.Visible = true;

Button3.Visible = true;

RoleDropDownList.Visible = true;

}

}

protected void LinkButton2_Click(object sender, EventArgs e)

{

Response.Redirect("Raspisanie.aspx");

}

protected void LinkButton3_Click(object sender, EventArgs e)

{

Response.Redirect("Tasks.aspx");

}

protected void Button1_Click(object sender, EventArgs e)

{

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Study\7 semester\Information systems design\qqq.mdb";

var connect = new OleDbConnection(connectionString);

connect.Open();

string sparol, slogin;

long srole;

sparol = Convert.ToString(TextBox2.Text);

slogin = Convert.ToString(TextBox1.Text);

srole = Convert.ToInt64(RoleDropDownList.SelectedValue);

string sqlQ = string.Empty;

if (srole == 1)

{

sqlQ = "SELECT * FROM Teacher WHERE login_teacher='" + slogin + "' AND password_teacher='" + sparol + "'";

}

else if (srole == 2)

{

sqlQ = "SELECT * FROM Child WHERE login_child='" + slogin + "' AND password_child='" + sparol + "'";

}

else if (srole == 3)

{

sqlQ = "SELECT * FROM Parent WHERE login_parent='" + slogin + "' AND password_parent='" + sparol + "'";

}

else if (srole == 0)

{

Label2.Text = "Выберите роль";

Label2.Visible = true;

return;

}

var mycom = new OleDbCommand();

mycom.CommandText = sqlQ;

mycom.Connection = connect;

OleDbDataReader myread = mycom.ExecuteReader();

if (myread.Read() == true)

{

Session["IdU"] = slogin;

Session["IDP"] = Convert.ToString(myread.GetValue(0));

TextBox1.Visible = false;

TextBox2.Visible = false;

Label1.Visible = true;

Label2.Visible = false;

Label3.Visible = false;

Label4.Visible = false;

Label5.Visible = false;

Button2.Visible = true;

Button1.Visible = false;

Button3.Visible = false;

RoleDropDownList.Visible = false;

Label1.Text = "Привет, " + slogin + "!";

}

else

{

Label2.Visible = true;

Label2.Text = "Неверный логин или пароль";

}

TextBox1.Text = "";

TextBox2.Text = "";

connect.Close();

}

protected void Button2_Click(object sender, EventArgs e)

{

Session.Clear();

TextBox1.Visible = true;

TextBox2.Visible = true;

Label1.Visible = false;

Label2.Visible = false;

Label3.Visible = true;

Label4.Visible = true;

Label5.Visible = true;

Button1.Visible = true;

Button2.Visible = false;

Button3.Visible = true;

RoleDropDownList.Visible = true;

}

protected void Button3_Click(object sender, EventArgs e)

{

Response.Redirect("Registration.aspx");

}

}

}

Файл Registration.aspx.cs

using System;

using System.Collections.Generic;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Xml.Linq;

namespace maxim

{

public partial class Registration : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition

{

Path = "~/Content/Js/jquery-3.2.1.min.js",

});

}

protected void Button11_Click(object sender, EventArgs e)

{

string connectionstring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Study\7 semester\Information systems design\qqq.mdb";

var connect = new OleDbConnection(connectionstring);

connect.Open();

string rname, rsurname, rfathername, rlogin, rpassword;

long rtelephone;

rname = Convert.ToString(TextBox11.Text);

rsurname = Convert.ToString(TextBox12.Text);

rfathername = Convert.ToString(TextBox13.Text);

rtelephone = Convert.ToInt64(TextBox14.Text);

rlogin = Convert.ToString(TextBox15.Text);

rpassword = Convert.ToString(TextBox16.Text);

long srole;

srole = Convert.ToInt64(RegisrationRoleDropDownList.SelectedValue);

string sqlq = string.Empty;

if (srole == 1)

{

sqlq = "INSERT INTO Teacher(name_teacher,surname_teacher,father_teacher,telephone_teacher,login_teacher,password_teacher) VALUES( '" + rname + "', '" + rsurname + "', '" + rfathername + "', " + rtelephone + ", '" + rlogin + "', '" + rpassword + "')";

}

else if (srole == 2)

{

sqlq = "INSERT INTO Child(name_child,surname_child,father_child,telephone_child,login_child,password_child) VALUES( '" + rname + "', '" + rsurname + "', '" + rfathername + "', " + rtelephone + ", '" + rlogin + "', '" + rpassword + "')";

}

else if (srole == 3)

{

sqlq = "INSERT INTO Parent(name_parent,surname_parent,father_parent,telephone_parent,login_parent,password_parent) VALUES( '" + rname + "', '" + rsurname + "', '" + rfathername + "', " + rtelephone + ", '" + rlogin + "', '" + rpassword + "')";

}

Label17.Visible = true;

var mycom = new OleDbCommand();

mycom.CommandText = sqlq;

mycom.Connection = connect;

mycom.ExecuteNonQuery();

connect.Close();

}

}

}

Файл Raspisanie.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace maxim

{

public partial class WebForm2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Unnamed1_Click(object sender, EventArgs e)

{

string crit = "SELECT [Week day].name_day, Lesson.nubmer_lesson, Lesson.time_start, Lesson.time_finish, Subject.name_subject, Teacher.surname_teacher, Class.number_class FROM ((((((Timetable INNER JOIN [Week day] ON Timetable.id_day = [Week day].id_day) INNER JOIN Lesson ON Timetable.id_lesson = Lesson.id_lesson) INNER JOIN Workload ON Timetable.id_workload = Workload.id_workload) INNER JOIN Teacher ON Workload.id_teacher = Teacher.id_teacher) INNER JOIN Subject ON Workload.id_subject = Subject.id_subject) INNER JOIN Class ON Workload.id_class = Class.id_class) WHERE ([Week day].id_day = " + DropDownList1.SelectedValue + ")";

SqlDataSource2.SelectCommand = crit;

}

protected void Unnamed2_Click(object sender, EventArgs e)

{

string crit = "SELECT [Week day].name_day, Lesson.nubmer_lesson, Lesson.time_start, Lesson.time_finish, Subject.name_subject, Teacher.surname_teacher, Class.number_class FROM ((((((Timetable INNER JOIN [Week day] ON Timetable.id_day = [Week day].id_day) INNER JOIN Lesson ON Timetable.id_lesson = Lesson.id_lesson) INNER JOIN Workload ON Timetable.id_workload = Workload.id_workload) INNER JOIN Teacher ON Workload.id_teacher = Teacher.id_teacher) INNER JOIN Subject ON Workload.id_subject = Subject.id_subject) INNER JOIN Class ON Workload.id_class = Class.id_class) WHERE (Class.id_class = " + ctl03.SelectedValue + ")";

SqlDataSource2.SelectCommand = crit;

}

protected void Unnamed3_Click(object sender, EventArgs e)

{

string crit = "SELECT [Week day].name_day, Lesson.nubmer_lesson, Lesson.time_start, Lesson.time_finish, Subject.name_subject, Teacher.surname_teacher, Class.number_class FROM ((((((Timetable INNER JOIN [Week day] ON Timetable.id_day = [Week day].id_day) INNER JOIN Lesson ON Timetable.id_lesson = Lesson.id_lesson) INNER JOIN Workload ON Timetable.id_workload = Workload.id_workload) INNER JOIN Teacher ON Workload.id_teacher = Teacher.id_teacher) INNER JOIN Subject ON Workload.id_subject = Subject.id_subject) INNER JOIN Class ON Workload.id_class = Class.id_class) WHERE ([Week day].id_day = " + DropDownList1.SelectedValue + ") AND (Class.id_class = " + ctl03.SelectedValue + ")";

SqlDataSource2.SelectCommand = crit;

}

}

}

Соседние файлы в предмете Проектирование информационных систем