1 / 1 / 0
Регистрация: 25.03.2016
Сообщений: 34
1

Создать файл последовательного доступа

31.03.2016, 21:22. Показов 2542. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На языке С++ создать файл последовательного доступа. Добавить к файлу несколько записей. Прочитать файл, выполнив указанное в задании действие.
Информация, входящая в файл: Ф.И.О. автора, название книги, издательство, стоимость. При чтении файла получить общую стоимость всех книг.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2016, 21:22
Ответы с готовыми решениями:

Файл последовательного доступа
Ребят, не могу понять как делать и препод ничего толком не объясняет: Заполнить файл...

Файл последовательного доступа
По заданию нужно просто заполнить файл последовательного доступа целыми числами (всего чисел n -...

Файл последовательного доступа
Здрасте всем. Есть два вопроса. В описанном ниже файле 1) как сделать так, чтобы данные сначала...

Файл последовательного доступа
Помогите, пожалуйста, с задачей. Заполнить файл последовательного доступа f целыми числами,...

1
4772 / 2581 / 893
Регистрация: 29.11.2010
Сообщений: 5,582
02.04.2016, 02:14 2
Лучший ответ Сообщение было отмечено zhannaa как решение

Решение

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
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <fstream>
#include <vector>
 
class Book {
 public:
  Book() {}
  Book(const std::string &author, const std::string &name, 
    const std::string &publisher, int price) : author(author),
    name(name), publisher(publisher), price(price) {}
  const std::string &getAuthor() const { return author; }
  const std::string &getName() const { return name; }
  const std::string &getPublisher() const { return publisher; }
  int getPrice() const { return price; }
 
 
  friend std::ostream &operator<<(std::ofstream &stream, const Book &b) {
    return stream << b.getAuthor() << std::endl
      << b.getName() << std::endl
      << b.getPublisher() << std::endl
      << b.getPrice();
  }
 
  friend std::istream &operator>>(std::istream &stream, Book &b) {
    const int bufferSize = 2047;
    static char buffer[bufferSize + 1];
    stream.getline(buffer, bufferSize, '\n');
    b.author = buffer;
    stream.getline(buffer, bufferSize);
    b.name = buffer;
    stream.getline(buffer, bufferSize);
    b.publisher = buffer;
    stream >> b.price;
    stream.getline(buffer, bufferSize);
    return stream;
  }
 
  friend std::ostream &operator<<(std::ostream &stream, const Book &b) {
    return stream << "Book{"
      << "author='" << b.getAuthor() << "',"
      << "name='" << b.getName() << "',"
      << "publisher='" << b.getPublisher() << "',"
      << "price=" << b.getPrice();
  }
 private:
  std::string author;
  std::string name;
  std::string publisher;
  int price;
};
 
 
class BookDao {
 public:
  BookDao(const std::string &fileName) : fileName(fileName) {}
  std::vector<Book> findAll() {
    std::vector<Book> result;
    std::ifstream istream;
    istream.open(this->fileName);
    Book c;
    while (istream.good()) {
      istream >> c;
      result.push_back(c);
    }
    istream.close();
    return result;
  }
  void saveAll(const std::vector<Book> &books) {
    std::ofstream ostream;
    ostream.open(this->fileName, std::ofstream::out | std::ofstream::trunc);  
    for (unsigned int i = 0; i < books.size(); ++i) {
      ostream << books[i] << std::endl;
    }
    ostream.close();
  }
 private:
  std::string fileName;
};
 
 
int main(int, char**) {
  BookDao bookDao("tutorial5051.txt");
 
  std::vector<Book> books;
  books.push_back(Book("Author 1", "Book 1", "Publisher 1", 2300));
  books.push_back(Book("Author 1", "Book 2", "Publisher 1", 1500));
  books.push_back(Book("Author 1", "Book 3", "Publisher 2", 3100));
  books.push_back(Book("Author 3", "Book 4", "Publisher 3", 2400));
 
  bookDao.saveAll(books);
  
  std::vector<Book> loadedBooks = bookDao.findAll();
  int totalPrice = 0;
  for (unsigned int i = 0; i < loadedBooks.size(); ++i) {
    Book book = loadedBooks[i];
    std::cout << book << std::endl;
    totalPrice += book.getPrice();
  }
  std::cout << "Total price is " << totalPrice << std::endl;
  
  return 0;
}
1
02.04.2016, 02:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2016, 02:14
Помогаю со студенческими работами здесь

Сформировать новый файл последовательного доступа
Здравствуйте. Помогите пожалуйста переписать прогу на с++. Никак не пойму как там манипулировать...

Записать в файл последовательного доступа N произвольных чисел
&quot;Файловый тип данных&quot; Записать в файл последовательного доступа N произвольных чисел натуральных...

Записать в файл f последовательного доступа N натуральных чисел
Записать в файл f последовательного доступа N натуральных чисел. Получить в другом файле...

Записать в файл последовательного доступа N вещественных чисел
Записать в файл последовательного доступа N вещественных чисел. Найти разность первого и последнего...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru