Форум программистов, компьютерный форум CyberForum.ru

Программирование задач обработки структур и файлов. - C++

Восстановить пароль Регистрация
 
aidoqa
 Аватар для aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
21.03.2012, 19:30     Программирование задач обработки структур и файлов. #1
Даны сведения о книгах, поступивших в библиотеку: ФИО автора, название книги, название издательства, год издания, дата поступления книги в библиотеку. Вывести сведения о книгах, изданных издательством “Мир”, которые поступили в библиотеку за последние пять лет.


как можно переделать данный скрипт?
Pascal
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
92
93
94
95
96
97
98
99
100
101
102
103
104
program tt;
uses crt;
type Tkniga=record
       name_avtor:string;
       name_kniga:string;
       name_izdatelstvo:string;
       god_izdanija:integer;
       data_postuplenia:integer;
     end;
Tfile=file of Tkniga;
var
  kniga:Tkniga;
  f:Tfile;
  ch:char;
  fname:string;
  izd_:string;
  god_:integer;
 
procedure enter(fname:string);
var
  ch1:char;
begin
  ClrScr;
  {$I-}
  assign(f,fname);
  reset(f);
  {$I+}
  if IOResult<>0 then begin writeln('Фаил не найден он был создан!'); rewrite(f);end;
    while ch1<>'н' do begin
      seek(f,filesize(f));
      write('Ф.И.О автора: ');
      readln(kniga.name_avtor);
      write('Название книги: ');
      readln(kniga.name_kniga);
      write('Название издательства: ');
      readln(kniga.name_izdatelstvo);
      write('Год издания: ');
      readln(kniga.god_izdanija);
      write('Год поступления: ');
      readln(kniga.data_postuplenia);
      write(f,kniga);
      writeln('Повторить ввод? (д/н)');
      readln(ch1);
    end;
  close(f);
  writeln('Записи добавлены! Для возврата в меню Enter');
  readln;
end;
 
procedure find(fname:string;izd:string;god:integer);
var
  k:boolean;
  god1,god2:integer;
begin
   ClrScr;
   k:=false;
   {$I-}
  assign(f,fname);
  reset(f);
  {$I+}
  god1:=god-5;
  god2:=god;
  if IOResult<>0 then writeln('Фаил не найден!')else
     while not eof(f) do begin
        read(f,kniga);
        if (kniga.name_izdatelstvo=izd) and (kniga.data_postuplenia<=god2)and(kniga.data_postuplenia>=god1) then begin
          k:=true;
          writeln('Ф.И.О автора: ',kniga.name_avtor);
          writeln('Название книги: ',kniga.name_kniga);
          write('Название издательства: ',kniga.name_izdatelstvo);
          writeln('Год издания: ',kniga.god_izdanija);
          writeln('Год поступления: ',kniga.data_postuplenia);
        end;
     end;
  if k=false then writeln('Записи не найдены!');
  writeln('Для влзврата в меня нажмите Enter');
  readln;
end;
 
BEGIN
   repeat
   ClrScr;
   writeln('1.Добавить запись');
   writeln('2.Поиск');
   writeln('3.Выход');
   ch:=readkey;
   case ch of
     #49:begin
         writeln('Введите имя файла, если он не существует, то он будет создан');
         readln(fname);
         enter(fname);
       end;
     #50:begin
          writeln('Введите имя файла');
          readln(fname);
          writeln('Введите издание');
          readln(izd_);
          writeln('Введите текущий год');
          readln(god_);
          find(fname,izd_,god_);
        end;
   end;
   until ch=#51;
END.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.03.2012, 19:56     Программирование задач обработки структур и файлов. #2
aidoqa, вам нужно переделать код на паскале или сделать код на плюсах/Си? Если первый вариант, то вы разделом ошиблись.
aidoqa
 Аватар для aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
21.03.2012, 20:03  [ТС]     Программирование задач обработки структур и файлов. #3
мну нужен код на с++
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.03.2012, 20:32     Программирование задач обработки структур и файлов. #4
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
#include <iostream>
#include <string>
#include <cstdlib>
 
typedef std::size_t T_year;
 
struct Book
{
    std::string name;
    std::string author;
    std::string publishingHouse;
    T_year      publication;
    T_year      receipt;
    //--------------------------------------------------------------------------
    friend std::ostream& operator << (std::ostream& stream, Book& b)
    {
        stream  << b.name << " by " << b.author             << std::endl
                << "publishing house " << b.publishingHouse << std::endl
                << "create in " << b.publication            << std::endl
                << "received in the library in " << b.receipt;
        return stream;
    }
};
 
int main(int argc, const char* argv[])
{
    const std::size_t size = 5;
    Book b[size];
    for(std::size_t i = 0; i < size; ++i)
        std::cin    >> b[i].name >> b[i].author >> b[i].publishingHouse
                    >> b[i].publication >> b[i].receipt;
    T_year year;
    std::cin >> year;
    const std::string   house("Mir");
    const T_year        lastNYears(5);
    std::cout << std::endl;
    for(std::size_t i = 0; i < size; ++i)
        if
        (
            (b[i].publishingHouse == house) && 
            (year - b[i].receipt <= lastNYears)
        )
            std::cout   << b[i] << std::endl
                        << "//-------------------------//" << std::endl;
    return 0;
}
out
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
soon@desktop:~/Src/C++/main$ make && ./main
g++ -c -Wall --std=gnu++11 main.cpp -o main.o
g++ main.o -o main
asd asd Mir 1234 5678
qwe qwe qwe 123 123
zxc sdf Mir 2004 2005
redg seg Mir 2008 2010 
awd awd gaf 123 123
2012
 
redg by seg
publishing house Mir
create in 2008
received in the library in 2010
//-------------------------//
soon@desktop:~/Src/C++/main$
aidoqa
 Аватар для aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
21.03.2012, 20:36  [ТС]     Программирование задач обработки структур и файлов. #5
Цитата Сообщение от soon Посмотреть сообщение
std::
вместо него можно просто в начале написать using namespace std;или как будет выглядеть код без std?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.03.2012, 20:52     Программирование задач обработки структур и файлов. #6
aidoqa, да, можно. Только понять никак не могу, чем вам(не конкретно вам, а вообще людям, которые сюда обращаются) не нравится std::? Разве не сможете объяснить, что это такое? Просто интересно
aidoqa
 Аватар для aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
22.03.2012, 07:24  [ТС]     Программирование задач обработки структур и файлов. #7
Цитата Сообщение от soon Посмотреть сообщение
Просто интересно
просто меньше вопросов задавать будут)к примеру сделал с std сделай ее без std и т.д.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2015, 19:17     Программирование задач обработки структур и файлов.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
ChingizBat
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 97
12.11.2015, 19:17     Программирование задач обработки структур и файлов. #8
Здравствуйте! А можно это все через файл оформить?

Добавлено через 12 минут
soon, Помоги плиз, как организовать ввод и вывод в файл
Yandex
Объявления
12.11.2015, 19:17     Программирование задач обработки структур и файлов.
Ответ Создать тему
Опции темы

Текущее время: 23:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru