?? des4.cpp
字號:
// DES4.cpp : 實(shí)現(xiàn)文件
//
#include "stdafx.h"
#include "DES.h"
#include "DES4.h"
void CharToBit(char *,bool *,int);
// CDES4 對話框
IMPLEMENT_DYNAMIC(CDES4, CDialog)
CDES4::CDES4(CWnd* pParent /*=NULL*/)
: CDialog(CDES4::IDD, pParent)
{
}
CDES4::~CDES4()
{
}
void CDES4::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CDES4, CDialog)
ON_BN_CLICKED(IDC_BUTTON3, &CDES4::OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON5, &CDES4::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON1, &CDES4::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON6, &CDES4::OnBnClickedButton6)
END_MESSAGE_MAP()
// CDES4 消息處理程序
CString inputfile1;
CString inputfile2;
void CDES4::OnBnClickedButton3()
{
static char BASED_CODE szfilter[]="All Files (*.*)|*.*||"; ;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szfilter,NULL);
if (dlg.DoModal()==IDOK)
{
CFile file;
inputfile1=dlg.GetPathName();
SetDlgItemText(IDC_EDIT1,inputfile1);
}
}
void traveral(bool a[],float tra[],int k)
{
int i;
for(i=0;i<k-2;i++)
{if(a[i]==false)
{tra[0]++;
if(a[i+1]==false)
{tra[2]++;
if(a[i+2]==false) tra[6]++;
else tra[7]++;
}
else
{tra[3]++;
if(a[i+2]==false) tra[8]++;
else tra[9]++;
}
}
else
{tra[1]++;
if(a[i+1]==false)
{tra[4]++;
if(a[i+2]==false) tra[10]++;
else tra[11]++;
}
else
{tra[5]++;
if(a[i+2]==false) tra[12]++;
else tra[13]++;
}
}
}
if(a[k-2]==false)
{tra[0]++;
if(a[k-1]==false)
{tra[0]++;
tra[2]++;
}
else
{tra[1]++;
tra[3]++;
}
}
else
{tra[1]++;
if(a[k-1]==false)
{tra[0]++;
tra[4]++;
}
else
{tra[1]++;
tra[5]++;
}
}
}
void CDES4::OnBnClickedButton5()
{
FILE *df;
fopen_s(&df,inputfile1,"rb");
if(!(df)){
AfxMessageBox("文件不存在或文件無法打開!");
return;
}
int i;
int readnum=0;
float readall=0;
float total1,total2,total3;
char buffChar[8]={0};
bool buffBit[64]={0};
float total[14]={0};
float average[14]={0};
CString str[14];
while(!feof(df)){
float tra[14]={0};
readnum=(int)fread(buffChar,1,8,df);
CharToBit(buffChar,buffBit,readnum*8);
traveral(buffBit,tra,readnum*8);
for (i=0;i<14;i++)
{
total[i]=total[i]+tra[i];
}
readall=readall+readnum;
}
fclose(df);
total1=total[0]+total[1];
total2=total[2]+total[3]+total[4]+total[5];
total3=total[6]+total[7]+total[8]+total[9]+total[10]+total[11]+total[12]+total[13];
for (i=0;i<2;i++)
{
average[i]=total[i]/total1;
str[i].Format("%f",average[i]);
}
for (i=2;i<6;i++)
{
average[i]=total[i]/total2;
str[i].Format("%f",average[i]);
}
for (i=6;i<14;i++)
{
average[i]=total[i]/total3;
str[i].Format("%f",average[i]);
}
SetDlgItemText(IDC_EDIT3,str[0]);
SetDlgItemText(IDC_EDIT4,str[1]);
SetDlgItemText(IDC_EDIT5,str[2]);
SetDlgItemText(IDC_EDIT6,str[3]);
SetDlgItemText(IDC_EDIT7,str[4]);
SetDlgItemText(IDC_EDIT8,str[5]);
SetDlgItemText(IDC_EDIT9,str[6]);
SetDlgItemText(IDC_EDIT10,str[7]);
SetDlgItemText(IDC_EDIT11,str[8]);
SetDlgItemText(IDC_EDIT12,str[9]);
SetDlgItemText(IDC_EDIT13,str[10]);
SetDlgItemText(IDC_EDIT14,str[11]);
SetDlgItemText(IDC_EDIT15,str[12]);
SetDlgItemText(IDC_EDIT16,str[13]);
}
void CDES4::OnBnClickedButton1()
{
static char BASED_CODE szfilter[]="All Files (*.*)|*.*||"; ;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szfilter,NULL);
if (dlg.DoModal()==IDOK)
{
CFile file;
inputfile2=dlg.GetPathName();
SetDlgItemText(IDC_EDIT2,inputfile2);
}
}
void CDES4::OnBnClickedButton6()
{
FILE *df;
fopen_s(&df,inputfile2,"rb");
if(!(df)){
AfxMessageBox("文件不存在或文件無法打開!");
return;
}
int i;
int readnum=0;
float readall=0;
char buffChar[9]={0};
bool buffBit[65]={0};
float total[14]={0};
float total1,total2,total3;
float average[14]={0};
CString str[14];
while(!feof(df)){
float tra[14]={0};
readnum=(int)fread(buffChar,1,8,df);
CharToBit(buffChar,buffBit,readnum*8);
traveral(buffBit,tra,readnum*8);
for (i=0;i<14;i++)
{
total[i]=total[i]+tra[i];
}
readall=readall+readnum;
}
fclose(df);
total1=total[0]+total[1];
total2=total[2]+total[3]+total[4]+total[5];
total3=total[6]+total[7]+total[8]+total[9]+total[10]+total[11]+total[12]+total[13];
for (i=0;i<2;i++)
{
average[i]=total[i]/total1;
str[i].Format("%f",average[i]);
}
for (i=2;i<6;i++)
{
average[i]=total[i]/total2;
str[i].Format("%f",average[i]);
}
for (i=6;i<14;i++)
{
average[i]=total[i]/total3;
str[i].Format("%f",average[i]);
}
SetDlgItemText(IDC_EDIT17,str[0]);
SetDlgItemText(IDC_EDIT18,str[1]);
SetDlgItemText(IDC_EDIT19,str[2]);
SetDlgItemText(IDC_EDIT20,str[3]);
SetDlgItemText(IDC_EDIT21,str[4]);
SetDlgItemText(IDC_EDIT22,str[5]);
SetDlgItemText(IDC_EDIT23,str[6]);
SetDlgItemText(IDC_EDIT24,str[7]);
SetDlgItemText(IDC_EDIT25,str[8]);
SetDlgItemText(IDC_EDIT26,str[9]);
SetDlgItemText(IDC_EDIT27,str[10]);
SetDlgItemText(IDC_EDIT28,str[11]);
SetDlgItemText(IDC_EDIT29,str[12]);
SetDlgItemText(IDC_EDIT30,str[13]);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -