103 103 {
104 104 int it;
105 105 char ItemValue;
106 106 system("cls");
107 107 printf_s("构造项目集\n");
108 108 printf_s("请输入项目个数:\n");//项目个数
109 109 scanf_s("%d",&ItemNum);
110 110 for (it=1;it<=ItemNum;it++)//依次输入每个项目集
111 111 {
112 112 fflush(stdin);
113 113 printf_s("\n请输入第%d个项目的字母(a,b,c,d,e,f,……):\n",it);
114 114 scanf("%c",&ItemValue);
115 115 listInsertSq(L,it,ItemValue);
116 116 }
117 117 printf_s("\n初始化后,项目集各元素值:\n");
118 118 for (int i=0;i 119 119 { 120 120 printf_s("%c\n",L.item[i]); 121 121 } 122 122 _getch(); 123 123 break; 124 124 } 125 125 case 2: 126 126 { 127 127 system("cls"); 128 128 //事务的数据结构,动态数组 129 129 int i,j; 130 130 char tranvalue; 131 131 printf_s("请输入要添加的事务个数:\n");//事务个数 132 132 scanf_s("%d",&sn); 133 133 for (i=1;i<=sn;i++)//依次输入每个事务所包含的项目,i应当从0开始 134 134 { 135 135 printf_s("请输入第%d个事务包含的项目数:",i); 136 136 scanf_s("%d",&trannum[i]); 137 137 fflush(stdin); 138 138 for (j=1;j<=trannum[i];j++) 139 139 { 140 140 fflush(stdin); 141 141 printf_s("输入事务的第%d个项目:\n",j); 142 142 scanf_s("%c",&tranvalue); 143 143 //动态分配内存,插入事务数组集合 144 144 listInsertSq(TranL.r[i],j,tranvalue); 145 145 } 146 146 } 147 147 printf_s("\n各事务的项目如下:\n"); 148 148 for (i=1;i<=sn;i++) 149 149 { 150 150 printf_s("\n第%d个事务\n",i); 151 151 for (j=0;j<=trannum[i];j++) 152 152 { 153 153 printf_s("%c",TranL.r[i].item[j]); 154 154 } 155 155 } 156 156 _getch(); 157 157 break; 158 158 } 159 159 case 3://设定最小支持度与最小置信度 160 160 { 161 161 system("cls"); 162 162 printf_s("请输入最小支持度与最小置信度(空格隔开):"); 163 163 fflush(stdin);//最好在每个scanf前加上fflush( stdin ); 164 164 scanf_s("%f%f",&minSupport,&minConfidence); 165 165 printf_s("\n最小支持度为:%2.2f\n",minSupport); 166 166 printf_s("最小置信度为:%2.2f\n",minConfidence); 167 167 _getch(); 168 168 break; 169 169 } 170 170 case 4://Apriori算法 171 171 { 172 172 InitListSq(L1); 173 173 char generatedCandidate[10]; 174 174 int c[20]={0}; 175 175 int f[20]={0}; 176 176 int jj=1; 177 177 //得到C1,算法第一行 178 178