📄 tiyu2.cpp
字号:
#include "iostream.h"
#include "strstrea.h"
#include "fstream.h"
#include "string.h"
#include "stdlib.h"
#define recfile "rec.txt"//用宏指令指定记录文件文件名
enum boolean{false1,true1};
const unsigned Line_Size=128;
const unsigned Name_Size=64;
char character;
char string[Line_Size+1][14];
int bit[10]={0,0,0,0,0,0,0,0,0,0};
int 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;
// cout<<"Enter the input file:";
inFile=recfile; //指定记录文件文件名
Name_Size==11;
// cin.getline(inFile,Name_Size);
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";
strcpy(string[i],line);
// cout<<string[i]<<"\n";
i++;
}
}
/************************************************/
void identify()// 识别字符并存储结果表格
{
int i,j,k;
for(i=0;i<=7;i++)
{
for(k=0;k<=Line_Size;k++)
{
character=string[k][i];
switch(character)
{
case'0':
bit[0]++;
break;
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;
default:
break;
} //0~9判别、计数
} // 第1期~ 第Line_Size期中奖号码"k"
for(j=0;j<=9;j++)//存储结果
{
rectab[j][i]=bit[j];
bit[j]=0;
}
} //Line_Sizeo.1~Line_Sizeo.7位数字"i"
}
/************************************************/
void display()//显示
{
int i,j;
cout<<" 湖北省电脑体育彩票统计"<<"\n";
cout<<"===================================================="<<"\n";
/* Output the result */
cout<<" 第1位 "<<"第2位 "<<"第3位 "<<"第4位 "<<"第5位 "<<"第6位 "<<"附加位"<<"\n";
for(j=0;j<=9;j++) //行显示
{
cout<<"["<<j<<"]"<<": ";
for(i=0;i<=7;i++) //列显示
{
if (i==6) i=i+1;
if (rectab[j][i]<10) cout<<" "<<rectab[j][i]<<" ";
else //十、个位数对齐
cout<<" "<<rectab[j][i]<<" ";
} //列显示
cout<<"\n";
} //行显示
}
/********************************************************/
void input_direction() //输入提示
{
char affirm;
char in_str[14];
char cha[14];
char * recFile;
recFile=recfile;//指定记录文件文件名
// fstream infile;
fstream outfile;
int i;
// int i,j;
cout<<"¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥"<<"\n";
cout<<"¥ ¥"<<"\n";
cout<<"¥ 湖北省电脑体育彩票统计软件 ¥"<<"\n";
cout<<"¥ ¥"<<"\n";
cout<<"¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥"<<"\n";
cout<<"\n";
cout<<"\n";
cout<<"请按以下格式输入最新一期中奖号码:";
cout<<"xxxxxx+x(yyy)"<<"\n";
cout<<"其中xxxxxx+x是中奖号码,yyy是期数。"<<"\n";
cout<<"例如2000年第39期中奖号码是:277227+0,则应输入277227+0(039)"<<"\n";
cout<<"您要输入最新一期中奖号码吗?(y/n):";
cin>>affirm;
if ((affirm!='y')&&(affirm!='Y')) goto continu;
DATA_in: cout<<"请输入最新一期中奖号码xxxxxx+x(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);
for (i=0;i<14;i++)
outfile.put(cha[i]);
outfile.close();
continu: cout<<"\n";
}
/********************************************************/
//++++++++++++++++++++++++++++++++++++++++++++++++++++//
void main()
{
fstream fin,fout;
char inFile[Name_Size+1],outFile[Name_Size+1];
input_direction();//输入提示
getInputFilename(inFile,fin);
processLines(fin,fout);
identify(); // 识别字符并存储结果表格
fin.close();
display(); //显示
return;
}
//++++++++++++++++++++++++++++++++++++++++++++++++//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -