⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsgsszk.cpp

📁 这是一套学校设备管理系统的源码 里面有树形结构使用的很棒的方法
💻 CPP
字号:
 // tsgsszk.cpp : implementation file
//

#include "stdafx.h"
#include "xxgl.h"
#include "tsgsszk.h"
#include "strt.h"
#include "ext.h"
#include "func.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

tsgsszk::tsgsszk(CWnd* pParent /*=NULL*/)
	: CDialog(tsgsszk::IDD, pParent)
{
	//{{AFX_DATA_INIT(tsgsszk)
	m_css = 0;
	m_jzmj = 0;
	m_tsgs = 0;
	m_xxmc = _T("");
	m_yls = 0;
	m_zls = 0;
	//}}AFX_DATA_INIT
  FILE *fpe;

  unsigned char buf[40];
  unsigned char pass[40];
  int l,i,c,j,k,flag;
  unsigned char mask;

  rand_base = 1000;
  fpe = fopen("c:\\xxsbgl\\mima.txt","rb");
  fscanf(fpe,"%s\n%s\n",buf,pass);
  fclose(fpe);
  l = strlen((char *)buf);
  for (i=0;i<l*8;i++){
    c = buf[i/8];
    mask = 1;
    for (j=0;j<i%8;j++)
      mask *= 2;
    code[i] = c & mask;
    if (code[i] != 0)
      code[i] = 1;
  }

  for (i=0;i<1000;i++)
    process_flag[i] = 0;
  flag = 0;
  j = 0;
  while (flag == 0){
    i = find_a_seat(l*8);
    tab[j] = i;
    process_flag[i] = 1;
    j ++;
    if (j == l*8)
      flag = 1;
  }

  for (i=0;i<l*8;i++){
    code6[i] = code[tab[i]];
  }

  for (i=0;i<l*8;i++)
    code[i] = code6[i];

  for (i=0;i<l*8;i++){
    j = i + l%7;
    if (j >= l*8)
      j -= l*8;
    code1[i] = code[j];
  }


  for (i=0;i<l*4;i++){
    code2[i] = code1[2*i+1];
  }


  for (i=0;i<l*8;i++){
    j = i + l%7;
    if (j > l*8)
      j -= l*8;
    code3[i] = code[j];
  }


  for (i=0;i<l*4;i++){
    code4[i] = code3[2*i];
  }


  for (i=0;i<l*4;i++)
    code5[i] = code2[i] ^ code4[i];
/*
  k = 0;
  for (i=0;i<l;i++){
    c = code5[i*4]*8 + code5[i*4+1]*4 + + code5[i*4+2]*2 + + code5[i*4+3];
    if (c < 10)
      c += '0';
    else
      c += 'A' - 10;
    pass[k++] = c;
  }
  pass[k] = 0;
*/
  for (i=0;i<l;i++){
    c = pass[i];
    if (c >= 'A')
      c = c - 'A' + 10;
    else
      c -= '0';
    code5[4*i] = c / 8;
    c = c % 8;
    code5[4*i+1] = c / 4;
    c = c % 4;
    code5[4*i+2] = c / 2;
    code5[4*i+3] = c % 2;
  }

  for (i=0;i<l*4;i++)
    code2[i] = code5[i] ^ code4[i];

  for (i=0;i<l*4;i++){
    code1[2*i+1] = code2[i];
  }

  for (i=0;i<l*8;i++){
    j = i - l%7;
    if (j < 0)
      j = j + l*8;
    code[i] = code1[j];
  }

  for (i=0;i<l*8;i++){
    code6[tab[i]] = code[i];
  }

  for (i=0;i<l*8;i++)
    code[i] = code6[i];

  for (i=0;i<l;i++){
    buf[i] = code[i*8] + code[i*8+1]*2 + code[i*8+2]*4 + code[i*8+3]*8
      + code[i*8+4]*16 + code[i*8+5]*32 + code[i*8+6]*64 + code[i*8+7]*128;
  }

  strcpy(xiaoming,(char *)buf);
  m_xxmc = xiaoming;

  char buf1[10],buf2[10],buf3[10],buf4[10],buf5[10];

  fpe = fopen("c:\\xxsbgl\\tsgsszk.txt","rb");
  if (fpe != NULL){
    fscanf(fpe,"%s\n%s\n%s\n%s\n%s\n",buf1,buf2,buf3,buf4,buf5);
    m_tsgs = atoi(buf1);
    m_yls = atoi(buf2);
    m_zls = atoi(buf3);
    m_css = atoi(buf4);
    m_jzmj = atoi(buf5);
	fclose(fpe);
  }

}


void tsgsszk::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(tsgsszk)
	DDX_Text(pDX, IDC_css, m_css);
	DDX_Text(pDX, IDC_jzmj, m_jzmj);
	DDX_Text(pDX, IDC_tsgs, m_tsgs);
	DDX_Text(pDX, IDC_xxmc, m_xxmc);
	DDX_Text(pDX, IDC_yls, m_yls);
	DDX_Text(pDX, IDC_zls, m_zls);
	//}}AFX_DATA_MAP
  CBitmap *bitmap;
  CBitmap *bitmap1;
  
  HBITMAP hbitmap;
  HBITMAP hbitmap1;
  
  bitmap = new CBitmap();
  bitmap1 = new CBitmap();


  bitmap->LoadBitmap(IDB_qr);
  bitmap1->LoadBitmap(IDB_qx);


  hbitmap = (*bitmap).operator HBITMAP();
  hbitmap1 = (*bitmap1).operator HBITMAP();

  
  CWnd *wn;
  CWnd *wn1;


  wn = GetDlgItem(IDOK);
  wn1 = GetDlgItem(IDCANCEL);
 // wn2 = GetDlgItem(IDOK3);

  WPARAM wParam;
  LPARAM lParam;
  wParam =  (WPARAM) LOWORD(BS_LEFT | BS_BITMAP); // style 
  lParam =  MAKELPARAM(TRUE, 0);   // redraw flag 
  wn->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmap);
  wn1->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmap1);
}


BEGIN_MESSAGE_MAP(tsgsszk, CDialog)
	//{{AFX_MSG_MAP(tsgsszk)
	ON_EN_CHANGE(IDC_css, OnChangecss)
	ON_EN_CHANGE(IDC_yls, OnChangeyls)
	ON_EN_CHANGE(IDC_zls, OnChangezls)
	ON_EN_CHANGE(IDC_jzmj, OnChangejzmj)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// tsgsszk message handlers

void tsgsszk::OnOK() 
{
	// TODO: Add extra validation here
  FILE *fpe;
  char buf1[10],buf2[10],buf3[10],buf4[10],buf5[10];

  fpe = fopen("c:\\xxsbgl\\tsgsszk.txt","wb");
  GetDlgItemText(IDC_tsgs,buf1,10);
  GetDlgItemText(IDC_yls,buf2,10);
  GetDlgItemText(IDC_zls,buf3,10);
  GetDlgItemText(IDC_css,buf4,10);
  GetDlgItemText(IDC_jzmj,buf5,10);
  fprintf(fpe,"%s\n%s\n%s\n%s\n%s\n",buf1,buf2,buf3,buf4,buf5);
  fclose(fpe);

  CDialog::OnOK();
}

void tsgsszk::OnChangecss() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	int t1,t2,t3,t;
	char buf[10];

	GetDlgItemText(IDC_yls,buf,10);
	t1 = atoi(buf);
	GetDlgItemText(IDC_zls,buf,10);
	t2 = atoi(buf);
	GetDlgItemText(IDC_css,buf,10);
	t3 = atoi(buf);
	t = t1 + t2 + t3 ;
	itoa(t,buf,10);
    SetDlgItemText(IDC_tsgs,buf);	
}

void tsgsszk::OnChangeyls() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	int t1,t2,t3,t;
	char buf[10];

	GetDlgItemText(IDC_yls,buf,10);
	t1 = atoi(buf);
	GetDlgItemText(IDC_zls,buf,10);
	t2 = atoi(buf);
	GetDlgItemText(IDC_css,buf,10);
	t3 = atoi(buf);
	t = t1 + t2 + t3 ;
	itoa(t,buf,10);
    SetDlgItemText(IDC_tsgs,buf);
}

void tsgsszk::OnChangezls() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	int t1,t2,t3,t;
	char buf[10];

	GetDlgItemText(IDC_yls,buf,10);
	t1 = atoi(buf);
	GetDlgItemText(IDC_zls,buf,10);
	t2 = atoi(buf);
	GetDlgItemText(IDC_css,buf,10);
	t3 = atoi(buf);
	t = t1 + t2 + t3 ;
	itoa(t,buf,10);
    SetDlgItemText(IDC_tsgs,buf);	
}


void tsgsszk::OnChangejzmj() 
{
	double sl,dj,zje;
	char buf[40];
	char buff[40];

	int l,i,flag,j;
	
	GetDlgItemText(IDC_jzmj,buf,20);
    l = strlen(buf);
	if (l > 0){
		if (l > 12){
			buf[12] = 0;
	        SetDlgItemText(IDC_jzmj,buf);
			Set_to_item_end(this,IDC_jzmj);
        }
		for (i=0;i<l;i++){
	      if (((buf[i] < '0')||(buf[i] > '9'))&&(buf[i] != '.')){
		    buf[i] = 0;
	        SetDlgItemText(IDC_jzmj,buf);
			Set_to_item_end(this,IDC_jzmj);
		  }
		}
        l = strlen(buf);
		flag = 0;
		for (i=0;i<l;i++){
			if (buf[i] == '.'){
				j = i;
				flag = 1;
				break;
            }
        }
		if (flag == 1){
			if (j < l-3){
				buf[j+3] = 0;
	            SetDlgItemText(IDC_jzmj,buf);
			    Set_to_item_end(this,IDC_jzmj);
            } 
        }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -