课件管理Dlg.cpp
上传用户:xaucma
上传日期:2022-07-29
资源大小:2020k
文件大小:8k
源码类别:

数据结构

开发平台:

Visual C++

  1. // 课件管理Dlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "课件管理.h"
  5. #include "课件管理Dlg.h"
  6. #include <iostream.h>
  7. #include <fstream.h>
  8. #include "sstream"
  9. #include<stdlib.h>
  10. #include<string.h>
  11. #include "windows.h"
  12. #include <stdlib.h>
  13. #include <stdio.h>
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. /////////////////////////////////////////////////////////////////////////////
  20. // CAboutDlg dialog used for App About
  21. class CAboutDlg : public CDialog
  22. {
  23. public:
  24. CAboutDlg();
  25.     //int a[100];
  26. int a[7];
  27. // Dialog Data
  28. //{{AFX_DATA(CAboutDlg)
  29. enum { IDD = IDD_ABOUTBOX };
  30. //}}AFX_DATA
  31. // ClassWizard generated virtual function overrides
  32. //{{AFX_VIRTUAL(CAboutDlg)
  33. protected:
  34. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  35. //}}AFX_VIRTUAL
  36. // Implementation
  37. protected:
  38. //{{AFX_MSG(CAboutDlg)
  39. //}}AFX_MSG
  40. DECLARE_MESSAGE_MAP()
  41. };
  42. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  43. {
  44. //{{AFX_DATA_INIT(CAboutDlg)
  45. //}}AFX_DATA_INIT
  46. }
  47. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  48. {
  49. CDialog::DoDataExchange(pDX);
  50. //{{AFX_DATA_MAP(CAboutDlg)
  51. //}}AFX_DATA_MAP
  52. }
  53. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  54. //{{AFX_MSG_MAP(CAboutDlg)
  55. // No message handlers
  56. //}}AFX_MSG_MAP
  57. END_MESSAGE_MAP()
  58. /////////////////////////////////////////////////////////////////////////////
  59. // CMyDlg dialog
  60. CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
  61. : CDialog(CMyDlg::IDD, pParent)
  62. {
  63. //{{AFX_DATA_INIT(CMyDlg)
  64. m_edit2 = _T("");
  65. //}}AFX_DATA_INIT
  66. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  67. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  68. }
  69. void CMyDlg::DoDataExchange(CDataExchange* pDX)
  70. {
  71. CDialog::DoDataExchange(pDX);
  72. //{{AFX_DATA_MAP(CMyDlg)
  73. DDX_Control(pDX, IDC_EDIT3, m_edit3);
  74. DDX_Control(pDX, IDC_EDIT1, m_edit1);
  75. DDX_Control(pDX, IDC_COMBO1, m_combo);
  76. DDX_Text(pDX, IDC_EDIT2, m_edit2);
  77. //}}AFX_DATA_MAP
  78. }
  79. BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
  80. //{{AFX_MSG_MAP(CMyDlg)
  81. ON_WM_SYSCOMMAND()
  82. ON_WM_PAINT()
  83. ON_WM_QUERYDRAGICON()
  84. ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
  85. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  86. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  87. //}}AFX_MSG_MAP
  88. END_MESSAGE_MAP()
  89. /////////////////////////////////////////////////////////////////////////////
  90. // CMyDlg message handlers
  91. BOOL CMyDlg::OnInitDialog()
  92. {
  93. CDialog::OnInitDialog();
  94.    m_combo.SetCurSel(0);
  95.    
  96. // Add "About..." menu item to system menu.
  97. // IDM_ABOUTBOX must be in the system command range.
  98. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  99. ASSERT(IDM_ABOUTBOX < 0xF000);
  100. CMenu* pSysMenu = GetSystemMenu(FALSE);
  101. if (pSysMenu != NULL)
  102. {
  103. CString strAboutMenu;
  104. strAboutMenu.LoadString(IDS_ABOUTBOX);
  105. if (!strAboutMenu.IsEmpty())
  106. {
  107. pSysMenu->AppendMenu(MF_SEPARATOR);
  108. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  109. }
  110. }
  111. // Set the icon for this dialog.  The framework does this automatically
  112. //  when the application's main window is not a dialog
  113. SetIcon(m_hIcon, TRUE); // Set big icon
  114. SetIcon(m_hIcon, FALSE); // Set small icon
  115. // TODO: Add extra initialization here
  116. return TRUE;  // return TRUE  unless you set the focus to a control
  117. }
  118. void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
  119. {
  120. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  121. {
  122. CAboutDlg dlgAbout;
  123. dlgAbout.DoModal();
  124. }
  125. else
  126. {
  127. CDialog::OnSysCommand(nID, lParam);
  128. }
  129. }
  130. // If you add a minimize button to your dialog, you will need the code below
  131. //  to draw the icon.  For MFC applications using the document/view model,
  132. //  this is automatically done for you by the framework.
  133. void CMyDlg::OnPaint() 
  134. {
  135. if (IsIconic())
  136. {
  137. CPaintDC dc(this); // device context for painting
  138. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  139. // Center icon in client rectangle
  140. int cxIcon = GetSystemMetrics(SM_CXICON);
  141. int cyIcon = GetSystemMetrics(SM_CYICON);
  142. CRect rect;
  143. GetClientRect(&rect);
  144. int x = (rect.Width() - cxIcon + 1) / 2;
  145. int y = (rect.Height() - cyIcon + 1) / 2;
  146. // Draw the icon
  147. dc.DrawIcon(x, y, m_hIcon);
  148. }
  149. else
  150. {
  151. CDialog::OnPaint();
  152. }
  153. }
  154. // The system calls this to obtain the cursor to display while the user drags
  155. //  the minimized window.
  156. HCURSOR CMyDlg::OnQueryDragIcon()
  157. {
  158. return (HCURSOR) m_hIcon;
  159. }
  160. void CMyDlg::OnOK() 
  161. {  
  162. // TODO: Add extra validation here
  163. CString str;
  164.  GetDlgItem(IDC_EDIT2)->GetWindowText(str);
  165.  int s[10];
  166.     //CString str="aa,bb,cc,dd,ee"; 
  167. CString strTemp; 
  168. int nIndex=0, nLast=0,i=0; 
  169. int t=0;
  170.  char str1[100]="排序结果为:  ";
  171. while (nIndex != -1) 
  172. nIndex = str.Find(",", nLast); 
  173. if(nIndex != -1) 
  174. strTemp = str.Mid(nLast, nIndex - nLast); 
  175. nLast = nIndex + 1; 
  176. else 
  177. strTemp = str.Mid(nLast, str.GetLength() - nLast); 
  178. //TRACE0(strTemp); 
  179. s[i++]=atoi(strTemp);
  180. }
  181.  //GetDlgItem(IDC_EDIT3)->SetWindowText((char *)s[0]);
  182. //static int i=0;
  183.  
  184. for(int ia=0;ia<i-1;ia++)
  185.   //Sleep(1000);
  186.       for(int j=0;j<i-ia-1;j++)
  187.           if(s[j]>s[j+1]){
  188.          t=s[j];
  189.  s[j]=s[j+1];
  190.  s[j+1]=t;
  191.   }
  192.         
  193.        // CDialog::OnOK();  
  194.      // GetDlgItem(IDC_EDIT1)->SetWindowText((CString)a[0]);      
  195.      //GetDlgItem(IDC_EDIT3)->SetWindowText(str1);
  196.          //for(int s=0;s<=1000;s++);
  197.        for(int z=0;z<i;z++){
  198.         
  199.                     CString myString ;
  200.                     myString.Format("%d  ",s[z]);
  201.                     strcat(str1,myString);
  202.   
  203.  }    
  204.             GetDlgItem(IDC_EDIT3)->SetWindowText(str1);
  205.  
  206.  
  207. }
  208. void CMyDlg::OnSelchangeCombo1() 
  209. {
  210. // TODO: Add your control notification handler code here
  211. int i=m_combo.GetCurSel();
  212. // TODO: Add extra validation here
  213. if(i==0){
  214. CFile file("插入排序.txt",CFile::modeRead);
  215. char szchar[1000];
  216. memset(szchar,0,1000);
  217. file.Read(szchar,1000);
  218.     
  219.    GetDlgItem(IDC_STATIC1)->SetWindowText(szchar);
  220. //MessageBox(szchar);
  221. file.Close();
  222.  GetDlgItem(IDC_EDIT3)->SetWindowText("插入排序举例:");
  223. }
  224. if(i==1){
  225. CFile file("堆排序.txt",CFile::modeRead);
  226. char szchar[1000];
  227. memset(szchar,0,1000);
  228. file.Read(szchar,1000);
  229.     
  230.    GetDlgItem(IDC_STATIC1)->SetWindowText(szchar);
  231. //MessageBox(szchar);
  232. file.Close();
  233. GetDlgItem(IDC_EDIT3)->SetWindowText("堆排序举例:");
  234. }
  235. if(i==2){
  236. CFile file("归并排序.txt",CFile::modeRead);
  237. char szchar[1000];
  238. memset(szchar,0,1000);
  239. file.Read(szchar,1000);
  240.     
  241.    GetDlgItem(IDC_STATIC1)->SetWindowText(szchar);
  242. //MessageBox(szchar);
  243. file.Close();
  244.    GetDlgItem(IDC_EDIT3)->SetWindowText("归并排序举例:");
  245. }
  246. if(i==3){
  247. CFile file("冒泡排序.txt",CFile::modeRead);
  248. char szchar[1000];
  249. memset(szchar,0,1000);
  250. file.Read(szchar,1000);
  251.     
  252.    GetDlgItem(IDC_STATIC1)->SetWindowText(szchar);
  253. //MessageBox(szchar);
  254. file.Close();
  255. GetDlgItem(IDC_EDIT3)->SetWindowText("冒泡排序举例:");
  256. }
  257. }
  258. void CMyDlg::OnButton1() 
  259. {//char a[100];
  260. // TODO: Add your control notification handler code here
  261. //m_edit3.Clear();
  262. static int num=0;
  263.     //a[i++]=IDC_EDIT2;
  264. GetDlgItem(IDC_EDIT2)->GetWindowText(a[num]);
  265. GetDlgItem(IDC_EDIT3)->SetWindowText("");
  266. GetDlgItem(IDC_EDIT2)->SetWindowText("");
  267. //GetDlgItem(IDC_EDIT1)->SetWindowText(a[i-1]);
  268. for(int j=0;j<=num;j++){
  269.  //GetDlgItem(IDC_EDIT1)->SetWindowText(a[j]);
  270. //IDC_EDIT1.SetWindowText(num);
  271. }
  272. num++;
  273. }
  274. void CMyDlg::OnButton2() 
  275. {
  276. int a[]={2,64,200,100,59,3,1};
  277. int t=0;
  278.  char str[]="  ";
  279. //static int i=0;
  280.  
  281. for(int i=0;i<7;i++){
  282.     
  283.   //Sleep(1000);
  284.       
  285. for(int j=0;j<7-i;j++)
  286.           if(a[j]>a[j+1]){
  287.          t=a[j];
  288.  a[j]=a[j+1];
  289.  a[j+1]=t;
  290.   }
  291.         
  292.        // CDialog::OnOK();
  293.   
  294.    
  295.      // GetDlgItem(IDC_EDIT1)->SetWindowText((CString)a[0]);
  296.           
  297.                  
  298.      
  299.      //GetDlgItem(IDC_EDIT3)->SetWindowText(str);
  300.                  
  301.                  //for(int s=0;s<=1000;s++);
  302.      
  303. }
  304.         for(int z=0;z<7;z++){
  305.         
  306.                     CString myString ;
  307.                     myString.Format("%d  ",a[z]);
  308.                     strcat(str,myString);
  309.   
  310.  }    
  311. GetDlgItem(IDC_EDIT3)->SetWindowText(str);
  312.   
  313. }
  314. void CMyDlg::OnCancel() 
  315. {
  316. // TODO: Add extra cleanup here
  317. // i=0;
  318. CDialog::OnCancel();
  319. }