База данных "Студенты"
Разработка программного продукта на языке программирования Turbo C. Назначение и область применения программы. Установка и запуск программы. Наиболее важные функции приложения с руководством по их использованию. Возможные проблемы и пути их устранения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.09.2012 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
Введение
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, предназначенный для учёта, данных о студенте университета.
Область применения программного продукта. Программный продукт может быть использован для широкого потребления среди пользователей.
До внедрения первых ЭВМ в систему высшего образования вести учёт за студентами, которые в данный момент обучаются, которые только поступили или отчислились было крайне трудно. Когда на появились первые ЭВМ, то одновременно появились и программы систематизирующие и ускоряющие учёт студентов. Эти программы представляют собой базы данных в которых хранятся все данные о студентах.
База данных -- организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.
Существует множество других определений, отражающих скорее субъективное мнение тех или иных авторов о том, что означает этот термин в их понимании, однако общепризнанная единая формулировка отсутствует. Наиболее часто используются следующие отличительные признаки: База данных хранится и обрабатывается в вычислительной системе. Таким образом, любые внекомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются. [2].
Программный продукт должен быть разработан на языке программирования высокого уровня Turbo C, использовать принципы объектно-ориентированного программирования и структурный подход к решению поставленных задач.
Результатами выполнения курсовой работ должен стать готовый программный продукт, обеспечивающий всем требованиям технического задания.
1. Техническое задание
1.1 Области применения программы
Программный продукт должен использоваться для широкого потребления среди пользователей. В том числе в высших учебных заведениях, при учете сведений о студентах.
1.2 Основания для разработки
Основанием для разработки данной программы является получение задания на создание курсовой работы “База данных студент”. И закрепление знаний полученных в ходе курса изучения дисциплины технология программирования.
1.3 Назначение разработки
Программный продукт разрабатывается с целью создания упорядоченной структуры данных, что позволяет существенно экономить используемое для работы время.
1.4 Требования к программе или программному изделию
Необходимо реализовать программный продукт, позволяющий использовать структурированную базу данных. В памяти ЭВМ необходимо хранить сведения о студентах некоторого учреждения и иметь возможность выдавать справки по личному составу, а также корректировать сохраняемые данные при изменениях сведений. Таким образом, нужна база данных о студентах. Для каждого студента должно быть указанно:
· Фамилия
· Инициалы
· Курс
· Факультет
· Название специальности
· Код группы
· Успеваемость
При работе с этой базой данных потребуются следующие функции:
· Ввод сведений о новом студенте
· Удаление сведений о студенте
· Вывод на экран дисплея текущего состояния базы данных
· Запись сведений о студенте в файл
· Загрузку содержимого базы данных из файла
· Поиск студента по его фамилии
2. Описание программы
2.1Общие сведения
Данные в базе данных логически структурирована (систематизирована) с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе.
Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определённая семантика и допустимые операции. [3].
Программный продукт написан на языке программирования высокого уровня Turbo C.
Для функционирования программы необходима операционная система Windows 7, Windows Vista или Windows XP.
2.2 Назначение и область применения
Базы данных необходимы для хранения и фильтрации информации, для её обработки и обмена. Программный продукт может быть использован для широкого потребления среди пользователей.
2.3 Функциональное назначение
Программный продукт позволяет значительно упростить и автоматизировать учёт сведений о студентах, а так же сократить время при работе с большим объемом данных. [4].
2.4 Описание логической структуры
Программа начинается с подключения библиотек необходимых для работы определенных функций.
#include<stdio.h> - для работы с файлами, структурами и функциями.
#include<string.h> - для функции strcmp().
#include <conio.h> - для функции очистки экрана. [4].
Определение глобальных объектов: структурного типа, указателей структуры, массив структур.
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("-----------------------------\n\n\n");
for(i=0;i<M-1;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<ctrl.nb;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 pust\n");
return -1;
}
printf("Vvedite Familiu:\n");
scanf("%s",nam);
if ((ptr=find(nam))==0)
{
printf("Familia ne neidena\n");
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("----------------------------\n\n");
if(ctrl.nf==0)
{
printf("Svobodnih elementov net\n");
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\"\n\n");
if(ctrl.nb==0)
{
printf(" __________________\n");
printf("|Baza dannih pusta|\n");
printf(" ------------------\n\n\n");
return -1;
}
printf("________________________________________________________________________________");
printf("|NO| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|");
printf("| | | | | | | | |");
printf("|--|-----------------|-----|----|--------|----------------|--------|-----------|");
for(i=0;i<ctrl.nb;i++)
{
printf("|%2d| %15s|",i+1,ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|",ptr->usp);
printf("|--|-----------------|-----|----|--------|----------------|--------|-----------|");
ptr=ptr->next;
}
printf("\n Obshee chislo zapisei = %d\n",i);
return 0;
}
Запись в файл на диске всех элементов массива структур. Открытие файла для записи.
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 pust\n");
return -1;
}
printf("Vvedite Familiu:\n");
scanf("%s",fam);
if ((ptr=find(fam))==0)
{
printf("\nFamilia ne neidena\n");
return -1;
}
if(ptr==ctrl.bbeg)
{
if(ctrl.nb==1)
{
printf(" Student naiden\n");
printf("_____________________________________________________________________________\n");
printf("| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|\n");
printf("| | | | | | | |\n");
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n");
printf("| %15s|",ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|\n",ptr->usp);
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n\n");
}
Механизм управления базой данных с помощью меню. Вывод меню на экран. Ввод и обработка номера работы программы.
void main(void)
{
char numb[10];
clrscr();
while(1)
{
printf("\t MENU \n");
printf("\t______________________________________\n");
printf("\t|1| Vvod svedenii o novom sotrudnike |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|2| Udalenie svedenii o sotrudnike |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|3| Pechat soderjimogo bazi dannih |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|4| Sohranenie bazi dannih v fail |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|5| Zagruzka bazi dannih iz faila |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|6| Inicializacia bazi dannih |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|7| Poisk studenta |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|8| Okonchanie raboti |\n");
printf("--------------------------------------\n");
printf("\n\n Vvedite nomer punkta menu:");
scanf("%s",numb);
printf("\n");
switch(numb[0])
{
case'1':
input();
break;
case'2':
delet();
break;
case'3':
print();
break;
case'4':
save();
break;
case'5':
load();
break;
case'6':
init();
break;
case'7':
postav();
break;
case'8':
return;
default:
printf("----------------------");
printf("|Neverno ukazan nomer punkta menu |");
printf("----------------------\n\n");
} }} [1].
2.5 Используемые технические и программные средства
Программный комплекс должен корректно работать на компьютере со следующими техническими характеристиками:
· Операционная система Windows 7/ Vista/ XP
· процессор Pentium III 1000 МГц;
· оперативная память объемом 256 Мб;
· жесткий диск объемом 10 Гб;
· видеоадаптер SVGA;
· клавиатура; [5].
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<stdio.h>
#include<string.h>
#include <conio.h>
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("-----------------------------\n\n\n");
for(i=0;i<M-1;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<ctrl.nb;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 pust\n");
return -1;
}
printf("Vvedite Familiu:\n");
scanf("%s",nam);
if ((ptr=find(nam))==0)
{
printf("Familia ne neidena\n");
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("----------------------------\n\n");
if(ctrl.nf==0)
{
printf("Svobodnih elementov net\n");
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\"\n\n");
if(ctrl.nb==0)
{
printf(" __________________\n");
printf("|Baza dannih pusta|\n");
printf(" ------------------\n\n\n");
return -1;
}
printf("________________________________________________________________________________");
printf("|NO| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|");
printf("| | | | | | | | |");
printf("|--|-----------------|-----|----|--------|----------------|--------|-----------|");
for(i=0;i<ctrl.nb;i++)
{
printf("|%2d| %15s|",i+1,ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|",ptr->usp);
printf("|--|-----------------|-----|----|--------|----------------|--------|-----------|");
ptr=ptr->next;
}
printf("\n Obshee chislo zapisei = %d\n",i);
return 0;
}
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 pusta\n");
puts("Zapis na disk ne proizvoditsia\n");
return -1;
}
else
{
puts("Proizvoditsia zapis BD v fail");
ptr=st;
pti=&ctrl.nb;
c=(char*)pti;
for(i=0;i<sizeof(ctrl); i++)
putc(*c++,fl);
c=(char*)ptr;
for(k=0;k<sizeof(st); 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 pusta\n");
if(ctrl.nb !=0)
{
puts("Baza dannih v osnovnoi pamiati ne pusta\n");
puts("Proizvodit zagruzku? [y,n]:");
scanf(" %s",&d);
if(d=='N' || d=='n')
{
puts("Zapros na zagruzku bazi otmenen\n");
return 1;
}
}
puts("Proizvoditsia zagruzka bazi dannih\n");
pti=&ctrl.nb;
c=(char*)pti;
for(i=0; i<sizeof(ctrl); i++)
*c++=getc(fl);
ptr=st;
c=(char*)ptr;
for(i=0;i<sizeof(st);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 pust\n");
return -1;
}
printf("Vvedite Familiu:\n");
scanf("%s",fam);
if ((ptr=find(fam))==0)
{
printf("\nFamilia ne neidena\n");
return -1;
}
if(ptr==ctrl.bbeg)
{
if(ctrl.nb==1)
{
printf(" Student naiden\n");
printf("_____________________________________________________________________________\n");
printf("| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|\n");
printf("| | | | | | | |\n");
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n");
printf("| %15s|",ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|\n",ptr->usp);
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n\n");
}
else
{
printf(" Student naiden\n");
printf("_____________________________________________________________________________\n");
printf("| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|\n");
printf("| | | | | | | |\n");
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n");
printf("| %15s|",ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|\n",ptr->usp);
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n\n");
}
}
else
{
if(ptr==ctrl.bend)
{
printf(" Student naiden\n");
printf("_____________________________________________________________________________\n");
printf("| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|\n");
printf("| | | | | | | |\n");
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n");
printf("| %15s|",ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|\n",ptr->usp);
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n\n");
}
else
{
printf(" Student naiden\n");
printf("_____________________________________________________________________________\n");
printf("| Familia | I.O |Kurs|Fakultet| Sprcialnost | Kod |Uspevaemost|\n");
printf("| | | | | | | |\n");
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n");
printf("| %15s|",ptr->name);
printf(" %4s|",ptr->inik);
printf(" %1d|",ptr->curs);
printf(" %5s|",ptr->fak);
printf(" %15s|",ptr->jobname);
printf(" %7s|",ptr->job);
printf(" %1d|\n",ptr->usp);
printf("|-----------------|-----|----|--------|----------------|--------|-----------|\n\n");
return 0;
}
}
}
void main(void)
{
char numb[10];
clrscr();
while(1)
{
printf("\t MENU \n");
printf("\t______________________________________\n");
printf("\t|1| Vvod svedenii o novom sotrudnike |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|2| Udalenie svedenii o sotrudnike |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|3| Pechat soderjimogo bazi dannih |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|4| Sohranenie bazi dannih v fail |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|5| Zagruzka bazi dannih iz faila |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|6| Inicializacia bazi dannih |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|7| Poisk studenta |\n");
printf("\t|-|----------------------------------|\n");
printf("\t|8| Okonchanie raboti |\n");
printf("--------------------------------------\n");
printf("\n\n Vvedite nomer punkta menu:");
scanf("%s",numb);
printf("\n");
switch(numb[0])
{
case'1':
input();
break;
case'2':
delet();
break;
case'3':
print();
break;
case'4':
save();
break;
case'5':
load();
break;
case'6':
init();
break;
case'7':
postav();
break;
case'8':
return;
default:
printf("----------------------");
printf("|Neverno ukazan nomer punkta menu |");
printf("----------------------\n\n");
}
}
}
Размещено на Allbest.ru
Подобные документы
Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.
курсовая работа [1,5 M], добавлен 17.03.2014Особенности разработки программ на языке Turbo Pascal на примере программы обработки массива данных с построением диаграммы. Функции программы и основные требования к ней. Состав входных и выходных данных. Использование предметной области "Садовод".
курсовая работа [789,1 K], добавлен 13.03.2013Клиент-серверная архитектура проектируемой программы по проверке знаний студентов, структура базы данных. Разработка ее программно-интерфейсной реализации в среде Delphi. Установка и запуск приложения, информация для пользователя, листинг программы.
дипломная работа [2,1 M], добавлен 20.06.2011Проектирование базы данных, информационной подсистемы PLC-Tester, модуля тестирования и web-приложения. Разработка логической структуры программного продукта и общие требования к техническому обеспечению. Запуск программы и описание тестовых прогонов.
дипломная работа [3,2 M], добавлен 30.06.2011Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Анализ эффективности методов сортировки данных в языке Turbo Pascal. Разработка эскизного и технического проекта программы. Сортировка без и с использованием дополнительной памяти, за исключением небольшого стека (массива). Сортировка связанных списков.
курсовая работа [359,0 K], добавлен 23.05.2012Формирование опыта создания программ с использованием программного продукта Turbo Assembler. Использование меньшего количества команд и обращений в память, увеличение скорости и уменьшение размера программы. Степень сложности совместной разработки.
реферат [15,4 K], добавлен 24.02.2010Теория графов и её применения. Разработка программного продукта для решения задач нахождения минимального пути. Анализ надежности и качества ПП "метода Дейкстры". Математическая модель задачи. Алгоритмы Дейкстры на языке программирования Turbo Pascal.
курсовая работа [1,6 M], добавлен 26.03.2013Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [700,6 K], добавлен 26.01.2010