main_8cpp-source.html

来自「Aprior的C++实现算法」· HTML 代码 · 共 152 行

HTML
152
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>APRIORI algorithm: main.cpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.5 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><h1>main.cpp</h1><a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 00032 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>00033 <span class="preprocessor"></span><span class="preprocessor">#include &lt;config.h&gt;</span>00034 <span class="preprocessor">#endif</span>00035 <span class="preprocessor"></span>00036 <span class="preprocessor">#include &lt;iostream&gt;</span>00037 <span class="preprocessor">#include &lt;fstream&gt;</span>00038 <span class="preprocessor">#include "<a class="code" href="MSApriori_8hpp.html">MSApriori.hpp</a>"</span>00039 <span class="keyword">using</span> <span class="keyword">namespace </span>std;00040 00041 00043 <a name="l00044"></a><a class="code" href="main_8cpp.html#a0">00044</a> <span class="keywordtype">void</span> <a class="code" href="main_8cpp.html#a0">usage</a>()00045 {00046    cerr &lt;&lt; <span class="stringliteral">"\nUsage: ./msapriori basketfile outcomefile mis_file [min_conf]\n"</span>;00047    cerr &lt;&lt; <span class="stringliteral">"\n basketfile\t    file, that contains the baskets of itemcodes"</span>;00048    cerr &lt;&lt; <span class="stringliteral">"\n outcomefile\t    file to write the outcome"</span>;00049    cerr &lt;&lt; <span class="stringliteral">"\n mis_file\t    file, that contain mis values"</span>;00050    cerr &lt;&lt; <span class="stringliteral">"\n min_conf\t    confidence threshold"</span>;00051 00052    cerr &lt;&lt; <span class="stringliteral">"\n\nFile formats:"</span>;00053    cerr &lt;&lt; <span class="stringliteral">"\n\nThe basket file is a plan text file. Each row represents a basket. "</span>;00054    cerr &lt;&lt; <span class="stringliteral">"A basket is a set of items seperated by a nonnumeric character (for example white space, comma, colon, etc.). "</span>;   00055    cerr &lt;&lt; <span class="stringliteral">"An item is represented by its code which is an integer number greater than or equal with 0."</span>;00056    cerr &lt;&lt; <span class="stringliteral">"\n\nThe mis file is a plan text file. Each row represents an item and its mis value (a real vaule between 0 and 1). "</span>;00057    cerr &lt;&lt; <span class="stringliteral">"They have to be seperated by a non-whitespace cahacter (for example comma, colon, semi-colon, dot,etc.). "</span>;00058    cerr &lt;&lt; <span class="stringliteral">"The white spaces are ignored automaically.\n"</span>;00059    cerr &lt;&lt; <span class="stringliteral">"\nFor more options please check the configuration file: .apriori_config."</span>;00060    cerr &lt;&lt; <span class="stringliteral">"\n\nHave a succesful mining ;-)"</span>;00061    cerr &lt;&lt; <span class="stringliteral">"\n\n\n\t\t\t\t\tFerenc Bodon\n\n"</span>;00062 }00063 <a name="l00064"></a><a class="code" href="main_8cpp.html#a1">00064</a> <span class="keywordtype">void</span> <a class="code" href="main_8cpp.html#a1">process_config_file</a>(<span class="keywordtype">bool</span>&amp; quiet, <span class="keywordtype">bool</span>&amp; store_input, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>&amp; size_threshold)00065 {00066    ifstream config_file(<span class="stringliteral">".apriori_config"</span>);00067    quiet=<span class="keyword">false</span>;00068    store_input=<span class="keyword">true</span>;00069 00070    <span class="keywordflow">if</span>( !config_file ) 00071    {00072       cerr &lt;&lt; <span class="stringliteral">"Warning: There is no configuration file (.apriori_config)!\n"</span>;00073       cerr &lt;&lt; <span class="stringliteral">"Default values are used!"</span>&lt;&lt;flush;00074    }00075    <span class="keywordflow">else</span>00076    {00077       <span class="keywordtype">char</span> temp_string[256];00078       config_file.getline(temp_string, 256);00079       config_file.getline(temp_string, 256);00080       config_file&gt;&gt;quiet;00081       <span class="keywordflow">if</span>( config_file.fail() )00082       { 00083          cerr&lt;&lt;<span class="stringliteral">"\nWarning: Failed to read in quiet value from the configuration file!"</span>;00084          cerr&lt;&lt;<span class="stringliteral">"\nDefault value (false) is used."</span>;00085       }00086       config_file.getline(temp_string, 256);00087       config_file&gt;&gt;store_input;00088       <span class="keywordflow">if</span>( config_file.fail() )00089       { 00090          cerr&lt;&lt;<span class="stringliteral">"\nWarning: Failed to read in store_input value from the configuration file!"</span>;00091          cerr&lt;&lt;<span class="stringliteral">"\nDefault value (true) is used."</span>;00092       }00093       config_file.getline(temp_string, 256);00094       config_file&gt;&gt;size_threshold;00095       <span class="keywordflow">if</span>( config_file.fail() )00096       { 00097          cerr&lt;&lt;<span class="stringliteral">"\nWarning: Failed to read in size_threshold value from the configuration file!"</span>;00098          cerr&lt;&lt;<span class="stringliteral">"\nDefault value (0) is used."</span>;00099       }00100       config_file.close();00101    }00102 }00103 <a name="l00105"></a><a class="code" href="main_8cpp.html#a2">00105</a> <span class="keywordtype">int</span> <a class="code" href="main_8cpp.html#a2">process_arguments</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[], ifstream&amp; basket_file, ifstream&amp; mis_file, <span class="keywordtype">double</span>&amp; min_conf )00106 {00107    <span class="keywordflow">if</span> ( argc &lt; 4 )00108    {00109      <a class="code" href="main_8cpp.html#a0">usage</a>();00110      cerr&lt;&lt;<span class="stringliteral">"\nError! There are 3 mandatory arguments!"</span>&lt;&lt;flush;00111      <span class="keywordflow">return</span> 1;00112    }00113    basket_file.open(argv[1]);00114    <span class="keywordflow">if</span>( !basket_file )00115    {00116       <a class="code" href="main_8cpp.html#a0">usage</a>();00117       cerr &lt;&lt; <span class="stringliteral">"\nError! The basket file can not be read!"</span>&lt;&lt; flush;00118       <span class="keywordflow">return</span> 1;00119    }00120    00121    mis_file.open(argv[3]);00122    <span class="keywordflow">if</span>( !mis_file )00123    {00124       <a class="code" href="main_8cpp.html#a0">usage</a>();00125       cerr &lt;&lt; <span class="stringliteral">"\nError!The file that contain minimal threshold values can not be read!"</span>&lt;&lt; flush; 00126       <span class="keywordflow">return</span> 1;00127    }00128    <span class="keywordflow">if</span> ( argc == 5 )00129    {00130       min_conf = atof(argv[4]);00131       <span class="keywordflow">if</span> ( min_conf &lt;= 0 || min_conf &gt; 1 )00132       {00133          <a class="code" href="main_8cpp.html#a0">usage</a>();00134          cerr &lt;&lt; <span class="stringliteral">"\nError!\n min_conf should be in the interval (0,1].\n"</span>&lt;&lt;flush;00135          <span class="keywordflow">return</span> 1;00136       }00137    }00138    <span class="keywordflow">else</span> min_conf = 0;00139    <span class="keywordflow">return</span> 0;00140 }00141 <a name="l00142"></a><a class="code" href="main_8cpp.html#a3">00142</a> <span class="keywordtype">int</span> <a class="code" href="main_8cpp.html#a3">main</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[] )00143 {00144    <span class="keywordtype">double</span> min_conf;00145    <span class="keywordtype">bool</span> store_input = <span class="keyword">true</span>,00146               quiet = <span class="keyword">false</span>;00147    <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> size_threshold;      00148    ifstream basket_file, mis_file;00149    00150    <a class="code" href="main_8cpp.html#a1">process_config_file</a>(quiet, store_input, size_threshold);00151    <span class="keywordflow">if</span>( <a class="code" href="main_8cpp.html#a2">process_arguments</a>( argc, argv, basket_file, mis_file, min_conf ) ) <span class="keywordflow">return</span> 1;00152       00153    <span class="keywordflow">if</span>( !quiet )00154    {00155       cout &lt;&lt; <span class="stringliteral">"\n********************************************************************"</span>;00156       cout &lt;&lt; <span class="stringliteral">"\n***                                                              ***"</span>;00157       cout &lt;&lt; <span class="stringliteral">"\n***                Trie based MSApriori algorithm                ***"</span>;00158       cout &lt;&lt; <span class="stringliteral">"\n***                       version: 2.2.24                        ***"</span>;00159       cout &lt;&lt; <span class="stringliteral">"\n***                                                              ***"</span>;00160       cout &lt;&lt; <span class="stringliteral">"\n***       Implemented by: Ferenc Bodon (bodon@cs.bme.hu)         ***"</span>;00161       cout &lt;&lt; <span class="stringliteral">"\n***                                                              ***"</span>;00162       cout &lt;&lt; <span class="stringliteral">"\n********************************************************************\n\n"</span>;00163    }00164 00165    <a class="code" href="classMSApriori.html">MSApriori</a> msapriori( basket_file, argv[2] , store_input );00166    msapriori.<a class="code" href="classMSApriori.html#a1">MSAPRIORI_alg</a>( mis_file, min_conf, quiet, size_threshold );00167    basket_file.close();00168    <span class="keywordflow">return</span> 0;00169 }00170 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jun 20 23:41:08 2004 for APRIORI algorithm by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>

⌨️ 快捷键说明

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