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

📄 changedlg.cpp

📁 以前的课程设计,觉得功能不错,界面设计的也不错
💻 CPP
字号:
// ChangeDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Student.h"
#include "ChangeDlg.h"

#include "GuestSet.h"
#include "BaseSet.h"
#include "ChoiceSet.h"
#include "GradeSet.h"

#include "Baseinfo.h"
#include "EditGradeDlg.h"
#include "Xuanxiuke.h"

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

/////////////////////////////////////////////////////////////////////////////
// CChangeDlg dialog


CChangeDlg::CChangeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CChangeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CChangeDlg)
	m_oldid = _T("");
	m_oldpass = _T("");
	m_newpass = _T("");
	m_newid = _T("");
	//}}AFX_DATA_INIT
}


void CChangeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CChangeDlg)
	DDX_Text(pDX, IDC_OLDID, m_oldid);
	DDX_Text(pDX, IDC_OLDPASS, m_oldpass);
	DDX_Text(pDX, IDC_NEWPASS, m_newpass);
	DDX_Text(pDX, IDC_NEWID, m_newid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CChangeDlg, CDialog)
	//{{AFX_MSG_MAP(CChangeDlg)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChangeDlg message handlers



void CChangeDlg::OnEdit() 
{
	// TODO: Add your control notification handler code here

    int change=0;
	UpdateData(1);

	if(m_oldid=="")
		MessageBox("请输入旧的用户编号",NULL,MB_OK|MB_ICONWARNING);
	else if(m_oldpass=="")
       MessageBox("请输入旧的用户密码",NULL,MB_OK|MB_ICONWARNING);
	else if(m_newid=="")
		MessageBox("请输入新的用户编号",NULL,MB_OK|MB_ICONWARNING);
	else if(m_newpass=="")
		MessageBox("请输入新的用户密码",NULL,MB_OK|MB_ICONWARNING);
	else
	{
	     CChoiceSet m_choiceset;
	     CBaseSet   m_baseset;
	     CGradeSet  m_gradeset;
	     CGuestSet  m_guestset;

	     m_choiceset.Open();
     	 m_choiceset.MoveFirst();
         m_baseset.Open();
	     m_baseset.MoveFirst();
         m_gradeset.Open();
         m_gradeset.MoveFirst();
         m_guestset.Open();
	     m_guestset.MoveFirst();

	    while(!m_guestset.IsEOF())
		{
         if(m_guestset.m_guest==m_oldid  && m_guestset.m_password==m_oldpass)
		 {
		  change=1;
		  break;
		 }
		 m_guestset.MoveNext();

		}

    	while(!m_choiceset.IsEOF())
		{
          if(m_choiceset.m_id==m_oldid )
		  {
		   change=2;
		   break;
		  }
		   m_choiceset.MoveNext();

		}
	    while(!m_gradeset.IsEOF())
		{
           if(m_gradeset.m_id==m_oldid )
		   {
			change=3;
		    break;
		   }
		    m_gradeset.MoveNext();

		}
	    while(!m_baseset.IsEOF())
		{
          if(m_baseset.m_id==m_oldid )
		  {
		   change=4;
		   break;
		  }
		  m_baseset.MoveNext();

		}
		//这里对这些数据的更新采取原子操作,一保证数据库的关系
		if(change==4)
		{
          m_choiceset.Edit();
          m_choiceset.m_id=m_newid;
          m_choiceset.Update();
          m_choiceset.Close();

          m_baseset.Edit();
          m_baseset.m_id=m_newid;
          m_baseset.Update();
          m_baseset.Close();

          m_guestset.Edit();
          m_guestset.m_guest=m_newid;
		  m_guestset.m_password=m_newpass;
          m_guestset.Update();		 
          m_guestset.Close();

          m_gradeset.Edit();
		  m_gradeset.m_id=m_newid;
		  m_gradeset.Update();
          m_gradeset.Close();	

		  
		  MessageBox("数据库更新成功",NULL,MB_OK);
		  CDialog::OnOK();
		}
		else      //这个部分可以确定哪个部分没有更新成功的代码
	     MessageBox("数据库更新失败",NULL,MB_OK);
	}   //else
	
}

void CChangeDlg::OnExit() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
	CDialog::DestroyWindow();
}

void CChangeDlg::OnAdd() 
{
	// TODO: Add your control notification handler code here

	UpdateData(1);
    int flag=0;         //用来控制每个窗口是否都没有退出
	if(m_oldid=="")
		MessageBox("请输入管理员编号",NULL,MB_OK|MB_ICONWARNING);
	else if(m_oldpass=="")
       MessageBox("请输入管理员密码",NULL,MB_OK|MB_ICONWARNING);
	else if(m_newid=="")
		MessageBox("请输入新添加的用户编号",NULL,MB_OK|MB_ICONWARNING);
	else if(m_newpass=="")
		MessageBox("请输入新添加的用户密码",NULL,MB_OK|MB_ICONWARNING);
	else
	{
/******the code below this is used to 验证密码和用户*/
		 CGuestSet  m_guestset;
		 m_guestset.Open();
	     m_guestset.MoveFirst();
//         m_guestset.MovePrev();//这里添加对用户是否重合的验证
		 while(!m_guestset.IsEOF())
		 {
           if(m_guestset.m_guest==m_newid)
		   {
			   MessageBox("添加用户错误,该用户已存在!",NULL,MB_OK|MB_ICONHAND);
			   return;
		   }
		   m_guestset.MoveNext();
		 }
		 m_guestset.MoveFirst();
	     if(m_guestset.m_guest!=m_oldid  || m_guestset.m_password!=m_oldpass)
		 {
             MessageBox("对不起,你没有权限添加用户",NULL,MB_OK|MB_ICONWARNING);
			 CDialog::OnCancel();
             m_guestset.Close();
			 return ;
		 }
		 else                      
		 {
          m_guestset.MoveLast();
		  m_guestset.AddNew();
		  m_guestset.m_guest=m_newid;
		  m_guestset.m_password=m_newpass;
		  flag=1;

          
		 }

/******the code below this is used to 验证密码和用户*/

/*****the code below this is used to link the datasource*/
	     CChoiceSet m_choiceset;
	     CBaseSet   m_baseset;
	     CGradeSet  m_gradeset;

		 m_choiceset.Open();
     	 m_choiceset.MoveFirst();
         m_baseset.Open();
	     m_baseset.MoveFirst();
         m_gradeset.Open();
         m_gradeset.MoveFirst();
/*****the code before this is used to link the datasource*/

/*****the code below this is used to 更新 the  CBaseSet  datasource*/
		 //这里还有问题,就是要添加对输入的学号 的是否已经存在的检查
		 CBaseInfo  m_baseinfo;                       //基本信息对话框
		 m_baseinfo.m_id=m_newid;
         if(m_baseinfo.DoModal()==IDOK)
		 {
           m_baseset.MoveLast();
           m_baseset.AddNew();
           m_baseset.m_adress=m_baseinfo.m_adress;
		   m_baseset.m_born=m_baseinfo.m_bore;
           m_baseset.m_id=m_newid;
		   m_baseset.m_name=m_baseinfo.m_name;
		   m_baseset.m_sex=m_baseinfo.m_sex;
           m_baseset.m_tel=m_baseinfo.m_tel;
           flag=2;

		   m_baseinfo.DestroyWindow();  //释放空间
  		 }

/*****the code before this is used to 更新 the  CBaseSet  datasource*/


/*****the code below this is used to 更新 the  CGradeSet  datasource*/
             CEditGradeDlg  m_editdlg;    //成绩对话框
              if(m_editdlg.DoModal()==IDOK)
			  {
               m_gradeset.MoveLast();
			   m_gradeset.AddNew();
               m_gradeset.m_C__=m_editdlg.m_cpp;
               m_gradeset.m_compiler= m_editdlg.m_compiler;
               m_gradeset.m_data= m_editdlg.m_data;
			   m_gradeset.m_id=m_newid;
			   m_gradeset.m_graph=m_editdlg.m_graph;
               m_gradeset.m_jihe=m_editdlg.m_jihe;
               m_gradeset.m_jinji=m_editdlg.m_jinji;
               m_gradeset.m_jisuan=m_editdlg.m_jisuan;
               m_gradeset.m_luoji=m_editdlg.m_luoji;
               m_gradeset.m_moni=  m_editdlg.m_moni;
               m_gradeset.m_os=m_editdlg.m_os;
               m_gradeset.m_pc= m_editdlg.m_pc;
			   m_gradeset.m_shuzi=m_editdlg.m_shuzi;
               m_gradeset.m_soft=m_editdlg.m_soft;
               m_gradeset.m_suanfa= m_editdlg.m_suanfa;
               m_gradeset.m_tongxin=m_editdlg.m_tongxin;
               m_gradeset.m_xinhao= m_editdlg.m_xinhao;
               flag=3;  

               m_editdlg.DestroyWindow();
			  }


/*****the code before this is used to 更新 the  CGradeSet  datasource*/

/*****the code below this is used to 更新 the  CChoiceSet  datasource*/
              CXuanxiuke  m_xuanxiuke;
			  if(m_xuanxiuke.DoModal()==IDOK)
			  {
                  m_choiceset.MoveLast();
				  m_choiceset.AddNew();
                  m_choiceset.m_id=m_newid;
                 if(m_xuanxiuke.m_guanli)
                    m_choiceset.m_guanli="√";
				 else 
                    m_choiceset.m_guanli="";
				 if(m_xuanxiuke.m_kuiji)
                   m_choiceset.m_kuaiji="√";
				 else 
                    m_choiceset.m_kuaiji="";
				 if(m_xuanxiuke.m_lishi)
                    m_choiceset.m_lishi="√";
				 else 
                    m_choiceset.m_lishi="";
				 if(m_xuanxiuke.m_sheying)
                    m_choiceset.m_sheying="√";
				 else 
                    m_choiceset.m_sheying="";
				 if(m_xuanxiuke.m_tongji)
                    m_choiceset.m_tongji="√";
				 else 
                    m_choiceset.m_tongji="";
				 if(m_xuanxiuke.m_wudao)
                    m_choiceset.m_wudao="√";
				 else 
                    m_choiceset.m_wudao="";
				 if(m_xuanxiuke.m_yuwen)
                    m_choiceset.m_yuwen="√";
				 else 
                    m_choiceset.m_yuwen="";
				 if(m_xuanxiuke.m_zhengzhi)
                    m_choiceset.m_zhengzhi="√";
				 else 
                    m_choiceset.m_zhengzhi="";
                flag=4;

                m_xuanxiuke.DestroyWindow();  
			  }
/*****the code before this is used to 更新 the  CGradeSet  datasource*/
        if(flag==4)
		{
		  m_guestset.Update();
		  m_guestset.Close();
		  m_baseset.Update();
		  m_baseset.Close();
		  m_gradeset.Update();
		  m_gradeset.Close();
          m_choiceset.Update();
		  m_choiceset.Close();
          MessageBox("向数据库添加用户信息成功!",NULL,MB_OK|MB_ICONINFORMATION);
    	  CDialog::OnOK();
		}
		else
		{
        MessageBox("向数据库添加用户信息失败!",NULL,MB_OK|MB_ICONINFORMATION);
		CDialog::OnOK();
		}
	}   //else
		
}

void CChangeDlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
    int flag=0;         //用来控制每个窗口是否都没有退出
	if(m_oldid=="")
		MessageBox("请输入管理员编号",NULL,MB_OK|MB_ICONEXCLAMATION );
	else if(m_oldpass=="")
       MessageBox("请输入管理员密码",NULL,MB_OK|MB_ICONEXCLAMATION );
	else if(m_newid=="")
		MessageBox("请输入删除的用户编号",NULL,MB_OK|MB_ICONEXCLAMATION );

	else
	{
/******the code below this is used to 验证密码和用户*/
		 CGuestSet  m_guestset;
		 CChoiceSet m_choiceset;
	     CBaseSet   m_baseset;
	     CGradeSet  m_gradeset;
		 m_guestset.Open();
		 m_choiceset.Open();
     	 m_choiceset.MoveFirst();
         m_baseset.Open();
	     m_baseset.MoveFirst();
         m_gradeset.Open();
         m_gradeset.MoveFirst();

		 m_guestset.MoveFirst();

	     if(m_guestset.m_guest!=m_oldid  || m_guestset.m_password!=m_oldpass)
		 {
             MessageBox("对不起,你没有权限添加用户",NULL,MB_OK|MB_ICONEXCLAMATION );
			 CDialog::OnCancel();
             m_guestset.Close();
		     return ;
			 
		 }
		 else                      
		 {
 
		  flag=1;
           m_guestset.Close();  //if the code before is not execute now this is must used !!
          m_guestset.Open();
	      m_guestset.MoveFirst();
//         m_guestset.MovePrev();//这里添加对用户是否重合的验证
		    while(!m_guestset.IsEOF())
			{
             if(m_guestset.m_guest==m_oldid  && m_guestset.m_guest== m_newid )
			 {
			   MessageBox("you can't  delete yourself!",NULL,MB_OK|MB_ICONHAND);
			   flag=20;
			   	 goto  UnResource;                 //释放资源
			 }
			 if(m_guestset.m_guest== m_newid)
			 {  
				 flag=3;
				 break;
			 }
		     m_guestset.MoveNext();
			 
			}
			 if(flag==3)                     //which is be found
		    	m_guestset.Delete();
			//is used to delete the information in the  choice table 
			 
   		    while(!m_choiceset.IsEOF())
			{
             if(m_choiceset.m_id==m_newid)
			 {
			   flag=4;
			   break;
			 }
		     m_choiceset.MoveNext();
			 
			}
			if(flag==4)
			m_choiceset.Delete();

			//is used to delete the information in the  base table 
   		    while(!m_baseset.IsEOF())
			{
             if(m_baseset.m_id==m_newid)
			 {
			   flag=5;
			   break;
			 }
		     m_baseset.MoveNext();
			 
			}
			if(flag==5)
            m_baseset.Delete();
			//is used to delete the information in the  grade table 

			while(!m_gradeset.IsEOF())
			{
             if(m_gradeset.m_id==m_newid)
			 {
			   flag=6;
			   break;
			 }
		     m_gradeset.MoveNext();
			 
			}

			if(flag==6)
			 m_gradeset.Delete();





UnResource: 
		   if(flag==20) 
		   {
			  m_gradeset.Close();
              m_baseset.Close();
              m_choiceset.Close();
              m_guestset.Close();
		   }
			 else
              MessageBox("删除用户成功!\n该用户不存在!",NULL,MB_OK|MB_ICONINFORMATION);
			  
		 }
	}//else
	

}

⌨️ 快捷键说明

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