Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 41
1

Создать файл («БД») и выполнить его обработку

03.02.2015, 02:11. Показов 765. Ответов 1
Метки нет (Все метки)

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

Добавлено через 33 минуты
Вот код,но у меня он почему то не работает.
Может подскажет кто нибудь в чем проблема.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct stud
{
char fam[10], nam[10], grp[10];
int grd,srt;
} stdn ;
void add()
{
FILE *f;
int select;
printf("1 - Создать новый файл\n2 - Добавить в существующий файл\n");
scanf("%i",&select);
if (select == 1 )
{
if((f=fopen("database.dat","w")) == NULL) printf("Невозможно открыть файл\n");
}
if (select == 2 )
{
if((f=fopen("database.dat","a+")) == NULL) printf("Невозможно открыть файл\n");
}
stud stdn;
int n;
printf("Введите кол-во добавляемых записей : ");
scanf("%i",&n);
for(int i=0;i<n;i++)
{
printf("Фамилия : ");
scanf("%s",&stdn.fam);
printf("Имя : ");
scanf("%s",&stdn.nam);
printf("Группа : ");
scanf("%s",&stdn.grp);
printf("Год рождения : ");
scanf("%i",&stdn.grd);
printf("Средний рейтинг : ");
scanf("%i",&stdn.srt);
fwrite(&stdn,sizeof(stud),1,f);
printf(" +++++++++++ \n");
}
fclose(f);
}
void show()
{
FILE *f;
if((f=fopen("database.dat","r")) == NULL) printf("Невозможно открыть файл\n");
printf("+----------------------------------------------------------------+\n");
printf("| Фамилия | Имя | Группа | Год рождения | Рейтинг |\n");
printf("+---------------+----------+----------+----------------+---------+\n");
while(!feof(f))
{
if(fread(&stdn,sizeof(stud),1,f))
printf("|%15s|%10s|%10s|%16i|%9i|\n",stdn.fam,stdn.nam,stdn.grp,stdn.grd,stdn.srt);
}
printf("+----------------------------------------------------------------+\n");
fclose(f);
int r;
printf("Рейтинг : ");
scanf("%i",&r);
if((f=fopen("database.dat","r")) == NULL) printf("Невозможно открыть файл\n");
printf("+----------------------------------------------------------------+\n");
printf("| Фамилия | Имя | Группа | Год рождения | Рейтинг |\n");
printf("+---------------+----------+----------+----------------+---------+\n");
while(!feof(f))
{
if((fread(&stdn,sizeof(stud),1,f))&&(stdn.srt>=r))
printf("|%15s|%10s|%10s|%16i|%9i|\n",stdn.fam,stdn.nam,stdn.grp,stdn.grd,stdn.srt);
}
printf("+----------------------------------------------------------------+\n");
fclose(f);
}
main()
{
char act[5];
int ac;
do
{
printf("add - добавить данные\nshow - вывод данных\nexit - выход\n");
scanf("%s",&act);
if (strcmp(act,"add") ==0) ac=1;
if (strcmp(act,"show")==0) ac=2;
if (strcmp(act,"exit")==0) ac=3;
switch(ac)
{
case 1:add();break;
case 2:show();break;
case 3:break;
}
}while(ac!=3);
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2015, 02:11
Ответы с готовыми решениями:

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

Создать файл F1, записать в него N чисел, а затем создать его копию - файл F2
Вроде есть все условия, но последние числа перезаписывает: #include &lt;iostream&gt; #include...

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

Выполнить обработку элементов массива по заданному правилу
Дан линейный вещественный массив a найти : 1.(a1-an)(a2-a(n-1))...(an-a1)...

1
Модератор
Эксперт С++
11324 / 9299 / 5580
Регистрация: 18.12.2011
Сообщений: 24,807
03.02.2015, 10:06 2
https://www.cyberforum.ru/cpp-... 62479.html
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2015, 10:06

Выполнить обработку элементов прямоугольной матрицы А, имеющей N и М столбцов
Выполнить обработку элементов прямоугольной матрицы А, имеющей N и М столбцов. Добавить к элементам...

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

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.