📄 sky1.cpp
字号:
#include "iostream.h"
#include "strstrea.h"
#include "fstream.h"
#include "string.h"
#include "stdlib.h"
#define recfile "record.txt"//用宏指令指定记录文件文件名
#define group_width 29
enum boolean{false1,true1};
const unsigned Line_Size=512;
const unsigned Name_Size=64;
char character;
char string[Line_Size][group_width];
int bit[33]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0};
int rectab[11][8];
int rec[34]; //rectab[11][8];
int i,j,k;
/************************************************/
void trimstr(char *s)
{
int i=strlen(s)-1;
while(i>0&&s[i]==' ') i--;
s[i+1]='\0';
}
/***************************************************/
void getInputFilename(char *inFile,fstream&f)
{
enum boolean ok;
do {
ok=true1;
inFile=recfile; //指定记录文件文件名
Name_Size==11;
f.open(inFile,ios::in);
if(!f){
cout<<"Cannot open the file:"<<inFile<<"\n\n";
ok=false1;
}
}while(!ok);
}
/************************************************/
void processLines(fstream&fin,fstream&fout)
{
char line[Line_Size+1];
int i=1;
while(fin.getline(line,Line_Size))
{
trimstr(line);
fout<<line<<"\n";
strncpy(string[i],line,28);
// cout<<string[i]<<"\n";
i++;
}
}
/************************************************/
void identify()// 识别字符并存储结果表格
{
char str2;
int num[20]={0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0};
int num8[Line_Size+1][8];
int m,tmp;
char *p;
for(m=1;m<=Line_Size;m++)
{
p=&string[m][0];
j=0;
k=0;
for (i=0;i<24;i++)
{
if (!((i+1)%3))
{ i++;
p++; }
str2=*p;
num[j]=(int)str2-48;
if (!(j%2))
{num[j]=10*num[j];
tmp=num[j];}
else
{k++;
num8[m][k]=tmp+num[j];
}
p++;
j++;
}
// cout<<"\n";
}
/////////////////////////////////////
// assign();
/////////////////////////////////////
for(i=1;i<=Line_Size;i++)
{
for(m=1;m<=8;m++)
{
character=num8[i][m];
switch(character)
{
case 1:
bit[1]++;
break;
case 2:
bit[2]++;
break;
case 3:
bit[3]++;
break;
case 4:
bit[4]++;
break;
case 5:
bit[5]++;
break;
case 6:
bit[6]++;
break;
case 7:
bit[7]++;
break;
case 8:
bit[8]++;
break;
case 9:
bit[9]++;
break;
case 10:
bit[10]++;
break;
case 11:
bit[11]++;
break;
case 12:
bit[12]++;
break;
case 13:
bit[13]++;
break;
case 14:
bit[14]++;
break;
case 15:
bit[15]++;
break;
case 16:
bit[16]++;
break;
case 17:
bit[17]++;
break;
case 18:
bit[18]++;
break;
case 19:
bit[19]++;
break;
case 20:
bit[20]++;
break;
case 21:
bit[21]++;
break;
case 22:
bit[22]++;
break;
case 23:
bit[23]++;
break;
case 24:
bit[24]++;
break;
case 25:
bit[25]++;
break;
case 26:
bit[26]++;
break;
case 27:
bit[27]++;
break;
case 28:
bit[28]++;
break;
case 29:
bit[29]++;
break;
case 30:
bit[30]++;
break;
case 31:
bit[31]++;
break;
case 32:
bit[32]++;
break;
case 33:
bit[33]++;
break;
default:
break;
} //"00"~"33"判别、计数
}
}
}
/********************************************************/
void interface_direction()//软件界面
{
cout<<"¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥"<<"\n";
cout<<"¥ ¥"<<"\n";
cout<<"¥ “楚天风采”电脑福利彩票统计软件 ¥"<<"\n";
cout<<"¥ ¥"<<"\n";
cout<<"¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥"<<"\n";
cout<<"\n";
cout<<"\n";
}
/********************************************************/
void input_direction() //输入提示
{
char affirm;
char in_str[group_width];
char cha[group_width];
char * recFile;
char add='\n';//换行符
recFile=recfile;//指定记录文件文件名
fstream outfile;
int i;
cout<<"请按以下格式输入最新一期中奖号码:";
cout<<"xx,xx,xx,xx,xx,xx,xx,xx(yyy)"<<"\n";
cout<<"其中xx,xx,xx,xx,xx,xx,xx,xx是中奖号码,yyy是期数。"<<"\n";
cout<<"例如第12期中奖号码是:07,10,12,17,18,21,30,08"<<"\n";
cout<<"则应输入07,10,12,17,18,21,30,08(012)"<<"\n";
cout<<"您要输入最新一期中奖号码吗?(y/n):";
cin>>affirm;
if ((affirm!='y')&&(affirm!='Y')) goto continu;
DATA_in: cout<<"请输入最新一期中奖号码xx,xx,xx,xx,xx,xx,xx(yyy):";
cin>>in_str;
cout<<"最新中奖号码:"<<in_str<<"\n";
cout<<"中奖号码正确吗?(y/n)";
cin>>affirm;
if ((affirm!='y')&&(affirm!='Y')) goto DATA_in;
outfile.open(recFile,ios::app);//在文件末尾添加数据
if(!outfile)
{
cout<<"Error open output file."
<<endl;
abort();
}
strcpy(cha,in_str);
outfile.put(add);//换行符
for (i=0;i<group_width;i++)
outfile.put(cha[i]);
outfile.close();
continu: cout<<"\n";
}
/********************************************************/
void output_last(fstream&fin,fstream&fout)
{
char string2[Line_Size][group_width];
char line[Line_Size+1];
int i=0;
int j=0;
cout<<"最新五期中奖号码:\n";
while(fin.getline(line,Line_Size))
{
i++;
trimstr(line);
fout<<line<<"\n";
strcpy(string2[i],line);
}
for (j=0;j<=i;j++)
{
if (j>(i-5)) cout<<string2[j]<<"\n";
else continue;
}
}
/********************************************************/
/********************************************************/
void result_output()
{
int j;
cout<<" “楚天风采”电脑福利彩票统计"<<"\n";
cout<<"===================================================="<<"\n";
/* Output the result */
// cout<<" 第1位 "<<"第2位 "<<"第3位 "<<"第4位 "<<"第5位 "<<"第6位 "<<"附加位"<<"\n";
for(j=1;j<=33;j++) //行显示
{
if (j<=9)
cout<<"[0"<<j<<"]"<<":"<<bit[j]<<" ";
else
cout<<"["<<j<<"]"<<":"<<bit[j]<<" ";
if(!(j%8))
cout<<"\n";
}
cout<<"\n";
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++//
void main()
{
fstream fin,fout;
char inFile[Name_Size+1];
interface_direction();//软件界面
getInputFilename(inFile,fin);
output_last(fin,fout); //显示最近五期中奖号码
fin.close();
input_direction();//输入提示
getInputFilename(inFile,fin);
processLines(fin,fout);
identify(); // 识别字符并存储结果表格
fin.close();
result_output();
return;
}
//++++++++++++++++++++++++++++++++++++++++++++++++//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -