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

 

Министерство образования и науки

Российской Федерации

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

Ижевский государственный технический университет

Имени М.Т. Калашникова

Воткинский филиал

Кафедра ОВПиСУ







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

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

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




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

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

Проверил Инженер - электроник

Береснев Н.В.






Воткинск 2014

Оглавление


Введение

Постановка задачи

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

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

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

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

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

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

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

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

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

.5 Просмотр диаграмм

Заключение

Список литературы

Приложение А


Введение


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

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

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

сбор данных;

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

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

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

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

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

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

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

Постановка задачи

база данные деканат студент

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

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


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


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


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


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


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

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

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

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

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


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

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


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


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


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


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

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

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


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

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


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


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


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


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


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


Рис.6. Окно 1


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

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

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

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

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

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


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


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


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


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


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

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

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


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


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


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


.5 Просмотр диаграмм


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

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


Заключение


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

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

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

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

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


Список использованной литературы


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;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Xml;WindowsFormsApplication6

{partial class Form1 : Form

{<students> studentlist;Form1()

{();= new List<students>();

}void Form1_Load(object sender, EventArgs e)

{context = new dekanatEntities();students = context.students;(var st in students)

{.Items.Add(st.Familiya + " " + st.Imya + " " + st.Otchestvo);.Add(st);

}gruppi = context.gruppi;(var gr in gruppi)

{.Items.Add(gr.nazvanie);

}

}void button1_Click(object sender, EventArgs e)

{student = new students();.Familiya = textBox1.Text;.Imya = textBox2.Text;.Otchestvo = textBox3.Text;.DataRozhdeniya = dateTimePicker1.Value;.NomerZachetki = int.Parse(textBox4.Text);context = new dekanatEntities();gr = context.gruppi.First(g => g.nazvanie == comboBox1.Text);.NomerGruppi = gr.k_grup;.students.AddObject(student);.SaveChanges();.Items.Add(student.Familiya + " " + student.Imya + " " + student.Otchestvo);.Add(student);

}void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

}void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{(listBox1.SelectedIndex > -1)

{st1 = studentlist[listBox1.SelectedIndex];.Text = st1.Familiya;.Text = st1.Imya;.Text = st1.Otchestvo;.Value = st1.DataRozhdeniya.Value;.Text = st1.NomerZachetki.ToString();.Text = st1.gruppi.nazvanie;

}

}void button2_Click(object sender, EventArgs e)

{(listBox1.SelectedIndex > -1)

{st1 = studentlist[listBox1.SelectedIndex];context = new dekanatEntities();st2 = context.students.First(st => st.k_student == st1.k_student);.students.DeleteObject(st2);.SaveChanges();.RemoveAt(listBox1.SelectedIndex);.Items.RemoveAt(listBox1.SelectedIndex);

}

}void button3_Click(object sender, EventArgs e)

{(listBox1.SelectedIndex > -1)

{st1 = studentlist[listBox1.SelectedIndex];context = new dekanatEntities();st2 = context.students.First(st => st.k_student == st1.k_student);.Familiya = textBox1.Text;.Imya = textBox2.Text;.Otchestvo = textBox3.Text;.DataRozhdeniya = dateTimePicker1.Value;.NomerZachetki = int.Parse(textBox4.Text);gr = context.gruppi.First(g => g.nazvanie == comboBox1.Text);.NomerGruppi = gr.k_grup;.SaveChanges();.Items.Clear();.Clear();(var st in context.students)

{.Items.Add(st.Familiya + " " + st.Imya + " " + st.Otchestvo);.Add(st);

}

}

}void button4_Click(object sender, EventArgs e)

{f2 = new Form2();.ShowDialog();context = new dekanatEntities();.Items.Clear();gruppi = context.gruppi;(var gr in gruppi)

{.Items.Add(gr.nazvanie);

}

}void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)

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

}void button5_Click(object sender, EventArgs e)

{pathToXml = "D:\\Student.xml";textWritter = new XmlTextWriter(pathToXml, Encoding.UTF8);.WriteStartDocument();.WriteStartElement("Elements");.WriteEndElement();.Close();document = new XmlDocument();.Load(pathToXml);(var studn in studentlist)

{element = document.CreateElement("element");.DocumentElement.AppendChild(element);attribute = document.CreateAttribute("фамилия");.Value = studn.Familiya;.Attributes.Append(attribute);= document.CreateAttribute("имя");.Value = studn.Imya;.Attributes.Append(attribute);= document.CreateAttribute("Отчество");.Value = studn.Otchestvo;.Attributes.Append(attribute);= document.CreateAttribute("дата");.Value = studn.DataRozhdeniya.ToString();.Attributes.Append(attribute);= document.CreateAttribute("группа");.Value = studn.gruppi.nazvanie;.Attributes.Append(attribute);= document.CreateAttribute("зачётка");.Value = studn.NomerZachetki.ToString();.Attributes.Append(attribute);context = new dekanatEntities();stud = context.students.First(st => st.k_student == studn.k_student);(var mk in stud.marks)

{subElement1 = document.CreateElement(mk.subject.subjname);.InnerText = mk.markvalue.ToString();.AppendChild(subElement1);

}

}.Save(pathToXml);

}void button6_Click(object sender, EventArgs e)

{context = new dekanatEntities();pathToXml = "D:\\Student.xml";xmlDoc = new XmlDocument();.Load(pathToXml);elementList = xmlDoc.GetElementsByTagName("Elements").Item(0).ChildNodes;(XmlNode elem in elementList)

{.Items.Add(elem.Attributes.Item(0).Value + " " + elem.Attributes.Item(1).Value + " " + elem.Attributes.Item(2).Value);stud = new students();.Imya = elem.Attributes.Item(1).Value;.Familiya = elem.Attributes.Item(0).Value;.Otchestvo = elem.Attributes.Item(2).Value;.DataRozhdeniya = DateTime.Parse(elem.Attributes.Item(3).Value);strgr = elem.Attributes.Item(4).Value;.NomerGruppi = context.gruppi.First(gr => gr.nazvanie == strgr).k_grup;.NomerZachetki = int.Parse(elem.Attributes.Item(5).Value);.Add(stud);.students.AddObject(stud);.SaveChanges();(XmlNode node in elem.ChildNodes)

{mthrfckr = new marks();.markvalue = int.Parse(node.InnerText);.fk_student = stud.k_student;sname = node.Name;.fk_subject=context.subject.First(s => s.subjname == sname).k_subject;.marks.AddObject(mthrfckr);.SaveChanges();

}

}

}void button7_Click(object sender, EventArgs e)

{form5 = new Form5();.Show();

}

}

}


Форма 2


public partial class Form2 : Form

{<gruppi> gruplist;Form2()

{();= new List<gruppi>();

}void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{(listBox1.SelectedIndex > -1)

{st1 = gruplist[listBox1.SelectedIndex];.Text = st1.nazvanie;

}

}void button1_Click(object sender, EventArgs e)

{gruppa = new gruppi();.nazvanie = textBox1.Text;context = new dekanatEntities();.gruppi.AddObject(gruppa);.SaveChanges();.Items.Add(gruppa.nazvanie);.Add(gruppa);

}void button2_Click(object sender, EventArgs e)

{gr = gruplist[listBox1.SelectedIndex];context = new dekanatEntities();gr1 = context.gruppi.First(gr2 => gr2.k_grup == gr.k_grup);.gruppi.DeleteObject(gr1);.SaveChanges();.RemoveAt(listBox1.SelectedIndex);.Items.RemoveAt(listBox1.SelectedIndex);

}void Form2_Load(object sender, EventArgs e)

{context = new dekanatEntities();gr1 = context.gruppi;(var gr in gr1)

{.Items.Add(gr.nazvanie);.Add(gr);

}

}void button3_Click(object sender, EventArgs e)

{gr = gruplist[listBox1.SelectedIndex];context = new dekanatEntities();gr1 = context.gruppi.First(gr2 => gr2.k_grup == gr.k_grup);.nazvanie = textBox1.Text;.SaveChanges();.Items.Clear();.Clear();(var gr2 in context.gruppi)

{.Items.Add(gr2.nazvanie);.Add(gr2);

}

}

}


Форма 3


public partial class Form3 : Form

{studid;<marks> mraklist;Form3(int stud)

{();= new List<marks>();= stud;context = new dekanatEntities();std = context.students.First(st => st.k_student == stud);(var mark in std.marks)

{.Items.Add(mark.subject.subjname + " " + mark.markvalue);.Add(mark);

}predm = context.subject;(var s in predm)

{.Items.Add(s.subjname);

}

}void button1_Click(object sender, EventArgs e)

{mark = new marks();Context = new dekanatEntities();.fk_subject = Context.subject.First(sb => sb.subjname == comboBox1.Text).k_subject;.fk_student = studid;.markvalue = Convert.ToInt32(textBox2.Text);.marks.AddObject(mark);.SaveChanges();.Items.Add(comboBox1.Text + " " + mark.markvalue);.Add(mark);

}void button2_Click(object sender, EventArgs e)

{mr = mraklist[listBox1.SelectedIndex];context = new dekanatEntities();mr1 = context.marks.First(mr2 => mr2.k_mark == mr.k_mark);.marks.DeleteObject(mr1);.SaveChanges();.RemoveAt(listBox1.SelectedIndex);.Items.RemoveAt(listBox1.SelectedIndex);

}void button3_Click(object sender, EventArgs e)

{gr = mraklist[listBox1.SelectedIndex];context = new dekanatEntities();gr1 = context.marks.First(gr2 => gr2.k_mark == gr.k_mark);.markvalue = Convert.ToInt32(textBox2.Text);.fk_subject = context.subject.First(sb => sb.subjname == comboBox1.Text).k_subject;.SaveChanges();[listBox1.SelectedIndex] = gr1;.Items[listBox1.SelectedIndex] = (comboBox1.Text + " " + gr1.markvalue);

}void button4_Click(object sender, EventArgs e)

{form4 = new Form4();.ShowDialog();context = new dekanatEntities();.Items.Clear();mks = context.subject;(var gr in mks)

{.Items.Add(gr.subjname);

}

}

}


Форма 4


public partial class Form4 : Form

{<subject> subjlist;Form4()

{();= new List<subject>();

}void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{(listBox1.SelectedIndex > -1)

{st1 = subjlist[listBox1.SelectedIndex];.Text = st1.subjname;

}

}void Form4_Load(object sender, EventArgs e)

{context = new dekanatEntities();su1 = context.subject;(var subj in su1)

{.Items.Add(subj.subjname);.Add(subj);

}

}void button1_Click(object sender, EventArgs e)

{predmet = new subject();.subjname = textBox1.Text;context = new dekanatEntities();.subject.AddObject(predmet);.SaveChanges();.Items.Add(predmet.subjname);.Add(predmet);

}void button2_Click(object sender, EventArgs e)

{udalpredm = subjlist[listBox1.SelectedIndex];context = new dekanatEntities();up1 = context.subject.First(up2 => up2.k_subject == udalpredm.k_subject);.subject.DeleteObject(up1);.SaveChanges();.RemoveAt(listBox1.SelectedIndex);.Items.RemoveAt(listBox1.SelectedIndex);

}void button3_Click(object sender, EventArgs e)

{izmprd = subjlist[listBox1.SelectedIndex];context = new dekanatEntities();up1 = context.subject.First(up2 => up2.k_subject == izmprd.k_subject);.subjname = textBox1.Text;.SaveChanges();.Items.Clear();.Clear();(var up2 in context.subject)

{.Items.Add(up2.subjname);.Add(up2);

}

}

}

Форма 5


public partial class Form5 : Form

{Form5()

{();context = new dekanatEntities();.Items.Clear();predmet = context.subject;(subject gr in predmet)

{.Items.Add(gr);

}

}void button2_Click(object sender, EventArgs e)

{subj = comboBox1.SelectedItem as subject;<int, int> values = new Dictionary<int, int>();context = new dekanatEntities();(marks mk in context.marks)

{(mk.fk_subject == subj.k_subject)(values.ContainsKey(mk.markvalue.Value))[mk.markvalue.Value]++;.Add(mk.markvalue.Value, 1);

}nular = 360 / values.Values.Sum();angle = 0;gr = pictureBox1.CreateGraphics();.Clear(Color.White);(KeyValuePair<int, int> kvp1 in values)

{.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),, nular * kvp1.Value);+= nular * kvp1.Value;

}

}void button1_Click(object sender, EventArgs e)

{subj = comboBox1.SelectedItem as subject;<int, int> values = new Dictionary<int, int>();context = new dekanatEntities();(marks mk in context.marks)

{(mk.fk_subject == subj.k_subject)(values.ContainsKey(mk.markvalue.Value))[mk.markvalue.Value]++;.Add(mk.markvalue.Value, 1);

}shirina = pictureBox1.Width / values.Keys.Count;visota = pictureBox1.Height / values.Values.Max();i = 0;rnd = new Random();gr = pictureBox1.CreateGraphics();.Clear(Color.White);(KeyValuePair<int, int> kvp in values)

{rekt = new Rectangle(i * shirina, pictureBox1.Height - kvp.Value * visota, shirina, (visota * kvp.Value));.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(rekt, Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), Color.Black, 180);.FillRectangle(brush, rekt);++;

}

}

}


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ