Создание программного модуля на тему: "Организация работы автосервиса"

 

Содержание


Задание

. Описание разрабатываемой программы с точки зрения пользователя

. Описание разрабатываемой программы с точки зрения программиста

. Поэтапная разработка программной системы

.1 Создание базы данных в Access

.2 Разработка структуры классов

.3 Создание структуры для хранения данных из таблиц в приложении

.4 Проектирование интерфейса пользователя

Список используемой литературы

Приложения


Задание


Разработать программный модуль «Организация работы автосервиса».

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

Автоматизированное хранение и обработка информации также позволит эффективно осуществлять качественное выполнение заказа.

Таким образом, основной задачей при выполнении данного задания является оформление заявок в автосервисе.

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

Программу реализовать в среде Visual Studio .NET на языке C#.


1. Описание разрабатываемой программы с точки зрения пользователя


Программа представлена прикладными и диалоговыми окнами. В главном окне слева отображен список клиентов из базы данных. Правее располагается информация о марке автомобиля выбранного клиента. И с правого края располагаются кнопки: Информация о клиенте; Добавить клиента; Удалить клиента; Обновить информацию. С точки зрения пользователя программа предполагает следующие возможные способы использования:

Просмотр сведений о клиенте и его заказе.

Добавление нового клиента и его заказа в базу данных.

Удаление клиента и его заказа из базы данных.

Обновление списка клиентов и его данных.

Прекращение выполнения программы происходит при закрытии главного окна.


2. Описание разрабатываемой программы с точки зрения программиста


Объектное представление программы

Программа включает объекты разных типов. Главными объектами программы является объект главного окна класса Form1.cs. При создании объекта главного окна создаётся коллекция объектов клиентов. Объект OleDbConnection класса Connection.static OleDbConnection myCon = new OleDbConnection();

Главная форма содержит объекты следующих управляющих элементов: кнопки, списки, заголовки, текстовые поля.

События

.В программе используются события Click, генерируемые при нажатии кнопки.

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

private void button3_Click(object sender, EventArgs e)


{();

}


. В программе используются события SelectedIndexChanged, генерируемое при выделении клиента из списка. Далее представлен пример обработчика этого события в моей работе:


private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

{cmd = "select * from Customers where CustomerNumber=" + listBox1.SelectedValue.ToString();com = new OleDbCommand(cmd, myCon);.Open();reader = com.ExecuteReader();.Read();.Text = reader["Avto"].ToString();.Close();.Close();

}(Exception ex)

{.WriteLine(ex.Message);

}

}


Потоки

В программе применяется основной поток, реализуемый функцией Main().


3. Поэтапная разработка программной системы


.1 Создание базы данных в Access


Для описания предметной области Организация работы автосервиса были созданы 2 таблицы:.mdb содержит в себе данные обо всех клиентах, имеющих заказ. Таблица имеет следующие поля: код клиента(CustomerNumber) (ключевое), ФИО(Fio), марка автомобиля(Avto)._of_service.mdb содержит в себе информацию о видах услуг данного автосервиса. Таблица имеет следующие поля: код услуги(ServiceCode) (ключевое); код клиента (CustomerNumber), вид услуги(Service), стоимость услуги (Price), дата заказа(Date).


Рис. 1 - Схема данных таблиц в Access


Рис. 2 - Таблица Customers.mdb


Рис. 3 - Таблица Type_of_service.mdb


3.2 Разработка структуры классов


В соответствии с созданной логической структурой базы данных были разработаны классы необходимые для работы программы в C#. При анализе предметной области мы выделили 4 класса, среди которых 2 базовых и 2 наследуемых.

Класс человек (Person);

Класс конструкции (Construction);

Класс клиенты (Customers);

Класс тип услуги (Type_of_Service).

Класс человек (Person) - один из базовых классов, который имеет закрытые поля и свойства для доступности этих полей в других классах.

class Person

{String fio;String marka;Person(String FIO, String Marka)

{= FIO;= Marka;

}Person() { }String FIO

{{ return fio; }{ fio = value; }

}string Marka

{{ return marka; }{ marka = value; }

}virtual String getInformation()

{fio + marka;

}int getDepth()

{ return 0; }

}


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


class Construction

{string name;string number;string serviceC;Construction(String Name, String Number, String ServiceC)

{= Name;= Number;= ServiceC;

}Construction() { }String Name

{{ return name; }{ name = value; }

}String Code

{{ return number; }{ number = value; }

}String ServiceC

{{ return serviceC; }{ serviceC = value; }

}virtual String getInformation()

{name + number + serviceC;

}int getDepth()

{0;

}

}


Класс клиенты (Customers) - это класс-наследник от класса Person описывающий объекты - клиентов автосервиса. Данный класс имеет следующие открытые поля: CustomerNumber (код клиента), FIO (фио), Avto (марка автомобиля), также список клиентов автосервиса.


class Customers : Person

{string CustomerNumber { get; set; }string FIO { get; set; }string Avto { get; set; }<Customers> customer = new List<Customers>();

}


Класс тип услуги (Type_of_Service) - это класс-наследник класса Construction, описывает объекты - тип услуг. Этот класс имеет следующие открытые поля: ServiceCode (код услуги), CustomerNumber (код клиента), Service, также данный класс содержит список предоставляемых услуг.


class Type_of_Service : Construction

{string ServiceCode { get; set; }string CustomerNumber { get; set; }string Service { get; set; }<Type_of_Service> usluga = new List<Type_of_Service>();

}


Структура связей между классами:


Рис. 4 - ClassDiagram1.cd


3.3 Создание структуры для хранения данных из таблиц в приложении


Большинству приложений требуется выполнять работу с базами данных (БД), расположенными либо локально на клиентских машинах либо на удаленных серверах. Для этих целей в составе библиотеки FCL имеется набор классов пространства имен System.Data, который называется технологией ADO.NET. Данная технология предоставляет простые в применении, но мощные средства доступа к данным, с помощью которых можно максимально полно использовать ресурсы системы. Данная технология позволяет реализовать два режима работы с данными: присоединенный и отсоединенный режимы.

В данной курсовой работе при проектировании приложения мы использовали присоединенный режим.

Для работы с базой данных используются классы из пространства имен System.Data.OleDb::устанавливает соединение с базой данных. В конструкторе класса нужно передать строку с параметрами соединения вида:

private string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source=AvtoService.accdb";

пример использования OleDbConnection в данной работе:

myCon = new OleDbConnection(ConnectionString);.Open();

OleDbCommand:используется для выполнения команд по работе с данными. Далее представлены некоторые примеры использования команд в данной работе

. SQL-команда для выборки: string cmd = "select * from Customers where CustomerNumber=" + listBox1.SelectedValue.ToString();

2. SQL-команда для добавления: Cmd = "INSERT INTO Customers (CustomerNumber, FIO, Avto ) values('" + textBox4.Text + "','" + textBox1.Text + "', '" + textBox2.Text + "') ";

. SQL-команда для удаления: string Cmd = "delete * from Customers where CustomerNumber=" + listBox1.SelectedValue;

OleDbDataReader: OleDbDataReader используется для получения результата выполненной команды. Объект типа OleDbDataReader можно получить, вызвав метод ExecuteReader() класса OleDbCommand.содержит набор записей. Метод Read() позволяет перейти к следующей записи набора и возвращает false, если выбрана последняя запись и переходить больше некуда. OleDbDataReader реализует множество методов для чтения данных разного типа из выбранной записи.

Пример использования в данной работе:


myCon = new OleDbConnection(ConnectionString);.Open();myCommand = new OleDbCommand("SELECT * FROM Customers", myCon);.Connection = myCon;myReader = myCommand.ExecuteReader();<Customers> customer = new List<Customers>();(myReader.Read())

{cl = new Customers();.FIO = myReader["FIO"].ToString();.CustomerNumber = myReader["CustomerNumber"].ToString();.Avto = myReader["Avto"].ToString();.Add(cl);

}.Close();

myCon.Close();


}


3.4 Проектирование интерфейса пользователя

программа интерфейс аccess класс

Для того чтобы с данной программой мог легко работать обычный пользователь, создаётся графический интерфейс. Платформа .Net предоставляет набор объектно-ориентированных средств для удобной и простой реализации всех частей графического интерфейса.

Основными элементами графического интерфейса являются специальные классы, называемые элементами управления (ЭУ), которые обладают двумя особенностями:

. реализуют работу с различными типами окон ОС Windows;

. поддерживают работу в двух режимах:

режим проектирования (design mode), в котором с ними работает среда разработки;

режим выполнения (run mode), в котором выполняется взаимодействие пользователей с ЭУ.

Базовым классом для всех элементов управления является класс Control, реализующий самую базовую функциональность. Класс Control задает важные свойства, методы и события, наследуемые всеми его потомками. Все классы элементов управления (ЭУ) являются наследниками класса Control. Базовый класс Control содержит достаточно большой интерфейс (79 свойств, 56 методов, 67 событий), который доступен во всех производных классах.

Разработка форм

Главная форма Form1.cs отображается при запуске программы. На форме, слева отображен список клиентов из базы данных. Правее располагается информация о марке автомобиля выбранного клиента. И с правого края располагаются кнопки: Информация о клиенте; Добавить клиента; Удалить клиента; Обновить информацию.


Рис. 5 - Form1.cs


При нажатии на кнопку «Информация о клиенте» появляется Form2.cs, где располагаются поля, в которых находится: ФИО выбранного из списка клиента, марка его автомобиля, вид предоставляемой услуги, дата подачи заявки, стоимость услуги и стоимость всех предоставляемых услуг вместе.

Рис. 6 - Form2.cs


В окне «Информация о клиенте» расположена кнопка «Печать», при нажатии на которую, заявка отправляется на печать.


Рис. 7 - Form2.cs (печать)


При нажатии на кнопку «Добавить клиента» появляется Form3.cs, где располагаются поля, в которые необходимо вписать: код клиента, ФИО клиента, марка его автомобиля, вид предоставляемой услуги и стоимость услуги.


Рис. 8 - Form3.cs


После нажатия кнопки «Добавить», клиент с соответствующим именем будет добавлен в базу данных клиентов и отобразится в списке на главной форме (только после обновления списка, нажатием кнопки «Обновить информацию»).


Рис. 9 - Проверка добавления клиента


Ниже располагается кнопка «Удалить клиента». При нажатии на кнопку «Удалить клиента», из списка удаляется выбранный клиент и все его данные.


Список используемой литературы


1.Тузовский А.Ф. Высокоуровневые методы информатики и программирования. - Томск: Изд-во ТПУ, 2009. - 200с.

.Биллиг В.А. Основы программирования на C#. - М.: Изд-во «Интернет-университет информационных технологий», 2006. - 488 c.

.Майо Д.C. Искусство программирования. Энциклопедия программиста. - Киев: «ДиаСофт», 2002. - 656 с.

.Винокуров М.А., Гутгарц Р.Д., Пархомов В.А.. Компьютерные технологии в кадровых службах - И.:ИГЭА, 1997. - 198 с.

.Орлов А.Технология разработки программного обеспечения. Учебник. - СПб.: Питер, 2002. - 464 с.


Приложения

.cs

using System;System.Collections.Generic;System.Linq;System.Windows.Forms;AvtoService

{class Program

{

[STAThread]void Main()

{.EnableVisualStyles();.SetCompatibleTextRenderingDefault(false);.Run(new Form1());

}

}

}Person

{String fio;String marka;Person(String FIO, String Marka)

{= FIO;= Marka;

}Person() { }String FIO

{{ return fio; }{ fio = value; }

}string Marka

{{ return marka; }{ marka = value; }

}virtual String getInformation()

{fio + marka;

}int getDepth()

{ return 0; }

}Construction

{string name;string number;string serviceC;Construction(String Name, String Number, String ServiceC)

{= Name;= Number;= ServiceC;

}Construction() { }String Name

{{ return name; }{ name = value; }

}String Code

{{ return number; }{ number = value; }

}String ServiceC

{{ return serviceC; }{ serviceC = value; }

}virtual String getInformation()

{name + number + serviceC;

}int getDepth()

{0;

}

}Customers : Person

{string CustomerNumber { get; set; }string FIO { get; set; }string Avto { get; set; }<Customers> customer = new List<Customers>();

}Type_of_Service : Construction

{string ServiceCode { get; set; }string CustomerNumber { get; set; }string Service { get; set; }<Type_of_Service> usluga = new List<Type_of_Service>();

}.csSystem;System.Collections.Generic;System.Windows.Forms;System.Data.OleDb;AvtoService

{partial class Form1 : Form

{static OleDbConnection myCon = new OleDbConnection();string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source=AvtoService.accdb";Form1()

{ InitializeComponent();= new OleDbConnection(ConnectionString);

//UpdateCustomersList();.Open();myCommand = new OleDbCommand("SELECT * FROM Customers", myCon);.Connection = myCon;myReader = myCommand.ExecuteReader();<Customers> customer = new List<Customers>();(myReader.Read())

{ Customers cl = new Customers();.FIO = myReader["FIO"].ToString();.CustomerNumber = myReader["CustomerNumber"].ToString();.Avto = myReader["Avto"].ToString();.Add(cl);

}.Close();.Close();.DisplayMember = "FIO";.ValueMember = "CustomerNumber";.DataSource = customer;.SelectedIndex = 0;

}void Form1_Load(object sender, EventArgs e)

{

}void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{ try

{cmd = "select * from Customers where CustomerNumber=" + listBox1.SelectedValue.ToString();com = new OleDbCommand(cmd, myCon);.Open();reader = com.ExecuteReader();.Read();.Text = reader["Avto"].ToString();.Close();.Close();

}(Exception ex)

{ Console.WriteLine(ex.Message);

}

}void textBox1_TextChanged(object sender, EventArgs e)

{

}void button1_Click(object sender, EventArgs e)

{(listBox1.SelectedValue == null) return;frm = new Form2((Convert.ToInt32(listBox1.SelectedValue)).ToString());.ShowDialog();

}void button2_Click(object sender, EventArgs e)

{Cmd = "delete * from Customers where CustomerNumber=" +.ToInt32(listBox1.SelectedValue);myCom4 = new OleDbCommand(Cmd, myCon);.Open();.ExecuteNonQuery();<Customers> customer = new List<Customers>();= "select * from Customers";com = new OleDbCommand(Cmd, myCon);myReader = com.ExecuteReader();(myReader.Read())

{cl = new Customers();.FIO = myReader["FIO"].ToString();.CustomerNumber = myReader["CustomerNumber"].ToString();.Add(cl);

}.Close();.Close();.DisplayMember = "FIO";.ValueMember = "CustomerNumber";.DataSource = customer;(((List<Customers>)listBox1.DataSource).Count > 0).SelectedIndex = 0;

}void button3_Click(object sender, EventArgs e)

{();

}void UpdateCustomersList()

{.Open();<Customers> customer = new List<Customers>();Cmd = "select * from Customers";com = new OleDbCommand(Cmd, myCon);myReader = com.ExecuteReader();(myReader.Read())

{cl = new Customers();.FIO = myReader["FIO"].ToString();.CustomerNumber = myReader["CustomerNumber"].ToString();.Add(cl);

}.Close();.Close();.DisplayMember = "FIO";.ValueMember = "CustomerNumber";.DataSource = customer;(((List<Customers>)listBox1.DataSource).Count > 0) {.SelectedIndex = 0;

}

}void button4_Click(object sender, EventArgs e)

{frm2 = new Form3();.ShowDialog(); }void label2_Click(object sender, EventArgs e)

{

}void label1_Click(object sender, EventArgs e)

{

}

}

}.csSystem;System.Collections.Generic;System.Windows.Forms;System.Data.OleDb;System.Drawing.Printing;AvtoService

{partial class Form2 : Form

{ List<string> usl = new List<string>();<int> price = new List<int>();<string> dat = new List<string>();Form2(string customerNumber)

{ InitializeComponent();cmd = "select * from Customers where CustomerNumber = " + customerNumber;com = new OleDbCommand(cmd, Form1.myCon);.myCon.Open();reader = com.ExecuteReader();.Read();.Text = reader["FIO"].ToString();.Text = reader["Avto"].ToString();.Close();.CommandText = "select * from Type_of_service where CustomerNumber = " + customerNumber;= com.ExecuteReader();sum = 0;(reader.Read())

{ string s = reader["Service"].ToString();d = reader["Date"].ToString();k = Convert.ToInt32(reader["Price"]);+= k;.Add(k);.Add(s);.Add(d);

}.Text = sum.ToString();.DataSource = usl;.myCon.Close();

}void dateTimePicker1_ValueChanged(object sender, EventArgs e)

{ }void Form2_Load(object sender, EventArgs e)

{ }void textBox1_TextChanged(object sender, System.EventArgs e)

{ }void textBox2_TextChanged(object sender, System.EventArgs e)

{

}void textBox3_TextChanged(object sender, System.EventArgs e)

{

}void textBox4_TextChanged(object sender, System.EventArgs e)

{

}void textBox5_TextChanged(object sender, System.EventArgs e)

{

}void button3_Click(object sender, System.EventArgs e)

{d = new PrintDocument();.DocumentName = "Заявка";.Print();

}void button2_Click(object sender, System.EventArgs e)

{= false;

}void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)

{ind = listBox1.SelectedIndex;.Text = price[ind].ToString();.Text = dat[ind].ToString();

}

}

}.csSystem;System.Collections.Generic;System.Windows.Forms;System.Data.OleDb;AvtoService

{partial class Form3 : Form

{<string> usl = new List<string>();Form3()

{();_Load(new Object(), new EventArgs());

}void Form3_Load(object sender, EventArgs e)

{Cmd1;connection = new OleDbConnection();.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source=AvtoService.accdb";= "SELECT Service FROM Type_of_Service";myCom1 = new OleDbCommand(Cmd1, connection);.Open();reader = myCom1.ExecuteReader();<Type_of_Service> usluga = new List<Type_of_Service>();(reader.Read())

{_of_Service u = new Type_of_Service();.Service = reader["Service"].ToString();.Add(u);

}.Close();.Close();.DataSource = usluga;.DisplayMember = "Service";

}void textBox4_TextChanged(object sender, EventArgs e)

{

}void textBox1_TextChanged(object sender, EventArgs e)

{

}void textBox2_TextChanged(object sender, EventArgs e)

{

}void textBox3_TextChanged(object sender, EventArgs e)

{

}void button1_Click(object sender, EventArgs e)

{oo = comboBox1.Text;

// int pp = comboBox1.SelectedIndex;Cmd;= "INSERT INTO Customers (CustomerNumber, FIO, Avto ) values('" + textBox4.Text + "','" + textBox1.Text + "', '" + textBox2.Text + "') ";Cmd10 = "INSERT INTO Type_of_service (CustomerNumber, Service, Price) values('" + textBox4.Text + "','" + oo + "', '" + textBox3.Text + "')";myCon = new OleDbConnection();.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source=AvtoService.accdb";myCom2 = new OleDbCommand(Cmd, myCon);myCom3 = new OleDbCommand(Cmd10, myCon);.Open();.ExecuteNonQuery();.Close();.Open();.ExecuteNonQuery();.Close();();

}void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

}

}

}



Содержание Задание . Описание разрабатываемой программы с точки зрения пользователя . Описание разрабатываемой программы с точки зрения программист

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ