Member 13586816 Ответов: 2

Можете ли вы помочь с этим языком программирования? .


Как и у Мистера Лэмба, у библиотекарей тоже есть свои проблемы с заемщиками. Люди не кладут книги на место.
должен. Вместо этого возвращенные книги хранятся на главном столе до тех пор, пока библиотекарь не освободится, чтобы заменить их в нужных местах
на полках. Даже для библиотекарей размещение нужной книги в нужном месте может занять очень много времени. Но с тех пор
многие библиотеки сейчас компьютеризированы, вы можете написать программу, чтобы помочь.
Когда заемщик берет или возвращает книгу, компьютер ведет запись названия. Периодически, библиотекари
запросит у вашей программы список книг, которые были возвращены, чтобы книги можно было вернуть в их правильное состояние.
места на полках. Прежде чем они будут возвращены на полки, возвращенные книги сортируются по автору, а затем
заголовок с использованием последовательности сортировки ASCII. Ваша программа должна выводить список возвращенных книг в том же порядке
как они должны появиться на полках магазинов. Для каждой книги ваша программа должна сообщить библиотекарю, какая книга (в том числе
те, что ранее были отложены) уже находится на полке, перед которой должна идти возвращенная книга.
Ввод
Во-первых, будет перечислен фонд библиотеки, по одной книге на строку, в произвольном порядке. Изначально они все находятся на
полки. Нет двух книг с одинаковым названием. Формат каждой строки будет следующим:
"название" по автору
Конец списка акций будет отмечен строкой, содержащей только слово:
КОНЕЦ
Вслед за биржевым списком появится серия записей о книгах, взятых взаймы и возвращенных, а также запросы от библиотекарей
за помощь в пополнении запасов на полках. Каждая запись будет отображаться в одной строке в одном из следующих форматов:
Заимствовать "название"
Вернуть "титул"
ОТКЛАДЫВАТЬ В ДОЛГИЙ ЯЩИК
Список будет закончен строкой, содержащей только слово:
КОНЕЦ
Выход
Каждый раз, когда появляется команда SHELVE, ваша программа должна выводить серию инструкций для библиотекаря,
по одному на строку, в формате:
Поставьте "title1" после "title2"
или, для особого случая, когда книга является первой в коллекции:
Поставьте "титул" первым
После набора инструкций для каждой полки выведите строку, содержащую только слово:
КОНЕЦ
Предположения &амп; ограничения
1. Заголовок более 80 символов.
2. Автор более 80 символов.
3. Название не будет содержать двойных кавычек (") характер.
Входной Сигнал Образца
"Кентерберийские рассказы" Чосера, г.
"Алгоритмы" Седжвика, Р.
"Язык программирования Си" Кернигана Б. и Ричи Д.
КОНЕЦ
Заимствование "алгоритмов"
Заимствование "языка программирования Си"
Алгоритмы возврата ""
RETURN "язык программирования C"
ОТКЛАДЫВАТЬ В ДОЛГИЙ ЯЩИК
КОНЕЦ
Выход для входного сигнала образца
Поставьте "язык программирования Си" после "Кентерберийских сказок"
Поставьте "алгоритмы" после "языка программирования Си"
КОНЕЦ

Что я уже пробовал:

#include <stdio.h>
#include <iostream>             
#include <string.h>             
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
  template<typename _CharT, typename _Traits>
    class basic_filebuf : public basic_streambuf<_CharT, _Traits>
    {
    public:
      typedef _CharT                     	        char_type;
      typedef _Traits                    	        traits_type;
      typedef typename traits_type::int_type 		int_type;
      typedef typename traits_type::pos_type 		pos_type;
      typedef typename traits_type::off_type 		off_type;
      typedef basic_streambuf<char_type, traits_type>  	__streambuf_type;
      typedef basic_filebuf<char_type, traits_type>     __filebuf_type;
      typedef basic_file<char>_file_type; 
      typedef typename traits_type::state_type          __state_type;
      typedef codecvt<char_type, char, __state_type>    __codecvt_type;
      friend class ios_base;
    protected:
      __c_lock          	_M_lock;
      __file_type 		_M_file;
      ios_base::openmode 	_M_mode;
      __state_type 		_M_state_beg;
      __state_type		_M_state_cur;
      __state_type		_M_state_last;
      char_type*		_M_buf; 	
      size_t			_M_buf_size;
      bool			_M_buf_allocated;
      bool                      _M_reading;
      bool                      _M_writing;
      char_type			_M_pback;
      char_type*		_M_pback_cur_save;
      char_type*		_M_pback_end_save;
      bool			_M_pback_init;
      const __codecvt_type* 	_M_codecvt;
      char*			_M_ext_buf;
      streamsize		_M_ext_buf_size;
      const char*		_M_ext_next;
      char*			_M_ext_end;
      void
      _M_create_pback()
      {
	if (!_M_pback_init)
	  {
	    _M_pback_cur_save = this->gptr();
	    _M_pback_end_save = this->egptr();
	    this->setg(&_M_pback, &_M_pback, &_M_pback + 1);
	    _M_pback_init = true;
	  }
      }
      void
      _M_destroy_pback() throw()
      {
	if (_M_pback_init)
	  { 
	    _M_pback_cur_save += this->gptr() != this->eback();
	    this->setg(_M_buf, _M_pback_cur_save, _M_pback_end_save);
	    _M_pback_init = false;
	  }
      }
    public:
      basic_filebuf();
      virtual
      ~basic_filebuf()
      { this->close(); }
      bool
      is_open() const throw()
      { return _M_file.is_open(); }
      __filebuf_type*
      open(const char* __s, ios_base::openmode __mode);
#if __cplusplus >= 201103L
      __filebuf_type*
      open(const std::string& __s, ios_base::openmode __mode)
      { return open(__s.c_str(), __mode); }
#endif
      __filebuf_type*
      close();
    protected:
      void
      _M_allocate_internal_buffer();
      void
      _M_destroy_internal_buffer() throw();
      virtual streamsize
      showmanyc();
      virtual int_type
      underflow();
      virtual int_type
      pbackfail(int_type __c = _Traits::eof());
      virtual int_type
      overflow(int_type __c = _Traits::eof());
      bool
      _M_convert_to_external(char_type*, streamsize);
      virtual __streambuf_type*
      setbuf(char_type* __s, streamsize __n);
      virtual pos_type
      seekoff(off_type __off, ios_base::seekdir __way,
	      ios_base::openmode __mode = ios_base::in | ios_base::out);
      virtual pos_type
      seekpos(pos_type __pos,
	      ios_base::openmode __mode = ios_base::in | ios_base::out);
      pos_type
      _M_seek(off_type __off, ios_base::seekdir __way, __state_type __state);
      int
      _M_get_ext_pos(__state_type &__state);
      virtual int
      sync();
      virtual void
      imbue(const locale& __loc);
      virtual streamsize
      xsgetn(char_type* __s, streamsize __n);
      virtual streamsize
      xsputn(const char_type* __s, streamsize __n);
      bool
      _M_terminate_output();
      void
      _M_set_buffer(streamsize __off)
      {
	const bool __testin = _M_mode & ios_base::in;
	const bool __testout = (_M_mode & ios_base::out
				|| _M_mode & ios_base::app);
	if (__testin && __off > 0)
	  this->setg(_M_buf, _M_buf, _M_buf + __off);
	else
	  this->setg(_M_buf, _M_buf, _M_buf);
	if (__testout && __off == 0 && _M_buf_size > 1 )
	  this->setp(_M_buf, _M_buf + _M_buf_size - 1);
	else
	  this->setp(0, 0);
      }
    };
  template<typename _CharT, typename _Traits>
    class basic_ifstream : public basic_istream<_CharT, _Traits>
    {
    public:
      typedef _CharT 					char_type;
      typedef _Traits 					traits_type;
      typedef typename traits_type::int_type 		int_type;
      typedef typename traits_type::pos_type 		pos_type;
      typedef typename traits_type::off_type 		off_type;
      typedef basic_filebuf<char_type, traits_type> 	__filebuf_type;
      typedef basic_istream<char_type, traits_type>	__istream_type;
    private:
      __filebuf_type	_M_filebuf;
    public:
      basic_ifstream() : __istream_type(), _M_filebuf()
      { this->init(&_M_filebuf); }
      explicit
      basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
      : __istream_type(), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }
#if __cplusplus >= 201103L
      explicit
      basic_ifstream(const std::string& __s,
		     ios_base::openmode __mode = ios_base::in)
      : __istream_type(), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }
#endif
      ~basic_ifstream()
      { }
      __filebuf_type*
      rdbuf() const
      { return const_cast<__filebuf_type*>(&_M_filebuf); }
      bool
      is_open()
      { return _M_filebuf.is_open(); }
      bool
      is_open() const
      { return _M_filebuf.is_open(); }
      void
      open(const char* __s, ios_base::openmode __mode = ios_base::in)
      {
	if (!_M_filebuf.open(__s, __mode | ios_base::in))
	  this->setstate(ios_base::failbit);
	else
	  this->clear();
      }
#if __cplusplus >= 201103L
      void
      open(const std::string& __s, ios_base::openmode __mode = ios_base::in)
      {
	if (!_M_filebuf.open(__s, __mode | ios_base::in))
	  this->setstate(ios_base::failbit);
	else
	  this->clear();
      }
#endif
      void
      close()
      {
	if (!_M_filebuf.close())
	  this->setstate(ios_base::failbit);
      }
    };
  template<typename _CharT, typename _Traits>
    class basic_ofstream : public basic_ostream<_CharT,_Traits>
    {
    public:
      typedef _CharT 					char_type;
      typedef _Traits 					traits_type;
      typedef typename traits_type::int_type 		int_type;
      typedef typename traits_type::pos_type 		pos_type;
      typedef typename traits_type::off_type 		off_type;
      typedef basic_filebuf<char_type, traits_type> 	__filebuf_type;
      typedef basic_ostream<char_type, traits_type>	__ostream_type;

    private:
      __filebuf_type	_M_filebuf;
    public:
      basic_ofstream(): __ostream_type(), _M_filebuf()
      { this->init(&_M_filebuf); }
      explicit
      basic_ofstream(const char* __s,
		     ios_base::openmode __mode = ios_base::out|ios_base::trunc)
      : __ostream_type(), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }
#if __cplusplus >= 201103L
      explicit
      basic_ofstream(const std::string& __s,
		     ios_base::openmode __mode = ios_base::out|ios_base::trunc)
      : __ostream_type(), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }
#endif
      ~basic_ofstream()
      { }
      __filebuf_type*
      rdbuf() const
      { return const_cast<__filebuf_type*>(&_M_filebuf); }
      bool
      is_open()
      { return _M_filebuf.is_open(); }
      bool
      is_open() const
      { return _M_filebuf.is_open(); }
      void
      open(const char* __s,
	   ios_base::openmode __mode = ios_base::out | ios_base::trunc)
      {
	if (!_M_filebuf.open(__s, __mode | ios_base::out))
	  this->setstate(ios_base::failbit);
	else
	  this->clear();
      }
#if __cplusplus >= 201103L
      void
      open(const std::string& __s,
	   ios_base::openmode __mode = ios_base::out | ios_base::trunc)
      {
	if (!_M_filebuf.open(__s, __mode | ios_base::out))
	  this->setstate(ios_base::failbit);
	else
	  this->clear();
      }
#endif
      void
      close()
      {
	if (!_M_filebuf.close())
	  this->setstate(ios_base::failbit);
      }
    };
  template<typename _CharT, typename _Traits>
    class basic_fstream : public basic_iostream<_CharT, _Traits>
    {
    public:
      typedef _CharT 					char_type;
      typedef _Traits 					traits_type;
      typedef typename traits_type::int_type 		int_type;
      typedef typename traits_type::pos_type 		pos_type;
      typedef typename traits_type::off_type 		off_type;
      typedef basic_filebuf<char_type, traits_type> 	__filebuf_type;
      typedef basic_ios<char_type, traits_type>		__ios_type;
      typedef basic_iostream<char_type, traits_type>	__iostream_type;

    private:
      __filebuf_type	_M_filebuf;
    public:
      basic_fstream()
      : __iostream_type(), _M_filebuf()
      { this->init(&_M_filebuf); }
      explicit
      basic_fstream(const char* __s,
		    ios_base::openmode __mode = ios_base::in | ios_base::out)
      : __iostream_type(0), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }
#if __cplusplus >= 201103L
      explicit
      basic_fstream(const std::string& __s,
		    ios_base::openmode __mode = ios_base::in | ios_base::out)
      : __iostream_type(0), _M_filebuf()
      {
	this->init(&_M_filebuf);
	this->open(__s, __mode);
      }
#endif
      ~basic_fstream()
      { }
      __filebuf_type*
      rdbuf() const
      { return const_cast<__filebuf_type*>(&_M_filebuf); }
      bool
      is_open()
      { return _M_filebuf.is_open(); }
      bool
      is_open() const
      { return _M_filebuf.is_open(); }
      void
      open(const char* __s,
	   ios_base::openmode __mode = ios_base::in | ios_base::out)
      {
	if (!_M_filebuf.open(__s, __mode))
	  this->setstate(ios_base::failbit);
	else
	  this->clear();
      }
#if __cplusplus >= 201103L
      void
      open(const std::string& __s,
	   ios_base::openmode __mode = ios_base::in | ios_base::out)
      {
	if (!_M_filebuf.open(__s, __mode))
	  this->setstate(ios_base::failbit);
	else
	  this->clear();
      }
#endif
      void
      close()
      {
	if (!_M_filebuf.close())
	  this->setstate(ios_base::failbit);
      }
      return 0;
}

jeron1

Какое отношение к вашей проблеме имеет опубликованный вами код?

2 Ответов

Рейтинг:
1

W∴ Balboos, GHB

1) никто не собирается смотреть на то большое количество ocde, которое вы представили
2) Если вам нужна помощь, то она должна быть для чего-то конкретного.

- Что случилось? Зачем вам нужна помощь? Что вы сделали до сих пор, чтобы найти/устранить проблему самостоятельно?


Рейтинг:
1

Patrice T

Цитата:
Можете ли вы помочь с этим языком программирования?

У вас нет вопроса, Вы не проявляете ни малейшего усилия, код даже отдаленно не связан с утверждением. Код выглядит как попытка обмануть нас, заставив думать, что вы что-то сделали.
Это ваша домашняя работа, нужно изучить язык и начать работать.

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.