男儿本色粤语土豆网:哪位高手能帮我把C++程序添几个注释,写一下大体结构的意思,不甚感激啊

来源:百度文库 编辑:高考问答 时间:2024/04/30 19:02:02
程序要求设计一个简单的22选5的彩票生成器:
程序如下
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class create{
private:
int COLUMNS;
int MAXNUM;
public:
int **table;
int num;
int numSets;
int numCheck;
int i;
char answer;
create()
{
COLUMNS=5;
MAXNUM=22;
}

void creater();
void printLOTO(int **table,int numSets);
void initArray(int **table,int numSets);
void genLOTO(int **table,int numSets);
int isDuplicate(int **table,int rowNum,int newNum);
void sortRow(int **table,int rowNum);
int numOccure(int **table,int num,int numSets);
};

void memError()
{
cout<<"Memory allocation error!";
exit(1);
}

void create::creater()
{
srand((unsigned)time(0));
cout<<"你要购买的注数:";
cin>>numSets;

table=new int *[numSets];//申请动态内存空间
if (!table)
memError();
for (i=0;i<numSets;i++)
{
table[i] = new int[COLUMNS];
if (!table[i])
memError();
}

initArray (table,numSets);
genLOTO(table,i);

for (i=0;i<numSets;i++) {
sortRow(table,i);
}
printLOTO(table,numSets);

do{
cout<<"\n\n你所检查的数:";
cin>>numCheck;
cout<<"\n\n\n数字:\t\t数字出现的次数:\n\n";
cout<<"\t"<<numCheck<<"\t\t\t";
cout<<numOccure (table,numCheck,numSets) << endl;
cout<<"\n\n\n是否想知道其他数出现的次数?(Y/N) ";
cin>>answer;
}while(answer=='Y' ||answer=='y');

for (i=0;i<numSets;i++)
delete []table[i];
delete []table;

}

void create::initArray (int **table,int numSets)//初始化
{
for (int i=0;i<numSets;i++)
for (int j=0;j<COLUMNS;j++)
table[i][j] =0;
}
void create::genLOTO(int **table,int numSets)//生成随机数
{
int newNum;
for (int i=0;i<numSets;i++) {
for (int j=0;j<COLUMNS;j++) {
do {
newNum = rand( )%MAXNUM + 1;
}while (isDuplicate(table,i,newNum));//消除重复行

table[i][j] =newNum;
}
}
}

int create::isDuplicate(int **table,int rowNum,int newNum)
{
for (int i=0;i<COLUMNS;i++) {
if (table[rowNum][i] == 0)
return 0;
if (table[rowNum][i] == newNum)
return 1;
}
return 0;
}

void create::sortRow(int **table,int rowNum)//按升序排列
{
int temp;
for (int i=0; i<COLUMNS - 1;i++) {
for (int j=0;j<COLUMNS - 1;j++) {
if (table[rowNum][j] >table[rowNum][j+1])
{
temp = table[rowNum][j];
table[rowNum][j] = table[rowNum][j+1];
table[rowNum][j+1] = temp;
}
}
}
}

void create::printLOTO(int **table,int numSets)
{
cout<<endl;
cout<<"\t\t********彩票随机号码生成********\n"<<endl;
for (int i=0;i<numSets; i++) {
cout<<"\t\t";
for (int j=0;j<COLUMNS;j++) {
cout<<table[i][j]<<'\t';
}
cout <<endl;
}
}

int create::numOccure(int **table,int num,int numSets)
{
int count = 0;
for (int i=0;i<numSets;i++) {
for (int j=0;j<COLUMNS;j++) {
if (table[i][j] == num)
count++;
}
}
return count;
}

int main()
{
create res;

res.initArray
续res.initArray(res.table,res.numSets);
res.genLOTO(res.table,res.numSets);
res.printLOTO(res.table,res.numSets);
res.creater();
return 0;
}

太长了 你到底想问什么啊