Автоматизація надання послуг автосалоном

Автор: Пользователь скрыл имя, 17 Июня 2013 в 21:37, курсовая работа

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

Мета курсової роботи - створення програмного забезпечення для автоматизації надання послуг автосалоном. Основними завданнями даної роботи є реєстрація замовлень у автосалоні. Об'єктом дослідження виступає автосалон.
Предметом дослідження даної роботи є інформаційна підтримка процесу роботи автосалону.
Практична цінність програмної системи, що розроблятиметься, визначається її універсальністю і можливістю побудови, на її основі, реального програмного забезпечення для автоматизації надання послуг в цілому.

Оглавление

ВСТУП
5
РОЗДІЛ І. ПОСТАНОВКА ЗАДАЧІ
7
1.1 Характеристика задачі
7
1.1.1 Характеристика задачі на C#
8
1.1.2 Характеристика задачі на С++
8
1.2 Вхідна інформація
9
1.2.1 Вхідна інформація (С#)
9
1.2.2 Вихідна інформація (С++)
10
1.3 Вихідна інформація
12
1.3.1 Вихідна інформація (С#)
12
1.3.2 Вихідна інформація (С++)
13
РОЗДІЛ ІІ. РОЗРОБКА АЛГОРИТМУ РОЗВ’ЯЗАННЯ ЗАДАЧІ
19
2.1. Розробка алгоритму вирішення задачі автоматизації надання послуг автосалоном (С#)
15
2.2 Розробка алгоритму вирішення задачі автоматизації надання послуг автосалоном (С++)
16
РОЗДІЛ III. Організація інформаційного забеЗпечення.
18
3.1 Структура інформаційних масивів задачі з автоматизації надання послуг автосалоном (С#).
18
3.2 Структура інформаційних масивів задачі з автоматизації надання послуг автосалоном (C++).
20
РОЗДІЛ IV. РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ЗАДАЧІ
24
4.1 Опис програми для автоматизації надання послуг автосалоном (С#).
24
4.2 Опис програми для автоматизації надання послуг автосалоном (C++).
27
ВИСНОВКИ
29
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

Файлы: 1 файл

курсовая.doc

— 491.00 Кб (Скачать)

9. Крёнке Д.  Теория и практика построения  баз данных, 8-е издание. – СПб.: Питер, 2003. – 800 с.: ил. – (Серия «Классика computer science»)

10. Методичні  вказівки до самостійного вивчення  системи управління базами даних  Access. Частина 1. 11.Уведення до Access. – Кривий Ріг: КЕІ ДВНЗ «КНЕУ  ім. В.Гетьмана», 2008.

11. Методичні  вказівки до самостійного вивчення  системи управління базами даних  Access. Частина 2. Команди модифікації  та доступу до даних мови  СУБД Access. – Кривий Ріг: КЕІ  ДВНЗ «КНЕУ ім. В.Гетьмана», 2008.

12. Олафсен Ю., Скрайбнер К., Уайт К. MFC и Visual C++ 6. Энциклопедия программиста – СПб.: ООО "ДиаСофтЮП", 2003. – 992 с.

13.Райордан Р.  Основы реляционных баз данных/Пер.  с англ.– М.: Издательско-торговый дом «Русская Редакция», 2001. – 384 с.

14. Секунов Н.Ю.  Самоучитель Visual C++ 6. – СПб.: БХВ – Санкт-Петербург, 1999. – 960 с.

15. Холзнер С. Visual C++ 6: учебный курс – СПб:  ЗАО  "Издательство «Питер»", 1999. – 576 с.

 

ДОДАТКИ

C#

Form1.cs

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

//Add MySql Librarye

using MySql.Data.MySqlClient;

 

 

namespace autostore

{

    public partial class Form1 : Form

    {

        List<List<string>> listTXT = new List<List<string>>();

        List<List<string>> listDB = new List<List<string>>();

        Encoding enc = Encoding.GetEncoding(1251);

        DBConnect DB = new DBConnect();

        LoginForm login = new LoginForm();

 

        public Form1()

        {

            InitializeComponent();

            //if(keeper.login == "") login.ShowDialog();// Отображаем форму авторизации

            listDB = DB.SelectAllFromTable("autoinfo");

            keeper.autoinfo = listDB;

            this.BackgroundImage = Bitmap.FromFile("..\\..\\images\\background.bmp");

            ReadFromSourceFile();

        }

 

        public void ReadFromSourceFile()

        {

            listTXT.Clear();//ReadFromSourceFile вызывается после добавления, чтобы обновить list1, очищаем список перед записью заново

            listBox1.Items.Clear();

            try

            {

                using (StreamReader streamReader = new StreamReader("source.txt", Encoding.GetEncoding(1251)))

                {

                    int i = 0;

                    string str = "";

                    while (!streamReader.EndOfStream)//Пока не конец streamReader

                    {

                        listTXT.Add(new List<string>()); //Добавляем новый list как строку

                        str = "";

                        str = streamReader.ReadLine();

                        string[] split = str.Split(';');

                        for (int c = 0; c < split.Count(); c++) listTXT[i].Add(split[c]);

                        i++;

                    }

 

                    if (str == "")//Проверка, пустой ли файл с настройками

                    {

                        MessageBox.Show("Источник пустой");

                        return;

                    }

 

                    for (i = 0; i < listTXT.Count; i++)//Добавляем заказы в listbox

                    {

                        listBox1.Items.Add(listTXT[i][0].ToString());

                    }

 

                    keeper.listTXT = listTXT;

                }

                AllClean();

            }

            catch (FileNotFoundException e)

            {

                MessageBox.Show("Источник данных отсутствует");

                Environment.Exit(0);

 

            }

            catch (Exception e)

            {

                MessageBox.Show("Ошибка:" + e.GetType().ToString());

            }

        }

 

        private void AllClean()

        {

            foreach (TextBox textBox in Controls.OfType<TextBox>().ToArray<Control>()) textBox.Text = "";

            pictureBox1.Image = null;

            label7.Visible = false;// Информация о автомобиле

       }

 

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

        {

            try

            {

                if (listBox1.SelectedIndex != -1) // SelectedIndex == -1 после удаления записи, и попадает сюда

                {

                    AllClean();

 

                    textBox1.Text = listTXT[listBox1.SelectedIndex][1].ToString();//Продавец

                    textBox2.Text = listTXT[listBox1.SelectedIndex][2].ToString();//Покупатель

                    textBox3.Text = listTXT[listBox1.SelectedIndex][4].ToString();//Дата

 

                    List<string> selectedListById = DB.SelectByID(int.Parse(listTXT[listBox1.SelectedIndex][3]));//Выбираем запись из БД MySQL по id

                    textBox4.Text = selectedListById[1];//Марка

                    textBox5.Text = selectedListById[2];//Модель

                    textBox6.Text = selectedListById[3];//Кол. дверей

                    textBox7.Text = selectedListById[4];//Объем двигателя

                    textBox8.Text = selectedListById[5] + " куб.см";

                    textBox9.Text = selectedListById[6] + " об мин";

                    textBox10.Text = selectedListById[7] + " км/ч";

                    textBox11.Text = selectedListById[8];

                    textBox12.Text = selectedListById[9];

                    textBox13.Text = selectedListById[10] + "$";

                    pictureBox1.Image = Image.FromFile(selectedListById[11]);

 

                    label7.Visible = true;// Информация о автомобиле

 

                }

                else{ AllClean();}

            }

            catch (Exception ex)

            {

                MessageBox.Show("Ошибка:\r\n" + ex.Message.ToString() + "\r\nПриложение будет закрыто");

                Environment.Exit(0);

            }

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            Form2 form = new Form2();

            form.ShowDialog();

            this.ReadFromSourceFile();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("Вы действительно хотите удалить документ " + listBox1.Items[listBox1.SelectedIndex].ToString() + "?", "Предупреждение", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop) == DialogResult.OK)

            {

                string[] readText = System.IO.File.ReadAllLines("source.txt", Encoding.GetEncoding(1251));

                using (System.IO.StreamWriter file = new System.IO.StreamWriter("source.txt", false, Encoding.GetEncoding(1251)))

                {

                    for (int i = 0; i < readText.Length; i++)

                    {

                        if (i != listBox1.SelectedIndex) file.WriteLine(readText[i]);

                    }

                }

 

                listBox1.Items.RemoveAt(listBox1.SelectedIndex);//удаляем запись из листбокса

                MessageBox.Show("Запись успешно удалена!");

                AllClean();

            }

            else { return; }

        }

    }

}

 

 

Form2.cs

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

 

namespace autostore

{

    public partial class Form2 : Form

    {

        List<List<string>> returnedIdSQL = new List<List<string>>();

        DBConnect DB = new DBConnect();

        List<List<string>> listDB = new List<List<string>>();

 

        public Form2()

        {

            InitializeComponent();

            this.BackgroundImage = Bitmap.FromFile("..\\..\\images\\background.bmp");

            loadData();

        }

 

        public void loadData()

        {

            textBox1.Text = keeper.name;

 

            List<List<string>> returnedSQL = new List<List<string>>();

            string SQL = "";

            SQL = "SELECT brand FROM autoinfo GROUP BY brand";

            returnedSQL = DB.SelectBySQL(SQL);

 

            for (int i = 0; i < returnedSQL[0].Count; i++) listBox1.Items.Add(returnedSQL[0][i].ToString());

        }

 

 

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

        {

            listBox2.Items.Clear();

            List<List<string>> returnedSQL = new List<List<string>>();

            string SQL="";

            SQL = "SELECT * FROM autoinfo WHERE brand='" + listBox1.Text+"'";

            returnedSQL=DB.SelectBySQL(SQL);

            for(int i=0; i<returnedSQL[0].Count; i++) listBox2.Items.Add(returnedSQL[2][i].ToString());

        }

 

        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)

        {

            string SQL = "";

            SQL = "SELECT * FROM autoinfo WHERE model='" + listBox2.Text + "'";

            returnedIdSQL = DB.SelectBySQL(SQL);

 

            pictureBox1.Image = Image.FromFile(returnedIdSQL[11][0]);

           

            textBox6.Text = returnedIdSQL[4][0];

            textBox7.Text = returnedIdSQL[3][0];

            textBox8.Text = returnedIdSQL[5][0] + " куб.см" ;

            textBox9.Text = returnedIdSQL[6][0] + " об мин" ;

            textBox10.Text = returnedIdSQL[7][0] + " км/ч";

            textBox11.Text = returnedIdSQL[8][0];

            textBox12.Text = returnedIdSQL[9][0];

            textBox3.Text = returnedIdSQL[10][0] + "$";

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            bool success = false;

 

            try

            {

                int max = 0;

                string[] s = new string[10];

                string addString = "";

 

                //Высчитываем максимальный номер заказа

               for (int i = 0; i < keeper.listTXT.Count; i++)

                {

                    s = keeper.listTXT[i][0].Split(new char[] { '№' });

                    if (int.Parse(s[1]) > max) max = int.Parse(s[1]);

                }

 

                max++;//Номер следующего заказа

                addString += "Заказ №" + max + ";"; //Добавление номера заказа

                addString += keeper.name + ";"; //Добавление  ФИО продавца

                addString += textBox2.Text + ";"; //Добавление  ФИО покупателя

                addString += returnedIdSQL[0][0].ToString() + ";"; //Добавление id автомобиля

                addString += DateTime.Now + ";"; //Добавление даты

 

                //Запись в файл

                string appendText = addString + Environment.NewLine;

                File.AppendAllText("source.txt", appendText, Encoding.GetEncoding(1251));

                success = true;

 

            }

            catch (System.ArgumentOutOfRangeException ex)

            {

                MessageBox.Show("Вы не выбрали модель автомобиля");

            }

            catch (Exception ex)

            {

                MessageBox.Show("Ошибка: " + ex.GetType() + Environment.NewLine + "Запись не добавлена!");

            }

            finally

            {

                if (success)

                {

                    MessageBox.Show("Запись успешно добавлена");

                    this.Close();

                }

            }

        }

    }

}

 

 

Helper.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

//Add MySql Librarye

using MySql.Data.MySqlClient;

 

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Windows.Forms;

 

namespace autostore

{

 

    class DBConnect

    {

    private MySqlConnection connection;

    private string server;

    private string database;

    private string uid;

    private string password;

 

    //Constructor

    public DBConnect()

    {

        Initialize();

    }

 

    //Initialize values

    private void Initialize()

    {

        server = "localhost";

        database = "autostore";

        uid = "root";

        password = "";

        string connectionString;

        connectionString = "SERVER=" + server + ";" + "DATABASE=" +

        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

 

        connection = new MySqlConnection(connectionString);

    }

 

    //open connection to database

    private bool OpenConnection()

    {

        try

        {

            connection.Open();

            return true;

        }

        catch (MySqlException ex)

        {

            //When handling errors, you can your application's response based

            //on the error number.

            //The two most common error numbers when connecting are as follows:

            //0: Cannot connect to server.

            //1045: Invalid user name and/or password.

            switch (ex.Number)

            {

                case 0:

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

                    break;

 

                case 1045:

                    MessageBox.Show("Неверное имя пользователя/пароль");

                    break;

 

                default:

                    MessageBox.Show("Ошибка подключения  к MySQL. Возможно MySQL не запущен");

                    Environment.Exit(0);

                    break;

            }

            return false;

        }

    }

 

    //Close connection

    private bool CloseConnection()

    {

        try

        {

            connection.Close();

            return true;

        }

        catch (MySqlException ex)

        {

            MessageBox.Show(ex.Message);

            return false;

        }

    }

 

    public List<List<string>> SelectAllFromTable(string tablename)

    {

        string query = "SELECT * FROM "+tablename;

 

        //Create a list to store the result

        List<List<string>> list = new List<List<string>>();

 

        //Open connection

        try

        {

            if (this.OpenConnection() == true)

            {

                //Create Command

                MySqlCommand cmd = new MySqlCommand(query, connection);

                //Create a data reader and Execute the command

                MySqlDataReader dataReader = cmd.ExecuteReader();

 

                for (int i = 0; i < dataReader.FieldCount; i++) list.Add(new List<string>());

 

                //Read the data and store them in the list

                while (dataReader.Read())

                {

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

                    {

                        list[i].Add(dataReader[i] + "");

                    }

                }

 

                //close Data Reader

                dataReader.Close();

 

                //close Connection

                this.CloseConnection();

 

                //return list to be displayed

                return list;

            }

        }

            catch (MySqlException e)

            {

                switch (e.Number)

                {

 

                    case 1146:

                        MessageBox.Show("Не существует таблицы \"" + tablename+"\"");

Информация о работе Автоматизація надання послуг автосалоном