Работа с базами данных
МИНИСТЕРСТВО
НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ
ХАРЬКОВСКИЙ
НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ
Кафедра
XXXX
ПОЯСНИТЕЛЬНАЯ
ЗАПИСКА
КУРСОВАЯ РАБОТА
ПО КУРСУ
“XXX”
на тему: "Работа с базами данных"
РУКОВОДИТЕЛЬ
XXX
СТУДЕНТ ГРУППЫ
XXX
XXX
ХАРЬКОВ
2004
СОДЕРЖАНИЕ
ВВЕДЕНИЕ…………………………………………………………
1
Решение интеллектуальной
задачи на компьютере…..5
2 ПОСТРОЕНИЕ
АЛГОРИТМА РАБОТЫ БАЗЫ
ДАННЫХ НА VISUAL
C++…………………………………...………….......
2.1 Алгоритм
работы базы данных…………………..….…
2.2 Описание
программы “Telefon”.....………………
3 Инструкции
пользователя …………………………………….….13
ЗАКЛЮЧЕНИЕ
……………………………………………………………….15
ЛИТЕРАТУРА
И ИСТОЧНИКИ ………………………………………….…
Приложение
……………………………………………………………....17
РЕФЕРАТ
Записка пояснительная к курсовой работе содержит: 24 стр.
Предмет исследования - современные методы разработки программ таких, как объектно-ориентированное программирование и визуальное проектирование, а также структурное и модульное программирование.
Цель курсовой работы - систематизация, углубление и активное применение знаний по системному программированию, закрепление знаний, полученных в лекционном курсе, а также на практических и лабораторных занятиях.
Метод исследования - изучение литературы, составление и отладка программ на компьютере.
Программа типа “Telefon” может использоваться, как телефонный справочник.
Разработан проект “Telefon” полностью соответствующий условию задания и имеющий довольно удобный интерфейс.
КЛЮЧЕВЫЕ СЛОВА: TELEFON, Visual C++, функция, проект, сообщение, программа.
ВВЕДЕНИЕ
В настоящее время
Один из широко используемых языков программирования - это Visual C++, который можно использовать для написания программ, работающих в операционной среде Windows. На данное время одной из самых распространенных его версий является Microsoft Visual C++, и среда программирования Microsoft Developer Studio 6.0.
Среда программирования Microsoft Developer Studio 6.0 позволяет создавать тексты программ, компилировать их, находить ошибки и оперативно их исправлять; компоновать программы из отдельных частей, включая стандартные модули, отлаживать и выполнять отлаженную программу.
Используя перечисленные возможности, можно создавать различные прикладные программы, например, такие, как программа, написанная при выполнении данной курсовой работы.
1 Решение
интеллектуальной задачи
на компьютере
В данном курсовом проекте
необходимо разработать
2 ПОСТРОЕНИЕ АЛГОРИТМА РАБОТЫ БАЗЫ ДАННЫХ
НА VISUAL C++
Среда Visual C++ - это сложный механизм, обеспечивающий высокоэффективную работу программиста. Создание прикладных программ, или приложений выполняется в интегрированной среде разработки IDE (Integrated Development Environment). IDE служит для организации взаимодействия с программистом и включает ряд окон, содержащих различные управляющие элементы. С помощью средств интегрированной среды разработчик может проектировать интерфейсную часть приложения, а также писать программный код и связывать его с управляющими элементами. При этом вся работа по созданию приложения, включая отладку, происходит в IDE.
Интегрированная среда
Несмотря на наличие многих окон, Visual C++ является однодокументной средой, т.е. позволяет одновременно работать только с одним приложением (проектом приложения). Название проекта приложения выводится в строке заголовка главного окна в верхней части экрана.
Если свернуть главное окно, то происходит минимизация всего интерфейса Visual C++ и, соответственно, всех открытых окон. При закрытии главного окна работа с Visual C++ прекращается.
Самой последней и наиболее
усовершенствованной версией
Visual
C++ 6.0 может работать в среде операционных
систем от Windows 95 до Windows XP. Особенных требований
к компьютеру система не предъявляет,
за исключением того, что процессор должен
быть типа Pentium, оперативной памяти - не
менее 32 Мбайт и достаточное количество
свободной дисковой памяти (порядка 200
Мбайт).
2.1 Алгоритм работы базы данных
В данном курсовом проекте в качестве базы данных используется файл Telefon.db. В случае, когда база данных создана, и в ней есть записи, то при запуске программы в строке состояния можно увидеть, какое количество записей в данный момент находится в базе. Структура файла базы данных представляет собой совокупность подряд идущих записей. Каждая запись – структура вида:
//структура содержащая текущую запись
struct
{
char name[20];//имя
char street[20];//улица
char dom[5];//дом
char flat[5];//квартира
char tel[15];//телефон
}
data;
Как видно каждое поле имеет ограниченный размер, который можно изменить в зависимости от потребностей программы.
Алгоритм удаления представляет собой создание копии структуры записи, но уже в виде массива:
struct
{
char name[20];//имя
char street[20];//улица
char dom[5];//дом
char flat[5];//квартира
char tel[15];//телефон
}
data2[100];
В этот массив будут заноситься все записи из файла Telefon.db, кроме удаляемой. Затем файл перезаписывается, но в нём уже нет удалённой записи.
Алгоритм
поиска заключается в переборе полей
базы данных на соответствие заданным
параметрам.
2.2 Описание программы “Telefon”
Данный проект создавался с помощью AppWizard – генератором кода, создающим рабочую заготовку Windows-приложения с теми компонентами, именами классов и исходными файлами, что были указаны через диалоговые окна. В частности: в закладке Project выбираем - MFC AppWizard (exe). Затем нужно пройти серию экранов AppWizard:
Step 1: выбираем “Single document”
Step 2: оставляем без изменения
Step 3: без изменения
Step 4: оставляем только флажки “3D controls”, “Docking ToolBar”.
Step 5: устанавливаем “As a statically linked library”
Step 6: отображает информацию о созданных классах
После этого AppWizard сгенерирует код для поддержки функциональных возможностей программы на базе библиотеки MFC, т.е. создаст каркас приложения. Рассмотрим некоторые элементы программы, созданные на данном этапе:
Класс CTelefonApp. Объект класса CTelefonApp представляет программу. В программе определяется единственный глобальный объект класса CTelefonApp – theApp. Базовый класс CWinApp определяет основные характеристики объекта theApp.
Класс CTelefonView. Объект класса CTelefonView представляет основное окно программы. Когда конструктор вызывает функцию-член Create базового класса CFrameWnd, Windows создаёт действительную оконную структуру, а каркас приложения связывает её с C++-объектом. Функции ShowWindow и UpdateWindow, являющиеся также функциями-членами базового класса, вызываются для вывода окна на экран.
При запуске проекта
Библиотека MFC прямо поддерживает около 140 функций, обрабатывающих Windows-сообщения. Кроме того, можно определять свои собственные сообщения, связанные с обработчиками команд меню, элементов управления и т.д. В программе “Telefon” используется более 40 функций, методов и сообщений Windows. Ниже они перечислены в порядке их появления в программе с кратким описанием:
UpdateData – обновляет данные окна;
Strcpy – копирование одной строки в другую;
Fopen – открытие файла;
Sizeof – определение размера;
Fwrite – запись в файл;
Fclose – завершение работы с файлом;
MessageBox – выводит окно с сообщением;
PostQuitMessage – посылает окну сообщение WM_DESTROY;
Fseek – установка указателя в файле;
Fread – чтение из файла;
Feof – определение конца файла;
Format – преобразует типы переменных;
GetItemText – получение текста из списка;
GetFirstSelectedItemPosit
InsertItem – вставка данных в список;
SetItemText – вставка данных в список;
DeleteAllItems - очистка списка;
SetPaneText
– установка текста в панель
статуса;
После вызова функции UpdateWindow, окно окончательно выведено на экран. Теперь программа должна подготовить себя для получения информации от пользователя через клавиатуру и мышь. Windows поддерживает “очередь сообщений” (message queue) для каждой программы, работающей в данный момент в системе Windows. Когда происходит ввод информации, Windows преобразует её в “сообщение”, которое помещается в очередь сообщений программы. Каждое получаемое окном сообщение идентифицируется номером, который содержится в параметре message оконной процедуры. В заголовочных файлах Windows определены идентификаторы, начинающиеся с префикса WM (“window message”) для каждого типа сообщений. Ниже приведены все сообщения используемые в курсовом проекте:
Сообщение WM_CREATE – это первое сообщение, которое Windows посылает объекту View. Оно передаётся, когда каркас приложения вызывает оконную функцию Create, т.е. в тот момент, когда создание окна ещё не закончено и его не видно на экране. Следовательно, обработчик OnCreate пока не может обращаться к Windows-функциям, доступным только после отображения окна. Такие функции можно вызвать из замещённой функции OnInitialUpdate. В программе “Telefon” в обработчике OnCreate() происходит определение количества записей в базе и информация об этом выводится на экран.
Когда пользователь выбирает пункт меню или нажимает кнопку, Windows посылает программе сообщение WM_COMMAND, содержащее идентификатор этого пункта меню или кнопки в младшем слове параметра сообщения. Ниже рассмотрены идентификаторы, соответствующее пунктам меню и кнопкам программы:
IDC_ALL - идентификатор пункта “Все записи” в меню. Выбор этого пункта выводит все записи из базы в список.
IDC_CLEAR – это идентификатор пункта “Очистить” в меню. Выбор этого пункта приводит к очистке заполненных полей.
ID_APP_EXIT
– этому идентификатору в меню
соответствует пункт “Выход”.
При выборе этого пункта
IDC_ADD – идентификатор пункта “Добавить ” в меню. Выбор этого пункта добавляет запись в конец базы данных.
IDC_DELETE – этому идентификатору в меню соответствует пункт “Удалить”. Выбор этого пункта приводит к удалению той записи, которая выделена в данный момент.
Идентификатору IDC_FIND в меню соответствует пункт “Поиск”. Его выбор приводит к поиску записи, данные которой совпадают с данными, введёнными в поля.
Выбор
пункта меню “О программе…”, которому
соответствует идентификатор
Каждому
пункту меню соответствует кнопка с
таким же названием и идентификатором,
которая находится
Windows посылает сообщение WM_CLOSE, когда пользователь закрывает окно через системное меню или когда закрывается родительское окно. Определив, что окно можно безопасно закрыть, следует вызвать функцию OnClose() базового класса, которая и продолжает процесс закрытия. Объект View и соответствующее окно пока остаются активными.
Сообщение WM_DESTROY Windows отправляет вслед за сообщением WM_CLOSE и его обрабатывает функция карты сообщений OnDestroy. Программа, получив сообщение WM_DESTROY, должна считать, что окно отображения уже не видно на экране, но ещё активно – равно как и его дочерние окна. Функцию OnDestroy() нужно обязательно вызывать, но в её теле уже нельзя отменить процесс разрушения объекта View. Это допустимо только в функции OnClose.
3 ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ
Запуск программы осуществляется при открытии файла Telefon.exe, который находится на дискете. При этом на экране появиться окно, в левой верхней части которого будет видна надпись “Телефонный справочник” – это имя программы. Ниже располагается меню, с помощью которого можно выполнить различные действия с данным приложением. При нажатии на пункте меню “Файл”, выпадет, так называемое, всплывающее меню, в котором находится пункт “Выход”. При выборе этого пункта программа закрывается.
Следующий пункт главного меню – это “Опции”, подменю которого содержит пункты “Очистить”, “Добавить”, “Удалить”, “Все записи” и “Поиск”. При выборе первого пункта, произойдёт очистка содержимого полей, в которых находится текст. Второй и третий пункты меню позволяют добавлять и удалять записи из базы. Пункт “Все записи” позволяет отобразить все записи из базы данных. Нажатие на пункте меню ”Поиск” приводит к поиску записи, данные которой совпадают с данными введёнными в поля.
Последним пунктом меню является “Помощь”. Если выбрать этот пункт, то в подменю можно увидеть пункт: “О программе”, который содержит информацию о разработчике и о самой программе.
Под меню располагается панель инструментов, которая дублирует все пункты основного меню. Ещё ниже расположена клиентская область, в которой происходит вывод информации. Здесь, также, расположены основные элементы навигации.
Первое окно – “Телефон”. Здесь вводится телефон абонента.
Для задания фамилии, имени и отчества необходимо заполнить окно “ФИО”.
Для задания адреса абонента, необходимо заполнить окна “Улица”, “Дом” и “Квартира”.
Системные требования: Pentium 133, 16 MB RAM, Windows 95/98/2000 NT/XP.
ЗАКЛЮЧЕНИЕ
В ходе выполнения данного курсового проекта были разработана программа на языке высокого уровня Visual C++. А также изучены возможности данного языка.
Систематизированы и закреплены практические навыки использования ЭВМ, программного обеспечения, существующих средств обслуживания системных программистов, а также теоретические знания по основным разделам курса "XXX". Основное внимание уделено изучению современных операционных систем, способов проектирования приложений, объектно-ориентированному и системному программированию.
При
выполнении курсового проекта произведено
знакомство с реферативными журналами
и другими информационными
Получены
практические навыки работы в среде
Visual C++.
ЛИТЕРАТУРА
1. Петзольд Ч. Программирование под Windows 95. В двух книгах: BHV –
Санкт - Петербург, 1997, silt.
2. Ричард С.Линкер, Том Арчер. Программирование для Windows 98. Библия
разработчика. “Диалектика ” – Москва, 1999.-864 с.: ил.- Парал. тит. англ.
Уч.пос.
3. Джесс Либерти. С++ за 21 день. ”Вильямс” - Москва, 2000.-816 с.: ил. -
Парал.тит. англ.
4. Дэвид Дж. Круглински. Основы С++. “Русская редакция” – Москва, 1997.- 696 с.: ил.
5. Кэйт Грегори.
Использование Visual C++. “Вильямс” –
Москва, 1999.-864 с.: ил.. - Парал.тит. англ.,
уч. пос.
ПРИЛОЖЕНИЕ
// TelefonView.cpp : implementation of the CTelefonView class
//
#include "stdafx.h"
#include "Telefon.h"
#include "TelefonDoc.h"
#include "TelefonView.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//структура содержащая текущую запись
struct
{
char name[20];//имя
char street[20];//улица
char dom[5];//дом
char flat[5];//квартира
char tel[15];//телефон
}
data;
struct
{
char name[20];//имя
char street[20];//улица
char dom[5];//дом
char flat[5];//квартира
char tel[15];//телефон
}
data2[100];
FILE *f;
CString str;
int n=0, kol=0;
bool fnd=false;
int p;
//////////////////////////////
// CTelefonView
IMPLEMENT_DYNCREATE(
BEGIN_MESSAGE_MAP(
//{{AFX_MSG_MAP(
ON_WM_CREATE()
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_CLEAR, OnClear)
ON_BN_CLICKED(IDC_
ON_BN_CLICKED(IDC_FIND, OnFind)
ON_WM_MOUSEMOVE()
ON_BN_CLICKED(IDC_ALL, OnAll)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//////////////////////////////
// CTelefonView construction/destruction
CTelefonView::CTelefonView()
: CFormView(CTelefonView::IDD)
{
//{{AFX_DATA_INIT(
m_street = _T("");
m_tel = _T("");
m_name = _T("");
m_flat = _T("");
m_dom = _T("");
//}}AFX_DATA_INIT
//
TODO: add construction code here
}
CTelefonView::~CTelefonView()
{
}
void CTelefonView::DoDataExchange(
{
CFormView::
//{{AFX_DATA_MAP(
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Text(pDX, IDC_STREET, m_street);
DDX_Text(pDX, IDC_TEL, m_tel);
DDX_Text(pDX, IDC_NAME, m_name);
DDX_Text(pDX, IDC_FLAT, m_flat);
DDX_Text(pDX, IDC_DOM, m_dom);
//}}AFX_DATA_MAP
}
BOOL CTelefonView::PreCreateWindow(
{
// TODO: Modify the Window class or styles here by modifying
//
the CREATESTRUCT cs
return
CFormView::PreCreateWindow(cs)
}
void CTelefonView::OnInitialUpdate(
{