Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Создание базы данных, хранящей информацию о студентах учебного заведения

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Создание файла со списком студентов. Реализация программы для работы с "базой данных", которая позволяет добавить, удалить, редактировать, сохранять информацию о студентах. Упорядочивание списка студентов методом прямого слияния и поиск по базе.
Краткое сожержание материала:

Размещено на

Федеральное агентство связи

Сибирский государственный университет телекоммуникаций и информатики

Кафедра прикладной математики и кибернетики

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

"Информационные технологии"

ВАРИАНТ 2

Выполнил: Голубев Антон

Проверил: Ракитский Антон Андреевич

Новосибирск 2014

Содержание

1. Задание к курсовой

2. Теория к курсовой работе

A) Сортировка методом прямого слияния

B) Односвязные списки

3. Код программы

4. Работа функций

5. Вывод

1. Задание к курсовой

Необходимо создать файл со списком студентов в следующем формате:

В первой строке файла находится число N - количество строк с описаниями студентов (каждая строка соответствует описанию одного студента). В создаваемом файле должно быть не менее 10 студентов, т.е. .

В последующих Nстроках представлена информация о студентах. Каждая строка содержит: фамилию студента, имя, номер группы, дата рождения в формате день/месяц/год (dd/mm/yyyy), оценка за первый контрольный срок и оценка за второй контрольный срок. Все данные отделены друг от друга ровно одним пробелом, не содержат пробелов внутри и следуют строго в описанном порядке.

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

· Добавить студента

· Удалить студента

· Редактировать информацию о студенте

· Сохранить информацию о студентах в файл

· Загрузить информацию о студентах из файла

· Упорядочить студентов и вывести список на экран

· Найти студента

· Выйти из программы

Вся информация о студентах должна храниться в виде динамического списка. Для упорядочивания студентов использоватьбыструю сортировку(QuickSort).

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

Для поиска студента необходимо вводить фамилию, имя и номер группы. Чтобы упростить выполнение работы, будем считать, что не существует двух таких студентов, у которых все три параметра совпадают.

база данные информация

2. Теория к курсовой работе

A) Метод быстройсортировки

Метод Хоара или метод быстрой сортировки заключается в следующем. Возьмем произвольный элемент массива x. Просматривая массив слева, найдем элемент ai ? x. Просматривая массив справа, найдем aj? x. Поменяем местами aiи aj. Будем продолжать процесс просмотра и обмена, до тех пор пока i не станет больше j. Тогда массив можно разбить на две части: в левой части все элементы не больше x, в правой части массива не меньше x. Затем к каждой части массива применяем тот же алгоритм.

Трудоемкость метода существенно зависит от выбора элемента x, который влияет на разделение массива. Максимальные значения M и Cдля метода быстрой сортировки достигаются при сортировке упорядоченных массивов (в прямом и обратном порядке). Тогда в этом случае в одной части остается только один элемент (минимальный или максимальный), а во второй - все остальные элементы. Выражения для M и С имеют следующий вид

M=3(n-1),C=(n2+5n+4)/2

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

Элемент am называется медианой для элементов aL…aR, если количество элементов меньших am равно количеству элементов больших amс точностью до одного элемента (если количество элементов нечетно).

Минимальная трудоемкость метода Хоара достигается в случае, когда на каждом шаге алгоритма в качестве ведущего элемента выбирается медиана массива. Количество сравнений в этом случае C = (n+1)log(n+1)-(n+1). Количество пересылок зависит от положения элементов, но не может быть больше одного обмена на два сравнения. Поэтому количество пересылок - величина того же порядка, что и число сравнений. Асимптотические оценки для средних значений M и Cимеют следующий вид.

С=О(nlogn), М=О(nlogn) при n > ?.

Метод Хоара неустойчив.

B) Динамический список

Динамический список - это последовательность структур, каждая из которых содержит ссылку, связывающую её с другой структурой. Для организации списков используются структуры, состоящие из двух смысловых частей - информационной и дополнительной. Информационная часть содержит подлежащую обработке информацию, в дополнительной находятся указатели на последующую или предыдущую структуру списка:

Structst { char data[20];

structst *next; }; // Указательнаструктуруst

Здесь при описании указателя используем ещё не описанный объект structst *next , который будет служить ссылкой на соседний элемент списка. В зависимости от метода доступа к элементам линейного списка различают разновидности линейных списков. Наиболее известны списки, называемые стеком и очередью.Стек можно представить как стопку книг на столе, где добавление или взятие новой книги возможно только сверху. Таким образом, операции добавления и удаления элемента, а также доступа к элементу выполняются только в конце списка. Очередь - это список, где элементы удаляются из начала списка, а добавляются в конец списка (как обыкновенная очередь в магазине).

Пример создания и просмотра стека. Пусть требуется ввести некоторую последовательность символов, заканчивающуюся точкой, и напечатать ее в обратном порядке.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

typedefstructst

{ charch;

structst *next;

} stack;

main()

{ stack *p,*q;

char a;

p=NULL;

system (“CLS”);

// заполнениестека

do

{ a=getchar();

q=(stack *)malloc(sizeof(stack));

q->next=p;

p=q;

q->ch=a;

} while(a!='.');

// печать стека c освобождением памяти

do

{ p=q->next;

free(q);

q=p;

printf("%c",p->ch);

} while(p->next!=NULL);

getch();

return 0;

}

Пример создания и просмотра односвязного списка. Пусть требуется поместить в список фамилии и вывести их в порядке очерёдности. В данном примере используем операторы new и delete.

#include<stdio.h>

#include <conio.h>

#include <stdlib.h>

typedefstructst

{ char data[20];

structst *next;} spis;

spis * create(void); //функциясозданиясписка

voidlist(spis *head); // функция просмотра списка

voidfree_spis(spis *head); //функцияосвобожденияпамяти

main()

{ system ("CLS");

spis *head; // адресголовысписка

head= create();

list (head);

free_spis (head);

getch();

}

spis * create(void)

{ spis *p, *pred, *h;

// pred - указатель на предыдущую структуру

// h- указатель на первую структуру

h=pred=newspis; //выделение памяти для первой структуры

printf(" fam: "); scanf("%s", pred->data);

do { p=new spis;

printf("\n fam: "); scanf("%s", p->data);

pred->next=p; //ссылка из предыдущей на текущую

pred=p; // сохранение адреса текущей

printf(" закончить? y/n ");

} while (getch()='y');

p->next=NULL;

return h;

}

void list(spis *head)

{ spis *p;

p=head;

while (p!=NULL) // пока не конец списка

{ printf("\n fio: %s",p->data);

p=p->next; // продвижение по списку

}

}

voidfree_spis(spis *head)

{ spis *p,*q;

q=p=head;

while (p!=NULL)

{

p=q->next;

delete q;

q=p;

}

head=NULL;

}

3. Код программы

#include <locale.h>

#include<stdio.h>

#include<stdlib.h>

#include<stri...

Другие файлы:

База данных "Кинотеатры (информация для зрителей)"
Создание базы данных, хранящей данные о фильмах, в которой пользователи, используя строку запроса, могут получить нужную информацию по интересующему и...

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

Разработка базы данных "Оборудование компьютерных классов учебного заведения"
База данных для автоматизации работы информационно-технической службы учебного заведения в области учета оборудования. Даталогическое проектирование....

Программный комплекс классифицирования выпускников высшего учебного заведения (учебный аспект)
Проектирование программного обеспечения для классифицирования выпускников высшего учебного заведения. Выбор системы управления базами данных и языка п...

Автоматизация учета студентов в ВУЗе
Целью курсового проектирования является обеспечение качественного, комфортного и быстрого учета, поиска и ведения уже существующей и новой поступающей...