www.pudn.com > LuckLottery.rar > LuckyLottery.cpp
// LuckyLottery.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include#include "LuckyLottery.h" #include "InputDialog.h" #include "OutputDialog.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CLuckyLotteryApp BEGIN_MESSAGE_MAP(CLuckyLotteryApp, CWinApp) //{{AFX_MSG_MAP(CLuckyLotteryApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_INPUT_LOTTERY, OnInputLottery) ON_COMMAND(ID_TRAIN_NETWORK, OnTrainNetwork) ON_COMMAND(ID_OUTPUT_LOTTERY, OnOutputLottery) ON_COMMAND(ID_WRITE_LOTTERY, OnWriteLottery) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CLuckyLotteryApp construction CLuckyLotteryApp::CLuckyLotteryApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } ///////////////////////////////////////////////////////////////////////////// // The one and only CLuckyLotteryApp object CLuckyLotteryApp theApp; ///////////////////////////////////////////////////////////////////////////// // CLuckyLotteryApp initialization BOOL CLuckyLotteryApp::InitInstance() { // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif // Change the registry key under which our settings are stored. // TODO: You should modify this string to be something appropriate // such as the name of your company or organization. SetRegistryKey(_T("Local AppWizard-Generated Applications")); // To create the main window, this code creates a new frame window // object and then sets it as the application's main window object. CMainFrame* pFrame = new CMainFrame; m_pMainWnd = pFrame; // create and load the frame with its resources pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, NULL); // The one and only window has been initialized, so show and update it. pFrame->ShowWindow(SW_SHOW); pFrame->UpdateWindow(); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CLuckyLotteryApp message handlers ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) // No message handlers //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() // App command to run the dialog void CLuckyLotteryApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } ///////////////////////////////////////////////////////////////////////////// // CLuckyLotteryApp message handlers void CLuckyLotteryApp::OnInputLottery() { // TODO: Add your command handler code here InputDialog MyInputDlg; MyInputDlg.DoModal(); } void CLuckyLotteryApp::OnTrainNetwork() { // TODO: Add your command handler code here int i, j, loop=0, count=0 /*,same=0, aa, bb*/; // short range; double temp_value, wk, wkb; CString finish; BeginWaitCursor(); // display the hourglass cursor GetData(); InitNetwork(); // CProgressCtrl pg; // pg.Create(PBS_SMOOTH|WS_CHILD|WS_BORDER|WS_VISIBLE ,CRect(10,350,1000,370),AfxGetApp()->m_pMainWnd,0); // range = 1000; // pg.SetRange(0,range); while(((count++) END_VALUE)) { error_value = 0.0; for(loop=0; loop 0.999) return(0.999); // else // if (RValue < 0.001) return(0.001); return(RValue); } void CLuckyLotteryApp::GetData() { CStdioFile MyFile; CString pFileName = _T("E:\\vc_work\\LOTTERY\\LotteryFile.txt"); double out; int i,j, pos; MyFile.Open(pFileName, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite); // i = MyFile.GetLength(); // j = 9*(DATA_NUM + (IN_NUM / 7)); if (MyFile.GetLength() < 9*(DATA_NUM + (IN_NUM / 7))) { AfxMessageBox("彩票号码不够,请先输入彩票号码!"); return; } else MyFile.Seek(-9*(DATA_NUM+(IN_NUM / 7)), CFile::end); memset(buffer, 0, 9*(DATA_NUM+(IN_NUM / 7))); MyFile.Read(buffer, 9*(DATA_NUM+(IN_NUM / 7))); for(i=0; i< DATA_NUM; i++) { for (j=0; j < IN_NUM; j++) { pos = (i*8)+j+(int)(j/7); data_in[i][j] = ((double)buffer[pos] - 48.0)/10.0; } for (j=0; j < OUT_NUM; j++) { // pos = (i+(IN_NUM/7))*8+j+(int)(j/7); // data_ot[i][j] = ((double)buffer[pos] - 48.0)/10.0; out = (double)buffer[(i*8+(8 * (IN_NUM / OUT_NUM)))+j] - 48.0; data_ot[i][j] = out/10.0; } } MyFile.Close(); } void CLuckyLotteryApp::InitNetwork() { int i,j; error_value = 100.0; alpha = 0.2; steplength = 0.8; ru0 = 0.5; srand((unsigned)time(NULL)); for(i=0; i