學(xué)生信息管理系統(tǒng)核心代碼_第1頁
學(xué)生信息管理系統(tǒng)核心代碼_第2頁
學(xué)生信息管理系統(tǒng)核心代碼_第3頁
學(xué)生信息管理系統(tǒng)核心代碼_第4頁
學(xué)生信息管理系統(tǒng)核心代碼_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、DlgItemValid.cpp#include "StuDlgTest.h"extern LPNODE g_pHead;extern HINSTANCE g_hInst;extern TCHAR g_szFileNameMAX_PATH;/函數(shù)功能:獲取文本框、組合框、時間選擇框中的信息ELEMENT GetDlgItemValid(HWND hDlg)ELEMENT elem;WCHAR szBuf100;SYSTEMTIME st;GetDlgItemText(hDlg, IDC_EDIT_NAME,(LPWSTR)elem.szName, sizeof(elem.s

2、zName);GetDlgItemText(hDlg, IDC_EDIT_STUID,(LPWSTR)elem.szStuID, sizeof(elem.szStuID);GetDlgItemText(hDlg, IDC_COMBO_SEX,(LPWSTR)szBuf, sizeof(szBuf);elem.bSex =wcscmp(TEXT("男"), szBuf)?TRUE:FALSE;GetDlgItemText(hDlg, IDC_EDIT_AGE, (LPWSTR)szBuf, sizeof(szBuf);elem.nAge = _wtoi(szBuf);GetD

3、lgItemText(hDlg, IDC_EDIT_TELCODE, (LPWSTR)elem.szTelCode, sizeof(elem.szTelCode);GetDlgItemText(hDlg, IDC_EDIT_SUBJECT,(LPWSTR)elem.szSubject, sizeof(elem.szSubject);SendDlgItemMessage(hDlg, IDC_DATETIMEPICKER_IN, DTM_GETSYSTEMTIME, 0, (LPARAM)(&st);elem.stIn = st;SendDlgItemMessage(hDlg, IDC_D

4、ATETIMEPICKER_OUT, DTM_GETSYSTEMTIME, 0, (LPARAM)(&st);elem.stOut = st;GetDlgItemText(hDlg, IDC_EDIT_COMPANY, (LPWSTR)elem.szCompany, sizeof(elem.szCompany);wcscpy(elem.szPassword,TEXT("8888");return elem;/函數(shù)功能:設(shè)置文本框、組合框、時間選擇框中的信息void SetDlgItemValid(HWND hDlg)int nIndex=0;TCHAR szBuf1

5、00;LPNODE p;p=NULL;nIndex = SendDlgItemMessage(hDlg, IDC_LIST_NAME, LB_GETCURSEL, 0, 0L);SendDlgItemMessage(hDlg, IDC_LIST_NAME, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)szBuf);p = FindNodeFromListByName(g_pHead, szBuf);SetDlgItemText(hDlg, IDC_EDIT_NAME,(LPCWSTR)p->elem.szName);SetDlgItemText(hDlg, I

6、DC_EDIT_STUID,(LPCWSTR)p->elem.szStuID);nIndex = p->elem.bSex;SendDlgItemMessage(hDlg, IDC_COMBO_SEX, CB_SETCURSEL, (WPARAM)nIndex, 0L);wsprintf(LPWSTR)szBuf, (LPCWSTR)TEXT("%d"), p->elem.nAge);SetDlgItemText(hDlg, IDC_EDIT_AGE,(LPCWSTR)szBuf);SetDlgItemText(hDlg, IDC_EDIT_TELCODE

7、,(LPCWSTR)p->elem.szTelCode);SetDlgItemText(hDlg, IDC_EDIT_SUBJECT,(LPCWSTR)p->elem.szSubject);SendDlgItemMessage(hDlg, IDC_DATETIMEPICKER_IN, (UINT)DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&(p->elem.stIn);SendDlgItemMessage(hDlg, IDC_DATETIMEPICKER_OUT, (UINT)DTM_SETSYSTEMTIME,GDT_VALID,

8、(LPARAM)&(p->elem.stOut);SetDlgItemText(hDlg, IDC_EDIT_COMPANY,(LPCWSTR) p->elem.szCompany);/函數(shù)功能:置空文本框中的信息void SetDlgItemNull(HWND hDlg)SYSTEMTIME st;SetDlgItemText(hDlg, IDC_EDIT_NAME,0L);SetDlgItemText(hDlg, IDC_EDIT_STUID,0L);SendDlgItemMessage(hDlg, IDC_COMBO_SEX, CB_SETCURSEL,0, 0L);

9、SetDlgItemText(hDlg, IDC_EDIT_AGE,0L);SetDlgItemText(hDlg, IDC_EDIT_TELCODE,0L);SetDlgItemText(hDlg, IDC_EDIT_SUBJECT,0L);SendDlgItemMessage(hDlg, IDC_DATETIMEPICKER_IN, (UINT)DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)(&st);SendDlgItemMessage(hDlg, IDC_DATETIMEPICKER_OUT, (UINT)DTM_SETSYSTEMTIME,GDT

10、_VALID, (LPARAM)(&st);SetDlgItemText(hDlg, IDC_EDIT_COMPANY,0L);StuDlgTest.cpp# include "StuDlgTest.h"LPNODE g_pHead;WCHAR g_szFileNameMAX_PATH=TEXT("StudentInfor.txt");HINSTANCE g_hInst;/API入口函數(shù)int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin

11、e, int nCmdShow) g_hInst=hInstance; DialogBox(hInstance, (LPCWSTR)IDD_DLG_LOGIN, NULL, (DLGPROC)LoginDlgProc);return 0; StuList.cpp#include <STDIO.H>#include "StuList.h"/ 函數(shù)功能:鏈表初始化LPNODE CreateList()LPNODE lpHead;lpHead = (LPNODE)calloc(1, sizeof(NODE);return lpHead;/函數(shù)功能:添加新的結(jié)點到鏈表中

12、BOOL AddNodeToList(LPNODE lpHead, LPELEMENT lpElem, int nPos)LPNODE p, pNewNode;int nNodeCount = 0;/ 入口參數(shù)校驗if (lpHead = NULL | lpElem = NULL)return FALSE;p = lpHead;while(p->lpNext != NULL)+nNodeCount;p = p->lpNext;if(nPos>nNodeCount)return FALSE;/ 生成新的節(jié)點pNewNode = (LPNODE)malloc(sizeof(NOD

13、E);if(pNewNode = NULL)return FALSE;pNewNode->nSize = sizeof(NODE);pNewNode->elem = *lpElem;pNewNode->lpNext = NULL;/ 定位插入位置,P后插入if(nPos=0)p=lpHead;else if(nPos=-1)p = lpHead;while(p->lpNext != NULL)p = p->lpNext;elsep = lpHead;while(nPos)p = p->lpNext;-nPos;/ 將新的節(jié)點加入鏈表pNewNode->

14、lpNext = p->lpNext;p->lpNext = pNewNode;return TRUE;/函數(shù)功能:根據(jù)結(jié)點位置信息刪除鏈表結(jié)點信息BOOL DelNodeFromList(LPNODE lpHead, int nPos)LPNODE p,q;int nNodeCount = 0;/ 入口參數(shù)校驗if (lpHead = NULL)return FALSE;p = lpHead;while(p->lpNext != NULL)+nNodeCount;p = p->lpNext;if(nPos>nNodeCount)return FALSE;if(n

15、Pos=0)return FALSE; /定位刪除位置,被刪除節(jié)點的前一個節(jié)點if(nPos=1)p=lpHead;else if(nPos=-1)p = lpHead;while(p->lpNext->lpNext != NULL)p = p->lpNext;elsep = lpHead;while(nPos-1)p = p->lpNext;-nPos;/ 刪除P后面的一個節(jié)點q=p->lpNext;p->lpNext =q->lpNext ;free(q);return TRUE;/函數(shù)功能:根據(jù)結(jié)點位置信息修改鏈表結(jié)點信息BOOL ModNode

16、ToList(LPNODE lpHead, LPELEMENT lpElem, int nPos)LPNODE p;int nNodeCount = 0;/ 入口參數(shù)校驗if (lpHead = NULL | lpElem = NULL)return FALSE;p = lpHead;while(p->lpNext != NULL)+nNodeCount;p = p->lpNext;if(nPos>nNodeCount)return FALSE;/ 定位修改位置,P后修改if(nPos=0)p=lpHead;else if(nPos=-1)p = lpHead;while(p

17、->lpNext != NULL)p = p->lpNext;elsep = lpHead;while(nPos)p = p->lpNext;-nPos;/ 修改節(jié)點數(shù)據(jù)域/p = p->lpNext;p->elem = *lpElem;return TRUE;/函數(shù)功能:通過姓名查找結(jié)點信息,返回結(jié)點指針LPNODE FindNodeFromListByName(LPNODE lpHead, WCHAR *lpName)LPNODE p;/ 入口參數(shù)校驗if (lpHead = NULL | lpName = NULL)return FALSE;p = lpHe

18、ad->lpNext;while (p != NULL)if (!wcscmp(lpName, p->elem.szName)break;p = p->lpNext;return p;/函數(shù)功能:通過姓名查找結(jié)點信息,返回結(jié)點位置intFindPosFromListByName(LPNODE lpHead, WCHAR *lpName)LPNODE p;int nPos;int nNodeCount = 0;/ 入口參數(shù)校驗if (lpHead = NULL | lpName = NULL)return FALSE;p = lpHead;while(p->lpNext

19、!= NULL)+nNodeCount;p = p->lpNext;if(lpHead->lpNext=NULL)nPos=0;p=lpHead->lpNext;nPos=0;while(p!=NULL)+nPos;if (!wcscmp(lpName, p->elem.szName)break;p = p->lpNext;if(nNodeCount=nPos)nPos=-1;return nPos;/函數(shù)功能:打開文件并讀取文件信息到鏈表中BOOL OpenFileToList(LPNODE lpHead, WCHAR szFilename)ELEMENT el

20、em;FILE *pf;/ 入口參數(shù)校驗if (lpHead = NULL | szFilename = NULL)return FALSE;/ 打開文件pf = _wfopen(szFilename, TEXT("r");if (pf = NULL)pf =_wfopen(szFilename,TEXT("a");if (pf = NULL)return FALSE;/ 讀取數(shù)據(jù)并將數(shù)據(jù)添加到表尾while (fread(&elem, sizeof(elem), 1, pf)AddNodeToList(lpHead, &elem, -1

21、);fclose(pf);return TRUE;/函數(shù)功能保存鏈表中的數(shù)據(jù)信息搞文件中BOOL SaveListToFile(LPNODE lpHead, TCHAR szFilename)LPNODE p = lpHead->lpNext;FILE *pf;/ 入口參數(shù)校驗if (lpHead = NULL | szFilename = NULL)return FALSE;/ 打開文件pf = _wfopen(szFilename, TEXT("w");if (pf = NULL)pf = _wfopen(szFilename, TEXT("a"

22、;);if (pf = NULL)return FALSE;/ 按順序保存各節(jié)點數(shù)據(jù)域到文件中while (p)fwrite(&(p->elem), sizeof(ELEMENT), 1, pf);p = p->lpNext;fclose(pf);return TRUE;/函數(shù)功能:判斷用戶名是否已經(jīng)存在BOOL IsNameExist(LPNODE lpHead, WCHAR *lpName)LPNODE p;/ 入口參數(shù)校驗if (lpHead = NULL | lpName = NULL)return FALSE;p=lpHead->lpNext ;while(

23、p!=NULL)if (!wcscmp(lpName, p->elem.szName)break;p = p->lpNext;if(p=NULL)return FALSE;return TRUE;StuLoginDlgProc.cpp# include "StuDlgTest.h"extern LPNODE g_pHead;extern HINSTANCE g_hInst;extern WCHAR g_szFileNameMAX_PATH;/登錄界面的回調(diào)函數(shù)BOOL CALLBACK LoginDlgProc(HWND hDlg, UINT uMsg, WPA

24、RAM wParam, LPARAM lParam)UINT uID;WCHAR szName100;WCHAR szPassword100;static int nCount = 0;LPNODE p;switch (uMsg)case WM_INITDIALOG:g_pHead = CreateList();OpenFileToList(g_pHead, g_szFileName);return TRUE;case WM_COMMAND:uID = LOWORD(wParam);switch (uID)case IDOK:nCount+;if (nCount>3)MessageBox

25、(hDlg,TEXT("輸入錯誤超過了次,請仔細核實!n"),NULL,MB_OK);EndDialog(hDlg,0);break;GetDlgItemText(hDlg, IDC_EDIT_USER,(LPWSTR)szName, 100);GetDlgItemText(hDlg, IDC_EDIT_PASSWORD,(LPWSTR)szPassword, 100);if(wcscmp(szName,TEXT("admin")/ find name in listp = FindNodeFromListByName(g_pHead, szName);

26、if (p=NULL)MessageBox(hDlg,TEXT("該用戶不存在!"), NULL, MB_OK|MB_ICONWARNING);break;/ strcmp passwordif (wcscmp(szPassword, p->elem.szPassword)MessageBox(hDlg, TEXT("輸入密碼錯誤!n"), NULL, MB_OK|MB_ICONWARNING);break;else if(wcscmp(szPassword,TEXT("admin")MessageBox(hDlg, TEXT(

27、"輸入密碼錯誤!n"), NULL, MB_OK|MB_ICONWARNING);break;EndDialog(hDlg, 1);DialogBox(g_hInst, (LPCTSTR)IDD_DLG_MAIN, NULL, (DLGPROC)MainDlgProc);break;case IDCANCEL:EndDialog(hDlg, 0);break;break;return FALSE;StuMainDlgProc.cpp# include "StuDlgTest.h"extern LPNODE g_pHead;extern HINSTANCE

28、 g_hInst;extern WCHAR g_szFileNameMAX_PATH;/ 主界面的回調(diào)函數(shù)BOOL CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)int nPos;int nIndex=0;TCHAR szBuf100;UINT uID;LPNODE p;ELEMENT elem;static BOOL bIsChange = FALSE;switch (uMsg)case WM_INITDIALOG:p = g_pHead->lpNext;while(p)SendDlgIt

29、emMessage(hDlg, IDC_LIST_NAME, LB_ADDSTRING, 0, (LPARAM)(p->elem.szName); /將學(xué)生姓名顯示在列表框中p=p->lpNext;SendDlgItemMessage(hDlg, IDC_COMBO_SEX, CB_ADDSTRING, 0, (LPARAM)TEXT("男");SendDlgItemMessage(hDlg, IDC_COMBO_SEX, CB_ADDSTRING, 0, (LPARAM)TEXT("女");return TRUE;case WM_COMMA

30、ND:uID = LOWORD(wParam);switch (uID)case IDC_BUTTON_ADD:elem = GetDlgItemValid(hDlg);if(IsNameExist(g_pHead,elem.szName)MessageBox(hDlg,TEXT(" 用戶名已經(jīng)存在,請重新輸入!n"),NULL,MB_OK);break;AddNodeToList(g_pHead, &elem, -1);SendDlgItemMessage(hDlg, IDC_LIST_NAME, LB_ADDSTRING, 0, (LPARAM)(elem.sz

31、Name);MessageBox(hDlg,TEXT(" 添加信息成功!n"),NULL,MB_OK);bIsChange = TRUE;break;case IDC_BUTTON_MOD:nIndex = SendDlgItemMessage(hDlg, IDC_LIST_NAME, LB_GETCURSEL, 0, 0L);SendDlgItemMessage(hDlg, IDC_LIST_NAME, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)szBuf);nPos = FindPosFromListByName(g_pHead,szBuf);elem = GetDlgItemValid(hDlg);if(!IsNameExist(g_pHead,elem.szName)MessageBox(hDlg,TEXT(" 用姓名不允許修改,請重新輸入!n"),NULL,MB_OK);break;SendDlgItemMessage(hDlg, IDC_LIST_NAME, LB_DELETESTRING, nIndex, 0L);SendDlgItemMessa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論