Информационная система библиотеки

Автор работы: Пользователь скрыл имя, 25 Января 2014 в 13:25, курсовая работа

Краткое описание

Целью данной работы является разработка системы, автоматизирующей ведение базы данных библиотеки. Данная система упрощает процесс учета книг, связанный с обработкой больших объемов информации, а также позволяет читателям осуществлять в интерактивном режиме поиск и выбор интересующих книг.
Для достижения поставленной цели предполагается составление технического задания в соответствии с требованиями предметной области, разработка инфологической и физической модели базы данных на платформе Oracle, написание информационной системы на язык программирования C#.

Содержание

Введение 5
1 Техническое задание 6
1.1 Описание предметной области 6
1.2 Модели вариантов использования 6
1.3 Требования к информационному и программному обеспечению 7
2 Технический проект 8
2.1 Модели локальных представлений 8
2.2 Инфологическая модель предметной области 11
2.3 Физическая модель базы данных 14
2.4 Основные запросы к базе данных 17
2.5 Хранимые процедуры 21
2.6 Архитектура информационной системы 24
3 Рабочий проект 25
3.1 SQL-скрипт создания базы данных 25
3.2 SQL-скрипт хранимых процедур 25
3.3 Текст программы 25
3.4 Руководство пользователя 25
Заключение 32
Список источников 32

Вложенные файлы: 1 файл

Курсовая работа.docx

— 1.11 Мб (Скачать файл)

 

        public AddBook(OracleConnection oc, string i)

        {

            InitializeComponent();

            OC = oc;

            flag = false;

            if (i != null)

            {

                flag = true;

                isbn = i;

                this.Text = "Редактирование";

            }

        }

 

        private void AddBook_Load(object sender, EventArgs e)

        {

            if (!flag)

            {

                button1.Enabled = false;

                button2.Enabled = false;

                OracleCommand Comand = OC.CreateCommand();

                DataTable tab = new DataTable();

                Comand.CommandText = "SELECT \"sCode\", \"sName\" FROM \"Section\"";

                tab = new DataTable();

                tab.Load(Comand.ExecuteReader());

                comboBox2.DataSource = tab;

                comboBox2.ValueMember = "sCode";

                comboBox2.DisplayMember = "sName";

            }

            else

            {

                label10.Visible = false;

                comboBox2.Visible = false;

                textBox1.ReadOnly = true;

                button1.Visible = false;

                button3.Text = "Отмена";

                button2.Text = "Подтвердить";

                button3.Location = new Point(213, 235);

                button3.Size = new System.Drawing.Size(102, 32);

                OracleCommand Comand = OC.CreateCommand();

                DataTable tab = new DataTable();

                Comand.CommandText = "select * from \"Book\" where ISBN = '"+isbn+"'";

                tab.Load(Comand.ExecuteReader());

                textBox1.Text = tab.Rows[0][0].ToString();

                textBox2.Text = tab.Rows[0][1].ToString();

                textBox3.Text = tab.Rows[0][2].ToString();

                textBox4.Text = tab.Rows[0][3].ToString();

                textBox5.Text = tab.Rows[0][4].ToString();

                numericUpDown2.Value = Convert.ToDecimal(tab.Rows[0][5].ToString());

                numericUpDown1.Value = Convert.ToDecimal(tab.Rows[0][6].ToString());

            }

        }

 

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

        { }

 

        private void button1_Click(object sender, EventArgs e)

        {

            textBox1.ReadOnly = true;

            textBox2.ReadOnly = true;

            textBox3.ReadOnly = true;

            textBox4.ReadOnly = true;

            textBox5.ReadOnly = true;

            OracleCommand Comand = OC.CreateCommand();

            DataTable tab = new DataTable();

            Comand.CommandText = "select \"sCode\" from \"saved\" where ISBN = (select to_char('" + textBox1.Text + "') from dual)";

            tab.Load(Comand.ExecuteReader());

            for (int i = 0; i < tab.Rows.Count; ++i)

            {

                if (Convert.ToInt32(tab.Rows[i][0]) == Convert.ToInt32(comboBox2.SelectedValue))

                {

                    MessageBox.Show("Книга уже добавлена  в этот раздел");

                    return;

                }

            }

            tab = new DataTable();

            Comand.CommandText = "begin PROCEDURE_ADD_SECTION('" + isbn + "', '" + comboBox2.SelectedValue.ToString() + "'); end;";

            Comand.ExecuteNonQuery();

            MessageBox.Show("Книга добавлена в раздел каталога");

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            if (!flag)

            {

                OracleCommand Comand = OC.CreateCommand();

                DataTable tab = new DataTable();

                Comand.CommandText = "select count(*) from \"Book\" where ISBN = (select to_char('" + textBox1.Text + "') from dual)";

                tab.Load(Comand.ExecuteReader());

                if (Convert.ToInt32(tab.Rows[0][0]) > 0)

                {

                    isbn = textBox1.Text;

                    MessageBox.Show("Книга с таким кодом уже есть в библиотеке. Добавьте экземпляр");

                    AddCopy AC = new AddCopy(OC, isbn, 0);

                    AC.Show();

                    this.Close();

                }

                Comand.CommandText = "begin PROCEDURE_INS_BOOK('" + textBox1.Text + "', " +

                    "'" + textBox2.Text + "', '" + textBox3.Text + "', '" + textBox4.Text + "', '" + textBox5.Text +

                    "', '" + numericUpDown2.Value + "', '" + numericUpDown1.Value + "', '" + comboBox2.SelectedValue + "'); end;";

                Comand.ExecuteNonQuery();

                MessageBox.Show("Книга зарегистрирована");

                button1.Enabled = true;

                isbn = textBox1.Text;

            }

            else

            {

                OracleCommand Comand = OC.CreateCommand();

                DataTable tab = new DataTable();

                Comand.CommandText = "begin PROCEDURE_EDIT_BOOK('" + textBox1.Text + "', '" + textBox2.Text + "', '" + textBox3.Text + "', '" + textBox4.Text + "', '" +

                    textBox5.Text + "', '" + numericUpDown2.Value + "', '" + numericUpDown1.Value + "'); end;";

                Comand.ExecuteNonQuery();

                MessageBox.Show("Изменения сохранены");

                this.Close();

            }

        }

 

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if(textBox1.Text == null || textBox1.Text == "" ||

                textBox2.Text == null || textBox2.Text == "" ||

                textBox3.Text == null || textBox3.Text == "" ||

                textBox4.Text == null || textBox4.Text == "" ||

                textBox5.Text == null || textBox5.Text == "")

            {}

            else

                button2.Enabled = true;

               

 

        }

        private void button3_Click(object sender, EventArgs e)

        {

            if (!flag)

            {

                AddCopy AC = new AddCopy(OC, isbn,0);

                AC.Show();

                this.Close();

            }

            else

            {

                this.Close();

            }

        }

    }

}

 

Приложение 4

Графическая часть

Рисунок 19. Диаграмма вариантов использования

 

Рисунок 20. ER-диаграмма инфологической модели предметной области

 

Рисунок 21. Диаграмма физической модели предметной области

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Хранимые  процедуры

Рисунок 22. Алгоритм регистрации нового читателя

Рисунок 23. Алгоритм регистрации книги

Рисунок 24. Алгоритм добавления экземпляра книги

Рисунок 25. Алгоритм добавления книги в раздел каталога

Рисунок 26. Алгоритм редактирования экземпляра книги и изменения его места расположения

 

Рисунок 27. Алгоритм редактирования данных книги

Рисунок 27. Алгоритм редактирования данных читателя

1 Диаграммы вариантов использования (use-case) представлены в приложении 4

 


Информация о работе Информационная система библиотеки