База данных, построенная на основе классов

Автор: Пользователь скрыл имя, 10 Сентября 2011 в 19:46, курсовая работа

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

Предполагается, что в идеальном случае разработка программы делится на три этапа: вначале необходимо добиться ясного понимания задачи, затем определить ключевые понятия, используемые для ее решения, и, наконец, полученное решение выразить в виде программы. Однако, детали решения и точные понятия, которые будут использоваться в нем, часто проясняются только после того, как их попытаются выразить в программе. Именно в этом случае большое значение приобретает выбор языка программирования.

Оглавление

Введение


1. Постановка задачи


2. Общее описание программы


3. Описание классов


4. Описание методов классов


5. Процедура main ()


6. Блок схема процедуры main


Список литературы

Файлы: 1 файл

Курсовая Ваулин.doc

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

Министерство  образования и науки Российской Федерации

Федеральное агентство по образованию 
 
 

ГОУ ВПО  «Уральский государственный технический  университет -УПИ»

Факультет ускоренного обучения

Кафедра микропроцессорной техники 
 
 
 
 
 
 
 
 
 
 
 

База  данных, построенная на основе классов.

КУРСОВАЯ  РАБОТА 
 
 
 
 
 
 
 
 
 
 
 

Руководитель       С.С. Ваулин

Студент гр. СПВ-35012УК    Зубарев А.А

    
 
 
 

Екатеринбург 2008 г.

 

Содержание 
 
 
 
 

Введение 

1. Постановка  задачи 

2. Общее описание  программы 

3. Описание классов 

4. Описание методов классов 

5. Процедура main () 

6. Блок схема  процедуры main 

Список литературы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение 

     Предполагается, что в идеальном случае разработка программы делится на три этапа: вначале необходимо добиться ясного понимания задачи, затем определить ключевые понятия, используемые для ее решения, и, наконец, полученное решение выразить в виде программы. Однако, детали решения и точные понятия, которые будут использоваться в нем, часто проясняются только после того, как их попытаются выразить в программе. Именно в этом случае большое значение приобретает выбор языка программирования.

      Во  многих задачах используются понятия, которые трудно представить в программе в виде одного из основных типов или в виде функции без связанных с ней статических данных. Такое понятие может представлять в программе класс. Класс - это тип; он определяет поведение связанных с ним объектов: их создание, обработку и уничтожение. Кроме этого, класс определяет реализацию объектов в языке, но на начальных стадиях разработки программы это не является и не должно являться главной

заботой. Для  написания хорошей программы  надо составить такой набор классов, в котором каждый класс четко представляет одно понятие. Обычно это означает, что программист должен сосредоточиться на вопросах: Как создаются объекты данного класса? Могут ли они копироваться и

(или) уничтожаться? Какие операции можно определить над этими объектами? Если на эти вопросы удовлетворительных ответов не находится, то, скорее всего, это означает, что понятие не было достаточно ясно сформулировано. Тогда, возможно, стоит еще поразмышлять над задачей и

предлагаемым  решением, а не немедленно приступать к программированию, надеясь в  процессе него найти ответы. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1. Постановка  задачи 

     1.1 Создать класс, обеспечивающий хранение данных, и защищающий эти данные от использования вне класса.

     1.2 Создать класс, обеспечивающий  хранение экземпляров предыдущего  класса в списке.

     1.3 Написать программу которая выполняла следующие процессы: создание нового элемента, удаление элемента из списка, поиск элемента в списке, сохранение списка, вывод списка . 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Общее описание программы. 
 
 

     В данном курсовом проекте разрабатывается  примитивная программа сотрудников предприятия. В программе присутствуют два класса: класс elem и класс sp. Экземпляр класса elem содержит информацию об одном сотруднике. Класс sp предназначен для хранения экземпляров класса elem в полносвязном списке и возможностью изменения списка (добавление нового элемента, удаление элемента, сохранение списка в файле и т.д.). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

3. Описание классов. 
 
 

3.1 Класс elem. 

class elem

{

char fam[30],oth[30],name[30];

int nom;

elem *p1,*p2;

public:

void set_elem ();

void show_elem();

friend class sp;

}  ; 

     Класс содержит строковые массивы fam, name, oth в которых хранится информация соответственно об фамилии, имени, отчестве сотрудника и поле целого типа nom для хранения уникального номера сотрудника. Поля указатели p1 и p2 предназначены ля организации хранения экземпляров класса в виде полносвязного списка p1 – указатель на предыдущий элемент, а p2 – указатель на следующий элемент списка. В классе объявлены два метода set_elem и show_elem. Первый предназначен для ввода данных о сотруднике, а второй для вывода информации о сотруднике на экран (ниже данные методы рассмотрены более поробно). Класс sp, рассмотренный ниже, объявлен дружественным классу elem ( friend class sp ). Дружественный потому что методы класса sp должны непосредственно изменять указатели в классе elem  

3.2 Класс sp. 

class sp

{

elem *head,*temp1,*temp2;

public:

void init ();

void new_el ();

void del_el ();

void poisk ();

void show_sp();

void save ();

void free_m();

} 
 
 
 

 

     Поле  указатель head типа elem является вершина списка и предназначено для хранения указателя на первый элемент списка. Назначение полей temp1 и temp2 будет понятно при рассмотрении метода new_el. 

В классе объявлены  семь методов: 

init – инициализация экземпляра класса (инициализация списка).

new_el – создание нового элемента списка.

del_el – удаление выбранного элемента списка.

poisk – поиск элемента по номеру.

show_sp – вывод списка на экран.

save – сохранение списка в файле.

free_m – освобождение памяти при выходе из программы. 

Каждый метод подробно рассмотрен в следующем разделе. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 

4. Описание  методов классов. 
 

4.1 Класс elem.

4.1.1 Метод set_elem. 

void elem::set_elem ()

{

clrscr ();

printf ("Conduct surname\n");

scanf("%s",fam);

printf ("Conduct patronymic\n");

scanf("%s",oth);

printf ("Conduct name\n");

scanf("%s",name);

printf("Conduct number\n");

scanf("%u",&nom);

} ;

       С помощью функции printf пользователю предлагается вести имя, фамилию, отчество или номер а с помощью функции scanf введённые с клавиатуры данные записываются в соответствующее поле в соответствующем формате. 
 
 
 
 
 
 
 

4.1.2 Метод show_elem. 

void elem::show_elem()

{

printf("\nSurname of the employee:      %s",fam);

printf("\n\nPatronymic of the employee:   %s",oth);

printf("\n\nName of the employee:         %s",name);

printf("\n\nOrganic number:               %u\n\n",nom);

};

 С помощью функции printf  выводятся донные о сотруднике.

 
 
 
 
 
 
 
 
 

4.2 Класс sp. 

4.2.1 Метод new_el. 

void sp::new_el()

{

temp1=new elem;

temp1->set_elem(); 

if (head==NULL)

{

head=temp1;

temp1->p1=NULL;

temp1->p2=NULL;

temp2=temp1;

}

else

{

temp2->p2=temp1;

temp1->p1=temp2;

temp1->p2=NULL;

temp2=temp1;

}

} ; 

Предназначен  для создания нового элемента и добавления его в конец списка. Указатели temp1 и temp2, объявленные в классе предназначены для хранения промежуточных данных temp1, хранит адрес нового элемента, а temp2 адрес предыдущего элемента. Память для нового элемента выделяется процедурой new, затем методом set_elem заполняются поля элемента. Далее проверяется, является ли элемент первым в списке if (head==NULL) и, если да, то указателю head присваивается указатель на данный элемент и также указателю temp2 для использования его при добавлении нового элемента. Если же  список уже существует, то элемент добавляется в коней списка. Предыдущий элемент связывается с новым (temp2->p2=temp1), а новый с предыдущим (temp1->p1=temp2). Указателю на следующий элемент присваивается NULL (temp1->p2=NULL). Указатель на новый элемент сохраняется в переменной temp2  (temp2=temp1), для использования его при добавлении нового элемента списка. 

 
 
 
 
 
 
 
 
 
 

4.2.2 Метод free_m. 

void sp::free_m ()

{

elem *q1,*q2;

if (head!=NULL)

{

q1=head;

while (q1->p2!=NULL)

{

q2=q1->p2;

delete q1;

q1->p1=NULL;

q1->p2=NULL;

q1=q2;

}

delete q1;

delete head;

head=NULL;

q1=NULL;

}

} 
 

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

Указатель q1 нужен для хранения адреса текущего элемента списка, а q2 следующего. q1 присваивается адрес первого элемента списка (q1=head), затем в условии цикла, проверяется не является ли текущий элемент последним (q1->p2!=NULL) и если условие истинно, то в q2 сохраняется адрес следующего элемента (q2=q1->p2), а текущий освобождается (delete q1). Затем q1 присваивается адрес текущего элемента (q1=q2) и цикл повторяется. Далее освобождается последний элемент списка и голова списка (delete head). Так же, проверяется существует ли список вообще (if (head!=NULL) ) и, если нет то выводится соответствующее сообщение (printf ("The list does not exist\n\n"). 
 
 

 
 
 
 
 
 
 
 
 
 
 
 

4.2.3 Метод del_el. 
 

void sp::del_el()

{

elem *p,*tp1,*tp2;

int t1=1,t2=0; 

if (head!=NULL)

{

p=head;

while (p->p2!=NULL)

{

p=p->p2;

++t1;

}

printf("The base conteins %u",t1);

printf(" of elements.\n\n");

Информация о работе База данных, построенная на основе классов