Автор: Пользователь скрыл имя, 10 Сентября 2011 в 19:46, курсовая работа
Предполагается, что в идеальном случае разработка программы делится на три этапа: вначале необходимо добиться ясного понимания задачи, затем определить ключевые понятия, используемые для ее решения, и, наконец, полученное решение выразить в виде программы. Однако, детали решения и точные понятия, которые будут использоваться в нем, часто проясняются только после того, как их попытаются выразить в программе. Именно в этом случае большое значение приобретает выбор языка программирования.
Введение
1. Постановка задачи
2. Общее описание программы
3. Описание классов
4. Описание методов классов
5. Процедура main ()
6. Блок схема процедуры main
Список литературы
Министерство образования и науки Российской Федерации
Федеральное
агентство по образованию
ГОУ ВПО «Уральский государственный технический университет -УПИ»
Факультет ускоренного обучения
Кафедра
микропроцессорной техники
База данных, построенная на основе классов.
КУРСОВАЯ
РАБОТА
Руководитель С.С. Ваулин
Студент гр. СПВ-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");
Информация о работе База данных, построенная на основе классов