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

📄 command.c

📁 IBM(原)数据生成器和源代码
💻 C
字号:
//// command line help  & get arguments//#include "glob.h"#include "gen.h"#define VERSION "Version dated July 22, 1997"extern char data_file[];extern char pat_file[];extern char tax_file[];static BOOLEAN userfile = FALSE;void err_msg(char *str){  cerr << str << flush;  exit(1);}void print_version(void){  cerr << VERSION << endl;}void command_line(TaxPar &par){  par.calc_values();  cerr << "Command Line Options:\n";  cerr << "  -ntrans number_of_transactions_in_000s (default: "       << par.ntrans/1000 << ")\n";  cerr << "  -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";  cerr << "  -nitems number_of_different_items_in_000s (default: "       << par.nitems/1000 << ")\n";  cerr << "  -nroots number_of_roots (default: " << par.nroots << ")\n";  cerr << "  -nlevels number_of_different_levels (default: " << par.nlevels       << ")\n";  cerr << "  -fanout average_fanout (default: " << par.fanout << ")\n";  cerr << "  -depth affects_average_depth_of_items_in_itemsets (default: "    << par.depth_ratio << ")\n";  cerr << endl;  cerr << "  -npats number_of_patterns (default: " << par.lits.npats << ")\n";  cerr << "  -patlen avg_length_of_maximal_pattern (default: "       << par.lits.patlen << ")\n";  cerr << "  -corr correlation_between_patterns (default: " << par.lits.corr       << ")\n";  cerr << "  -conf avg_confidence_in_a_rule (default: " << par.lits.conf       << ")\n";  cerr << endl;  cerr << "  -fname <filename> (write to filename.data and filename.pat)\n";  cerr << "  -ascii (Write data in ASCII format; default: " << (par.ascii? "True": "False") << ")\n";  cerr << "  -randseed # (reset seed used generate to x-acts; must be negative)\n";  cerr << "  -version (to print out version info)\n";  exit(1);}void command_line(TransPar &par){  cerr << "Command Line Options:\n";  cerr << "  -ntrans number_of_transactions_in_000s (default: "       << par.ntrans/1000 << ")\n";  cerr << "  -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";  cerr << "  -nitems number_of_different_items_in_000s) (default: "       << par.nitems/1000 << ")\n";  cerr << endl;  cerr << "  -npats number_of_patterns (default: " << par.lits.npats << ")\n";  cerr << "  -patlen avg_length_of_maximal_pattern (default: "       << par.lits.patlen << ")\n";  cerr << "  -corr correlation_between_patterns (default: " << par.lits.corr       << ")\n";  cerr << "  -conf avg_confidence_in_a_rule (default: " << par.lits.conf       << ")\n";  cerr << endl;  cerr << "  -fname <filename> (write to filename.data and filename.pat)\n";  cerr << "  -ascii (default: " << (par.ascii? "True": "False") << ")\n";  cerr << "  -randseed # (reset seed used generate to x-acts; must be negative)\n";  cerr << "  -version (to print out version info)\n";  exit(1);}void command_line(SeqPar &par){  cerr << "Command Line Options:\n";  cerr << "  -ncust number_of_customers_in_000s (default: "       << par.ncust/1000 << ")\n";  cerr << "  -slen avg_trans_per_customer (default: " << par.slen << ")\n";  cerr << "  -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";  cerr << "  -nitems number_of_different_items_in_000s (default: "       << par.nitems/1000 << ")\n";  cerr << "  -rept repetition-level (default: " << par.rept << ")\n";  cerr << endl;  cerr << "  -seq.npats number_of_seq_patterns (default: " << par.lseq.npats       << ")\n";  cerr << "  -seq.patlen avg_length_of_maximal_pattern (default: "       << par.lseq.patlen << ")\n";  cerr << "  -seq.corr correlation_between_patterns (default: "       << par.lseq.corr << ")\n";  cerr << "  -seq.conf avg_confidence_in_a_rule (default: " << par.lseq.conf       << ")\n";  cerr << endl;  cerr << "  -lit.npats number_of_patterns (default: " << par.lits.npats       << ")\n";  cerr << "  -lit.patlen avg_length_of_maximal_pattern (default: "       << par.lits.patlen << ")\n";  cerr << "  -lit.corr correlation_between_patterns (default: "       << par.lits.corr << ")\n";  cerr << "  -lit.conf avg_confidence_in_a_rule (default: " << par.lits.conf       << ")\n";  cerr << endl;  cerr << "  -fname <filename> (write to filename.data and filename.pat)\n";  cerr << "  -ascii (Write data in ASCII format; default: " << (par.ascii? "True": "False") << ")\n";  cerr << "  -version (to print out version info)\n";  exit(1);}void cat_fname(char *str1, char *str2){  if (userfile) return;    strcat(data_file, str1);  strcat(pat_file, str1);  strcat(tax_file, str1);  strcat(data_file, str2);  strcat(pat_file, str2);  strcat(tax_file, str2);}void get_args(TransPar &par, int argc, char **argv){  LINT arg_pos = 2;    strcpy(data_file, "data");  strcpy(pat_file, "pat");  strcpy(tax_file, "tax");  while (arg_pos < argc)    {      if (strcmp(argv[arg_pos], "-ntrans") == 0) {	par.ntrans = 1000 * atof(argv[++arg_pos]);	cat_fname(".ntrans_", argv[arg_pos]);	arg_pos++;	if (par.ntrans < 1) err_msg("ntrans must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-tlen") == 0) {	par.tlen = atof(argv[++arg_pos]);	cat_fname(".tlen_", argv[arg_pos]);	arg_pos++;	if (par.tlen < 1) err_msg("tlen must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-nitems") == 0) {	par.nitems = 1000 * atof(argv[++arg_pos]);	cat_fname(".nitems_", argv[arg_pos]);	arg_pos++;	if (par.nitems < 1) err_msg("nitems must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-npats") == 0) {	par.lits.npats = atoi(argv[++arg_pos]);	cat_fname(".npats_", argv[arg_pos]);	arg_pos++;	if (par.lits.npats < 1) err_msg("npats must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-patlen") == 0) {	par.lits.patlen = atof(argv[++arg_pos]);	cat_fname(".patlen_", argv[arg_pos]);	arg_pos++;	if (par.lits.patlen <= 0) err_msg("patlen must be > 0\n");	continue;      }      else if (strcmp(argv[arg_pos], "-corr") == 0) {	par.lits.corr = atof(argv[++arg_pos]);	cat_fname(".corr_", argv[arg_pos]);	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-conf") == 0) {	par.lits.conf = atof(argv[++arg_pos]);	cat_fname(".conf_", argv[arg_pos]);	arg_pos++;	if (par.lits.conf > 1 || par.lits.conf < 0) 	  err_msg("conf must be between 0 and 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-fname") == 0) {        strcpy(data_file, argv[++arg_pos]);        strcat(data_file, ".data");        strcpy(pat_file, argv[arg_pos++]);        strcat(pat_file, ".pat");        userfile = TRUE;	continue;      }      else if (strcmp(argv[arg_pos], "-ascii") == 0) {	par.ascii = TRUE;	cat_fname(".ascii", "");	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-randseed") == 0) {	par.seed = atoi(argv[++arg_pos]);	arg_pos++;	if (par.seed >= 0)	  err_msg("randseed must be negative.\n");	continue;      }      else if (strcmp(argv[arg_pos], "-version") == 0) {	cout << VERSION << endl;	exit(0);      }      else {	command_line(par);      }    }  // end while}void get_args(TaxPar &par, int argc, char **argv){  LINT arg_pos = 2;    strcpy(data_file, "data");  strcpy(pat_file, "pat");  strcpy(tax_file, "tax");  while (arg_pos < argc)    {      if (strcmp(argv[arg_pos], "-ntrans") == 0) {	par.ntrans = 1000 * atof(argv[++arg_pos]);	cat_fname(".ntrans_", argv[arg_pos]);	arg_pos++;	if (par.ntrans < 1) err_msg("ntrans must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-tlen") == 0) {	par.tlen = atof(argv[++arg_pos]);	cat_fname(".tlen_", argv[arg_pos]);	arg_pos++;	if (par.tlen < 1) err_msg("tlen must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-nitems") == 0) {	par.nitems = 1000 * atof(argv[++arg_pos]);	cat_fname(".nitems_", argv[arg_pos]);	arg_pos++;	if (par.nitems < 1) err_msg("nitems must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-nroots") == 0) {	par.nroots = atoi(argv[++arg_pos]);	cat_fname(".nroots_", argv[arg_pos]);	arg_pos++;	if (par.nroots < 1) err_msg("nroots must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-nlevels") == 0) {	par.nlevels = atof(argv[++arg_pos]);	cat_fname(".nlevels_", argv[arg_pos]);	arg_pos++;	if (par.nlevels < 1) err_msg("nlevels must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-fanout") == 0) {	par.fanout = atof(argv[++arg_pos]);	cat_fname(".fanout_", argv[arg_pos]);	arg_pos++;	if (par.fanout < 1) err_msg("fanout must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-depth") == 0) {	par.depth_ratio = atof(argv[++arg_pos]);	cat_fname(".depth_", argv[arg_pos]);	arg_pos++;	if (par.depth_ratio <= 0) err_msg("fanout must be > 0\n");	continue;      }      else if (strcmp(argv[arg_pos], "-npats") == 0) {	par.lits.npats = atoi(argv[++arg_pos]);	cat_fname(".npats_", argv[arg_pos]);	arg_pos++;	if (par.lits.npats < 1) err_msg("npats must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-patlen") == 0) {	par.lits.patlen = atof(argv[++arg_pos]);	cat_fname(".patlen_", argv[arg_pos]);	arg_pos++;	if (par.lits.patlen <= 0) err_msg("patlen must be > 0\n");	continue;      }      else if (strcmp(argv[arg_pos], "-corr") == 0) {	par.lits.corr = atof(argv[++arg_pos]);	cat_fname(".corr_", argv[arg_pos]);	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-conf") == 0) {	par.lits.conf = atof(argv[++arg_pos]);	cat_fname(".conf_", argv[arg_pos]);	arg_pos++;	if (par.lits.conf > 1 || par.lits.conf < 0) 	  err_msg("conf must be between 0 and 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-fname") == 0) {        strcpy(data_file, argv[++arg_pos]);        strcat(data_file, ".data");        strcpy(pat_file, argv[arg_pos]);        strcat(pat_file, ".pat");        strcpy(tax_file, argv[arg_pos++]);        strcat(tax_file, ".tax");        userfile = TRUE;	continue;      }      else if (strcmp(argv[arg_pos], "-ascii") == 0) {	par.ascii = TRUE;	cat_fname(".ascii", "");	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-randseed") == 0) {	par.seed = atoi(argv[++arg_pos]);	arg_pos++;	if (par.seed >= 0)	  err_msg("randseed must be negative.\n");	continue;      }      else if (strcmp(argv[arg_pos], "-version") == 0) {	cout << VERSION << endl;	exit(0);      }      else {	command_line(par);      }    }  // end while  par.calc_values();}void get_args(SeqPar &par, int argc, char **argv){  LINT arg_pos = 2;    strcpy(data_file, "data");  strcpy(pat_file, "pat");  strcpy(tax_file, "tax");  while (arg_pos < argc)    {      if (strcmp(argv[arg_pos], "-ncust") == 0) {	par.ncust = 1000 * atof(argv[++arg_pos]);	cat_fname(".ncust_", argv[arg_pos]);	arg_pos++;	if (par.ncust < 1) err_msg("ntrans must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-slen") == 0) {	par.slen = atof(argv[++arg_pos]);	cat_fname(".slen_", argv[arg_pos]);	arg_pos++;	if (par.slen < 1) err_msg("slen must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-tlen") == 0) {	par.tlen = atof(argv[++arg_pos]);	cat_fname(".tlen_", argv[arg_pos]);	arg_pos++;	if (par.tlen < 1) err_msg("tlen must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-nitems") == 0) {	par.nitems = 1000 * atof(argv[++arg_pos]);	cat_fname(".nitems_", argv[arg_pos]);	arg_pos++;	if (par.nitems < 1) err_msg("nitems must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-rept") == 0) {	par.rept = atof(argv[++arg_pos]);	cat_fname(".rept_", argv[arg_pos]);	arg_pos++;	if (par.rept < 0 || par.rept > 1) 	  err_msg("repetition-level must be between 0 and 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-seq.npats") == 0) {	par.lseq.npats = atoi(argv[++arg_pos]);	cat_fname(".seq.npats_", argv[arg_pos]);	arg_pos++;	if (par.lseq.npats < 1) err_msg("npats must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-seq.patlen") == 0) {	par.lseq.patlen = atof(argv[++arg_pos]);	cat_fname(".seq.patlen_", argv[arg_pos]);	arg_pos++;	if (par.lseq.patlen <= 0) err_msg("patlen must be > 0\n");	continue;      }      else if (strcmp(argv[arg_pos], "-seq.corr") == 0) {	par.lseq.corr = atof(argv[++arg_pos]);	cat_fname(".seq.corr_", argv[arg_pos]);	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-seq.conf") == 0) {	par.lseq.conf = atof(argv[++arg_pos]);	cat_fname(".seq.conf_", argv[arg_pos]);	arg_pos++;	if (par.lseq.conf > 1 || par.lseq.conf < 0) 	  err_msg("conf must be between 0 and 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-lit.npats") == 0) {	par.lits.npats = atoi(argv[++arg_pos]);	cat_fname(".lit.npats_", argv[arg_pos]);	arg_pos++;	if (par.lits.npats < 1) err_msg("npats must be >= 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-lit.patlen") == 0) {	par.lits.patlen = atof(argv[++arg_pos]);	cat_fname(".lit.patlen_", argv[arg_pos]);	arg_pos++;	if (par.lits.patlen <= 0) err_msg("patlen must be > 0\n");	continue;      }      else if (strcmp(argv[arg_pos], "-lit.corr") == 0) {	par.lits.corr = atof(argv[++arg_pos]);	cat_fname(".lit.corr_", argv[arg_pos]);	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-lit.conf") == 0) {	par.lits.conf = atof(argv[++arg_pos]);	cat_fname(".lit.conf_", argv[arg_pos]);	arg_pos++;	if (par.lits.conf > 1 || par.lits.conf < 0) 	  err_msg("conf must be between 0 and 1\n");	continue;      }      else if (strcmp(argv[arg_pos], "-fname") == 0) {        strcpy(data_file, argv[++arg_pos]);        strcat(data_file, ".data");        strcpy(pat_file, argv[arg_pos]);        strcat(pat_file, ".pat");        strcpy(tax_file, argv[arg_pos++]);        strcat(tax_file, ".tax");        userfile = TRUE;	continue;      }      else if (strcmp(argv[arg_pos], "-ascii") == 0) {	par.ascii = TRUE;	cat_fname(".ascii", "");	arg_pos++;	continue;      }      else if (strcmp(argv[arg_pos], "-version") == 0) {	cout << VERSION << endl;	exit(0);      }      else {	command_line(par);      }    }  // end while}

⌨️ 快捷键说明

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