База данных электронной энциклопедии компьютерных игр

Автор работы: Пользователь скрыл имя, 28 Сентября 2013 в 14:36, курсовая работа

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

В курсовом проекте рассматривается построение базы данных для такой электронной энциклопедии, а так же программное обеспечение для ведения этой базы данных.
Проект должен быть разработан разработан в виде оконного приложения (Windows Forms) с элементами управления в среде MS Visual C#, использовать принципы объектно-ориентированного программирования к решению поставленных задач.
Результатами выполнения курсового проекта должен стать готовый программный продукт, удовлетворяющий всем требованиям технического задания.

Содержание

Введение 5
1. Постановка задачи И ОСНОВНЫЕ ТРЕБОВАНИЯ К СИСТЕМЕ 6
2. АНАЛИЗ РЕШАЕМОЙ ПРОБЛЕМЫ 7
3. ФУНКЦИОНАЛЬНОЕ МОДЕЛИРОВАНИЕ 8
4. ИНФОРМАЦИОННОЕ МОДЕЛИРОВАНИЕ 10
5. ПРОЕКТИРОВАНИЕ И ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙСОВ СИСТЕМЫ 12
6. ОПИСАНИЕ РуководствА пользователя 13
6.1 НАЗНАЧЕНИЕ ПРОГРАММЫ 13
6.2 УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ 14
6.3 ВЫПОЛНЕНИЕ ПРОГРАММЫ 14
6.3 СООБЩЕНИЯ ОПЕРАТОРУ 14
7. ТЕСТИРОВАНИЕ СИСТЕМЫ И ОПИСАНИЕ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ 15
7.1 ТЕСТИРОВАНИЕ СТАБИЛЬНОСТИ И НАДЕЖНОСТИ 16
Заключение 17
список литературных источников 18

Прикрепленные файлы: 1 файл

Пояснительная.doc

— 478.50 Кб (Скачать документ)

Проведём тестирование с аварийным изменением конфигураций сервера (рисунок 7.1):

Рисунок 7.1 – Аварийное  изменение конфигураций сервера

 

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

 

Тестирование  стабильности или надежности.

Задачей тестирования стабильности (надежности) является проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки. При этом на первое место выходит отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты, влияющие именно на стабильность работы.

Проведённое тестирование на стабильность и надёжность, показало, что в приложении отсутствует  утечка информации (выдаёт только ту информацию, которую необходимо увидеть), и вся информация корректно обрабатывается не зависимо от длительности тестирования.

Так же было проведено  тестирование на некорректные действия пользователя. Пользователь не сможет вызвать ошибок в программе и нарушить её работоспособность.

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

Рисунок 7.2 – Рабочее окно программы

Программа прошла тестирование и полностью работоспособна. Уязвимостей не обнаружено.

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

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

При выполнении курсового проекта  были пройдены все этапы разработки специализированного прикладного  программного обеспечения:

Разработанное приложение выполняет следующие операции:

  • вывод содержимого базы;
  • поиск записей в базе.
  • добавление записей в базу;
  • редактирование записей в базе;
  • удаление записей из базы;

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1. Разработка Windows-приложений на Microsoft Visual Basic .NET и Microsoft Visual C# -NET. Учебный курс MCAD MCSD / Официальное пособие Microsoft. – Москва: Русская редакция, 2003. – 478 с.

2. Павловская Т.А. C#. Программирование на языке высокого уровня. Учебник для вузов. – СПб.: Питер, 2007. – 432 с.

3. Шильд, Г. C# Учебный Курс. – Питер: Издательская группа BHV, 2003. – 512c.

4. Троелсен Э. - Язык программирования C# 2010 и платформа .NET 4.0, 5-е изд. : Пер. с англ. – М. : ООО «И.Д. Вильямс», 2011. – 1392 с. : ил. – Парал. тит. англ.

5. Майо Д. C#: Искусство программирования. Энциклопедия программиста. – СПб.: ООО «ДиаСофтЮП», 2002.– 656 с.

6. Разработка Windows-приложений на основе Visual C# / Intuit. – Москва: Electronic pub, 2005. – 424 с.

7.  Шилдт Г.Полный справочник по C#. – М.: Издательский дом «Вильямс», 2004. – 752 с.

8. Трэй Нэш. C# 2008: ускоренный курс для профессионалов. – М.: ООО

 «И.Д. Вильямс», 2008. – 576 с.

9. Агуров П.В. C#. Разработка компонентов в MSVisualStudio 2005/2008.

 – СПб.: БХВ-Петербург, 2008. – 480 с.

10. Прайс Д., Гандэрлой М. VisualC#.NET. Полное руководство.: – К.: ВЕК+

 

 

Приложение 1

Схема обобщённого алгоритма работы ПРОГРАММЫ

 

 

ПРИЛОЖЕНИЕ 2

Листинг программНОГО КОДА

 

Форма Авторизации

 

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.Data.Odbc;

 

namespace BD_EGame

{

    public partial class Form1 : Form

    {

        String user;

        DB_EGame_A db_egame_a;

        DB_EGame_U db_egame_u;

 

        public Form1()

        {

            InitializeComponent();

           

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            authUser();

            if (user == "1")

            {

                this.user = null;

                db_egame_a = new DB_EGame_A();

                this.Hide();

                db_egame_a.ShowDialog();

            }

            else if (user == "2"){

                this.user = null;

                db_egame_u = new DB_EGame_U();

                this.Hide();

                db_egame_u.ShowDialog();

            }

            else { MessageBox.Show("Неправильный логин или пароль."); this.user = null; }

 

        }

        public void authUser() {

            String login = textBox1.Text;

            String password = textBox2.Text;

 

            OdbcConnection myConnection1 = new OdbcConnection("DRIVER={MySql ODBC 5.1 Driver};" +

"SERVER=localhost;" +

"DATABASE=db_egame;" +

"UID=root;" +

"PASSWORD=12345;" +

"OPTION=3;");

            try

            {

                myConnection1.Open();

                OdbcDataReader myReader = null;

                OdbcParameter myParam1 = new OdbcParameter("@Param1", OdbcType.VarChar, 20);

                myParam1.Value = login;

                OdbcParameter myParam2 = new OdbcParameter("@Param2", OdbcType.VarChar, 20);

                myParam2.Value = password;

                OdbcCommand myCommand = new OdbcCommand("SELECT users.Level FROM users WHERE users.Login = ? and users.Password = ?", myConnection1);

                myCommand.Parameters.Add(myParam1);

                myCommand.Parameters.Add(myParam2);

                myReader = myCommand.ExecuteReader();

 

                while (myReader.Read())

                {

                    for (int i = 0; i < myReader.FieldCount; i++)

                    {

                        this.user = myReader.GetValue(i).ToString();

                    }

                }

                myConnection1.Close();

            }

            catch

            {

                MessageBox.Show("Не удалось подключиться к серверу!");

            }

        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)

        {

            if (e.KeyCode == Keys.Enter) {

                authUser();

                if (user == "1")

                {

                    this.user = null;

                    db_egame_a = new DB_EGame_A();

                    this.Hide();

                    db_egame_a.ShowDialog();

                }

                else if (user == "2")

                {

                    this.user = null;

                    db_egame_u = new DB_EGame_U();

                    this.Hide();

                    db_egame_u.ShowDialog();

                }

                else { MessageBox.Show("Неправильный логин или пароль."); this.user = null; }

            }

        }

    }

}

 

Форма Администрации

 

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.Data.Odbc;

 

namespace BD_EGame

{

    public partial class DB_EGame_A : Form

    {

   

        public DB_EGame_A()

        {

            InitializeComponent();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            addCreater();

        }

 

        public void addCreater() {

            String creater = textBox3.Text;

            String phone = textBox5.Text;

            String address = textBox4.Text;

            OdbcConnection myConnection4 = new OdbcConnection("DRIVER={MySql ODBC 5.1 Driver};" +

              "SERVER=localhost;" +

      "DATABASE=db_egame;" +

      "UID=root;" +

      "PASSWORD=12345;" +

      "OPTION=3;");

            try

            {

                myConnection4.Open();

 

                OdbcParameter myParam2 = new OdbcParameter("@Param2", OdbcType.VarChar, 20);

                myParam2.Value = creater;

 

                OdbcParameter myParam3 = new OdbcParameter("@Param3", OdbcType.VarChar, 20);

                myParam3.Value = phone;

 

                OdbcParameter myParam4 = new OdbcParameter("@Param4", OdbcType.VarChar, 20);

                myParam4.Value = address;

 

                OdbcCommand myCommand3 = new OdbcCommand("Insert into creater (`creater`,`phone`,`address`) values (?,?,?);", myConnection4);

 

                myCommand3.Parameters.Add(myParam2);

                myCommand3.Parameters.Add(myParam3);

                myCommand3.Parameters.Add(myParam4);

                myCommand3.ExecuteNonQuery();

                myConnection4.Close();

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

               

            }

            catch

            {

                MessageBox.Show("Не удалось подключиться к серверу!");

 

            }

 

        }

        public void showCreater() {

 

            OdbcConnection myConnection2 = new OdbcConnection("DRIVER={MySql ODBC 5.1 Driver};" +

"SERVER=localhost;" +

"DATABASE=db_egame;" +

"UID=root;" +

"PASSWORD=12345;" +

"OPTION=3;");

            try

            {

                myConnection2.Open();

                OdbcDataReader myReader = null;

                OdbcCommand myCommand = new OdbcCommand("SELECT DISTINCT * FROM creater", myConnection2);

                myReader = myCommand.ExecuteReader();

                string st;

                int itemIndex = 0;

                listView2.Items.Clear();

                while (myReader.Read())

                {

                    for (int i = 0; i < myReader.FieldCount; i++)

                    {

                        st = myReader.GetValue(i).ToString();

                        switch (i)

                        {

                            case 0:

                                listView2.Items.Add(st);

                                break;

                            case 1:

                                listView2.Items[itemIndex].SubItems.Add(st);

                                break;

                            case 2:

                                listView2.Items[itemIndex].SubItems.Add(st);

                                break;

                        }

                    }

                    itemIndex++;

                }

                myConnection2.Close();

 

            }

            catch

            {

                MessageBox.Show("Не удалось подключиться к серверу!");

 

            }

 

       

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            showCreater();

        }

 

 

        public void addMaker() {

 

            String maker = textBox8.Text;

            String phone = textBox6.Text;

            String address = textBox7.Text;

            OdbcConnection myConnection4 = new OdbcConnection("DRIVER={MySql ODBC 5.1 Driver};" +

              "SERVER=localhost;" +

      "DATABASE=db_egame;" +

      "UID=root;" +

      "PASSWORD=12345;" +

      "OPTION=3;");

            try

            {

                myConnection4.Open();

 

                OdbcParameter myParam2 = new OdbcParameter("@Param2", OdbcType.VarChar, 20);

                myParam2.Value = maker;

 

                OdbcParameter myParam3 = new OdbcParameter("@Param3", OdbcType.VarChar, 20);

                myParam3.Value = phone;

 

                OdbcParameter myParam4 = new OdbcParameter("@Param4", OdbcType.VarChar, 20);

                myParam4.Value = address;

 

                OdbcCommand myCommand3 = new OdbcCommand("Insert into maker (`maker`,`phone`,`address`) values (?,?,?);", myConnection4);

 

                myCommand3.Parameters.Add(myParam2);

                myCommand3.Parameters.Add(myParam3);

                myCommand3.Parameters.Add(myParam4);

                myCommand3.ExecuteNonQuery();

                myConnection4.Close();

                MessageBox.Show("Издатель добавлен.");

 

            }

            catch

            {

                MessageBox.Show("Не удалось подключиться к серверу!");

 

            }

 

        }

        public void showMaker() {

 

            OdbcConnection myConnection2 = new OdbcConnection("DRIVER={MySql ODBC 5.1 Driver};" +

"SERVER=localhost;" +

"DATABASE=db_egame;" +

"UID=root;" +

"PASSWORD=12345;" +

"OPTION=3;");

            try

            {

                myConnection2.Open();

                OdbcDataReader myReader = null;

                OdbcCommand myCommand = new OdbcCommand("SELECT DISTINCT * FROM maker", myConnection2);

                myReader = myCommand.ExecuteReader();

                string st;

                int itemIndex = 0;

                listView3.Items.Clear();

                while (myReader.Read())

                {

                    for (int i = 0; i < myReader.FieldCount; i++)

                    {

                        st = myReader.GetValue(i).ToString();

                        switch (i)

                        {

                            case 0:

                                listView3.Items.Add(st);

                                break;

                            case 1:

                                listView3.Items[itemIndex].SubItems.Add(st);

                                break;

                            case 2:

                                listView3.Items[itemIndex].SubItems.Add(st);

                                break;

                        }

                    }

Информация о работе База данных электронной энциклопедии компьютерных игр