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

Объясните пожалуйста что такое многофайловый проект

24.11.2015, 21:37. Показов 1911. Ответов 8
Метки нет (Все метки)

Объясните пожалуйста что такое многофайловый проект. Гуглила, толком ничего не нашла.

Есть вот такое задание:
В текстовом файле хранится список книг в библиотеке: название, автор, количество имеющихся экземпляров, издательство, жанр, год издание. Во втором файле сохраняется информация о выдаче книг: дата выдачи, дата возврата, название книги, автор, фамилия и имя читателя. Путь к файлам задается пользователем с клавиатуры.
Программа состоит из нескольких файлов. В первом должно быть реализовано работу главной функции и вызов всех других функций. В втором файле должны содержаться функции, которые обеспечивают выполнение следующих действий:
- Определение популярности каждого литературного жанра и вывода данных, отсортированных по популярности;
- Вывод информации о книгах, которые читатели активно заказывали в течение заданного периода времени;
- Определение читателей, не возвращали книги вовремя, и для каждого читателя количество случаев, по которым отсортировать данные, и вывести их во второй файл;
- Вывод информации о каждом авторе, книги которого имеются в библиотеке, вместе с количеством имеющихся экземпляров книг каждого автора и количеством заказов его книг. Данные отсортировать в алфавитном порядке по фамилии автора.
Работу с программой реализовать с помощью меню. Заполнение файла новыми данными реализовывать также с помощью
меню.

Подскажите на какие файлы его нужно делить.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2015, 21:37
Ответы с готовыми решениями:

Объясните пожалуйста, что такое i, j, k в программе
#include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include "locale.h" #include...

объясните пожалуйста. что такое struct STUDENT?
include <conio.h> #include <iostream> struct STUDENT { char fio; /* фамилия и.о. */ char oc;...

Объясните пожалуйста как тут работает сортировка и что такое ostream_iterator<string>
вот код. Объясните пожалуйста как тут работает сортировка, сам не могу разобраться. Оссобенно это ...

Многофайловый проект в VS
Всем привет. Добавил новый элемент .cpp в свой проект, в котором уже есть другой .cpp, и компилятор...

8
5 / 5 / 3
Регистрация: 23.10.2015
Сообщений: 35
24.11.2015, 21:40 2
main.cpp - реализация меню.
my_funk.h - хеадер файл, в котором все необходимые другие хедеры, содержит прототип и саму функцию(1 шт).
На каждую функцию свой хедер файл. Его обязательно нужно добавить в main.cpp:
C++
1
#include "my_funk.h"
Меню в main.cpp просто выбирает в какой хедер файл пойти(вызов функции).

Обязательное правило защиты от повторной загрузки хедера:
C++
1
2
3
4
#ifned MY_FUNK_H
#define MY_FUNK_H
/* Исходный код */
#endif /* MY_FUNK_H */
0
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 133
24.11.2015, 22:24  [ТС] 3
Erami, а как их писать? просто отдельно програмки, потом открывать их в main и тоже его сохранить?
если так, то как их сохранять? или нужно каждую програмку записывать как файл и открывать в main файлы?
и что это за расширение .h?
0
5 / 5 / 3
Регистрация: 23.10.2015
Сообщений: 35
24.11.2015, 22:31 4
Лучший ответ Сообщение было отмечено Nastya15684 как решение

Решение

Nastya15684, .h это самый обычный .cpp, только который можно инклюдать(#include)
Просто на проект правой кнопкой мыши, добавить новый файл, к нему расширение .h
Писать как обычный исходник. А что бы добавить к мейну - #include "nazvanie.h"
1
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 133
24.11.2015, 22:40  [ТС] 5
Erami, вроде поняла, спасибо)
0
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 495
24.11.2015, 22:56 6
Nastya, пишешь много всяких функций. Их становится много. Вы просто все эти функции раскидываете по разным файлам, а в главном файле, где у вас главная функция main(), подключаете эти файлы, что бы компилятор знал, где все эти функции. Подключение файлов в самом верху командой #include

Например : #include "c:\my_computer\rabochi_stol\MyFunction.h" Как-то так

0
Диссидент
Эксперт C
26354 / 16360 / 3558
Регистрация: 24.12.2010
Сообщений: 36,228
25.11.2015, 01:27 7
Лучший ответ Сообщение было отмечено Nastya15684 как решение

Решение

Не по теме:

Боже мой! Какая каша в головах! Нет, у ТС, конечно, не каша - вода. Сегодня мне ее размешать - не в силах!


На форуме есть неплохие материалы по этому поводу. Один из них - то ли блог, то ли FAQ уважаемого Evg

Добавлено через 1 час 7 минут
Не спится... Попробую, однако...
Директива препроцессора #include ... делает ровно то, что от нее и ожидается. Она просто вставляет указанный файл в ваш исходный код. И вы можете вставлять .h, .c, .cpp, .hpp, .txt и даже .jpg -файлы, ей это все по фигу. Она вставляет то, что ей приказано.
Да, вот задумался, знают ли уважаемые господа, что такое "препроцессор"? На всякий случай поясню. Трансляция исходного модуля(кода) состоит из 2-х этапов (в самом деле, больше, но пока, в целях нашего образования, будем считать, что это так). Сначала - препроцессор. Он шерстит ваш код на наличие своих #-директив. И выполняет их тупо, совершенно не разбираясь, что вы там написали, и имеет ли это отношение к какому-то языку.
И то, что у него получилось, он отдает на растерзание транслятору
А транслятор-то посерьезней будет. Ему ж надо из вашего кода машинные команды создавать!
И вот он встретил функцию, и ему непременно надо знать(дотошный какой!) сколько у нее аргументов и каков их тип. То есть об этом ему надо рассказать раньше, чем он эту функцию встретил.
И пока ваш проект состоит из одного файла, вы можете просто эти прототипы функций вставлять в этот файл повыше, или даже просто писать ихнюю (функций) реализацию до использования. Транслятор - не совсем уж дурак, он поймет.
Но пока у вас сотня строк кода, даже 2 сотни, даже 500, это все терпимо. А даже самый простой проект, делающий хоть что-то полезное, имеет не менее 10000 строк кода. И вот тогда, чтоб как-то его структурировать, вам захочется его разбить на несколько файлов-исходников (смешное слово, почти как "исподники", но по смыслу - близко). И всюду есть эти функции, черт их побери! Что же, в каждом из исходных файлов писать прототипы этих функций? Можно. Но ни дай Бог во время работы над проектом в одной из функций ваших изменить количество и/или тип аргументов! Энто повсюду надо будет лазить, и всюду менять. А ошибка - ох как вероятна!
Поэтому придумали. Все прототипы в одном месте собрать. Хедер (h-файл называется). Который включается (инклюдится) во все c, cpp-файлы вашего проекта. И если что не так, вас транслятор схватит за руку - несоответствие! И вы поймете, и исправите.
Все. Удачи всем!
3
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 133
25.11.2015, 14:28  [ТС] 8
Байт, Спасибо большое!) Буду пробывать

Добавлено через 2 часа 16 минут
а подскажите в моем задании должен быть один срр файл и один хедер, в котором будут все функции, или один срр и на каждую функцию свой хедер??

В текстовом файле хранится список книг в библиотеке: название, автор, количество имеющихся экземпляров, издательство, жанр, год издание. Во втором файле сохраняется информация о выдаче книг: дата выдачи, дата возврата, название книги, автор, фамилия и имя читателя. Путь к файлам задается пользователем с клавиатуры.
Программа состоит из нескольких файлов. В первом должно быть реализовано работу главной функции и вызов всех других функций. В втором файле должны содержаться функции, которые обеспечивают выполнение следующих действий:
- Определение популярности каждого литературного жанра и вывода данных, отсортированных по популярности;
- Вывод информации о книгах, которые читатели активно заказывали в течение заданного периода времени;
- Определение читателей, не возвращали книги вовремя, и для каждого читателя количество случаев, по которым отсортировать данные, и вывести их во второй файл;
- Вывод информации о каждом авторе, книги которого имеются в библиотеке, вместе с количеством имеющихся экземпляров книг каждого автора и количеством заказов его книг. Данные отсортировать в алфавитном порядке по фамилии автора.
Работу с программой реализовать с помощью меню. Заполнение файла новыми данными реализовывать также с помощью
меню.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
25.11.2015, 15:06 9
Цитата Сообщение от Nastya15684 Посмотреть сообщение
Программа состоит из нескольких файлов. В первом должно быть реализовано работу главной функции и вызов всех других функций. В втором файле должны содержаться функции, которые обеспечивают выполнение следующих действий:
Все по заданию. Вообще-то разбивка проекты на файлы - дело разработчика. Но в твоем случае удобно сделать 1 хедер и 2 срр.
Если сразу тебе сложно, пиши все в одном. Потом разобьешь. Но описания классов и методов лучше сразу в хедер.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2015, 15:06

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

Многофайловый проект
Собственно вопрос, скорее, к работе devc++ Ну вот захотел для &quot;завтраки&quot; собрать МП из 2 файлов 1...

Многофайловый проект
Таки всеми правдами и неправдами создал из 3 файлов &quot;тестик&quot;. И собственно не хочет это дело...

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


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

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

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