IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Записи, файл, С/C++
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Условие :

Создать типизированный файл, запись которого имеет следующую структуру: номер УДК, фамилию и инициалы автора, название книги, год издания, количество экземпляров данной книги в библиотеке. Вывести на экран в алфавитном порядке название книг, количество экземпляров которых больше 3.
Создание и обработку файла оформить в виде подпрограмм.

Помогите переделать эту задачу в ( С/С++) mega_chok.gif

Вот код Паскаля :
uses crt;
const n=2;
type knigi=record
fio,name:string[20];
udk:real;
date,kol:integer;
end;
var f:file of knigi;
a:array [1..n] of knigi;
s:string;
i,vybor:integer;
{Создание}
procedure new;
Begin
rewrite(f);
for i:=1 to n do
begin
clrscr;
write('Введите номер Удк');
readln(a[i].udk);
write('Введите Фио ');
readln(a[i].fio);
write('Введите название книги ');
readln(a[i].name);
write('Введите год издания ');
readln(a[i].date);
write('Введите кол-во экземпляров ');
readln(a[i].kol);
write(f,a[i]);
end;
close(f);
End;
{Чтение}
procedure open;
Begin
reset(f);
for i:=1 to n do read(f,a[i]);
close(f);
End;
{Вывод на экран}
procedure print;
var j:integer;
buf:knigi;
Begin
clrscr;
for i:=1 to n-1 do
for j:=i+1 to n do if a[i].name>a[j].name then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
writeln(' УДК ФИО Название Дата Кол-во');
for i:=1 to n do if a[i].kol > 3 then
writeln(a[i].udk:5:0,' ',a[i].fio:20,' ',a[i].name:20,' ',a[i].date:5,' ',a[i].kol);
End;
BEGIN
clrscr;
write('1 -Создать, 0 - Открыть ');
readln(vybor);
write(' Полный путь к файлу');
readln(s);
assign(f,s);
if vybor=1 then new;
if vybor=0 then open;
print;
readln;
END.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


#include <stdio.h>
#include <conio.h>
#include<string.h>
#include<iostream.h>
#define SIZE 100

int col;
FILE * file;

struct One{
char Name[SIZE];
char fio[SIZE];
int god,udk,kol;

};
void *readln(char *s, int size)
{
int c;
while ((c = getchar()) != '\n' && size-- > 0)
*s++ = c;
*s = 0;
}

One Knigi[50];
int i,j;
One buf[50];
void Out()

{ for(int i=0;i<col-1;i++)
for(j=i+1;j<col;j++)
if( Knigi[i].Name>Knigi[j].Name)
{ buf=Knigi[i];
Knigi[i]=Knigi[j];
Knigi[j]=buf;
}
if(Knigi[i].kol>3)
{
printf(file, "%s\n", Knigi[i].Name);
printf(file, "%s\n", Knigi[i].fio);
printf(file, "%d\n", Knigi[i].udk);
printf(file, "%d\n", Knigi[i].kol);
printf(file, "%d\n", Knigi[i].god);
}
}

void main()
{
file = fopen("Out.txt", "w");

clrscr();
printf("\n\n Vvedite kolichestvo sotrudnikov v faile ");
scanf("%u", &col);
for(int i=0;i<col;i++)
{
printf("\n Name ");
readln( Knigi[i].Name,SIZE);
printf("\n Fio ");
readln( Knigi[i].fio, SIZE);
printf("\n Udk");
scanf("%i",&Knigi[i].udk);
printf("\n Kolichestvo");
scanf("%i",&Knigi[i].kol);
printf("\n God");
scanf("%i",&Knigi[i].god);
Out();

}
getche();
fclose(file);
}


Volvo помоги пожалуйста доделать задачу, надо чтобы она была решена без потоков nea.gif


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Merlin   Записи, файл   16.05.2006 20:56
volvo   У тебя проблемы... В С++ нет типизированных файлов…   16.05.2006 21:04
Merlin   Я знаю, что нет в С++ типизир. файлов, это задание…   16.05.2006 21:11
Merlin   #include <fstream.h> struct book { book(…   18.05.2006 2:49
volvo   А что, память под char * уже выделять не надо? #in…   18.05.2006 3:02
Merlin   #include <string.h> #include <fstream.h…   18.05.2006 3:08
volvo   Это я забыл исправить... Не объявлен у тебя p_nam…   18.05.2006 3:17
Merlin   Всё исправил, только программа не хочет запускатьс…   18.05.2006 3:26
volvo   Что значит "не хочет запускаться"? Ты ни…   18.05.2006 3:41
Merlin   А как сделать чтобы можно было самому вводить : г…   18.05.2006 3:52
volvo   Ха... Так в том-то и фишка, что потоку все равно, …   18.05.2006 4:00
Merlin   #include <stdio.h> #include <conio.h> …   19.05.2006 1:55
volvo   Нет... Это не ко мне. В чистом С я не очень :( …   19.05.2006 2:00
Merlin   Подскажи как тогда мне сделать чтобы на экране я м…   19.05.2006 2:14
volvo   Так лучше? #include <stdio.h> #include <c…   19.05.2006 3:02
Merlin   Спасибо за помощь. Теперь и задача работает и мне …   19.05.2006 5:56


 Ответить  Открыть новую тему 
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.04.2024 0:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name