Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Отчет по учебной практике ОАиП база данных студентов создание, поиск, удаление, сортировка, все,

Название: Отчет по учебной практике ОАиП база данных студентов создание, поиск, удаление, сортировка, все,
Раздел: Рефераты по информатике
Тип: реферат Добавлен 18:59:21 03 февраля 2007 Похожие работы
Просмотров: 15 Комментариев: 27 Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать

Министерство Образования Республики Беларусь

Белорусский Государственный Университет

Информатики и Радиоэлектроники

Кафедра ЭВМ

Отчёт по учебной практике

Выполнил : Проверил :

студент гр.050505 Калабухов Е.В.

Свентицкий С. М.

Минск

2001 г.

СОДЕРЖАНИЕ

  1. Название программы.
  2. Поставленная задача.
  3. Функциональное предназначение программы.
  4. Описание управления, интерфейса, основных переменных и функций.
  5. Блок-схема по ЕСПД 19.003-80.
  6. Исходный код программы.
  7. Список используемой литературы

Electronic Base (Электронная база данных) v 1.666

1. Название программы
2. Поставленная задача

Написать базу данных (БД) на языке С++ позволяющую хранить информацию о студентах (Ф.И.О., номер группы, средний балл, уникальный код записи (порядковый №)). База данных должна содержать основные функции : добавление записи, удаление записи, редактирование записи, поиск и сортировку по заданным параметрам.

3. Функциональное предназначение программы

Данная программа представляет собой базу данных позволяющую хранить информацию о студентах (Фамилию, Имя, Отчество, № группы, средний балл). Программа позволяет использовать следующие возможности : создание новой БД, либо открытий уже созданной, добавление новых данных в файл БД, удаление записей, редактирование имеющихся записей, поиск существующих записей по их уникальному коду, по фамилии, по имени, также предусмотрена сортировка записей в файле по Ф.И.О, по уникальному коду, по номеру группы, по среднему баллу (причем в этом случае записи располагаются от максимального среднего балла вниз, то есть по убыванию). Каждой новой записи присваивается свой индивидуальный номер (код), для упрощения ввода этот код присваивается автоматически : функций find_max_num(char *) находит максимальный номер записи в файле и последующий код присваивается введенной записи .Также предусмотрена проверка вводимых данных на идентичность , при вводе идентичных данных пользователю будет выдано предупреждение и дана возможность ввести новые данные . Программа eBase v1.666 использует очень удобный и понятный интерфейс, организована система меню и подменю, внизу окна специально создана горячая подсказка. Так же предусмотрен так называемый скроллинг (прокрутка) выводимой информации клавишами вверх-вниз,

4. Описание управления, интерфейса, основных переменных и функций.

Все данные вводятся с клавиатуры.

Используемые клавиши:

Enter (для выбора или подтверждения), Esc (для отмены, выхода в предыдущее меню), стрелки вправо, влево (для перемещения по меню), вверх, вниз (для скроллинга данных).

Основные переменные:

структура записей :

typedef struct {

int num; - уникальный № (код) записи

char lastName[16]; - фамилия студента

char firstName[11]; - имя студента

char midName[16]; - отчество студента

char groupNumber[6]; - № группы студента

float mark; - средний балл учащегося

} data;

fn - имя рабочего файла;

Вызываемые функции:

void interface(char *) - функция основного интерфейса программы. В качестве входного параметра принимает имя рабочего файла fn которое передается функциями void create() или void open() . В этой функции реализовано весьма удобное меню, через которое и происходит вызов последующий функция добавления, сортировки, удаления, поиска и редактирования;

void add(char *) - функция добавление записи в БД. Входной параметр fn имя файла. Использует функцию int find_max_num(char *) для присваивания вводимой записи свой уникальный номер.

void del(char *) - функция удаление записи из БД. Входной параметр fn имя файла. Использует временный файл temp.$$$ , в конце выполнения функции временный файл переименовывается в файл под именем переменной fn ;

void edit(char *) - функция редактирования существующей записи. Входной параметр fn имя файла. Позволяет изменять № (код) записи, а также любую информацию записи;

void view(char *, int ) - функция вывода данных на экран. Входной параметр fn имя файла;

void find(char *) - функция поиска записи по (ее уникальному №,по Фамилии, по Имени). Входной параметр fn имя файла;

void sort(char *) - функция сортировки записей БД по (№ записей, Ф.И.О, среднему баллу учащихся, № группы студента). Входной параметр fn имя файла. Использует “пузырьковый” метод сортировки данных в файле.

int find_max_num(char *) - функция поиска максимального № записи в файле БД. Входной параметр fn имя файла. Возвращает значение № максимальной записи в файле … для функции void add(char *) ;

int get_number(char *) - возвращает количество записей в файле. Входной параметр fn имя файла;

void create() - создание файла БД. Идет запрос на имя файла , после этого к имени файла автоматически добавляется расширение “.dat” имя этого файла считается рабочим для всей программы. При удачном создании файла его имя передается в функцию void interface(char *) и т.д.;

void open() - открытие файла БД. Идет запрос на имя файла , после этого к имени файла автоматически добавляется расширение “.dat” имя этого файла считается рабочим для всей программы. При удачном открытии файла его имя передается в функцию void interface(char *) и т.д.;

int check ( char *, data ) – функция проверки при вводе информации на ее идентичность. Вызывается функциями добавления записи void add(char *) и редактирования записи void edit(char *) . В качестве первого входного значения используется имя рабочего файла fn , в качестве второго структура данных типа data (описанная в разделе основные переменные). В качестве возвращаемого параметра используется переменная pr , которая может принимать значения 0 или 1, для определения идентичности данных;

Нестандартные и системные средства, вроде бы, не используются

Все, кроме двух, аварийные ситуации, вроде бы, ликвидированы:

1) Если диск заполнен или защищён от записи невозможно записать информацию в файл;

2) Если невозможно открыть файл программа выдает сообщение об этом и закроется

5.Блок-схема по ЕСПД 19.003-80.

void main()

Лист 01



strcat(fn,”dat”)

нет

да

void open()
void interface(char *)


алгоритм сортировки (по № записи)

fp – указатель на файл; s 1, s 2 – структуры данных типа data;

oldfs , newfs – флаги (признаки),


6. Исходный код программы


#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <io.h>

#include <iostream.h>

#include <string.h>

#include <bios.h>

#define ENTER 7181

#define ESC 283

#define LEFT 19200

#define RIGHT 19712

#define UP 18432

#define DOWN 20480

typedef struct {

int num;

char lastName[16];

char firstName[11];

char midName[16];

char groupNumber[6];

float mark;

} data;

void interface(char *);

void add(char *);

void del(char *);

void edit(char *);

void view(char *, int );

void find(char *);

void sort(char *);

int find_max_num(char *);

int get_number(char *);

void create();

void open();

int check(char *, data);

void main()

{

int key=0,counter=0;

int color[]={0,4,4};

while (1) {

textbackground(1); textcolor(WHITE);

clrscr(); _setcursortype(_NOCURSOR); textcolor(10);

cprintf("::::::::::::::::::");

textcolor(15);

cprintf(" eBase v1.666 Copyright (C) Serj Sventitski ");

textcolor(10);

cprintf("::::::::::::::::::");

switch(key) {

case LEFT: if (counter>0) {

color[counter]=4;

color[--counter]=0;

}

break;

case RIGHT: if (counter<2) {

color[counter]=4;

color[++counter]=0;

}

break;

}

textbackground(4); cprintf(" ");

textcolor(WHITE);

textbackground(color[0]); cprintf(" Создать ");

textbackground(color[1]); cprintf(" Открыть ");

textbackground(color[2]); cprintf(" Выход ");

textbackground(4); cprintf(" ");

textbackground(1);

key=bioskey(0);

if (key == ENTER) {

switch(counter) {

case 0:

create();break;

case 1:

open();break;

case 2:

exit(10);

}

}

}

}

void interface(char *fn)

{

FILE *fp;

data st;

int num=1,key=0,counter=0,color[]={0,4,4,4,4,4};

clrscr();

while(1) {

window(1,1,80,3);

textbackground(1); textcolor(WHITE);

_setcursortype(_NOCURSOR); textcolor(10);

cprintf("::::::::::::::::::");

textcolor(15);

cprintf(" eBase v1.666 Copyright (C) Serj Sventitski ");

textcolor(10);

cprintf("::::::::::::::::::");

switch(key)

{

case LEFT: if (counter>0) {

color[counter]=4;

color[--counter]=0;

}

break;

case RIGHT: if (counter<5) {

color[counter]=4;

color[++counter]=0;

}

break;

}

textbackground(4);cprintf(" ");

textcolor(WHITE);

textbackground(color[0]);cprintf(" Добавить ");

textbackground(color[1]);cprintf(" Удалить ");

textbackground(color[2]);cprintf(" Редактировать ");

textbackground(color[3]);cprintf(" Поиск ");

textbackground(color[4]);cprintf(" Сортировка ");

textbackground(color[5]);cprintf(" Назад ");

textbackground(4);cprintf(" ");

textbackground(1);

view(fn,num);

key=bioskey(0);

switch(key)

{

case UP: num--;if (num==0)

num++;

view(fn,num);

break;

case DOWN: num++;if (num+16>=get_number(fn))

num--;

view(fn,num);

break;

}

if (key==283)

return;

if (key == ENTER)

{

switch(counter) {

case 0: add(fn); clrscr(); break;

case 1: del(fn); break;

case 2: edit(fn); clrscr(); break;

case 3: find(fn); break;

case 4: sort(fn); break;

case 5: return;

}

}

}

}

void add(char *fn)

{

FILE *fp;

data st;

int pr;

while (1) {

st.num=find_max_num(fn)+1;

clrscr();

_setcursortype(_SOLIDCURSOR);

gotoxy(20,6); cout<<"Фамилия : "; cin>>st.lastName;

gotoxy(20,8); cout<<"Имя : "; cin>>st.firstName;

gotoxy(20,10); cout<<"Отчество : "; cin>>st.midName;

gotoxy(20,12); cout<<"№ группы : "; cin>>st.groupNumber;

gotoxy(20,14); cout<<"Средний балл студента : ";

fflush(stdin);scanf("%f",&st.mark);

if (!check(fn, st)) {

if ((fp = fopen(fn,"ab+")) == NULL) {

printf("File could not be opened.\n");

return;

}

fwrite(&st, sizeof(data),1,fp);

fclose(fp);

return;

}

else {

gotoxy(20,18);

cout<<"Такая запись уже существует";

getch();

}

}

}

void del(char *fn)

{

FILE *fp,*temp;

data st;

int pr=1;

int number;

gotoxy(4,25);

textcolor(11);

cprintf("Введите № записи для удаления : ");

textcolor(YELLOW);

gotoxy(36,25);

int key = 0;

cscanf("%d",&number);

textcolor(WHITE);

while(kbhit())

if (!(key=getch()))

key << 8;

if( key == '\r' ) {

if ((fp=fopen(fn,"rb")) == NULL) {

cout<<"error.file does not exist.";

return;

}

if ((temp=fopen("temp.$$$","wb")) == NULL) {

cout<<"error. temp file couldn't be create";

return;

}

while (fread(&st,sizeof(data),1,fp)) {

if (feof(fp))

break;

if (st.num != number)

fwrite(&st,sizeof(data),1,temp);

else

pr=0;

}

fclose(fp);

fclose(temp);

if (remove(fn) == -1) {

perror("remove");

return;

}

if (rename("temp.$$$",fn) == -1) {

perror("rename");

return;

}

if (pr) {

textcolor(11);

gotoxy(4,25);

cprintf("\r Ошибка. Нет записи с таким номером ");

getch();

textcolor(WHITE);

}

}

clrscr();

}

void edit(char *fn)

{

FILE *fp;

data st;

int pr=1;

int number,size=sizeof(data);

fpos_t filepos;

gotoxy(4,25);

textcolor(11);

cprintf("Введите № записи для редактирования : ");

textcolor(YELLOW);

gotoxy(44,25);

int key = 0;

cscanf("%d",&number);

textcolor(WHITE);

while( kbhit())

if( !(key = getch()))

key << 8;

if( key == '\r' )

{

if ((fp = fopen(fn,"rb+")) == NULL)

{

printf("File could not be opened.\n");

return;

}

while(fread(&st,size,1,fp))

{

if (feof(fp))

break;

if (st.num == number)

{

fseek(fp,-1*size,1);

fgetpos(fp,&filepos);

pr=1;

break;

}

else

pr=0;

}

if (pr)

{

while (1)

{

clrscr();

_setcursortype(_SOLIDCURSOR);

gotoxy(20,6);cout<<"Фамилия : ";

cin>>st.lastName;

gotoxy(20,8);cout<<"Имя : ";

cin>>st.firstName;

gotoxy(20,10);cout<<"Отчество : ";

cin>>st.midName;

gotoxy(20,12);cout<<"№ группы : ";

cin>>st.groupNumber;

gotoxy(20,14);cout<<"Средний балл студента : ";

scanf("%f",&st.mark);

if (!check(fn, st))

{

fsetpos(fp,&filepos);

fwrite(&st, sizeof(data),1,fp);

break;

}

else {

gotoxy(20,18);

cout<<"Такая запись уже существует";

getch();

}

}

}

else {

textcolor(11);

gotoxy(4,25);

cprintf("\r Ошибка... Нет записи с таким номером ");

getch();

textcolor(WHITE);

}

fclose(fp);

}

}

void view(char *fn,int n)

{

void ramka();

FILE *fp;

data st;

char c;

int counter=0;

if ((fp = fopen(fn,"rb")) == NULL) {

printf("File could not be opened.\n");

return;

}

ramka();

window(1,6,80,23);

fseek(fp,(n-1)*sizeof(data),SEEK_SET);

while (counter != 18)

{

fread(&st,sizeof(data),1,fp);

if (feof(fp))

break;

else

{

printf(" %4d %-16s %-12s %-17s %8s "

"%7.2f\n",st.num,st.lastName,st.firstName,

st.midName,st.groupNumber,st.mark);

counter++;

}

}

window(1,24,80,25);

cprintf("-----------------------------------"

"---------------------------------------------");

cprintf(" %c - вверх, %c - вниз , %c - влево,"

" %c - вправо, ESC - отмена ",0x018,0x019,0x01B,0x01A);

textcolor(10); textbackground(1); cprintf("%14s",fn);

window(1,1,80,25); textcolor(15);

fclose(fp);

}

void sort(char *fn)

{

FILE *fp;

data s1,s2;

int num=1,size=sizeof(data),counter=0,key=0;

int oldfs,newfs,color[]={0,4,4,4,4};

while(1)

{

_setcursortype(_NOCURSOR); textcolor(10);

cprintf("::::::::::::::::::::::::: М е н ю с о р т и р о в к и "

":::::::::::::::::::::::::");

switch(key)

{

case LEFT: if (counter>0) {

color[counter]=4;

color[--counter]=0;

}

break;

case RIGHT: if (counter<4) {

color[counter]=4;

color[++counter]=0;

}

break;

}

textbackground(4); cprintf(" "); textcolor(WHITE);

textbackground(color[0]);cprintf(" по № записи ");

textbackground(color[1]);cprintf(" по Ф.И.О ");

textbackground(color[2]);cprintf(" по № группы ");

textbackground(color[3]);cprintf(" по ср.балу ");

textbackground(color[4]);cprintf(" Назад ");

textbackground(4);cprintf(" "); textbackground(1);

view(fn,num);

key=bioskey(0);

switch(key)

{

case UP: num--;if (num==0)

num=1;

view(fn,num); break;

case DOWN: num++;if (num+16>=get_number(fn))

num--;

view(fn,num); break;

}

if (key==283)

return;

if (key == ENTER)

{

if ((fp=fopen(fn,"rb+")) == NULL)

{

cout<<"error.file does not exist.";

return;

}

switch(counter) {

case 1: /*-----------по Ф.И.О--------------------*/

oldfs=1; newfs=0;

fread(&s1,size,1,fp);

while(oldfs) {

fread(&s2,size,1,fp);

if(feof(fp)) {

if(!newfs)

break;

oldfs=1; newfs=0;

rewind(fp);

fread(&s1,size,1,fp);

continue;

}

if (strcmp(s1.lastName,s2.lastName) > 0) {

fseek(fp,-2*size,1);

fwrite(&s2,size,1,fp);

fwrite(&s1,size,1,fp);

newfs=1;

}

if (strcmp(s1.lastName,s2.lastName) == 0)

if (strcmp(s1.firstName,s2.firstName) > 0) {

fseek(fp,-2*size,1);

fwrite(&s2,size,1,fp);

fwrite(&s1,size,1,fp);

newfs=1;

}

if (strcmp(s1.firstName,s2.firstName) == 0)

if (strcmp(s1.midName,s2.midName) > 0) {

fseek(fp,-2*size,1);

fwrite(&s2,size,1,fp);

fwrite(&s1,size,1,fp);

newfs=1;

}

else

s1=s2;

else

s1=s2;

}

break;

case 0: /*------------ПО НОМЕРУ ЗАПИСИ-----------*/

oldfs=1; newfs=0;

fread(&s1,size,1,fp);

while(oldfs) {

fread(&s2,size,1,fp);

if(feof(fp)) {

if(!newfs)

break;

oldfs=1; newfs=0;

rewind(fp);

fread(&s1,size,1,fp);

continue;

}

if (s1.num > s2.num) {

fseek(fp,-2*size,1);

fwrite(&s2,size,1,fp);

fwrite(&s1,size,1,fp);

newfs=1;

}

else

s1=s2;

}

break;

case 2: /*----------ПО НОМЕРУ ГРУППЫ---------------*/

oldfs=1; newfs=0;

fread(&s1,size,1,fp);

while(oldfs) {

fread(&s2,size,1,fp);

if(feof(fp)) {

if(!newfs)

break;

oldfs=1; newfs=0;

rewind(fp);

fread(&s1,size,1,fp);

continue;

}

if (strcmp(s1.groupNumber,s2.groupNumber) > 0) {

fseek(fp,-2*size,1);

fwrite(&s2,size,1,fp);

fwrite(&s1,size,1,fp);

newfs=1;

}

else

s1=s2;

}

break;

case 3: /*---------ПО СР.БАЛУ----------------*/

oldfs=1; newfs=0;

fread(&s1,size,1,fp);

while(oldfs) {

fread(&s2,size,1,fp);

if(feof(fp)) {

if(!newfs)

break;

oldfs=1; newfs=0;

rewind(fp);

fread(&s1,size,1,fp);

continue;

}

if (s1.mark < s2.mark) {

fseek(fp,-2*size,1);

fwrite(&s2,size,1,fp);

fwrite(&s1,size,1,fp);

newfs=1;

}

else

s1=s2;

} break;

case 4:

fclose(fp);

return;

}

fclose(fp);

}

}

}

void find(char *fn)

{

void ramka();

FILE* fp;

data st;

char string[15];

int pr,prs;

int key=0,counter=0;

int color[]={0,4,4,4};

while (1) {

clrscr(); textcolor(10);

cprintf("::::::::::::::::::::::::::::: М е н ю П о и с к а "

":::::::::::::::::::::::::::::");

textcolor(WHITE);

textbackground(4);

cprintf(" ");

switch(key)

{

case LEFT: if (counter>0) {

color[counter]=4;

color[--counter]=0;

} break;

case RIGHT: if (counter<3) {

color[counter]=4;

color[++counter]=0;

} break;

}

textbackground(color[0]); cprintf(" по № записи ");

textbackground(color[1]); cprintf(" по Фамилии ");

textbackground(color[2]); cprintf(" по Имени ");

textbackground(color[3]); cprintf(" Отмена ");

textbackground(4);

cprintf(" ");

textbackground(1);

key=bioskey(0);

if (key==283)

return;

if (key == ENTER)

{

if((fp=fopen(fn,"rb"))==NULL) {

puts("File couldn't be open");

return;

}

switch(counter)

{

case 0:

int number;

pr=0;

prs=1;

cout<<"ВВЕДИТЕ НОМЕР ЗАПИСИ : ";

fflush(stdin);

scanf("%d",&number);

rewind(fp);

while(fread(&st,sizeof(data),1,fp)) {

if (feof(fp)) {

break;

}

if(st.num == number) {

if (prs) {

ramka();

gotoxy(1,6);

prs=0;

}

printf(" %4d %-16s %-12s %-17s %8s "

"%7.2f\n",st.num,st.lastName,st.firstName,

st.midName,st.groupNumber,st.mark);

pr=1;

}

}

if(!pr) {

cout<<"\nЗАПИСИ С ТАКИМ НОМЕРОМ НЕ СУЩЕСТВУЕТ";

}

getch();

break;

case 1:

prs=1;

pr=0;

cout<<"ВВЕДИТЕ ФАМИЛИЮ : ";

fflush(stdin);

cin>>string;

rewind(fp);

while(fread(&st,sizeof(data),1,fp)) {

if (feof(fp))

break;

if(!strcmp(st.lastName,string)) {

if (prs) {

ramka();

gotoxy(1,6);

prs=0;

}

printf(" %4d %-16s %-12s %-17s %8s "

"%7.2f\n",st.num,st.lastName,st.firstName,

st.midName,st.groupNumber,st.mark);

pr=1;

}

}

if(!pr) {

cout<<"\nНЕТ ДАННЫХ";

}

getch();

break;

case 2:

prs=1;

pr=0;

cout<<"ВВЕДИТЕ ИМЯ : ";

fflush(stdin);

cin>>string;

rewind(fp);

while(fread(&st,sizeof(data),1,fp)) {

if (feof(fp))

break;

if(!strcmp(st.firstName,string)) {

if (prs) {

ramka();

gotoxy(1,6);

prs=0;

}

printf(" %4d %-16s %-12s %-17s %8s "

"%7.2f\n",st.num,st.lastName,st.firstName,

st.midName,st.groupNumber,st.mark);

pr=1;

}

}

if(!pr) {

cout<<"\nНЕТ ДАННЫХ";

}

getch();

break;

case 3:

fclose(fp);

return;

}

fclose(fp);

}

}

}

void ramka()

{

window(1,3,80,6);

cprintf("------------------------------------"

"--------------------------------------------");

textcolor(14);

cprintf("%5s %-16s %-12s %-17s %-8s %12s ",

"№","Фамилия","Имя","Отчество","№ группы","Ср.балл");

textcolor(WHITE);

cprintf("------------------------------------"

"--------------------------------------------");

window(1,1,80,25);

}

int find_max_num(char *fn)

{

FILE *fp;

data st;

int max;

if ((fp = fopen(fn,"rb")) == NULL) {

printf("File could not be opened.\n");

return -1;

}

max=0;

while (fread(&st,sizeof(data),1,fp)) {

if (feof(fp))

break;

if (st.num>max)

max=st.num;

}

fclose(fp);

return max;

}

int get_number(char *fn)

{

FILE *fp;

int fd,n=0;

if ((fp = fopen(fn,"rb")) == NULL)

{

printf("File could not be opened.\n");

return -1;

}

fd=fileno(fp);

n=filelength(fd)/sizeof(data);

fclose(fp);

return n;

}

void create()

{

FILE *fp;

char *fn;

cout<<"Введите имя новой БД : ";

fflush(stdin);

cin>>fn;

strcat(fn,".dat");

if ((fp=fopen(fn,"wb")) == NULL) {

cout<<"Ошибка...Файл не может быть создан\n";

getch();

exit(10);

}

fclose(fp);

interface(fn);

}

void open()

{

FILE *fp;

char *fn;

cout<<"Введите имя БД : ";

fflush(stdin);

cin>>fn;

strcat(fn,".dat");

if (!(fp=fopen(fn,"rb"))) {

cout<<"Ошибка...Файл не может быть открыт\n";

getch();

exit(10);

}

fclose(fp);

interface(fn);

}

int check(char *fn, data st)

{

FILE *fp;

data temp;

int pr=0;

if ((fp = fopen(fn,"rb")) == NULL) {

printf("File could not be opened.\n");

return 0;

}

while ( fread( &temp, sizeof( data ), 1, fp)) {

if (feof(fp))

break;

if (!strcmp(st.lastName,temp.lastName)

&& !strcmp(st.firstName,temp.firstName)

&& !strcmp(st.midName,temp.midName)

&& !strcmp(st.groupNumber,temp.groupNumber)

&& (st.mark == temp.mark)) {

pr=1;

break;

}

} fclose(fp);

return pr;

}


СПИСОК ЛИТЕРАТУРЫ

  1. Харви Дейтел, Пол Дейтел “Как программировать на Си”
  2. Е. М. Демидович “Основы алгоритмизации и программирования”, Минск 1999 г.
  3. Керниган Б., Ритчи Д. “Язык программирования Си”, Финансы и статистика, 1992 г.
Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
trendlive.ru Раскрутила свои видео, сайты с помощью сервиса трендов хештегов сайта trendlive.ru
18:20:07 23 июня 2022
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита08:44:34 05 ноября 2021
.
.08:44:32 05 ноября 2021
.
.08:44:30 05 ноября 2021
.
.08:44:29 05 ноября 2021

Смотреть все комментарии (27)
Работы, похожие на Реферат: Отчет по учебной практике ОАиП база данных студентов создание, поиск, удаление, сортировка, все,

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(294399)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте