📄 main_8cpp-source.html
字号:
<!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.9.1 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div><h1>main.cpp</h1><a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 00031 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>00032 <span class="preprocessor"></span><span class="preprocessor">#include <config.h></span>00033 <span class="preprocessor">#endif</span>00034 <span class="preprocessor"></span>00035 <span class="preprocessor">#include <iostream></span>00036 <span class="preprocessor">#include <fstream></span>00037 <span class="preprocessor">#include "<a class="code" href="Apriori_8hpp.html">Apriori.hpp</a>"</span>00038 <span class="keyword">using</span> <span class="keyword">namespace </span>std;00039 00040 00042 <a name="l00043"></a><a class="code" href="main_8cpp.html#a0">00043</a> <span class="keywordtype">void</span> <a class="code" href="main_8cpp.html#a0">usage</a>()00044 {00045 cerr << <span class="stringliteral">"\nUsage: apriori basketfile outcomefile min_supp\n"</span>;00046 cerr << <span class="stringliteral">"\n basketfile\t file, that contains the baskets of itemcodes"</span>;00047 cerr << <span class="stringliteral">"\n outcomefile\t file to write the outcome"</span>;00048 cerr << <span class="stringliteral">"\n min_supp\t support threshold"</span>;00049 00050 cerr << <span class="stringliteral">"\n\nFile formats:"</span>;00051 cerr << <span class="stringliteral">"\n\nThe basket file is a plan text file. Each row represents"</span>;00052 cerr << <span class="stringliteral">" a basket. "</span><<endl;00053 cerr << <span class="stringliteral">"A basket is a set of items seperated by a nonnumeric character."</span>;00054 cerr << <span class="stringliteral">"\nIt can be for example a white space, comma, colon, etc. \n"</span>;00055 cerr << <span class="stringliteral">"An item is represented by its code which is an integer number\n"</span>;00056 cerr << <span class="stringliteral">"greater than or equal to 0."</span>;00057 cerr << <span class="stringliteral">"\nFor more options please check the configuration"</span>;00058 cerr << <span class="stringliteral">" file: .apriori_config."</span>;00059 cerr << <span class="stringliteral">"\n\nHave a succesful mining ;-)"</span>;00060 cerr << <span class="stringliteral">"\n\n\n\t\t\t\t\tFerenc Bodon\n\n"</span>;00061 }00062 <a name="l00063"></a><a class="code" href="main_8cpp.html#a1">00063</a> <span class="keywordtype">void</span> <a class="code" href="main_8cpp.html#a1">process_config_file</a>( <span class="keywordtype">bool</span>& quiet, <span class="keywordtype">bool</span>& store_input, 00064 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>& 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 << <span class="stringliteral">"Warning: There is no configuration file (.apriori_config)!\n"</span>;00073 cerr << <span class="stringliteral">"Default values are used!\n"</span><<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>>quiet;00081 <span class="keywordflow">if</span>( config_file.fail() )00082 { 00083 cerr<<<span class="stringliteral">"\nWarning: Failed to read in quiet value "</span>;00084 cerr<< <span class="stringliteral">"from the configuration file!"</span>;00085 cerr<<<span class="stringliteral">"\nDefault value (false) is used.\n"</span>;00086 }00087 config_file.getline(temp_string, 256);00088 config_file>>store_input;00089 <span class="keywordflow">if</span>( config_file.fail() )00090 { 00091 cerr<<<span class="stringliteral">"\nWarning: Failed to read in store_input value "</span>;00092 cerr<<<span class="stringliteral">"from the configuration file!"</span>;00093 cerr<<<span class="stringliteral">"\nDefault value (true) is used.\n"</span>;00094 }00095 config_file.getline(temp_string, 256);00096 config_file>>size_threshold;00097 <span class="keywordflow">if</span>( config_file.fail() )00098 { 00099 cerr<<<span class="stringliteral">"\nWarning: Failed to read in size_threshold value "</span>;00100 cerr<<<span class="stringliteral">"from the configuration file!"</span>;00101 cerr<<<span class="stringliteral">"\nDefault value (0) is used.\n"</span>;00102 }00103 config_file.close();00104 }00105 }00106 <a name="l00108"></a><a class="code" href="main_8cpp.html#a2">00108</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& basket_file, 00109 <span class="keywordtype">double</span>& min_supp )00110 {00111 <span class="keywordflow">if</span> ( argc < 4 )00112 {00113 <a class="code" href="main_8cpp.html#a0">usage</a>();00114 cerr<<<span class="stringliteral">"\nError! There are 3 mandatory arguments!\n"</span><<flush;00115 <span class="keywordflow">return</span> 1;00116 }00117 basket_file.open(argv[1]);00118 <span class="keywordflow">if</span>( !basket_file )00119 {00120 <a class="code" href="main_8cpp.html#a0">usage</a>();00121 cerr << <span class="stringliteral">"\nError! The basket file can not be read!"</span><< flush;00122 <span class="keywordflow">return</span> 1;00123 }00124 00125 min_supp = atof(argv[3]);00126 <span class="keywordflow">if</span> ( min_supp <= 0 || min_supp > 1 )00127 {00128 <a class="code" href="main_8cpp.html#a0">usage</a>();00129 cerr<<<span class="stringliteral">"\nError!\n min_supp should be in the interval (0,1].\n"</span><<flush;00130 <span class="keywordflow">return</span> 1;00131 }00132 00133 <span class="keywordflow">return</span> 0;00134 }00135 <a name="l00136"></a><a class="code" href="main_8cpp.html#a3">00136</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[] )00137 {00138 <span class="keywordtype">double</span> min_supp;00139 <span class="keywordtype">bool</span> store_input = <span class="keyword">true</span>,00140 quiet = <span class="keyword">false</span>;00141 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size_threshold;00142 ifstream basket_file;00143 00144 <a class="code" href="main_8cpp.html#a1">process_config_file</a>(quiet, store_input, size_threshold);00145 <span class="keywordflow">if</span>( <a class="code" href="main_8cpp.html#a2">process_arguments</a>( argc, argv, basket_file, min_supp ) ) <span class="keywordflow">return</span> 1;00146 00147 <span class="keywordflow">if</span>( !quiet )00148 {00149 cout << <span class="stringliteral">"\n **********************************************************"</span>;00150 cout << <span class="stringliteral">"\n *** ***"</span>;00151 cout << <span class="stringliteral">"\n *** Trie based APRIORI algorithm ***"</span>;00152 cout << <span class="stringliteral">"\n *** version: 2.4.9 ***"</span>;00153 cout << <span class="stringliteral">"\n *** ***"</span>;00154 cout << <span class="stringliteral">"\n *** Implemented by: Ferenc Bodon (bodon@cs.bme.hu) ***"</span>;00155 cout << <span class="stringliteral">"\n *** ***"</span>;00156 cout << <span class="stringliteral">"\n **********************************************************"</span>;00157 cout<< endl<<endl;00158 }00159 00160 <a class="code" href="classApriori.html">Apriori</a> apriori( basket_file, argv[2], store_input );00161 apriori.<a class="code" href="classApriori.html#a1">APRIORI_alg</a>( min_supp, quiet, size_threshold );00162 basket_file.close();00163 <span class="keywordflow">return</span> 0;00164 }00165 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Mar 11 14:48:06 2005 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.9.1 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -