Телефонная компания
Цели и задачи были полностью выполнены. Это означает, что материал по дисциплине «База данных» был полностью усвоен и принят за основу моему дальнейшему развитию. Метод исследования — изучение видов деятельности в служба рекламы, составление и отладка программы, для работы с базой данных (программа написана на языке С++). В таблице «Услуги» и «Льготы» были также выбраны первичные ключи… Читать ещё >
Телефонная компания (реферат, курсовая, диплом, контрольная)
КУРСОВОЕ ПРОЕКТИРОВАНИЕ ПО БАЗАМ ДАННЫХ ТЕМА: «Телефонная компания»
Одесса 2010
Аннотация
Объектом исследования является развитие навыков проектирования информационных систем и закрепление знаний, полученных за время изучения дисциплины «Базы данных» .
Цель работы — разработка и создание базы данных для предметной области Аварийная служба.
Метод исследования — изучение видов деятельности в служба рекламы, составление и отладка программы, для работы с базой данных (программа написана на языке С++).
1. Анализ предметной области
1.1 Рабочие цели системы
1.2 Этапы проектирования БД
1.3 Концептуальная модель
2. Преобразование модели ER в реляционную модель
3. Запросы к базе данных системы
4. Описание групп пользователей ИС
5. Текст программы Заключение Список литературы
Цель работы: является развитие навыков проектирования информационных систем и закрепление знаний, полученных за время изучения дисциплины «Базы данных» .
Задание: предметная область «Реклама в коммерческом издании». Возможные виды деятельности: учет клиентов с возможными льготами; учет совершенных ими заказов по различным направлениям; расчет стоимости заказа с учетом типа, даты продолжительности; оплата клиентами услуг.
1. Анализ предметной области
1.1 Рабочие цели системы
Согласно заданию, программный продукт должен фиксировать такие данные как:
— клиентов с возможными льготами;
— заказ клиентов по различным типам;
— стоимость заказа с учетом типа, даты и продолжительности;
— оплата клиентом услуг.
В связи с этим были сформированы следующие таблицы в базе данных:
Клиенты;
Услуги;
Звонки;
Льготы.
А также таблицы, связывающие данные таблицы.
Так же ПП должен выполнять следующие функции:
Вывод списка услуг клиента;
Вывод списка заказов клиента;
Вывод списка клиентов по первым буквам;
Вывод списка заказов за данный промежуток;
Вывод списка заказов в данный промежуток;
Вывод количества клиентов с данным типом услуги;
Вывод количества неоплаченых счетов;
Вывод количества клиентов по услугам;
Вывод количества клиентов по льготам;
Вывод клиента с наибольшим долгом;
Для каждой льготы определить клиента с наименьшим сроком льготы;
Для каждой услуги определить, а клиента с наименьшим сроком услуги;
Вывод клиентов, не имеющих льгот;
Вывод клиентов, не имеющих услуг;
Вывод состояний счетов;
Вывод состояний сроков услуг;
Обновить наличие долга;
Обновить отсутствие долга.
1.2 Этапы проектирования БД
После анализа предметной области были сформированы ранее перечисленные таблицы.
В таблице «Клиент» был выбран первичный ключ «Идентификатор клиента», т.к. данного ключа достаточно для уникального определения каждого клиента, поскольку данные характеризующие клиента не могут повториться дважды.
В таблице «Услуги» и «Льготы» были также выбраны первичные ключи «Идентификатор», т.к. данных полей достаточно для уникального определения данных в таблицах.
При выборе данных таблиц и их связующих таблиц, поля были выбраны с учетом нормализации отношений, т. е. таблицы не содержат избыточное количество повторяющихся данных и не могут привести к различным родам аномалий.
1.3 Концептуальная модель
2. Преобразование модели ER в реляционную модель
Клиент | ||||
Поле | Описание | Тип Данных | Комментарий | |
id_klient | Идентификационный код клиента | Счетчик | Необходим для уникального определения клиента | |
surname | Фамилия клиента | Текстовый | Данные о фамилии клиента | |
ab_name | Имя клиента | Текстовый | Данные об имени клиента | |
Num | Номер телефона | Числовой | Данные о номера телефона клиента | |
bill | Состояние счета клиента | Денежный | Текущее состояние счета клиента | |
More Info | Информация о наличие или отсутствии долга | Текстовый | Дополнительные данные о состоянии счета | |
Реклама | ||||
Поле | Описание | Тип Данных | Комментарий | |
id_call | Идентификационный код рекламы | Счетчик | Необходим для уникального определения рекламы | |
id_klient | Идентификационный код клиента | Числовой | Необходим для определения клиента | |
Data | Дата рекламы | Дата/время | Определение даты рекламы | |
time_beg | Время начала звонка | Дата/время | Определение времени начала рекламы | |
time_and | Время окончания звонка | Дата/время | Определение времени окончания рекламы | |
id_type | Код типа рекламы | Числовой | Определение типа рекламы | |
Льгота | ||||
Поле | Описание | Тип Данных | Комментарий | |
Id_lgot | Идентификационный код льготы | Счетчик | Необходим для уникального определения льготы | |
Opisanie | Данные о льготе | Текстовый | Описание льготы | |
Stoimost | Процент от стоимости звонка | Числовой | Процент от стоимости рекламы | |
Услуга | ||||
Поле | Описание | Тип Данных | Комментарий | |
Id_service | Идентификационный код услуги | Счетчик | Необходим для уникального определения услуги | |
Opisanie | Данные об услуге | Текстовый | Описание услуги | |
Stoimost | Процент от стоимости звонка | Числовой | Процент от стоимости звонка | |
Направление | ||||
Поле | Описание | Тип Данных | Комментарий | |
Id_type | Идентификационный код типа | Счетчик | Необходим для уникального определения типа | |
Opisanie | Данные о типе | Текстовый | Описание типа | |
Stoimost | Процент от стоимости рекламы | Числовой | Процент от стоимости рекламы | |
Оплата | ||||
Поле | Описание | Тип Данных | Комментарий | |
id_oplata | Идентификационный код оплаты | Счетчик | Необходим для уникального определения оплаты | |
Data | Дата оплаты | Дата/время | Данные о дате внесения оплаты | |
Summ | Внесенная сумма | Денежный | Данные о внесенной сумме | |
id_ klient | Идентификационный код клиента | Числовой | Определение клиента, выполнившего оплату | |
Клиент-льгота | ||||
Поле | Описание | Тип Данных | Комментарий | |
id_lg_ab | Идентификационный код клиент-льготы | Счетчик | Необходим для уникального определения клиент-льготы | |
Data | Дата присвоения льготы | Дата/время | Данные о дате присвоения льготы | |
Srok | Дата завершения льготы | Дата/время | Данные о дате завершения льготы | |
id_lgot | Идентификационный код льготы | Числовой | Определение присвоенной льготы | |
id_klient | Идентификационный код клиента | Числовой | Определение клиента | |
Клиент-услуга | ||||
Поле | Описание | Тип Данных | Комментарий | |
id_ys_ab | Идентификационный код клиент-услугы | Счетчик | Необходим для уникального определения клиент-услугы | |
Data | Дата присвоения услуги | Дата/время | Данные о дате присвоения услуги | |
Srok | Дата завершения услуги | Дата/время | Данные о дате завершения услуги | |
id_lgot | Идентификационный код услуги | Числовой | Определение присвоенной услуги | |
id_klient | Идентификационный код клиента | Числовой | Определение клиента | |
3. Запросы к базе данных системы
Вывод списка услуг клиента
SELECT A. id_service, A. opisanie, C. surname FROM services AS A, ys_ab AS B, Klient AS C WHERE A. id_service=B.id_service and B. id_klient=C.id_klient and C. surname=(Фамилия_Пользователя) Вывод списка звонков клиента
SELECT A. id_call, A. data, A. time_beg, A. time_and, C. opisanie, B. surname FROM Call AS A, Klient AS B, Napravlenie AS C WHERE A. id_klient=B.id_klient And A. id_napravlenie=C.id_napravlenie And B. surname=(Фамилия_Пользователя) Вывод списка клиентов по первым буквам
SELECT * FROM Klient WHERE surname like Первые_буквы%
Вывод списка клиентов по первым цифрам
SELECT * FROM Klient WHERE num like Первые_цифры%
Вывод списка звонков за данный промежуток
SELECT * FROM call WHERE data Between Начальная_Дата and Конечная_Дата Вывод списка услуг в данный промежуток
SELECT A. Data, A. Srok, B. Surname FROM ys_ab AS A, Klient AS B WHERE A. id_klient=B.id_klient and A. Data between Начальная_Дата and Конечная_Дата Вывод количества клиентов с данной услугой
SELECT Count (*) FROM services WHERE services. id_service=Идентификато_услуги Вывод количества отрицательных счетов
SELECT count (*) FROM Klient WHERE bill<0;
Вывод количества клиентов по услугам
SELECT A. id_service, B. opisanie, Count (*) FROM ys_ab AS A, services AS B WHERE A. id_service=B.id_service GROUP BY A. id_service, B. opisanie;
Вывод количества клиентов по льготам
SELECT A. id_lgot, B. opisanie, Count (*)FROM lg_ab AS A, lgot AS B WHERE A. id_lgot=B.id_lgot GROUP BY A. id_lgot, B. opisanie;
Вывод клиента с наибольшим долгом
SELECT * FROM klient AS A WHERE bill<= ALL (select bill from klient);
Вывод клиентов, имеющих услуги
SELECT * FROM klient AS A WHERE A. id_klient =ANY (select B. id_klient from ys_ab AS B);
Для каждой льготы определить клиента с наименьшим сроком льготы
SELECT A. opisanie, B. surname, B. ab_name FROM lgot AS A, klient AS B, lg_ab AS C WHERE A. id_lgot=C.id_lgot AND B. id_klient=c.id_klient AND C. srok<=All (select Srok from lg_ab where lg_ab.id_lgot=A.id_lgot);
Для каждой услуги определить клиента с наименьшим сроком услуги
SELECT A. opisanie, B. surname, B. ab_name FROM services AS A, klient AS B, ys_ab AS C WHERE A. id_service=C.id_service AND B. id_klient=c.id_klient AND C. srok<=All (select Srok from ys_ab where ys_ab.id_service=A.id_service);
Вывод клиентов, не имеющих льгот
SELECT A. surname FROM Klient AS A WHERE A. id_klient not IN (select id_klient from lg_ab);
Вывод клиентов, не имеющих услуг
SELECT A. surname FROM Klient AS A WHERE A. id_klient not IN (select id_klient from ys_ab);
Вывод состояний счетов
SELECT id_klient, surname, ab_name,'norm' from Klient where bill>0 UNION SELECT id_klient, surname, ab_name,'minus' from Klient where bill<0;
Вывод состояний сроков услуг
SELECT *, Srok-Now () FROM ys_ab where (Srok-Now ())>0 union SELECT *, Srok-Now () FROM ys_ab where (Srok-Now ())<0;
Обновить наличие долга
update klient set [More info]='imeet dolg' where id_klient in (select id_klient from klient where bill<0);
Обновить отсутствие долга
update klient set [More info]='ne imeet dolg' where id_klient in (select id_klient from klient where bill>0);
4. Описание групп пользователей ИС
В данной области были выделены две группы пользователей.
Первая группа — менеджер-оператор:
— возможность просмотра таблиц «Клиенты», «Рекламы», «Льготы-Клиенты», «Услуги-Клиенты», «Оплаты» .
— возможность выполнения всех перечисленных в анализе требований действий.
— возможность внесения оплаты.
Вторая группа — администратор:
— возможность просмотра таблиц «Клиенты», «Услуги», «Льготы-Клиенты», «Услуги-Клиенты», «Оплаты» .
— возможность выполнения всех перечисленных в анализе требований действий.
— возможность внесения оплаты.
— возможность просмотра журнала событий, произошедших в системе.
— возможность изменения всех таблиц (кроме журнала событий):
— редактирование записей.
— добавление записей.
— удаление записей.
— возможность создания нового пользователя.
Интерфейс ИС
Программный продукт содержит одно окно, которое в зависимости от выполняемых действий преобразуется под выполняемое действие
1. Первоначальное окно программы:
2. Окно программы, которое видит менеджер-оператор после ввода своего логина и пароля:
3. Окно программы, которое видит менеджер-оператор после нажатия кнопки «Таблицы» :
Окно программы, которое видит менеджер-оператор после нажатия кнопки «Функции» :
4. Окно программы, которое видит менеджер-оператор после нажатия кнопки «Оплата» :
При этом, пользователь вводит номер в поле ввода номера и автоматически вписывается фамилия в поле фамилии, которою в последствии пользователь должен согласовать с клиентом.
5. Окно программы, которое видит менеджер-оператор после выбора пункта в меню «Таблицы» :
6. Окно программы, которое видит менеджер-оператор после выбора пункта в меню «Функции» :
7. Окно программы, которое видит администратор после ввода своего логина и пароля:
8. Окно программы, которое видит администратор после нажатия кнопки «Изменить Клиент-Льгота» :
9. Окно программы, которое видит администратор после нажатия кнопки «Добавить запись» :
10. Окно программы, которое видит администратор после нажатия кнопки «Добавить льготу» :
11. Окно программы, которое видит администратор после нажатия кнопки «Изменить Клиент-Услуга» :
12. Окно программы, которое видит администратор после нажатия кнопки «Добавить запись» :
13. Окно программы, которое видит администратор после нажатия кнопки «Добавить услугу» :
Сообщения программы, причины, их вызывающие, и реакция пользователя на сообщения
ь Сообщение о неверном имени пользователя или пароля.
При возникновении данной ошибки пользователю выводится сообщение о возникновении данной ситуации, очищается поле пароля и система ждет повторного ввода.
ь Сообщение о неверном внесении оплаты.
При возникновении данной ошибки пользователю выводится сообщение о возникновении данной ситуации, очищаются все поля ввода. Требуется ввести верные данные.
ь Сообщение о неверном внесении нового пользователя.
При возникновении данной ошибки пользователю выводится сообщение о возникновении данной ситуации, очищаются все поля ввода. Требуется ввести верные данные.
5. Тексты программы
#pragma once
int zap=0;//переменная для определения текущего запроса
int id=0;//переменная для определения текущего пользователя в системе
int level=0;//переменная для определения выдаваемых функций пользователю
int op_new=-1;//переменная для определения действий кнопки «добавить»
int ChoiseToLV2=0;//переменная, определяющая выводимую и вводимую информацию в функциях.
//участок кода, реализующий один из запросов на вывод таблиц в программе. в основном в остальных запросах изменяется лишь значение переменной q, в которую и вписывается сам запрос.
private: System: Void listBox1_SelectedIndexChanged (System:Object^ sender, System: EventArgs^ e) {
this->listView1->Visible=true;
this->ClientSize = System: Drawing:Size (960, 580);
this->listView1->Items->Clear ();
cn->Open ();
int choise=this->listBox1->SelectedIndex;
if (choise==0)
{
String ^q="Select * from Klient;" ;
System:Data:OleDb:OleDbCommand^cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
System:Data:OleDb:OleDbDataReader ^rdr=cmd->ExecuteReader ();
int k=0;
while (rdr->Read ())
{
this->columnHeader1->Text=L" ид" ;
this->listView1->Items->Add (Convert:ToString (rdr[0]));
this->columnHeader2->Text=L" Фамилия" ;
this->listView1->Items[k]->SubItems->Add (Convert:ToString (rdr[1]));
this->columnHeader3->Text=L" Имя" ;
this->listView1->Items[k]->SubItems->Add (Convert:ToString (rdr[2]));
this->columnHeader4->Text=L" Номер" ;
this->listView1->Items[k]->SubItems->Add (Convert:ToString (rdr[3]));
this->columnHeader5->Text=L" Счет" ;
this->listView1->Items[k]->SubItems->Add (Convert:ToString (rdr[4]));
this->columnHeader6->Text=L" Доп.инф." ;
this->listView1->Items[k]->SubItems->Add (Convert:ToString (rdr[5]));
this->columnHeader7->Text=L" «;
k++;
}
rdr->Close ();
cn->Close ();}}
//действия при нажатии на кнопку «Внести» в меню «Оплата» .
private: System: Void button11_Click (System:Object^ sender, System: EventArgs^ e) {
String ^q;
System:Data:OleDb:OleDbCommand ^cmd;
System:Data:OleDb:OleDbDataReader ^rdr;
cn->Open ();
if (op_new==1)
{
double summ_ins=Convert:ToDouble (this->textBox8->Text);
double summ;
int chosen_id;
q="Select * from klient" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
while (rdr->Read ())
{
if (Convert:ToString (rdr[1])==this->comboBox1->Text && Convert: ToInt32(rdr[3])==Convert:ToInt32(this->comboBox2->Text))
{
chosen_id=Convert:ToInt32(rdr[0]);
summ=summ_ins+Convert:ToDouble (rdr[4]);
q="update klient set bill ='" +Convert:ToString (summ)+" ' where id_klient="+chosen_id+" ;" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
q="INSERT INTO Oplata (Data, summ, id_klient)values (Date (),'" +Convert:ToString (summ_ins)+" ','" +chosen_id+" '); «;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
}
}
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Внесение суммы «+Convert:ToString (summ_ins)+» на счет клиента с ID «+chosen_id+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
}
//действия при нажатии на кнопку «Изменить»
private: System: Void button13_Click (System:Object^ sender, System: EventArgs^ e) {
cn->Open ();
if (ChoiseToLV2==1)
{
String ^q="update lg_ab SET Data='" +this->textBox10->Text+" ', Srok='" +this->textBox11->Text+" ', id_lgot="+Convert:ToInt32(this->textBox12->Text)+", id_klient="+Convert:ToInt32(this->textBox13->Text)+" where id_lg_ab="+Convert:ToInt32(this->textBox9->Text);
System:Data:OleDb:OleDbCommand ^cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
System:Data:OleDb:OleDbDataReader ^rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Изменение записи в таблице клиент-льгота с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==4)
{
String ^q="update ys_ab SET Data='" +this->textBox10->Text+" ', Srok='" +this->textBox11->Text+" ', id_service="+Convert:ToInt32(this->textBox12->Text)+", id_klient="+Convert:ToInt32(this->textBox13->Text)+" where id_ys_ab="+Convert:ToInt32(this->textBox9->Text);
System:Data:OleDb:OleDbCommand ^cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
System:Data:OleDb:OleDbDataReader ^rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Изменение записи в таблице клиент-услуга с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
cn->Close ();
}
//действия при нажатии на кнопку «Удалить»
private: System: Void button14_Click (System:Object^ sender, System: EventArgs^ e) {
cn->Open ();
System:Data:OleDb:OleDbCommand ^cmd;
System:Data:OleDb:OleDbDataReader ^rdr;
if (ChoiseToLV2==1)
{
String ^q="delete from lg_ab where id_lg_ab="+Convert:ToInt32(this->textBox9->Text);
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Удаление записи в таблице клиент-льгота с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==2)
{
String ^q="delete from lgot where id_lgot="+Convert:ToInt32(this->textBox9->Text);
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Удаление записи в таблице льгота с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==3)
{
String ^q="delete from Klient where id_klient="+Convert:ToInt32(this->textBox9->Text);
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Удаление записи в таблице Клиент с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==4)
{
String ^q="delete from ys_ab where id_ys_ab="+Convert:ToInt32(this->textBox9->Text);
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Удаление записи в таблице клиент-услуга с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==5)
{
String ^q="delete from services where id_service="+Convert:ToInt32(this->textBox9->Text);
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Удаление записи в таблице услуга с ID «+Convert:ToInt32(this->textBox9->Text)+» ');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
rdr->Close ();
cn->Close ();
}
//Действия при нажатии на кнопку «Добавить»
private: System: Void button16_Click (System:Object^ sender, System: EventArgs^ e) {
cn->Open ();
System:Data:OleDb:OleDbCommand ^cmd;
System:Data:OleDb:OleDbDataReader ^rdr;
if (ChoiseToLV2==1)
{
String ^q="insert into lg_ab (Data, Srok, id_lgot, id_klient) VALUES ('" +this->textBox10->Text+" ','" +this->textBox11->Text+" '," +Convert:ToInt32(this->textBox12->Text)+" ," +Convert:ToInt32(this->textBox13->Text)+")" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Добавление записи в таблицу клиент-льгота');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==2)
{
String ^q="insert into Lgot (Opisanie, Stoimost) VALUES ('" +this->textBox10->Text+" '," +Convert:ToInt32(this->textBox11->Text)+")" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Добавление записи в таблицу Льготы');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==3)
{
String ^q="insert into Klient (Surname, ab_name, Num, bill) VALUES ('" +this->textBox10->Text+" ','" +this->textBox11->Text+" '," +Convert:ToInt32(this->textBox12->Text)+" ," +Convert:ToDouble (this->textBox13->Text)+")" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Добавление нового клиента');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==4)
{
String ^q="insert into ys_ab (Data, Srok, id_service, id_klient) VALUES ('" +this->textBox10->Text+" ','" +this->textBox11->Text+" '," +Convert:ToInt32(this->textBox12->Text)+" ," +Convert:ToInt32(this->textBox13->Text)+")" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Добавление записи в таблицу клиент-услуга');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
if (ChoiseToLV2==5)
{
String ^q="insert into services (Opisanie, Stoimost) VALUES ('" +this->textBox10->Text+" '," +Convert:ToInt32(this->textBox11->Text)+")" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
q="insert into changes (id_user, data, Opisanie) values («+id+», Now (),'Добавление записи в таблицу услуги');" ;
cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
rdr=cmd->ExecuteReader ();
rdr->Close ();
}
rdr->Close ();
cn->Close ();
}
//Действия, происходящие при внесении данных в поле ввода номера
private: System: Void comboBox2_TextUpdate (System:Object^ sender, System: EventArgs^ e) {
cn->Open ();
String ^q="SELECT surname FROM Klient WHERE num like '" +this->comboBox2->Text+" %';" ;
System:Data:OleDb:OleDbCommand^cmd=gcnew System: Data:OleDb:OleDbCommand (q, cn);
System:Data:OleDb:OleDbDataReader ^rdr=cmd->ExecuteReader ();
while (rdr->Read ())
{
this->comboBox1->Text=Convert:ToString (rdr[0]);
}
rdr->Close ();
cn->Close ();
}
Заключение
Данная курсовая работа заключала в себе анализ и создание базы данных для аварийной службы.
Целью курсовой работы является развитие навыков проектирования информационных систем и закрепление знаний, полученных за время изучения дисциплины «Базы данных» .
Цели и задачи были полностью выполнены. Это означает, что материал по дисциплине «База данных» был полностью усвоен и принят за основу моему дальнейшему развитию.
1. Дейт, К. Дж.
Введение
в системы Баз Данных, 7-е издание.: Пер. с англ. Ю. Г. Гордиенко; Под ред. А. В. Слепцова / К. Дж. Дейт — М.: Издательский дом «Вильямс», 2001. — 1072с.
2. Роб, П., Коронел, К. Системы баз данных: проектирование, реализация и управление.- 5-е изд., перераб. и доп./ Пер. с англ. А. Никифоров; Под ред. Е. Кондукова / П. Роб, К. Коронел — СПб.: БХВ — Петербург, 2004. — 1040 с.
3. Вендров, A. M. Проектирование программного обеспечения информационых систем: Учебник / A. M. Вендров. — М.: «Финансы и статистика», 2000. — 352 с.
4. Калянов, Г. Н. CASE. Структурный системный анализ / Г. Н. Калянов. — М.: Лори, 1996. — 437 с.