📄 laihui1dlg.cpp
字号:
}
void CLaihui1Dlg::OnChangeEdit1()
{
UpdateData(TRUE);
m_edit3=m_edit1.GetLength();
UpdateData(FALSE);
}
void CLaihui1Dlg::OnChangeEdit2()
{
UpdateData(TRUE);
m_edit4=m_edit2.GetLength();
UpdateData(FALSE);
}
void CLaihui1Dlg::OnButton3()
{
int nout;
int i;
UpdateData(TRUE);
m_edit5.Empty();
UpdateData(FALSE);
UpdateData(TRUE);
nout=m_edit6;
if(!LILI.LFSRc.length)
{
MessageBox("LFSRc的寄存器阶段q未配置!请配置,按输入按钮确定.",
"提示!",MB_ICONINFORMATION);
m_radio1=0;
m_edit1.Empty();
c_edit1.SetFocus();
UpdateData(FALSE);
return;
}
if(LILI.LFSRc.length&&!LILI.LFSRc.length_a)
{
MessageBox("LFSRc的寄存器初始状态a未配置!请配置,按输入按钮确定.",
"提示!",MB_ICONINFORMATION);
m_radio1=0;
m_edit2.Empty();
c_edit2.SetFocus();
UpdateData(FALSE);
return;
}
if(!LILI.LFSRd.length)
{
MessageBox("LFSRd的寄存器阶段q未配置!请配置,按输入按钮确定.",
"提示!",MB_ICONINFORMATION);
m_radio1=1;
m_edit1.Empty();
c_edit1.SetFocus();
UpdateData(FALSE);
return;
}
if(LILI.LFSRd.length&&!LILI.LFSRd.length_a)
{
MessageBox("LFSRd的寄存器初始状态a未配置!请配置,按输入按钮确定.",
"提示!",MB_ICONINFORMATION);
m_radio1=1;
m_edit2.Empty();
c_edit2.SetFocus();
UpdateData(FALSE);
return;
}
if(!nout)
{
MessageBox("请输入输出位数","提示!",MB_ICONINFORMATION);
return;
}
for(i=0;i<m_edit6;i++)
{
if(LILI.output(m_radio3)) m_edit5+='1';
else m_edit5+='0';
}
c_edit5.SetWindowText(m_edit5);
}
void CLaihui1Dlg::OnButton4()
{
int i;
CString time;
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;
UpdateData(TRUE);
for(i=0;i<1000000;i++)
{
if (!m_radio1) LILI.LFSRc.Run(m_radio3);
else LILI.LFSRd.Run(m_radio3);
}
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;
time.Format("%lf",dfTim);
time+=" 秒";
c_edit7.SetWindowText(time);
}
void CLaihui1Dlg::OnRadio1()
{
CString s;
UpdateData(TRUE);
if(!m_radio1)
{
c_edit8.SetWindowText("初始化配置LFSRc(状态q的长度即为寄存器长度)");
if(LILI.LFSRc.length!=0)
{
UpdateData(TRUE);
s=LILI.LFSRc.ctos(LILI.LFSRc.q);
c_edit1.SetWindowText(s);
UpdateData(TRUE);
m_edit3=LILI.LFSRc.length;
UpdateData(FALSE);
}
else
{
m_edit1.Empty();
c_edit1.SetFocus();
UpdateData(FALSE);
UpdateData(TRUE);
m_edit3=0;
UpdateData(FALSE);
}
if(LILI.LFSRc.length_a!=0)
{
UpdateData(TRUE);
s=LILI.LFSRc.ctos(LILI.LFSRc.a);
c_edit2.SetWindowText(s);
UpdateData(TRUE);
m_edit4=LILI.LFSRc.length;
UpdateData(FALSE);
}
else
{
m_edit2.Empty();
if(LILI.LFSRc.length!=0) c_edit2.SetFocus();
UpdateData(FALSE);
UpdateData(TRUE);
m_edit4=0;
UpdateData(FALSE);
}
}
}
void CLaihui1Dlg::OnRadio2()
{
CString s;
UpdateData(TRUE);
if(m_radio1)
{
c_edit8.SetWindowText("初始化配置LFSRd(状态q的长度即为寄存器长度)");
if(LILI.LFSRd.length!=0)
{
UpdateData(TRUE);
s=LILI.LFSRd.ctos(LILI.LFSRd.q);
c_edit1.SetWindowText(s);
UpdateData(TRUE);
m_edit3=LILI.LFSRd.length;
UpdateData(FALSE);
}
else
{
m_edit1.Empty();
c_edit1.SetFocus();
UpdateData(FALSE);
UpdateData(TRUE);
m_edit3=0;
UpdateData(FALSE);
}
if(LILI.LFSRd.length_a!=0)
{
UpdateData(TRUE);
s=LILI.LFSRd.ctos(LILI.LFSRd.a);
c_edit2.SetWindowText(s);
UpdateData(TRUE);
m_edit4=LILI.LFSRd.length;
UpdateData(FALSE);
}
else
{
m_edit2.Empty();
if(LILI.LFSRd.length!=0) c_edit2.SetFocus();
UpdateData(FALSE);
UpdateData(TRUE);
m_edit4=0;
UpdateData(FALSE);
}
}
}
void CLaihui1Dlg::OnButton5()
{
CString strFileName,t;
int i;
t.Format("%d",m_edit3);
strFileName+="test_"+t;
CFileDialog dlg(FALSE,"ll2",strFileName, //FALSE为"打开文件"窗口,"ll2"为确定时默认的文件类型
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"初始配置文件(*.ll2)|*.ll2||",NULL);
dlg.m_ofn.lpstrInitialDir=".\\res";
if(dlg.DoModal()==IDCANCEL) return;
strFileName = dlg.GetPathName();
CString Output,temp;
Output.Empty();
temp.Format("%d",m_radio3);
Output+=temp;
temp.Format("%d",LILI.LFSRc.length);
Output+=temp;
Output+=" ";
for (i=0;i<LILI.LFSRc.length;i++) Output.Insert(65535,LILI.LFSRc.q[i]+'0');
for (i=0;i<LILI.LFSRc.length;i++) Output.Insert(65535,LILI.LFSRc.a[i]+'0');
temp.Format("%d",LILI.LFSRd.length);
Output+=temp;
Output+=" ";
for (i=0;i<LILI.LFSRd.length;i++) Output.Insert(65535,LILI.LFSRd.q[i]+'0');
for (i=0;i<LILI.LFSRd.length;i++) Output.Insert(65535,LILI.LFSRd.a[i]+'0');
CFile file;
file.Open(strFileName,CFile::modeCreate|CFile::modeWrite);
file.Write(Output,Output.GetLength());
file.Close();
CLaihui1Dlg::MessageBox("保存完毕!","提示",MB_ICONINFORMATION);
}
void CLaihui1Dlg::OnButton6()
{
CString strFileName;
CFile file;
char buffer[1000];
int i,j;
int sum;
CFileDialog dlg(TRUE,"ll2","def.ll2", //TRUE为"打开文件"窗口,"ll2"为确定时默认的文件类型
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"初始配置文件(*.ll2)|*.ll2||",NULL);
dlg.m_ofn.lpstrInitialDir=".\\res";
if(dlg.DoModal()==IDCANCEL) return;
strFileName = dlg.GetPathName();
file.Open(strFileName,CFile::modeRead);
file.Read(buffer,file.GetLength());
file.Close();
m_radio3=buffer[0]-'0';
UpdateData(FALSE);
i=1;
sum=0;
while(buffer[i]!=' ')
{
sum=10*sum;
sum+=buffer[i]-'0';
i++;
}
LILI.LFSRc.length_a=LILI.LFSRc.length=sum;
for(j=0;j<LILI.LFSRc.length;j++)
{
LILI.LFSRc.q[j]=buffer[i+1]-'0';
i++;
}
for(j=0;j<LILI.LFSRc.length;j++)
{
LILI.LFSRc.a[j]=buffer[i+1]-'0';
i++;
}
i++;
sum=0;
while(buffer[i]!=' ')
{
sum=10*sum;
sum+=buffer[i]-'0';
i++;
}
LILI.LFSRd.length_a=LILI.LFSRd.length=sum;
for(j=0;j<LILI.LFSRd.length;j++)
{
LILI.LFSRd.q[j]=buffer[i+1]-'0';
i++;
}
for(j=0;j<LILI.LFSRd.length;j++)
{
LILI.LFSRd.a[j]=buffer[i+1]-'0';
i++;
}
if (!m_radio1) OnRadio1();
else OnRadio2();
CLaihui1Dlg::MessageBox("提取完毕!","提示",MB_ICONINFORMATION);
}
void CLaihui1Dlg::OnButton7()
{
CLaihui1BM dlg;
GetDlgItem(IDC_STATICBM)->ShowWindow(1);
UpdateWindow();
if (!m_edit5.GetLength())
{
MessageBox("没有输出序列","提示",MB_ICONINFORMATION);
return;
}
Test._s=m_edit5;
Test.B_M_Test();
MessageBox("测试完毕。\n线性复杂度曲线将自动弹出.","提示",MB_ICONINFORMATION);
GetDlgItem(IDC_STATICBM)->ShowWindow(0);
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -