MainFrm.cpp
上传用户:rs600066
上传日期:2017-10-16
资源大小:4788k
文件大小:14k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "school.h"
  5. #include "MainFrm.h"
  6. //系统管理
  7. #include "UserDlg.h"
  8. #include "LoginDlg.h"
  9. //基础设置
  10. #include "departmentdlg.h"
  11. #include "majordlg.h"
  12. #include "classdlg.h"
  13. //学生管理
  14. #include "studentdlg.h"
  15. #include "scholarshipdlg.h"
  16. #include "HonorDlg.h"
  17. //成绩管理
  18. #include "examsubjectdlg.h"
  19. #include "examtimedlg.h"
  20. #include "examtypedlg.h"
  21. #include "scoreinputdlg.h"
  22. #include "scorequerydlg.h"
  23. #include "ScoreClassStatDlg.h"
  24. #include "ScoreSingleDlg.h"
  25. #include "ScoreTotalDlg.h"
  26. //学籍变动管理
  27. #include "ChangeInsideDlg.h"
  28. #include "ChangeLeaveDlg.h"
  29. #include "ChangeSuspandDlg.h"
  30. #include "ChangeTranserDlg.h"
  31. #include "ChangeDegradeDlg.h"
  32. #ifdef _DEBUG
  33. #define new DEBUG_NEW
  34. #undef THIS_FILE
  35. static char THIS_FILE[] = __FILE__;
  36. #endif
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CMainFrame
  39. IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
  40. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  41. //{{AFX_MSG_MAP(CMainFrame)
  42. ON_WM_CREATE()
  43. ON_COMMAND(ID_APP_EXIT, OnAppExit)
  44. ON_WM_CLOSE()
  45. ON_COMMAND(ID_BASE_DEPARTMENT, OnBaseDepartment)
  46. ON_UPDATE_COMMAND_UI(ID_BASE_DEPARTMENT, OnUpdateBaseDepartment)
  47. ON_COMMAND(ID_BASE_MAJOR, OnBaseMajor)
  48. ON_UPDATE_COMMAND_UI(ID_BASE_MAJOR, OnUpdateBaseMajor)
  49. ON_COMMAND(ID_BASE_CLASS, OnBaseClass)
  50. ON_UPDATE_COMMAND_UI(ID_BASE_CLASS, OnUpdateBaseClass)
  51. ON_COMMAND(ID_STUDENT_INFO, OnStudentInfo)
  52. ON_UPDATE_COMMAND_UI(ID_STUDENT_INFO, OnUpdateStudentInfo)
  53. ON_COMMAND(ID_STUDENT_SCHOLARSHIP, OnStudentScholarship)
  54. ON_UPDATE_COMMAND_UI(ID_STUDENT_SCHOLARSHIP, OnUpdateStudentScholarship)
  55. ON_COMMAND(ID_DATABASE_BACKUP, OnDatabaseBackup)
  56. ON_UPDATE_COMMAND_UI(ID_DATABASE_BACKUP, OnUpdateDatabaseBackup)
  57. ON_COMMAND(ID_DATABASE_RECOVER, OnDatabaseRecover)
  58. ON_UPDATE_COMMAND_UI(ID_DATABASE_RECOVER, OnUpdateDatabaseRecover)
  59. ON_COMMAND(ID_SCORE_INPUT, OnScoreInput)
  60. ON_UPDATE_COMMAND_UI(ID_SCORE_INPUT, OnUpdateScoreInput)
  61. ON_COMMAND(ID_SCORE_QUERY, OnScoreQuery)
  62. ON_UPDATE_COMMAND_UI(ID_SCORE_QUERY, OnUpdateScoreQuery)
  63. ON_COMMAND(ID_SCORE_CLASS_STAT, OnScoreClassStat)
  64. ON_UPDATE_COMMAND_UI(ID_SCORE_CLASS_STAT, OnUpdateScoreClassStat)
  65. ON_COMMAND(ID_SCORE_SET_EXAM, OnScoreSetExam)
  66. ON_UPDATE_COMMAND_UI(ID_SCORE_SET_EXAM, OnUpdateScoreSetExam)
  67. ON_COMMAND(ID_SCORE_SET_SUBJECT, OnScoreSetSubject)
  68. ON_UPDATE_COMMAND_UI(ID_SCORE_SET_SUBJECT, OnUpdateScoreSetSubject)
  69. ON_COMMAND(ID_SCORE_SET_TIME, OnScoreSetTime)
  70. ON_UPDATE_COMMAND_UI(ID_SCORE_SET_TIME, OnUpdateScoreSetTime)
  71. ON_COMMAND(ID_SYSTEM_USER, OnSystemUser)
  72. ON_UPDATE_COMMAND_UI(ID_SYSTEM_USER, OnUpdateSystemUser)
  73. ON_COMMAND(ID_SYSTEM_RELOAD, OnSystemReload)
  74. ON_UPDATE_COMMAND_UI(ID_SYSTEM_RELOAD, OnUpdateSystemReload)
  75. ON_COMMAND(ID_SYSTEM_QUIT, OnSystemQuit)
  76. ON_COMMAND(ID_STUDENT_HONOR, OnStudentHonor)
  77. ON_UPDATE_COMMAND_UI(ID_STUDENT_HONOR, OnUpdateStudentHonor)
  78. ON_COMMAND(ID_SCORE_STUDENT_SINGLE, OnScoreStudentSingle)
  79. ON_UPDATE_COMMAND_UI(ID_SCORE_STUDENT_SINGLE, OnUpdateScoreStudentSingle)
  80. ON_COMMAND(ID_SCORE_STUDENT_TOTAL, OnScoreStudentTotal)
  81. ON_UPDATE_COMMAND_UI(ID_SCORE_STUDENT_TOTAL, OnUpdateScoreStudentTotal)
  82. ON_COMMAND(ID_CHANGE_INSIDE, OnChangeInside)
  83. ON_UPDATE_COMMAND_UI(ID_CHANGE_INSIDE, OnUpdateChangeInside)
  84. ON_COMMAND(ID_CHANGE_LEAVE, OnChangeLeave)
  85. ON_UPDATE_COMMAND_UI(ID_CHANGE_LEAVE, OnUpdateChangeLeave)
  86. ON_COMMAND(ID_CHANGE_SUSPAND, OnChangeSuspand)
  87. ON_UPDATE_COMMAND_UI(ID_CHANGE_SUSPAND, OnUpdateChangeSuspand)
  88. ON_COMMAND(ID_CHANGE_TRANSFER, OnChangeTransfer)
  89. ON_UPDATE_COMMAND_UI(ID_CHANGE_TRANSFER, OnUpdateChangeTransfer)
  90. ON_COMMAND(ID_CHANGE_DEGRADE, OnChangeDegrade)
  91. ON_UPDATE_COMMAND_UI(ID_CHANGE_DEGRADE, OnUpdateChangeDegrade)
  92. //}}AFX_MSG_MAP
  93. END_MESSAGE_MAP()
  94. static UINT indicators[] =
  95. {
  96. ID_SEPARATOR,           // status line indicator
  97. ID_INDICATOR_CAPS,
  98. ID_INDICATOR_NUM,
  99. ID_INDICATOR_SCRL,
  100. };
  101. /////////////////////////////////////////////////////////////////////////////
  102. // CMainFrame construction/destruction
  103. CMainFrame::CMainFrame()
  104. {
  105. // TODO: add member initialization code here
  106. }
  107. CMainFrame::~CMainFrame()
  108. {
  109. }
  110. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  111. {
  112. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  113. return -1;
  114. /* if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
  115. | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  116. !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  117. {
  118. TRACE0("Failed to create toolbarn");
  119. return -1;      // fail to create
  120. }
  121. */
  122. if (!m_wndStatusBar.Create(this) ||
  123. !m_wndStatusBar.SetIndicators(indicators,
  124.   sizeof(indicators)/sizeof(UINT)))
  125. {
  126. TRACE0("Failed to create status barn");
  127. return -1;      // fail to create
  128. }
  129. // TODO: Delete these three lines if you don't want the toolbar to
  130. //  be dockable
  131. // m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  132. EnableDocking(CBRS_ALIGN_ANY);
  133. // DockControlBar(&m_wndToolBar);
  134. return 0;
  135. }
  136. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  137. {
  138. if( !CFrameWnd::PreCreateWindow(cs) )
  139. return FALSE;
  140. // TODO: Modify the Window class or styles here by modifying
  141. //  the CREATESTRUCT cs
  142. return TRUE;
  143. }
  144. /////////////////////////////////////////////////////////////////////////////
  145. // CMainFrame diagnostics
  146. #ifdef _DEBUG
  147. void CMainFrame::AssertValid() const
  148. {
  149. CFrameWnd::AssertValid();
  150. }
  151. void CMainFrame::Dump(CDumpContext& dc) const
  152. {
  153. CFrameWnd::Dump(dc);
  154. }
  155. #endif //_DEBUG
  156. /////////////////////////////////////////////////////////////////////////////
  157. // CMainFrame message handlers
  158. void CMainFrame::OnAppExit() 
  159. {
  160. // TODO: Add your command handler code here
  161. OnClose();
  162. }
  163. void CMainFrame::OnClose() 
  164. {
  165.     if(AfxMessageBox("您确定要退出系统吗?",MB_OKCANCEL)==IDCANCEL)
  166. {
  167. return;
  168. }
  169. CFrameWnd::OnClose();
  170. }
  171. void CMainFrame::OnBaseDepartment() 
  172. {
  173. // TODO: Add your command handler code here
  174. CDepartmentDlg Dlg;
  175. Dlg.DoModal();
  176. }
  177. void CMainFrame::OnUpdateBaseDepartment(CCmdUI* pCmdUI) 
  178. {
  179. // TODO: Add your command update UI handler code here
  180. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  181. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  182. }
  183. void CMainFrame::OnBaseMajor() 
  184. {
  185. // TODO: Add your command handler code here
  186. CMajorDlg Dlg;
  187. Dlg.DoModal();
  188. }
  189. void CMainFrame::OnUpdateBaseMajor(CCmdUI* pCmdUI) 
  190. {
  191. // TODO: Add your command update UI handler code here
  192. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  193. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  194. }
  195. void CMainFrame::OnBaseClass() 
  196. {
  197. // TODO: Add your command handler code here
  198. CClassDlg Dlg;
  199. Dlg.DoModal();
  200. }
  201. void CMainFrame::OnUpdateBaseClass(CCmdUI* pCmdUI) 
  202. {
  203. // TODO: Add your command update UI handler code here
  204. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  205. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  206. }
  207. void CMainFrame::OnStudentInfo() 
  208. {
  209. // TODO: Add your command handler code here
  210. CStudentDlg Dlg;
  211. Dlg.DoModal();
  212. }
  213. void CMainFrame::OnUpdateStudentInfo(CCmdUI* pCmdUI) 
  214. {
  215. // TODO: Add your command update UI handler code here
  216. }
  217. void CMainFrame::OnStudentScholarship() 
  218. {
  219. // TODO: Add your command handler code here
  220. CScholarshipDlg Dlg;
  221. Dlg.DoModal();
  222. }
  223. void CMainFrame::OnUpdateStudentScholarship(CCmdUI* pCmdUI) 
  224. {
  225. // TODO: Add your command update UI handler code here
  226. }
  227. void CMainFrame::OnDatabaseBackup() 
  228. {
  229. // TODO: Add your command handler code here
  230. if(AfxMessageBox("您确定要备份数据库吗?",MB_OKCANCEL)==IDCANCEL) 
  231. return; 
  232. }   
  233. if(CopyFile(".\school.mdb",".\backup\school.bak",FALSE)) 
  234. AfxMessageBox("数据库备份成功!"); 
  235. else 
  236. AfxMessageBox("数据库备份失败!"); 
  237. }
  238. void CMainFrame::OnUpdateDatabaseBackup(CCmdUI* pCmdUI) 
  239. {
  240. // TODO: Add your command update UI handler code here
  241. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  242. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  243. }
  244. void CMainFrame::OnDatabaseRecover() 
  245. {
  246. // TODO: Add your command handler code here
  247. if(AfxMessageBox("还原数据库将覆盖原来的数据库。您确定要还原吗?",MB_OKCANCEL)==IDCANCEL) 
  248. return; 
  249. }   
  250. if(CopyFile(".\backup\school.bak",".\school.mdb",FALSE)) 
  251. AfxMessageBox("数据库还原成功!"); 
  252. else 
  253. AfxMessageBox("数据库还原失败!");  
  254. }
  255. void CMainFrame::OnUpdateDatabaseRecover(CCmdUI* pCmdUI) 
  256. {
  257. // TODO: Add your command update UI handler code here
  258. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  259. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  260. }
  261. void CMainFrame::OnScoreInput() 
  262. {
  263. // TODO: Add your command handler code here
  264. CScoreInputDlg  Dlg;
  265. Dlg.DoModal();
  266. }
  267. void CMainFrame::OnUpdateScoreInput(CCmdUI* pCmdUI) 
  268. {
  269. // TODO: Add your command update UI handler code here
  270. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  271. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  272. }
  273. //成绩查询
  274. void CMainFrame::OnScoreQuery() 
  275. {
  276. CScoreQueryDlg  Dlg;
  277. Dlg.DoModal();
  278. }
  279. void CMainFrame::OnUpdateScoreQuery(CCmdUI* pCmdUI) 
  280. {
  281. // TODO: Add your command update UI handler code here
  282. }
  283. void CMainFrame::OnScoreClassStat() 
  284. {
  285. // TODO: Add your command handler code here
  286. CScoreClassStatDlg Dlg;
  287. Dlg.DoModal();
  288. }
  289. void CMainFrame::OnUpdateScoreClassStat(CCmdUI* pCmdUI) 
  290. {
  291. // TODO: Add your command update UI handler code here
  292. }
  293. //设置考试类型
  294. void CMainFrame::OnScoreSetExam() 
  295. {
  296. CExamtypeDlg Dlg;
  297. Dlg.DoModal();
  298. }
  299. void CMainFrame::OnUpdateScoreSetExam(CCmdUI* pCmdUI) 
  300. {
  301. // TODO: Add your command update UI handler code here
  302. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  303. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  304. }
  305. //设置考试科目
  306. void CMainFrame::OnScoreSetSubject() 
  307. {
  308. CExamSubjectDlg Dlg;
  309. Dlg.DoModal();
  310. }
  311. void CMainFrame::OnUpdateScoreSetSubject(CCmdUI* pCmdUI) 
  312. {
  313. // TODO: Add your command update UI handler code here
  314. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  315. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  316. }
  317. //设置考试时间段
  318. void CMainFrame::OnScoreSetTime() 
  319. {
  320. // TODO: Add your command handler code here
  321. CExamtimeDlg Dlg;
  322. Dlg.DoModal();
  323. }
  324. void CMainFrame::OnUpdateScoreSetTime(CCmdUI* pCmdUI) 
  325. {
  326. // TODO: Add your command update UI handler code here
  327. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  328. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  329. }
  330. void CMainFrame::OnSystemUser() 
  331. {
  332. // TODO: Add your command handler code here
  333. CUserDlg Dlg;
  334. Dlg.DoModal();
  335. }
  336. void CMainFrame::OnUpdateSystemUser(CCmdUI* pCmdUI) 
  337. {
  338. // TODO: Add your command update UI handler code here
  339. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  340. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  341. }
  342. void CMainFrame::OnSystemReload() 
  343. {
  344. // TODO: Add your command handler code here
  345. CLoginDlg Dlg;
  346. int nRes=0;
  347. do
  348. {
  349. nRes=Dlg.DoModal();
  350. //回到主界面
  351. if(nRes==IDOK)
  352. return;
  353. //退出系统
  354. if(nRes==IDCANCEL)
  355. {
  356. if(AfxMessageBox("您确定要退出系统吗?",MB_OKCANCEL)==IDCANCEL)
  357. {
  358. return;
  359. }
  360. CFrameWnd::OnClose();
  361. return;
  362. }
  363. }while(1);
  364. }
  365. void CMainFrame::OnUpdateSystemReload(CCmdUI* pCmdUI) 
  366. {
  367. // TODO: Add your command update UI handler code here
  368. }
  369. void CMainFrame::OnSystemQuit() 
  370. {
  371. // TODO: Add your command handler code here
  372. OnClose();
  373. }
  374. void CMainFrame::OnStudentHonor() 
  375. {
  376. // TODO: Add your command handler code here
  377. CHonorDlg Dlg;
  378. Dlg.DoModal();
  379. }
  380. void CMainFrame::OnUpdateStudentHonor(CCmdUI* pCmdUI) 
  381. {
  382. // TODO: Add your command update UI handler code here
  383. }
  384. void CMainFrame::OnScoreStudentSingle() 
  385. {
  386. // TODO: Add your command handler code here
  387. CScoreSingleDlg  Dlg;
  388. Dlg.DoModal();
  389. }
  390. void CMainFrame::OnUpdateScoreStudentSingle(CCmdUI* pCmdUI) 
  391. {
  392. // TODO: Add your command update UI handler code here
  393. }
  394. void CMainFrame::OnScoreStudentTotal() 
  395. {
  396. // TODO: Add your command handler code here
  397. CScoreTotalDlg Dlg;
  398. Dlg.DoModal();
  399. }
  400. void CMainFrame::OnUpdateScoreStudentTotal(CCmdUI* pCmdUI) 
  401. {
  402. // TODO: Add your command update UI handler code here
  403. }
  404. void CMainFrame::OnChangeInside() 
  405. {
  406. // TODO: Add your command handler code here
  407. CChangeInsideDlg  Dlg;
  408. Dlg.DoModal();
  409. }
  410. void CMainFrame::OnUpdateChangeInside(CCmdUI* pCmdUI) 
  411. {
  412. // TODO: Add your command update UI handler code here
  413. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  414. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  415. }
  416. void CMainFrame::OnChangeLeave() 
  417. {
  418. // TODO: Add your command handler code here
  419. CChangeLeaveDlg  Dlg;
  420. Dlg.DoModal();
  421. }
  422. void CMainFrame::OnUpdateChangeLeave(CCmdUI* pCmdUI) 
  423. {
  424. // TODO: Add your command update UI handler code here
  425. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  426. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  427. }
  428. void CMainFrame::OnChangeSuspand() 
  429. {
  430. // TODO: Add your command handler code here
  431. CChangeSuspandDlg  Dlg;
  432. Dlg.DoModal();
  433. }
  434. void CMainFrame::OnUpdateChangeSuspand(CCmdUI* pCmdUI) 
  435. {
  436. // TODO: Add your command update UI handler code here
  437. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  438. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  439. }
  440. void CMainFrame::OnChangeTransfer() 
  441. {
  442. // TODO: Add your command handler code here
  443. CChangeTranserDlg  Dlg;
  444. Dlg.DoModal();
  445. }
  446. void CMainFrame::OnUpdateChangeTransfer(CCmdUI* pCmdUI) 
  447. {
  448. // TODO: Add your command update UI handler code here
  449. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  450. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  451. }
  452. void CMainFrame::OnChangeDegrade() 
  453. {
  454. // TODO: Add your command handler code here
  455. CChangeDegradeDlg  Dlg;
  456. Dlg.DoModal();
  457. }
  458. void CMainFrame::OnUpdateChangeDegrade(CCmdUI* pCmdUI) 
  459. {
  460. // TODO: Add your command update UI handler code here
  461. CSchoolApp*  ptheApp = (CSchoolApp *) AfxGetApp();
  462. pCmdUI->Enable(ptheApp->m_bIsAdmin);
  463. }