Помощь в написании студенческих работ
Антистрессовый сервис

База данных «Студенты»

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

До внедрения первых ЭВМ в систему высшего образования вести учёт за студентами, которые в данный момент обучаются, которые только поступили или отчислились было крайне трудно. Когда на появились первые ЭВМ, то одновременно появились и программы систематизирующие и ускоряющие учёт студентов. Эти программы представляют собой базы данных в которых хранятся все данные о студентах. Выполняется… Читать ещё >

База данных «Студенты» (реферат, курсовая, диплом, контрольная)

1. Техническое задание

1.1 Области применения программы

1.2 Основания для разработки

1.3 Назначение разработки

1.4 Требования к программе или программному изделию

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

2.1Общие сведения

2.2 Назначение и область применения

2.3 Функциональное назначение

2.4 Описание логической структуры

2.5 используемые технические и программные средства

2.6 Вызов и загрузка

2.7 Входные данные

2.8 Выходные данные

3. Руководство пользователя

3.1 Установка и запуск программы

3.2 Наиболее важные функции приложения с подробным руководством по его использованию и рисунками

3.3 Возможные проблемы и пути их устранения

Заключение

Список использованных источников

Листинг программы

Введение

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

Область применения программного продукта. Программный продукт может быть использован для широкого потребления среди пользователей.

До внедрения первых ЭВМ в систему высшего образования вести учёт за студентами, которые в данный момент обучаются, которые только поступили или отчислились было крайне трудно. Когда на появились первые ЭВМ, то одновременно появились и программы систематизирующие и ускоряющие учёт студентов. Эти программы представляют собой базы данных в которых хранятся все данные о студентах.

База данных — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.

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

Программный продукт должен быть разработан на языке программирования высокого уровня Turbo C, использовать принципы объектно-ориентированного программирования и структурный подход к решению поставленных задач.

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

1. Техническое задание

1.1 Области применения программы Программный продукт должен использоваться для широкого потребления среди пользователей. В том числе в высших учебных заведениях, при учете сведений о студентах.

1.2 Основания для разработки Основанием для разработки данной программы является получение задания на создание курсовой работы «База данных студент». И закрепление знаний полученных в ходе курса изучения дисциплины технология программирования.

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

1.4 Требования к программе или программному изделию Необходимо реализовать программный продукт, позволяющий использовать структурированную базу данных. В памяти ЭВМ необходимо хранить сведения о студентах некоторого учреждения и иметь возможность выдавать справки по личному составу, а также корректировать сохраняемые данные при изменениях сведений. Таким образом, нужна база данных о студентах. Для каждого студента должно быть указанно:

· Фамилия

· Инициалы

· Курс

· Факультет

· Название специальности

· Код группы

· Успеваемость При работе с этой базой данных потребуются следующие функции:

· Ввод сведений о новом студенте

· Удаление сведений о студенте

· Вывод на экран дисплея текущего состояния базы данных

· Запись сведений о студенте в файл

· Загрузку содержимого базы данных из файла

· Поиск студента по его фамилии

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

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

Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определённая семантика и допустимые операции.

Программный продукт написан на языке программирования высокого уровня Turbo C.

Для функционирования программы необходима операционная система Windows 7, Windows Vista или Windows XP.

2.2 Назначение и область применения Базы данных необходимы для хранения и фильтрации информации, для её обработки и обмена. Программный продукт может быть использован для широкого потребления среди пользователей.

2.3 Функциональное назначение Программный продукт позволяет значительно упростить и автоматизировать учёт сведений о студентах, а так же сократить время при работе с большим объемом данных.

2.4 Описание логической структуры Программа начинается с подключения библиотек необходимых для работы определенных функций.

#include — для работы с файлами, структурами и функциями.

#include — для функции strcmp ().

#include — для функции очистки экрана.

Определение глобальных объектов: структурного типа, указателей структуры, массив структур.

struct student

{

char name[20];

char inik[4];

int curs;

char fak[5];

char jobname[20];

char job[9];

int usp;

struct student *prior;

struct student *next;

}

st[100];

const int M=100;

struct control

{

int nb;

int nf;

struct student *bbeg;

struct student *bend;

struct student *fbeg;

struct student *fend;

} ctrl;

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

int init (void)

{

struct student *point=st;

int i;

ctrl.nb=0;

ctrl.nf=0;

ctrl.bbeg=NULL;

ctrl.bend=NULL;

ctrl.fbeg=st;

ctrl.fend=st;

point=st;

printf («—————————————-»);

printf («|inicializacia massiva|»);

printf («——————————————-nnn»);

for (i=0;i

{

if (ctrl.nf≠0)

{

point -> prior=point-1;

point -> next=point+1;

}

else

{

point -> prior=NULL;

point -> next=point+1;

}

point++;

ctrl.nf++;

ctrl.fend++;

}

ctrl.nf++;

point ->prior=point-1;

point -> next=NULL;

return 0;

}

int fr (struct student *ptr)

{

if (ctrl.nb==M)

{

ptr->prior=NULL;

ptr->next=NULL;

ctrl.fbeg->prior=ptr;

ctrl.fbeg=ptr;

}

else

{

ptr->prior=NULL;

ptr->next=ctrl.fbeg;

ctrl.fbeg->prior=ptr;

ctrl.fbeg=ptr;

}

ctrl.nb—;

ctrl.nf++;

return 0;

}

Возвращение свободного элемента в список свободных элементов.

int fr (struct student *ptr)

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

struct student *find (char *nam)

{

int i;

struct student *ptf;

ptf=ctrl.bbeg;

for (i=0;i

{

if ((strcmp (nam, ptf->name))==0)

return ptf;

ptf=ptf->next;

}

return NULL;

}

Поиск нужного элемента в списке занятых элементов и удаление найденного элемента (возврат элемента в список свободных элементов).

int delet (void)

{

char nam[20];

int i;

struct student *ptr;

printf («—————————————»);

printf («|Funkcia udalenia elementa|»);

printf («—————————————-n»);

if (ctrl.nb==0)

{

printf («Spicok zaniatih elementov pustn»);

return -1;

}

printf («Vvedite Familiu: n»);

scanf («%s», nam);

if ((ptr=find (nam))==0)

{

printf («Familia ne neidenan»);

return -1;

}

if (ptr==ctrl.bbeg)

{

if (ctrl.nb==1)

{

ctrl.bend=NULL;

fr (ptr);

return 0;

}

else

{

ctrl.bbeg=ptr->next;

ctrl.bbeg->prior=NULL;

fr (ptr);

return 0;

}

}

else

{

if (ptr==ctrl.bend)

{

ptr->prior->next=NULL;

ctrl.bend=ptr->prior;

fr (ptr);

return 0;

}

else

{

ptr->prior->next=ptr->next;

ptr->next->prior=ptr->prior;

fr (ptr);

return 0;

}

}

}

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

int input (void)

{

struct student *ptr;

printf («————————————-»);

printf («|funkcia vstavki elemntov |»);

printf («——————————————nn»);

if (ctrl.nf==0)

{

printf («Svobodnih elementov netn»);

return -1;

} {

ptr = ctrl. fbeg;

printf («Vvedite familiu:»);

scanf («%s», ptr->name);

printf («Vvedite iniciali:»);

scanf («%s», ptr->inik);

printf («Vvedite curs:»);

scanf («%d» ,&ptr->curs);

printf («Vvedite fakultet:»);

scanf («%s», ptr->fak);

printf («Vvedite naimenovanie specialnosti:»);

scanf («%s», ptr->jobname);

printf («Vvedite cod gruppi:»);

scanf («%s», ptr->job);

printf («Vvedite uspevaemost:»);

scanf («%d» ,&ptr->usp);

if (ctrl.nf==1)

{

ctrl.fbeg=NULL;

ptr->next=NULL;

ptr->prior=ctrl.bend;

ctrl.bend->next=ptr;

ctrl.bend=ptr;

ctrl.fend=NULL;

}

else

{

if (ctrl.nb==0)

ctrl.bbeg=ptr;

ctrl.fbeg=ptr->next;

ptr->next=NULL;

ptr->prior=ctrl.bend;

ctrl.bend->next=ptr;

ctrl.bend=ptr;

ctrl.fbeg->prior=NULL;

}

ctrl.nb++;

ctrl.nf—;

return 0;

} }

Печать занятых элементов структуры.

int print (void)

int i;

struct student *ptr;

ptr=ctrl.bbeg;

printf («DATEBASE „STUDENT“ nn»);

if (ctrl.nb==0)

printf («__________________n»);

printf («

printf («________________________________________________________________________________»);

printf («

Запись в файл на диске всех элементов массива структур. Открытие файла для записи.

int save (void)

{

int i, k;

struct student *ptr;

char *c;

int *pti;

FILE *fl;

if ((fl=fopen («bdd.txt» ," w"))==NULL)

Загрузка из файла всего массива структур. Открытие файла для чтения.

int load (void)

{

int i;

struct student *ptr;

int *pti;

char *c, d;

FILE *fl;

if ((fl=fopen («bdd.txt» ," r"))==NULL)

Поиск студента по фамилии. Поиск нужного элемента в списке занятых элементов. Печать найденного элемента.

int postav (void)

{

char fam[20];

int i;

struct student *ptr;

printf («——————————————»);

printf («|Funkcia poiska studenta|»);

printf («—————————————-n»);

if (ctrl.nb==0)

{

printf («Spicok zaniatih elementov pustn»);

return -1;

}

printf («Vvedite Familiu: n»);

scanf («%s», fam);

if ((ptr=find (fam))==0)

{

printf («nFamilia ne neidenan»);

return -1;

}

if (ptr==ctrl.bbeg)

{

if (ctrl.nb==1)

Fakultet

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

void main (void)

{

char numb[10];

clrscr ();

while (1)

1}.

2.5 Используемые технические и программные средства Программный комплекс должен корректно работать на компьютере со следующими техническими характеристиками:

· Операционная система Windows 7/ Vista/ XP

· процессор Pentium III 1000 МГц;

· оперативная память объемом 256 Мб;

· жесткий диск объемом 10 Гб;

· видеоадаптер SVGA;

· клавиатура;.

2.6 Вызов и загрузка Программа занимает на диске 12 288 байт памяти. Продукт должен размещаться в виде файлов на CD дисках. В процессе работы могут использоваться Flash, CD-R/-RW, DVD-R/RW или другие носители информации.

2.7 Входные данные Входными данными для программного продукта являются данные, вводимые пользователем с клавиатуры, такие как:

· Фамилия

· Инициалы

· Курс

· Факультет

· Название специальности

· Код группы

· Успеваемость

· Имеющийся в наличии файл базы данных «bdd.txt»

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

программирование turbo приложение

2.8 Выходные данные Выходными данными для программного продукта являются значения, выводимые программой пользователю на экран или полученные в процессе обработки данных, такие как:

· файл базы данных «bdd.txt»;

· таблица, созданная пользователем в результате работы программы;

· таблица поиска с выведенными на экран значениями, введенными пользователем;

· количество всех записей в базе данных.

3. Руководство пользователя

3.1 Установка и запуск программы Программа запускается двойным щелчком мыши с диска в котором она расположена.

3.2 Наиболее важные функции приложения с подробным руководством по его использованию и рисунками При запуске программы пользователю предлагается выбрать один из пунктов меню можно увидеть на рисунке 1.

Рисунок 1. Главное меню.

При выборе шестого пункта инициализируется (подготавливается) база данных (см. Рисунок 2). Это первое действие, которое должен выполнить пользователь при работе с базой данных, — подготовить ее к работе (инициализировать).

Рисунок 2. Инициализация базы данных.

При выборе первого пункта производится ввод сведений о новом студенте (см. Рисунок 3).

Рисунок 3. Ввод сведений о студенте.

При выборе третьего пункта выполняется печать списка занятых элементов и общее число элементов структуры (см. Рисунок 4).

Рисунок 4. Печать базы данных.

При выборе второго пункта пользователю предлагается ввести фамилию студента, которого нужно удалить из существующей базы данных (см. Рисунок 5). Далее производится его удаление. Если фамилия студента не найдена, то об этом выдается сообщение (см. Рисунок 6).

Рисунок 5. Ввод фамилии для удаления студента из базы данных.

Рисунок 6. Сообщение о том, что введенная фамилия не найдена.

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

При выборе пятого пункта выводится сообщение о том, что производится загрузка базы данных из файла, и производится запрос на подтверждение загрузки базы данных из файла. Если пользователь ввел символы `n' или 'N', то загрузка базы данных из файла отменяется (см. Рисунок 7).

Рисунок 7. Отмена на загрузку базы данных из файла.

При выборе седьмого пункта пользователю предлагается ввести фамилию искомого студента. Если фамилия студента не найдена, то об этом выводится сообщение. Если введенная фамилия находится в существующей базе данных, то производится печать всех сведений о найденном студенте (см. Рисунок 8).

Рисунок 8. Печать сведений о найденном студенте.

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

3.3 Возможные проблемы и пути их устранения При тестировании программы проблем и ошибок не было обнаружено. Программа работает правильно, отвечает всем пунктам технического задания и не нуждается в устранении неполадок.

Заключение

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

Также данные записываются в файл на жесткий диск, тем самым мы сохраняем их. Уже поиск совершается в самом файле.

При разработке программе использовались функции, массивы, циклы, указатели.

Разработанная программа позволяет повысить эффективность обработки данных и сократить время на поиск необходимых записей.

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

Список использованных источников

1. В. Подбельский, С. Фомин «Программирование языке Си», Москва «Финансы и статистика», 1999 г.

2. Б. Керниган, Д. Ритчи «Язык программирования Си», Москва «Финансы и статистика», 1992 г.

3. С. О. Бочков, Д. М. Субботин «Язык программирования Си для персонального компьютера», Москва СП «Диалог» 1996 г.

4. Б. И. Березин, С. Б. Березин «Начальный курс С и С++», Москва «Диалог-Мифи"1996 г.

5. Е. И. Козел, Л. М. Романовская, Т. В. Русс «От Си к С++», Москва «Финансы и статистика» 1993 г.

Листинг программы

#include

#include

#include

struct student

{

char name[20];

char inik[4];

int curs;

char fak[5];

char jobname[20];

char job[9];

int usp;

struct student *prior;

struct student *next;

}

st[100];

const int M=100;

struct control

{

int nb;

int nf;

struct student *bbeg;

struct student *bend;

struct student *fbeg;

struct student *fend;

} ctrl;

int init (void)

{

struct student *point=st;

int i;

ctrl.nb=0;

ctrl.nf=0;

ctrl.bbeg=NULL;

ctrl.bend=NULL;

ctrl.fbeg=st;

ctrl.fend=st;

point=st;

printf («—————————————-»);

printf («|inicializacia massiva|»);

printf («——————————————-nnn»);

for (i=0;i

{

if (ctrl.nf≠0)

{

point -> prior=point-1;

point -> next=point+1;

}

else

{

point -> prior=NULL;

point -> next=point+1;

}

point++;

ctrl.nf++;

ctrl.fend++;

}

ctrl.nf++;

point ->prior=point-1;

point -> next=NULL;

return 0;

}

int fr (struct student *ptr)

{

if (ctrl.nb==M)

{

ptr->prior=NULL;

ptr->next=NULL;

ctrl.fbeg->prior=ptr;

ctrl.fbeg=ptr;

}

else

{

ptr->prior=NULL;

ptr->next=ctrl.fbeg;

ctrl.fbeg->prior=ptr;

ctrl.fbeg=ptr;

}

ctrl.nb—;

ctrl.nf++;

return 0;

}

struct student *find (char *nam)

{

int i;

struct student *ptf;

ptf=ctrl.bbeg;

for (i=0;i

{

if ((strcmp (nam, ptf->name))==0)

return ptf;

ptf=ptf->next;

}

return NULL;

}

int delet (void)

{

char nam[20];

int i;

struct student *ptr;

printf («—————————————»);

printf («|Funkcia udalenia elementa|»);

printf («—————————————-n»);

if (ctrl.nb==0)

{

printf («Spicok zaniatih elementov pustn»);

return -1;

}

printf («Vvedite Familiu: n»);

scanf («%s», nam);

if ((ptr=find (nam))==0)

{

printf («Familia ne neidenan»);

return -1;

}

if (ptr==ctrl.bbeg)

{

if (ctrl.nb==1)

{

ctrl.bend=NULL;

fr (ptr);

return 0;

}

else

{

ctrl.bbeg=ptr->next;

ctrl.bbeg->prior=NULL;

fr (ptr);

return 0;

}

}

else

{

if (ptr==ctrl.bend)

{

ptr->prior->next=NULL;

ctrl.bend=ptr->prior;

fr (ptr);

return 0;

}

else

{

ptr->prior->next=ptr->next;

ptr->next->prior=ptr->prior;

fr (ptr);

return 0;

}

}

}

int input (void)

{

struct student *ptr;

printf («————————————-»);

printf («|funkcia vstavki elemntov |»);

printf («——————————————nn»);

if (ctrl.nf==0)

{

printf («Svobodnih elementov netn»);

return -1;

} {

ptr = ctrl. fbeg;

printf («Vvedite familiu:»);

scanf («%s», ptr->name);

printf («Vvedite iniciali:»);

scanf («%s», ptr->inik);

printf («Vvedite curs:»);

scanf («%d» ,&ptr->curs);

printf («Vvedite fakultet:»);

scanf («%s», ptr->fak);

printf («Vvedite naimenovanie specialnosti:»);

scanf («%s», ptr->jobname);

printf («Vvedite cod gruppi:»);

scanf («%s», ptr->job);

printf («Vvedite uspevaemost:»);

scanf («%d» ,&ptr->usp);

if (ctrl.nf==1)

{

ctrl.fbeg=NULL;

ptr->next=NULL;

ptr->prior=ctrl.bend;

ctrl.bend->next=ptr;

ctrl.bend=ptr;

ctrl.fend=NULL;

}

else

{

if (ctrl.nb==0)

ctrl.bbeg=ptr;

ctrl.fbeg=ptr->next;

ptr->next=NULL;

ptr->prior=ctrl.bend;

ctrl.bend->next=ptr;

ctrl.bend=ptr;

ctrl.fbeg->prior=NULL;

}

ctrl.nb++;

ctrl.nf—;

return 0;

} }

int print (void)

int i;

struct student *ptr;

ptr=ctrl.bbeg;

printf («DATEBASE „STUDENT“ nn»);

if (ctrl.nb==0)

Baza dannih pusta

printf («________________________________________________________________________________»);

printf («

int save (void)

{

int i, k;

struct student *ptr;

char *c;

int *pti;

FILE *fl;

if ((fl=fopen («bdd.txt» ," w"))==NULL)

{

perror («bdd.txt»);

return -1;

}

if (ctrl.nb==0)

{

puts («Baza dannih pustan»);

puts («Zapis na disk ne proizvoditsian»);

return -1;

}

else

{

puts («Proizvoditsia zapis BD v fail»);

ptr=st;

pti=&ctrl.nb;

c=(char*)pti;

for (i=0;i

putc (*c++, fl);

c=(char*)ptr;

for (k=0;k

putc (*c++, fl);

fclose (fl);

return 0;

}}

int load (void)

{

int i;

struct student *ptr;

int *pti;

char *c, d;

FILE *fl;

if ((fl=fopen («bdd.txt» ," r"))==NULL)

{

perror («bdd.txt»);

return -1;

}

if (ctrl.nb==0)

puts («Baza dannih pustan»);

if (ctrl.nb ≠0)

{

puts («Baza dannih v osnovnoi pamiati ne pustan»);

puts («Proizvodit zagruzku? [y, n]: «);

scanf («%s» ,&d);

if (d=='N' || d=='n')

{

puts («Zapros na zagruzku bazi otmenenn»);

return 1;

}

}

puts («Proizvoditsia zagruzka bazi dannihn»);

pti=&ctrl.nb;

c=(char*)pti;

for (i=0; i

*c++=getc (fl);

ptr=st;

c=(char*)ptr;

for (i=0;i

{

if ((*c=getc (fl))≠EOF)

c++;

else

{

fclose (fl);

return 0;

}

}

return 0;

}

int postav (void)

{

char fam[20];

int i;

struct student *ptr;

printf («——————————————»);

printf («|Funkcia poiska studenta|»);

printf («—————————————-n»);

if (ctrl.nb==0)

{

printf («Spicok zaniatih elementov pustn»);

return -1;

}

printf («Vvedite Familiu: n»);

scanf («%s», fam);

if ((ptr=find (fam))==0)

{

printf («nFamilia ne neidenan»);

return -1;

}

if (ptr==ctrl.bbeg)

{

if (ctrl.nb==1)

—————;

else

}

else

{

if (ptr==ctrl.bend)

else

Uspevaemost

}

}

void main (void)

{

char numb[10];

clrscr ();

while (1)

}

Показать весь текст
Заполнить форму текущей работой