Автор: Пользователь скрыл имя, 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
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
9. Крёнке Д. Теория и практика построения баз данных, 8-е издание. – СПб.: Питер, 2003. – 800 с.: ил. – (Серия «Классика computer science»)
10. Методичні
вказівки до самостійного
11. Методичні
вказівки до самостійного
12. Олафсен Ю., Скрайбнер К., Уайт К. MFC и Visual C++ 6. Энциклопедия программиста – СПб.: ООО "ДиаСофтЮП", 2003. – 992 с.
13.Райордан Р.
Основы реляционных баз данных/
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("
keeper.autoinfo = listDB;
this.BackgroundImage = Bitmap.FromFile("..\\..\\
ReadFromSourceFile();
}
public void ReadFromSourceFile()
{
listTXT.Clear();//
listBox1.Items.Clear();
try
{
using (StreamReader streamReader = new StreamReader("source.txt", Encoding.GetEncoding(1251)))
{
int i = 0;
string str = "";
while (!streamReader.EndOfStream)//П
{
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][
}
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>().
pictureBox1.Image = null;
label7.Visible = false;// Информация о автомобиле
}
private void listBox1_SelectedIndexChanged(
{
try
{
if (listBox1.SelectedIndex != -1) // SelectedIndex == -1 после удаления записи, и попадает сюда
{
AllClean();
textBox1.Text = listTXT[listBox1.
textBox2.Text = listTXT[listBox1.
textBox3.Text = listTXT[listBox1.
List<string> selectedListById = DB.SelectByID(int.Parse(
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(
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.
{
string[] readText = System.IO.File.ReadAllLines("
using (System.IO.StreamWriter file = new System.IO.StreamWriter("
{
for (int i = 0; i < readText.Length; i++)
{
if (i != listBox1.SelectedIndex) file.WriteLine(readText[i]);
}
}
listBox1.Items.RemoveAt(listBo
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("..\\..\\
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(
}
private void listBox1_SelectedIndexChanged(
{
listBox2.Items.Clear();
List<List<string>> returnedSQL = new List<List<string>>();
string SQL="";
SQL = "SELECT * FROM autoinfo WHERE brand='" + listBox1.Text+"'";
returnedSQL=DB.SelectBySQL(
for(int i=0; i<returnedSQL[0].Count; i++) listBox2.Items.Add(
}
private void listBox2_SelectedIndexChanged(
{
string SQL = "";
SQL = "SELECT * FROM autoinfo WHERE model='" + listBox2.Text + "'";
returnedIdSQL = DB.SelectBySQL(SQL);
pictureBox1.Image = Image.FromFile(returnedIdSQL[
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.
success = true;
}
catch (System.
{
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(
}
//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("Ошибка
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+"\"");
Информация о работе Автоматизація надання послуг автосалоном