⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 run.h

📁 这是个很好的源代码,有用的
💻 H
字号:
// ==============================================================
//
//  Copyright (c) 2002-2003 by Alex Vinokur.
//
//  For conditions of distribution and use, see
//  copyright notice in version.h
//
// ==============================================================


// ##############################################################
//
//  SOFTWARE : Turing Machine (C++ Implementation)
//  FILE     : run.h
//
//  DESCRIPTION :
//         Class Run (Definition)
//
// ##############################################################



// ###############
#ifndef _RUN_H
#define _RUN_H

#include "turing-m.h"

#define	DEFAULT_NUMBER_OF_TAPES		1
#define	DEFAULT_METAFILE		"metafile.txt"
#define	DEFAULT_ALPHABET_FILE		"alphabet.txt"
#define	DEFAULT_DESCR_FILE		"descr.txt"
#define	DEFAULT_STATES_FILE		"states.txt"
#define	DEFAULT_TRANSITION_FILE		"trans.txt"
#define	DEFAULT_INPUT_WORDS_FILE	"iwords.txt"

// =========
class Aux
{
friend class Run;
  private :
    vector<string>	help_request_keys_;
    void		init ();

  public :
    Aux ();
    ~Aux ();
};


// =========
class Run
{
  private :
    // ------ Private Data ------
    size_t		number_of_tapes_;
    bool		check_results_;
    size_t		serial_number_;

    static string	metafile_name_s;
    string		descr_file_name_;
    string		states_file_name_;
    string		alphabet_file_name_;
    string		transitions_file_name_;
    vector<string>	input_words_files_names_;

    static vector<vector<string> >	metafile_data_s;
    vector<vector<string> >		descr_file_data_;
    vector<vector<string> >		states_file_data_;
    vector<vector<string> >		alphabet_file_data_;
    vector<vector<string> >		transitions_file_data_;
    vector<vector<vector<string> > >	input_words_files_data_;
    Transitions_t			transitions_;

    static const vector<string>		help_request_keys_s;

    // ------ Private Methods ------
    bool	init_number_of_tapes (size_t number_of_tapes_i);
    bool	init_descr (const string& descr_file_name_i);
    bool	init_states (const string& states_file_name_i);
    bool	init_alphabet (const string& alphabet_file_name_i);
    bool	init_transitions (const string& transitions_file_name_i);
    bool	create_transitions ();
    bool	init_input_words (const vector<string>& input_words_files_names_i);


    static bool	read_file_S (const string& filename_i, vector<vector<string> >& data_o);
    static bool	read_metafile_S (const string& filename_i = DEFAULT_METAFILE);

    static void	invoke_turing_machine_S (
		size_t			serial_number_i,
		size_t			total_tapes_i,
		const string&		descr_file_name_i,
		const string&		states_file_name_i,
		const string&		alphabet_file_name_i,
		const string&		transitions_file_name_i,
		const vector<string>&	input_words_files_names_i
		);

    void	invoke_turing_machine (
		const vector<string>&		descr_file_data_i,
		const vector<string>&		states_file_data_i,
		const vector<string>&		alphabet_file_data_i,
		const vector<string>&		transitions_file_data_i,
		const vector<vector<string> >&	input_words_files_data_i
		);
    
    bool	read_alphabet_file ();
    bool	read_descr_file ();
    bool	read_states_file ();
    bool	read_transitions_file ();
    bool	read_input_words_file (const string& filename_i);

    static void	show_metafile_structure_S ();
    static void	show_alphabet_file_structure_S ();
    static void	show_descr_file_structure_S ();
    static void	show_states_file_structure_S ();
    static void	show_transitions_file_structure_S ();
    void	show_transitions_file_structure () const;
    static void	show_input_words_file_structure_S ();

    static void	show_metafile_sample_S ();
    static void	show_alphabet_file_sample_S ();
    static void	show_descr_file_sample_S ();
    static void	show_states_file_sample_S ();
    static void	show_transitions_file_sample_S ();
    static void	show_input_words_file_sample_S ();
							
    static void	show_metafile_content_S ();
    void	show_alphabet_file_content () const;
    void	show_descr_file_content () const;
    void	show_states_file_content () const;
    void	show_transitions_file_content () const;
    void	show_input_words_files_content () const;

    static void	show_help_S(const string& exe_name_i);
    static void	show_sample_S();
    static void	show_usage_S(const string& exe_name_i);

    bool	invoke_machine();

  public :
    Run (
		size_t			serial_number_i,
		size_t			total_tapes_i,
		const string&		descr_file_name_i,
		const string&		states_file_name_i,
		const string&		alphabet_file_name_i,
		const string&		transitions_file_name_i,
		const vector<string>&	input_words_files_names_i
		);
    ~Run ();  
    static void	run (uint argc, char** argv);
};

#endif	// _RUN_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -