Проектирование информационной системы "Деканат"
Министерство образования и науки
Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Ижевский государственный технический университет
Имени М.Т. Калашникова
Воткинский филиал
Кафедра ОВПиСУ
Курсовой проект
на тему: Проектирование информационной системы Деканат
по курсу предмета Проектирование АСОИУ
Выполнил студент группы 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 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ