Помощь в написании студенческих работ
Антистрессовый сервис

Проектирование информационной системы «Деканат»

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Физическая реализация БД Физическая модель данных строится на базе логической модели и описывает данные уже средствами конкретной СУБД. Отношения, разработанные на стадии логического моделирования, преобразуются в таблицы, атрибуты в столбцы, домены в типы данных, принятых в выбранной конкретной СУБД. Золотов С. Ю. Проектирование информационных систем: Учебно-методическое пособие. Методические… Читать ещё >

Проектирование информационной системы «Деканат» (реферат, курсовая, диплом, контрольная)

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Ижевский государственный технический университет Имени М. Т. Калашникова»

Воткинский филиал Кафедра ОВПиСУ

Курсовой проект

на тему: Проектирование информационной системы «Деканат»

по курсу предмета Проектирование АСОИУ

Выполнил студент группы 9−45−1

Воробьев Г. А.

Проверил Инженер — электроник Береснев Н.В.

Воткинск 2014

Оглавление Введение Постановка задачи

1. Проектирование БД

1.1 Выбор программного обеспечения

1.2 Проектирование таблиц

1.3 Физическая реализация БД

2. Проектирование интерфейса

2.1 Информация о студентах

2.2 Редактирование групп

2.3 Редактирование оценок

2.4 Редактирование предметов

2.5 Просмотр диаграмм Заключение Список литературы Приложение А

Введение

Одним из важнейших условий обеспечения эффективного функционирования любой организации является наличие развитой автоматизированной информационной системы (АИС). Под АИС понимают все системы, реализующие автоматизированный сбор, обработку и манипулирование данными и включающие технические средства обработки данных, программное обеспечение и обслуживающий персонал. Современной формой АИС являются автоматизированные банки данных (АБД), которые включают в свой состав вычислительную систему, одну или несколько БД, систему управления базами данных (СУБД) и набор прикладных программ (ПП).

Цель данного курсового проекта — разработка информационной системы «Деканат». Информационная система «Деканат» предполагает хранение информации о студентах и учет их успеваемости.

В соответствии с поставленной целью в работе предполагается решить следующие задачи:

— сбор данных;

— проектирование базы данных;

— формулировка ограничений целостности;

— разработка приложения;

Для обеспечения надежности системы управления данными необходимо выполнить следующие основные требования:

— целостность и непротиворечивость данных,

— достоверность данных,

— простота управления данными.

Постановка задачи база данные деканат студент Спроектировать базу данных и разработать многопользовательское приложение на основе базы студентов, их успеваемости и предметов. А также построение графиков оценок по предметам.

Выбрать СУБД, среду программирования и выполнить задание.

1. Проектирование БД

1.1 Выбор программного обеспечения Мой выбор пал на СУБД MySQL по причине отличной гибкости, своей открытой архитектуре и большого набора функционала. MySQL отлично подходит для создания малых и средних приложений. В добавок, я взял на вооружение MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.

1.2 Проектирование таблиц Сущность «Группы» имеет атрибуты: название, ключ группы.

Сущность «Оценки» имеет атрибуты: ключ оценок, ссылку на студента, ссылку на предмет и значение оценки.

Сущность «Студенты» имеет атрибуты: ключ студента, фамилия, имя, отчество, дата рождения, номер зачётки и номер группы.

Сущность «Предметы» имеет атрибуты: ключ предмета, название предмета. Всего БД состоит из 4х таблиц:

1) Группы. Рис.1

Рис. 1. Таблица группы

2) Оценки. Рис.2

Рис. 2. Таблица оценки

3) Студенты. Рис.3

Рис. 3. Таблица студенты

4) Предметы. Рис.4

Рис. 4. Таблица предметы

1.3 Физическая реализация БД Физическая модель данных строится на базе логической модели и описывает данные уже средствами конкретной СУБД. Отношения, разработанные на стадии логического моделирования, преобразуются в таблицы, атрибуты в столбцы, домены в типы данных, принятых в выбранной конкретной СУБД.

Физическая модель реализации БЗ отражена на рисунке 5.

Рис. 5. Физическая модель БД

2. Проектирование интерфейса ИС Для создания интерфейса я использовал программу Microsoft Visual Studio 2013. Это мощная среда разработки, позволяющая создавать как консольные, так и оконные приложения.

2.1 Информация о студентах Первое окно рис. 6 представляет собой форму заполнения данных о студентах, а также ссылки на редактирование оценок, групп и показ диаграмм.

Рис. 6. Окно 1

Значения полей:

1) Фамилия, имя, отчество, дата рождения, номер зачётки, номер группы — поля ввода информации о студентах.

2) Кнопки добавить, удалить, принять изменения — для добавления в список, удаления из списка, или изменения данных студента в списке.

3) Кнопки импортэкспорт — для записи данных о студентах в xml файл, а также извлечения данных из файла.

4) Кнопка редактировать — открывает окно редактирования номера группы.

5) Кнопка диаграммы — открывает окно диаграмм.

2.2 Редактирование групп В данном окне рис. 7 можно добавлять, удалять и редактировать группы с помощью соответствующих кнопок.

Рис. 7. Группы

2.3 Редактирование оценок Данное окно Рис. 8 вызывается двойным кликом по ФИО студента на 1 окне, и позволяет выбрать из выпадающего списка предмет и поставить оценку.

Кнопка предметы вызывает окно редактирования предметов.

Рис. 8. Оценки

2.4 Редактирование предметов Окно редактирования предметов Рис. 9. позволяет добавлять, удалять или изменять названия предметов.

Рис. 9 Предметы

2.5 Просмотр диаграмм В последнем окне Рис. 10 выполнена функция предоставления всех оценок по выбранному предмету в виде столбцовой или круговой диаграммы.

Рис. 10 Диаграммы

Заключение

В ходе создания курсового проекта были выполнены следующие этапы:

1) Была спроектирована БД «Деканат»

2) Определена физическая структура БД

3) Разработан прототип информационной системы «Деканат»

Результатом выполнения стала ИС «Деканат», позволяющая хранить информацию о студентах, хранить их оценки по каждому предмету и выводить цветные графики этих оценок.

1. Бойко В. В. Проектирование баз данных информационных систем / Бойко В. В., Савинков В. М. — 2-е изд. — М.: Финансы и статистика, 1989. — 350 с.;

2. Дейт К. Дж.

Введение

в системы баз данных.: Пер. с англ. / Дейт К. Дж. — 6-е изд. — Киев: Диалектика, 1998. — 784 с.;

3. Базы данных в среде промышленных СУБД Черноморов Г. А. — Новочеркасск: ЮРГТУ, 2006. — 884 с.;

4. Базы данных. Язык SQL для студента /В.В. Дунаев: БХВ-Петербург, 2006. 288с.

5. Золотов С. Ю. Основы проектирования информационных систем: Учебное пособие. — Томск: ТУСУР, 2007. — 96 с.

6. Золотов С. Ю. Проектирование информационных систем: Учебно-методическое пособие. Методические рекомендации для выполнения курсового проекта, лабораторных работ и практических занятий по дисциплине «Проектирование информационных систем» — Томск: ТУСУР, 2013. — 34 с.

Приложение, А Форма 1

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. Xml;

namespace WindowsFormsApplication6

{

public partial class Form1: Form

{

List studentlist;

public Form1()

{

InitializeComponent ();

studentlist = new List ();

}

private void Form1_Load (object sender, EventArgs e)

{

var context = new dekanatEntities ();

var students = context. students;

foreach (var st in students)

{

listBox1.Items.Add (st.Familiya + «» + st. Imya + «» + st. Otchestvo);

studentlist.Add (st);

}

var gruppi = context. gruppi;

foreach (var gr in gruppi)

{

comboBox1.Items.Add (gr.nazvanie);

}

}

private void button1_Click (object sender, EventArgs e)

{

students student = new students ();

student.Familiya = textBox1. Text;

student.Imya = textBox2. Text;

student.Otchestvo = textBox3. Text;

student.DataRozhdeniya = dateTimePicker1. Value;

student.NomerZachetki = int. Parse (textBox4.Text);

var context = new dekanatEntities ();

gruppi gr = context.gruppi.First (g => g. nazvanie == comboBox1. Text);

student.NomerGruppi = gr. k_grup;

context.students.AddObject (student);

context.SaveChanges ();

listBox1.Items.Add (student.Familiya + «» + student. Imya + «» + student. Otchestvo);

studentlist.Add (student);

}

private void comboBox1_SelectedIndexChanged (object sender, EventArgs e)

{

}

private void listBox1_SelectedIndexChanged (object sender, EventArgs e)

{

if (listBox1.SelectedIndex > -1)

{

students st1 = studentlist[listBox1.SelectedIndex];

textBox1.Text = st1. Familiya;

textBox2.Text = st1. Imya;

textBox3.Text = st1. Otchestvo;

dateTimePicker1.Value = st1.DataRozhdeniya.Value;

textBox4.Text = st1.NomerZachetki.ToString ();

comboBox1.Text = st1.gruppi.nazvanie;

}

}

private void button2_Click (object sender, EventArgs e)

{

if (listBox1.SelectedIndex > -1)

{

students st1 = studentlist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var st2 = context.students.First (st => st. k_student == st1. k_student);

context.students.DeleteObject (st2);

context.SaveChanges ();

studentlist.RemoveAt (listBox1.SelectedIndex);

listBox1.Items.RemoveAt (listBox1.SelectedIndex);

}

}

private void button3_Click (object sender, EventArgs e)

{

if (listBox1.SelectedIndex > -1)

{

students st1 = studentlist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var st2 = context.students.First (st => st. k_student == st1. k_student);

st2.Familiya = textBox1. Text;

st2.Imya = textBox2. Text;

st2.Otchestvo = textBox3. Text;

st2.DataRozhdeniya = dateTimePicker1. Value;

st2.NomerZachetki = int. Parse (textBox4.Text);

gruppi gr = context.gruppi.First (g => g. nazvanie == comboBox1. Text);

st2.NomerGruppi = gr. k_grup;

context.SaveChanges ();

listBox1.Items.Clear ();

studentlist.Clear ();

foreach (var st in context. students)

{

listBox1.Items.Add (st.Familiya + «» + st. Imya + «» + st. Otchestvo);

studentlist.Add (st);

}

}

}

private void button4_Click (object sender, EventArgs e)

{

Form2 f2 = new Form2();

f2.ShowDialog ();

var context = new dekanatEntities ();

comboBox1.Items.Clear ();

var gruppi = context. gruppi;

foreach (var gr in gruppi)

{

comboBox1.Items.Add (gr.nazvanie);

}

}

private void listBox1_MouseDoubleClick (object sender, MouseEventArgs e)

{

Form3 form3 = new Form3(studentlist[listBox1.SelectedIndex]. k_student);

form3.ShowDialog ();

}

private void button5_Click (object sender, EventArgs e)

{

string pathToXml = «D:\Student.xml» ;

XmlTextWriter textWritter = new XmlTextWriter (pathToXml, Encoding. UTF8);

textWritter.WriteStartDocument ();

textWritter.WriteStartElement («Elements»);

textWritter.WriteEndElement ();

textWritter.Close ();

XmlDocument document = new XmlDocument ();

document.Load (pathToXml);

foreach (var studn in studentlist)

{

XmlNode element = document. CreateElement («element»);

document.DocumentElement.AppendChild (element);

XmlAttribute attribute = document. CreateAttribute («фамилия»);

attribute.Value = studn. Familiya;

element.Attributes.Append (attribute);

attribute = document. CreateAttribute («имя»);

attribute.Value = studn. Imya;

element.Attributes.Append (attribute);

attribute = document. CreateAttribute («Отчество»);

attribute.Value = studn. Otchestvo;

element.Attributes.Append (attribute);

attribute = document. CreateAttribute («дата»);

attribute.Value = studn.DataRozhdeniya.ToString ();

element.Attributes.Append (attribute);

attribute = document. CreateAttribute («группа»);

attribute.Value = studn.gruppi.nazvanie;

element.Attributes.Append (attribute);

attribute = document. CreateAttribute («зачётка»);

attribute.Value = studn.NomerZachetki.ToString ();

element.Attributes.Append (attribute);

var context = new dekanatEntities ();

var stud = context.students.First (st => st. k_student == studn. k_student);

foreach (var mk in stud. marks)

{

XmlNode subElement1 = document. CreateElement (mk.subject.subjname);

subElement1.InnerText = mk.markvalue.ToString ();

element.AppendChild (subElement1);

}

}

document.Save (pathToXml);

}

private void button6_Click (object sender, EventArgs e)

{

var context = new dekanatEntities ();

string pathToXml = «D:\Student.xml» ;

XmlDocument xmlDoc = new XmlDocument ();

xmlDoc.Load (pathToXml);

XmlNodeList elementList = xmlDoc. GetElementsByTagName («Elements»).Item (0).ChildNodes;

foreach (XmlNode elem in elementList)

{

listBox1.Items.Add (elem.Attributes.Item (0).Value + «» + elem.Attributes.Item (1).Value + «» + elem.Attributes.Item (2).Value);

students stud = new students ();

stud.Imya = elem.Attributes.Item (1).Value;

stud.Familiya = elem.Attributes.Item (0).Value;

stud.Otchestvo = elem.Attributes.Item (2).Value;

stud.DataRozhdeniya = DateTime. Parse (elem.Attributes.Item (3).Value);

string strgr = elem.Attributes.Item (4).Value;

stud.NomerGruppi = context.gruppi.First (gr => gr. nazvanie == strgr).k_grup;

stud.NomerZachetki = int. Parse (elem.Attributes.Item (5).Value);

studentlist.Add (stud);

context.students.AddObject (stud);

context.SaveChanges ();

foreach (XmlNode node in elem. ChildNodes)

{

marks mthrfckr = new marks ();

mthrfckr.markvalue = int. Parse (node.InnerText);

mthrfckr.fk_student = stud. k_student;

string sname = node.Name;

mthrfckr.fk_subject=context.subject.First (s => s. subjname == sname).k_subject;

context.marks.AddObject (mthrfckr);

context.SaveChanges ();

}

}

}

private void button7_Click (object sender, EventArgs e)

{

Form5 form5 = new Form5();

form5.Show ();

}

}

}

Форма 2

public partial class Form2: Form

{

List gruplist;

public Form2()

{

InitializeComponent ();

gruplist = new List ();

}

private void listBox1_SelectedIndexChanged (object sender, EventArgs e)

{

if (listBox1.SelectedIndex > -1)

{

gruppi st1 = gruplist[listBox1.SelectedIndex];

textBox1.Text = st1. nazvanie;

}

}

private void button1_Click (object sender, EventArgs e)

{

gruppi gruppa = new gruppi ();

gruppa.nazvanie = textBox1. Text;

var context = new dekanatEntities ();

context.gruppi.AddObject (gruppa);

context.SaveChanges ();

listBox1.Items.Add (gruppa.nazvanie);

gruplist.Add (gruppa);

}

private void button2_Click (object sender, EventArgs e)

{

gruppi gr = gruplist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var gr1 = context.gruppi.First (gr2 => gr2. k_grup == gr. k_grup);

context.gruppi.DeleteObject (gr1);

context.SaveChanges ();

gruplist.RemoveAt (listBox1.SelectedIndex);

listBox1.Items.RemoveAt (listBox1.SelectedIndex);

}

private void Form2_Load (object sender, EventArgs e)

{

var context = new dekanatEntities ();

var gr1 = context. gruppi;

foreach (var gr in gr1)

{

listBox1.Items.Add (gr.nazvanie);

gruplist.Add (gr);

}

}

private void button3_Click (object sender, EventArgs e)

{

gruppi gr = gruplist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var gr1 = context.gruppi.First (gr2 => gr2. k_grup == gr. k_grup);

gr1.nazvanie = textBox1. Text;

context.SaveChanges ();

listBox1.Items.Clear ();

gruplist.Clear ();

foreach (var gr2 in context. gruppi)

{

listBox1.Items.Add (gr2.nazvanie);

gruplist.Add (gr2);

}

}

}

Форма 3

public partial class Form3: Form

{

int studid;

List mraklist;

public Form3(int stud)

{

InitializeComponent ();

mraklist = new List ();

studid = stud;

var context = new dekanatEntities ();

var std = context.students.First (st => st. k_student == stud);

foreach (var mark in std. marks)

{

listBox1.Items.Add (mark.subject.subjname + «» + mark. markvalue);

mraklist.Add (mark);

}

var predm = context. subject;

foreach (var s in predm)

{

comboBox1.Items.Add (s.subjname);

}

}

private void button1_Click (object sender, EventArgs e)

{

marks mark = new marks ();

var Context = new dekanatEntities ();

mark.fk_subject = Context.subject.First (sb => sb. subjname == comboBox1. Text).k_subject;

mark.fk_student = studid;

mark.markvalue = Convert. ToInt32(textBox2.Text);

Context.marks.AddObject (mark);

Context.SaveChanges ();

listBox1.Items.Add (comboBox1.Text + «» + mark. markvalue);

mraklist.Add (mark);

}

private void button2_Click (object sender, EventArgs e)

{

marks mr = mraklist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var mr1 = context.marks.First (mr2 => mr2. k_mark == mr. k_mark);

context.marks.DeleteObject (mr1);

context.SaveChanges ();

mraklist.RemoveAt (listBox1.SelectedIndex);

listBox1.Items.RemoveAt (listBox1.SelectedIndex);

}

private void button3_Click (object sender, EventArgs e)

{

marks gr = mraklist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var gr1 = context.marks.First (gr2 => gr2. k_mark == gr. k_mark);

gr1.markvalue = Convert. ToInt32(textBox2.Text);

gr1.fk_subject = context.subject.First (sb => sb. subjname == comboBox1. Text).k_subject;

context.SaveChanges ();

mraklist[listBox1.SelectedIndex] = gr1;

listBox1.Items[listBox1.SelectedIndex] = (comboBox1.Text + «» + gr1. markvalue);

}

private void button4_Click (object sender, EventArgs e)

{

Form4 form4 = new Form4();

form4.ShowDialog ();

var context = new dekanatEntities ();

comboBox1.Items.Clear ();

var mks = context. subject;

foreach (var gr in mks)

{

comboBox1.Items.Add (gr.subjname);

}

}

}

Форма 4

public partial class Form4: Form

{

List subjlist;

public Form4()

{

InitializeComponent ();

subjlist = new List ();

}

private void listBox1_SelectedIndexChanged (object sender, EventArgs e)

{

if (listBox1.SelectedIndex > -1)

{

subject st1 = subjlist[listBox1.SelectedIndex];

textBox1.Text = st1. subjname;

}

}

private void Form4_Load (object sender, EventArgs e)

{

var context = new dekanatEntities ();

var su1 = context. subject;

foreach (var subj in su1)

{

listBox1.Items.Add (subj.subjname);

subjlist.Add (subj);

}

}

private void button1_Click (object sender, EventArgs e)

{

subject predmet = new subject ();

predmet.subjname = textBox1. Text;

var context = new dekanatEntities ();

context.subject.AddObject (predmet);

context.SaveChanges ();

listBox1.Items.Add (predmet.subjname);

subjlist.Add (predmet);

}

private void button2_Click (object sender, EventArgs e)

{

subject udalpredm = subjlist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var up1 = context.subject.First (up2 => up2. k_subject == udalpredm. k_subject);

context.subject.DeleteObject (up1);

context.SaveChanges ();

subjlist.RemoveAt (listBox1.SelectedIndex);

listBox1.Items.RemoveAt (listBox1.SelectedIndex);

}

private void button3_Click (object sender, EventArgs e)

{

subject izmprd = subjlist[listBox1.SelectedIndex];

var context = new dekanatEntities ();

var up1 = context.subject.First (up2 => up2. k_subject == izmprd. k_subject);

up1.subjname = textBox1. Text;

context.SaveChanges ();

listBox1.Items.Clear ();

subjlist.Clear ();

foreach (var up2 in context. subject)

{

listBox1.Items.Add (up2.subjname);

subjlist.Add (up2);

}

}

}

Форма 5

public partial class Form5: Form

{

public Form5()

{

InitializeComponent ();

var context = new dekanatEntities ();

comboBox1.Items.Clear ();

var predmet = context. subject;

foreach (subject gr in predmet)

{

comboBox1.Items.Add (gr);

}

}

private void button2_Click (object sender, EventArgs e)

{

subject subj = comboBox1. SelectedItem as subject;

Dictionary values = new Dictionary ();

var context = new dekanatEntities ();

foreach (marks mk in context. marks)

{

if (mk.fk_subject == subj. k_subject)

if (values.ContainsKey (mk.markvalue.Value))

values[mk.markvalue.Value]++;

else

values.Add (mk.markvalue.Value, 1);

}

int nular = 360 / values.Values.Sum ();

int angle = 0;

Graphics gr = pictureBox1. CreateGraphics ();

gr.Clear (Color.White);

foreach (KeyValuePair kvp1 in values)

{

gr.FillPie (new SolidBrush (Color.FromArgb ((255 / kvp1. Key — 11) % 255, (255 / kvp1. Key + 20) % 255, (255 / kvp1. Key + 58) % 255)), new Rectangle (0, 0, pictureBox1. Width, pictureBox1. Height),

angle, nular * kvp1. Value);

angle += nular * kvp1. Value;

}

}

private void button1_Click (object sender, EventArgs e)

{

subject subj = comboBox1. SelectedItem as subject;

Dictionary values = new Dictionary ();

var context = new dekanatEntities ();

foreach (marks mk in context. marks)

{

if (mk.fk_subject == subj. k_subject)

if (values.ContainsKey (mk.markvalue.Value))

values[mk.markvalue.Value]++;

else

values.Add (mk.markvalue.Value, 1);

}

int shirina = pictureBox1. Width / values.Keys.Count;

int visota = pictureBox1. Height / values.Values.Max ();

int i = 0;

Random rnd = new Random ();

Graphics gr = pictureBox1. CreateGraphics ();

gr.Clear (Color.White);

foreach (KeyValuePair kvp in values)

{

Rectangle rekt = new Rectangle (i * shirina, pictureBox1. Height — kvp. Value * visota, shirina, (visota * kvp. Value));

System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush (rekt, Color. FromArgb (rnd.Next (255), rnd. Next (255), rnd. Next (255)), Color. Black, 180);

gr.FillRectangle (brush, rekt);

i++;

}

}

}

Показать весь текст
Заполнить форму текущей работой