




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1-2007年6月10日基于VisualC++/Access實(shí)現(xiàn)的學(xué)生宿舍管理系統(tǒng)(StuDormMS)摘要:本系統(tǒng)根據(jù)中南民族大學(xué)宿舍管理的實(shí)際情況而設(shè)計(jì),采用VisualC++為開發(fā)工具,數(shù)據(jù)庫采用的是最為普及的小型數(shù)據(jù)庫管理系統(tǒng)Access,能實(shí)現(xiàn)宿舍管理中的添加信息、修改信息、刪除信息、查詢信息等必不可少的功能。關(guān)鍵字:C++;宿舍管理系統(tǒng);Access;數(shù)據(jù)庫;MFC編程1引言宿舍,是大學(xué)生在高校校園里一個(gè)重要的學(xué)習(xí)、生活、交往的空間環(huán)境。隨著高校辦學(xué)規(guī)模的擴(kuò)大,學(xué)生人數(shù)不斷增多,高校學(xué)生宿舍管理信息量日益龐大,如果仍采用傳統(tǒng)的工作方式——紙媒介的賬本化工作模式,會(huì)存在獲取信息慢、查閱困難、準(zhǔn)確性差等問題,很難適應(yīng)高水平宿舍管理的需要。而采用計(jì)算機(jī)軟件來實(shí)現(xiàn)信息的管理能很好的解決傳統(tǒng)工作方式存在的問題。因此,我們?cè)O(shè)計(jì)開發(fā)了學(xué)生宿舍管理系統(tǒng),旨在提高宿舍管理的效率和準(zhǔn)確性,減少工作的盲目性,對(duì)后勤管理的現(xiàn)代化建設(shè)有一定的指導(dǎo)意義。2設(shè)計(jì)依據(jù)及框圖2.1設(shè)計(jì)平臺(tái)開發(fā)本系統(tǒng)的過程中所用到的主要軟件開發(fā)工具有:VisualC++6.0、Access2000、Photoshop?,F(xiàn)將使用情況分別介紹如下:VisualC++6.0:MFC方式設(shè)計(jì)系統(tǒng)界面,采用OLEDB方式訪問數(shù)據(jù)庫。Access2000:采用Access設(shè)計(jì)本系統(tǒng)中的數(shù)據(jù)庫。
Photoshop:用于添加學(xué)生、刪除學(xué)生、查詢學(xué)生等等按鈕圖標(biāo)的美工設(shè)計(jì)。2.2設(shè)計(jì)思想(1)應(yīng)用原型方法進(jìn)行開發(fā)。原型方法將系統(tǒng)分析、設(shè)計(jì)、實(shí)施三個(gè)階段融為一體,使操作者更便于使用該系統(tǒng),由中南民族大學(xué)宿舍管理的實(shí)際情況出發(fā),講宿舍信息分層設(shè)計(jì),有宿舍類型到樓號(hào),由樓號(hào)到宿舍號(hào),在找到床鋪號(hào),便于層次化管理。(2)選用靈活、方便、友好的用戶界面。采用操作簡(jiǎn)單的樹型圖設(shè)計(jì),便于查找學(xué)生信息,操作快捷方便;(3)數(shù)據(jù)庫采用的是比較流行的小型數(shù)據(jù)庫管理軟件Access,與C++程序的連接方式為OLEDB,該方式可以讓開發(fā)人員不直接向數(shù)據(jù)源發(fā)出指令,而是通過OLEDB接口與數(shù)據(jù)提供者進(jìn)行交互,只需要對(duì)接口進(jìn)行操作,這樣簡(jiǎn)化了程序的設(shè)計(jì)。2.3設(shè)計(jì)框圖、用戶界面本系統(tǒng)“宿舍管理”的設(shè)計(jì)框圖如下:
主界面“查看學(xué)生詳細(xì)信息”界面“添加學(xué)生”界面“刪除學(xué)生”界面“學(xué)生查詢”界面2.4數(shù)據(jù)庫表結(jié)構(gòu)本系統(tǒng)采用Access作為數(shù)據(jù)庫,使用OLEDB訪問數(shù)據(jù)庫。根據(jù)系統(tǒng)功能與需求分析,只需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)表House,該表包含學(xué)生姓名,性別,入學(xué)時(shí)間,學(xué)號(hào),專業(yè),宿舍類型,樓號(hào),房間號(hào),床鋪號(hào),宿舍電話,備注等信息項(xiàng),自然的形成了一個(gè)樹型結(jié)構(gòu)。不設(shè)置主鍵(PRIMARYKEY),由程序根據(jù)地址唯一確定用戶信息的不二性。表結(jié)構(gòu)如右所示:3各模塊功能及主要模塊的流程圖3.1各模塊功能簡(jiǎn)介1、羅列學(xué)生信息在左邊的樹試圖中,通過鼠標(biāo)或者鍵盤選擇宿舍類型、樓號(hào)或者房間號(hào)等樹項(xiàng),右邊的列表視圖就會(huì)羅列出相應(yīng)宿舍類型、樓或者房間中的所有學(xué)生的簡(jiǎn)要信息。對(duì)這些羅列出來的學(xué)生可以對(duì)它們進(jìn)行刪除或者查看詳細(xì)信息的操作。2、查看學(xué)生詳細(xì)信息選擇左邊樹視圖中的房間號(hào),或者雙擊右邊列表視圖中的某一學(xué)生,右邊的視圖就會(huì)顯示該用戶的詳細(xì)信息(見“查看學(xué)生詳細(xì)信息”界面)。
3、添加學(xué)生單擊工具條的【添加學(xué)生】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【添加學(xué)生】,彈出“添加學(xué)生”對(duì)話框,見“添加學(xué)生”界面。在該對(duì)話框中填寫完相應(yīng)的信息,單擊【確定】按鈕完成添加。其中“學(xué)生姓名”和“宿舍地址”是必須填寫完整的,如果不完整單擊【確定】按鈕后系統(tǒng)會(huì)提示用戶。4、刪除學(xué)生當(dāng)程序的輸入焦點(diǎn)在左邊的樹視圖時(shí),選擇要?jiǎng)h除的項(xiàng),單擊工具條的【刪除學(xué)生】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【刪除學(xué)生】,彈出詢問用戶確認(rèn)刪除操作的對(duì)話框,見“刪除學(xué)生”界面。如果刪除的是宿舍類型,則該宿舍類型中的所有學(xué)生都被刪除;如果刪除是樓號(hào),則該樓中的所有學(xué)生被刪除,如果刪除的是房間號(hào),則該房間中的所有學(xué)生都被刪除;如果刪除的是學(xué)生,則該學(xué)生信息被刪除。當(dāng)主窗口的右邊是學(xué)生的列表視圖時(shí),并且輸入焦點(diǎn)在其中,選擇其中要?jiǎng)h除的學(xué)生(可以選擇多個(gè)),單擊工具條的【刪除學(xué)生】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【刪除學(xué)生】,彈出詢問用戶確認(rèn)刪除操作的對(duì)話框,單擊【是】按鈕刪除選擇的學(xué)生信息。5、學(xué)生查詢單擊工具條中的【學(xué)生查詢】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【學(xué)生查詢】,彈出“查詢學(xué)生”對(duì)話框,見“學(xué)生查詢”界面。在該對(duì)話框中填寫完查詢條件,單擊【確定】按鈕。如果有符合條件的學(xué)生,在右邊的學(xué)生列表中就會(huì)全部羅列出來,可以對(duì)這些學(xué)生進(jìn)行刪除或者查看詳細(xì)信息的操作。3.2主要流程圖本軟件系統(tǒng)對(duì)學(xué)生信息的管理主要流程圖:在樹視圖中羅列學(xué)生信息的程序流程,如圖所示:查詢和羅列的程序流程,如圖所示:填充樹視圖的程序流程查詢和羅列的程序流程增加學(xué)生的程序流程,如下圖所示:4軟件調(diào)試分析本軟件是基于Windows的編程開發(fā),所以,軟件調(diào)試必須在Windows環(huán)境下進(jìn)行。調(diào)試前須做好以下準(zhǔn)備工作:(1)需要文件MFC42.DLL、MSVCRT.DLL,如果沒有,則安裝VisualC++6.0環(huán)境;(2)需要安裝Access2000的OLEDB驅(qū)動(dòng),如果沒有,可以安裝Access2000以上版本;(3)需要將StuDormMS.mdb數(shù)據(jù)庫文件與可執(zhí)行文件StuDormMS.exe放在同一目錄下,才能運(yùn)行成功。配置好之后,在VisualC++6.0環(huán)境下進(jìn)行軟件的調(diào)試。調(diào)試分析如下:
(1)首先進(jìn)行數(shù)據(jù)庫的導(dǎo)入,加入ATL產(chǎn)生的模板類,生成包含數(shù)據(jù)庫的House.H[見附]頭文件,該頭文件是與數(shù)據(jù)庫的接口,經(jīng)過測(cè)試,數(shù)據(jù)庫鏈接成功;
(2)實(shí)現(xiàn)界面框架,使用類CSplitterWnd切分視圖和動(dòng)態(tài)切換視圖的類型,通過包含該類的單文件調(diào)試發(fā)現(xiàn)無錯(cuò)誤后,整體系統(tǒng)運(yùn)行能成功切換試圖。
(3)系統(tǒng)框架的左側(cè)為樹視圖,采用CLeftTreeView類來實(shí)現(xiàn);右側(cè)學(xué)生信息羅列采用類CUsersListView來實(shí)現(xiàn),成功調(diào)試后能正常顯示信息。(4)“增加學(xué)生”模塊,單模塊調(diào)試通過后,需要在整理系統(tǒng)編寫完后,再進(jìn)行操作測(cè)試,添加一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)庫中有保存該記錄,如果錯(cuò)誤輸入,觀察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。(5)“查詢學(xué)生”模塊,該模塊可以實(shí)現(xiàn)單項(xiàng)查詢和組合查詢,單項(xiàng)查詢調(diào)試通過后,編寫組合查詢的代碼,再進(jìn)行調(diào)試,看是否能滿足要求,并且能正常提示非法查詢請(qǐng)求。(6)“刪除學(xué)生”模塊,可以進(jìn)行不同層次的刪除操作,例如刪除宿舍將會(huì)刪除該宿舍的所有成員,如果只刪除某一學(xué)生,不會(huì)影響到其他成員。本模塊測(cè)試通過。經(jīng)過調(diào)試,以上各部分運(yùn)行正常,能實(shí)現(xiàn)預(yù)期的功能。5結(jié)語5.1結(jié)論與討論結(jié)論:本文介紹的宿舍管理系統(tǒng)具有界面友好、操作簡(jiǎn)單、實(shí)用性強(qiáng)等特點(diǎn),并已開發(fā)完畢,使用效果良好,初步取得了以下效果:(1)操作簡(jiǎn)單,實(shí)用性強(qiáng),能夠快速地提供住宿學(xué)生的各種基本信息供管理者參考和使用,大大提高了工作效率;(2)瀏覽、查詢、添加實(shí)現(xiàn)數(shù)據(jù)庫管理,紙質(zhì)文件的流轉(zhuǎn)被電子郵件代替,節(jié)約了辦公經(jīng)費(fèi);(3)實(shí)現(xiàn)了對(duì)數(shù)據(jù)的智能處理,為領(lǐng)導(dǎo)決策起到了一定的輔助作用;(4)使宿舍管理工作更加科學(xué)化和規(guī)范化。討論:本文介紹的實(shí)現(xiàn)方法適合與小型的數(shù)據(jù)管理,而且功能比較簡(jiǎn)單,在一定程度上能解決實(shí)際中宿舍管理中的問題。但也存在一些不完善的地方,如需要保存更多的信息,實(shí)現(xiàn)更多的功能,需要采用較大型的數(shù)據(jù)庫管理系統(tǒng),而且未來的管理以網(wǎng)絡(luò)化為趨勢(shì),開發(fā)一套可以聯(lián)網(wǎng)管理的軟件系統(tǒng)能給宿舍管理工作帶來更大的方便。參考文獻(xiàn)求是科技.VisualC++6.0數(shù)據(jù)庫開發(fā)技術(shù)與工程實(shí)踐.北京:人民郵電出版社,2004鄭莉,董淵,張瑞豐.C++語言程序設(shè)計(jì).北京:清華大學(xué)出版社,2003(美)PaulJ.Fortier等著.數(shù)據(jù)庫技術(shù)大全.林瑤等譯.北京:電子工業(yè)出版社,1999附錄各類的聲明見源代碼*.h頭文件,數(shù)據(jù)庫連接文件見House.h,完整源代碼見電子文檔。現(xiàn)將各功能函數(shù)的核心代碼列表如下:文件名稱功能說明AddUserDlg.cpp添加學(xué)生信息LeftTreeView.cpp顯示樹視圖,完成刪除操作UsersListView.cpp實(shí)現(xiàn)單項(xiàng)、組合查詢功能UserinfoView.cpp學(xué)生詳細(xì)信息顯示BeganingofAddUserDlg.cpp//AddUserDlg.cpp:implementationfile//#include"stdafx.h"#include"Inhabitants.h"#include"AddUserDlg.h"#include"InhabitantsDoc.h"#include"MainFrm.h"#include"LeftTreeView.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAddUserDlgdialogCAddUserDlg::CAddUserDlg(CWnd*pParent/*=NULL*/) :CDialog(CAddUserDlg::IDD,pParent){ //{{AFX_DATA_INIT(CAddUserDlg) m_strMajor=_T(""); m_nBuildingNum=0; m_nRoomNum=0; m_strRemarks=_T(""); m_strHomeTel=_T(""); m_strStudentname=_T(""); m_strId=_T(""); m_strSex=_T(""); m_strNationNal=_T(""); m_nBedNum=0; m_strStudentName=_T(""); //}}AFX_DATA_INIT}voidCAddUserDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAddUserDlg) DDX_Text(pDX,IDC_EDIT_MAJOR,m_strMajor); DDX_Text(pDX,IDC_EDIT_BUILDINGNUM,m_nBuildingNum); DDX_Text(pDX,IDC_EDIT_ROOMNUM,m_nRoomNum); DDX_Text(pDX,IDC_EDIT_REMARKS,m_strRemarks); DDX_Text(pDX,IDC_EDIT_HOMETEL,m_strHomeTel); DDX_Text(pDX,IDC_EDIT_STUDENTNAME,m_strStudentname); DDX_Text(pDX,IDC_EDIT_ID,m_strId); DDX_Text(pDX,IDC_EDIT_SEX,m_strSex); DDX_Text(pDX,IDC_EDIT_NATIONAL,m_strNationNal); DDX_Text(pDX,IDC_EDIT_BED,m_nBedNum); DDX_Text(pDX,IDC_EDIT_ROOMTYPE,m_strStudentName); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAddUserDlg,CDialog) //{{AFX_MSG_MAP(CAddUserDlg) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CAddUserDlgmessagehandlersvoidCAddUserDlg::OnOK(){ //判斷輸入信息的合法性 UpdateData(TRUE); CEdit*p; if(m_strStudentname=="") { AfxMessageBox("請(qǐng)?zhí)顚W(xué)生姓名"); p=(CEdit*)GetDlgItem(IDC_EDIT_STUDENTNAME); p->SetFocus(); return; } if(m_strStudentName=="") { AfxMessageBox("請(qǐng)?zhí)钏奚犷愋?); p=(CEdit*)GetDlgItem(IDC_EDIT_ROOMTYPE); p->SetFocus(); return; } if(m_nBuildingNum==0) { AfxMessageBox("樓號(hào)不能為零"); p=(CEdit*)GetDlgItem(IDC_EDIT_BUILDINGNUM); p->SetFocus(); return; } if(m_nRoomNum==0) { AfxMessageBox("房間號(hào)不能為零"); p=(CEdit*)GetDlgItem(IDC_EDIT_ROOMNUM); p->SetFocus(); return; } if(m_nBedNum==0) { AfxMessageBox("床鋪號(hào)不能為零"); p=(CEdit*)GetDlgItem(IDC_EDIT_BED); p->SetFocus(); return; } CMainFrame*pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; CInhabitantsDoc*pDoc=(CInhabitantsDoc*)pFrame->GetActiveDocument(); //讓用戶確認(rèn)操作 if(this->MessageBox("你真的要添加這條記錄?", "中南民族大學(xué)宿舍管理系統(tǒng)",MB_YESNO)==IDNO) { CDialog::OnCancel(); return; } //增加學(xué)生到數(shù)據(jù)庫中 USERuser; user.strRoomtype=m_strStudentName; user.nBuildingnum=m_nBuildingNum; user.nRoomnum=m_nRoomNum; user.nBednum=m_nBedNum; user.strName=m_strStudentname; user.strHouseTel=m_strHomeTel; user.strSex=m_strSex; user.strNationNal=m_strNationNal; user.strMajor=m_strMajor; user.strId=m_strId; user.strRemarks=m_strRemarks; switch(pDoc->AddUser(user)) { case0: { //已經(jīng)存在該學(xué)生了 CStringstr; str.Format("%s%d號(hào)樓%d號(hào)房間%d號(hào)床鋪已有學(xué)生入住!", m_strStudentName,m_nBuildingNum,m_nRoomNum,m_nBedNum); AfxMessageBox(str); CEdit*p=(CEdit*)GetDlgItem(IDC_EDIT_BED); p->SetFocus(); return; break; } case1: { //增加成功后刷新左邊的樹視圖 pFrame->m_pLeftView->AddUserToTree(m_strStudentName, m_nBuildingNum,m_nRoomNum,m_nBedNum); break; } default: return; break; } CDialog::OnOK();}ENDINGofAddUserDlg.cppBeganingofLeftTreeView.cpp//LeftTreeView.cpp:implementationfile//#include"stdafx.h"#include"Inhabitants.h"#include"InhabitantsDoc.h"#include"LeftTreeView.h"#include"MainFrm.h"#include"UsersListView.h"#include"UserinfoView.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CLeftTreeViewIMPLEMENT_DYNCREATE(CLeftTreeView,CTreeView)CLeftTreeView::CLeftTreeView(){ }CLeftTreeView::~CLeftTreeView(){ }BEGIN_MESSAGE_MAP(CLeftTreeView,CTreeView) //{{AFX_MSG_MAP(CLeftTreeView) ON_NOTIFY_REFLECT(TVN_SELCHANGED,OnSelchanged) ON_COMMAND(ID_OPERATE_DELETE,OnOperateDelete) ON_UPDATE_COMMAND_UI(ID_OPERATE_DELETE,OnUpdateOperateDelete) ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CLeftTreeViewdrawingvoidCLeftTreeView::OnDraw(CDC*pDC){ CDocument*pDoc=GetDocument(); //TODO:adddrawcodehere}///////////////////////////////////////////////////////////////////////////////CLeftTreeViewdiagnostics#ifdef_DEBUGvoidCLeftTreeView::AssertValid()const{ CTreeView::AssertValid();}voidCLeftTreeView::Dump(CDumpContext&dc)const{ CTreeView::Dump(dc);}#endif//_DEBUG///////////////////////////////////////////////////////////////////////////////CLeftTreeViewmessagehandlers//將數(shù)據(jù)庫中的所有學(xué)生到加到樹中voidCLeftTreeView::AddUsersToTree(){ CInhabitantsDoc*pDoc=(CInhabitantsDoc*)GetDocument(); if(pDoc==NULL) return; //清空樹 GetTreeCtrl().DeleteAllItems(); //取數(shù)據(jù)庫中得所有記錄 CStringstrSql="select*fromhouse"; CCommand<CAccessor<CHouseAccessor>>dbHouse; long*pCount=newlong; if(dbHouse.Open(pDoc->m_dbHouse.m_session,strSql,NULL,pCount)!=S_OK) { AfxMessageBox("error"); deletepCount; return; } deletepCount; if(dbHouse.MoveFirst()==S_OK) { do { AddUserToTree(dbHouse.m_roomtype,dbHouse.m_buildingnum, dbHouse.m_roomnum,dbHouse.m_bednum); } while(dbHouse.MoveNext()==S_OK); } dbHouse.Close();}voidCLeftTreeView::OnInitialUpdate(){ CTreeView::OnInitialUpdate(); //設(shè)置樹風(fēng)格 ::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE|WS_TABSTOP |WS_CHILD|WS_BORDER|TVS_HASBUTTONS |TVS_LINESATROOT|TVS_HASLINES |TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS); //為樹視圖創(chuàng)建圖標(biāo)連表 CInhabitantsApp*pApp=(CInhabitantsApp*)AfxGetApp(); CTreeCtrl*pTreeCtrl=&GetTreeCtrl(); m_ImageList.Create(16,16,ILC_COLOR16,4,4); m_ImageList.Add(pApp->LoadIcon(IDI_ICON_SECTION)); m_ImageList.Add(pApp->LoadIcon(IDI_ICON_BUILDING)); m_ImageList.Add(pApp->LoadIcon(IDI_ICON_CELL)); m_ImageList.Add(pApp->LoadIcon(IDI_ICON_USER)); pTreeCtrl->SetImageList(&m_ImageList,TVSIL_NORMAL); //將學(xué)生加入樹中 AddUsersToTree(); pTreeCtrl->SortChildren(TVI_ROOT);}voidCLeftTreeView::AddUserToTree(CStringstrStudentName,intnBuildingNum,intnRoomNum,intnBedNum){ HTREEITEMhSectionItem=AddSectionToTree(strStudentName); HTREEITEMhBuildingItem=AddBuildingToTree(hSectionItem,nBuildingNum); HTREEITEMhCellItem=AddCellToTree(hBuildingItem,nRoomNum); if(hCellItem==NULL) return; CTreeCtrl*pCtrl=&GetTreeCtrl(); TV_INSERTSTRUCTTCItem;//插入數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu) TCItem.hParent=hCellItem; TCItem.hInsertAfter=TVI_LAST; TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//設(shè)屏蔽 TCItem.item.lParam=0;//序號(hào) TCItem.item.iImage=3;//正常圖標(biāo) TCItem.item.iSelectedImage=3;//選中時(shí)圖標(biāo) CStringstr; str.Format("%d號(hào)床鋪",nBedNum); TCItem.item.pszText=(LPTSTR)(LPCTSTR)str; pCtrl->InsertItem(&TCItem); pCtrl->SortChildren(hCellItem);}//將宿舍類型加到樹視圖中HTREEITEMCLeftTreeView::AddSectionToTree(CStringstrStudentName){ CTreeCtrl*pCtrl=&GetTreeCtrl(); HTREEITEMhRootItem=pCtrl->GetRootItem(); if(hRootItem) { while(hRootItem) { CStringstrItemText=pCtrl->GetItemText(hRootItem); if(strItemText==strStudentName) returnhRootItem; hRootItem=pCtrl->GetNextSiblingItem(hRootItem); } } TV_INSERTSTRUCTTCItem;//插入數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu) TCItem.hParent=TVI_ROOT; TCItem.hInsertAfter=TVI_LAST; TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//設(shè)屏蔽 TCItem.item.lParam=0;//序號(hào) TCItem.item.iImage=0;//正常圖標(biāo) TCItem.item.iSelectedImage=0;//選中時(shí)圖標(biāo) TCItem.item.pszText=(LPTSTR)(LPCTSTR)strStudentName; HTREEITEMhSectionItem=pCtrl->InsertItem(&TCItem); pCtrl->SortChildren(TVI_ROOT); returnhSectionItem;}HTREEITEMCLeftTreeView::AddBuildingToTree(HTREEITEMhSectionItem,intnBuildingnum){ if(hSectionItem==NULL) returnNULL; CTreeCtrl*pCtrl=&GetTreeCtrl(); CStringstrBuildingNum; strBuildingNum.Format("%d號(hào)樓",nBuildingnum); if(pCtrl->ItemHasChildren(hSectionItem)) { HTREEITEMhItem=pCtrl->GetChildItem(hSectionItem); while(hItem) { CStringstrItemText=pCtrl->GetItemText(hItem); if(strItemText==strBuildingNum) returnhItem; hItem=pCtrl->GetNextSiblingItem(hItem); } } TV_INSERTSTRUCTTCItem;//插入數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu) TCItem.hParent=hSectionItem; TCItem.hInsertAfter=TVI_LAST; TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//設(shè)屏蔽 TCItem.item.lParam=0;//序號(hào) TCItem.item.iImage=1;//正常圖標(biāo) TCItem.item.iSelectedImage=1;//選中時(shí)圖標(biāo) TCItem.item.pszText=(LPTSTR)(LPCTSTR)strBuildingNum; HTREEITEMhBuildingItem=pCtrl->InsertItem(&TCItem); pCtrl->SortChildren(hSectionItem); returnhBuildingItem;}HTREEITEMCLeftTreeView::AddCellToTree(HTREEITEMhBuildingItem,intnRoomnum){ if(hBuildingItem==NULL) returnNULL; CTreeCtrl*pCtrl=&GetTreeCtrl(); CStringstrRoomNum; strRoomNum.Format("%d房間",nRoomnum); if(pCtrl->ItemHasChildren(hBuildingItem)) { HTREEITEMhItem=pCtrl->GetChildItem(hBuildingItem); while(hItem) { CStringstrItemText=pCtrl->GetItemText(hItem); if(strItemText==strRoomNum) returnhItem; hItem=pCtrl->GetNextSiblingItem(hItem); } } TV_INSERTSTRUCTTCItem;//插入數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu) TCItem.hParent=hBuildingItem; TCItem.hInsertAfter=TVI_LAST; TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//設(shè)屏蔽 TCItem.item.lParam=0;//序號(hào) TCItem.item.iImage=2;//正常圖標(biāo) TCItem.item.iSelectedImage=2;//選中時(shí)圖標(biāo) TCItem.item.pszText=(LPTSTR)(LPCTSTR)strRoomNum; HTREEITEMhCellItem=pCtrl->InsertItem(&TCItem); pCtrl->SortChildren(hBuildingItem); returnhCellItem;}voidCLeftTreeView::OnSelchanged(NMHDR*pNMHDR,LRESULT*pResult){ NM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR; *pResult=0; //獲得被選擇項(xiàng) CTreeCtrl*pCtrl=&GetTreeCtrl(); HTREEITEMhSelItem=pCtrl->GetSelectedItem(); m_hHitItem=hSelItem; //如果沒有項(xiàng)被選擇,則將右邊的列表視圖清空 CMainFrame*pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; if(hSelItem==NULL) { pFrame->SwitchToView(USERSVIEW); pFrame->m_pUsersView->ShowUsers(""); return; } //判斷選擇項(xiàng)在樹中的位置 HTREEITEMhParentItem=pCtrl->GetParentItem(hSelItem); CStringstrSql,strStudentName,strBuildingNum,strRoomNum,strBedNum; if(hParentItem==NULL) {//小區(qū) CStringstrStudentName=pCtrl->GetItemText(hSelItem); strSql.Format("select*fromhousewhereroomtype='%s'",strStudentName); pFrame->SwitchToView(USERSVIEW); pFrame->m_pUsersView->ShowUsers(strSql); return; } hParentItem=pCtrl->GetParentItem(hParentItem); if(hParentItem==NULL) {//樓 strStudentName=pCtrl->GetItemText(pCtrl->GetParentItem(hSelItem)); CStringstr=pCtrl->GetItemText(hSelItem); intn=str.Find("號(hào)樓"); strBuildingNum=str.Left(n); strSql.Format("select*fromhousewhereroomtype='%s'andbuildingnum=%s", strStudentName,strBuildingNum); pFrame->SwitchToView(USERSVIEW); pFrame->m_pUsersView->ShowUsers(strSql); return; } hParentItem=pCtrl->GetParentItem(hParentItem); if(hParentItem==NULL) {//單元 strStudentName=pCtrl->GetItemText(pCtrl->GetParentItem (pCtrl->GetParentItem(hSelItem))); CStringstr=pCtrl->GetItemText(pCtrl->GetParentItem(hSelItem)); intn=str.Find("號(hào)樓"); strBuildingNum=str.Left(n); str=pCtrl->GetItemText(hSelItem); n=str.Find("房間"); strRoomNum=str.Left(n); strSql.Format("select*fromhousewhereroomtype='%s'andbuildingnum=%sandroomnum=%s", strStudentName,strBuildingNum,strRoomNum); pFrame->SwitchToView(USERSVIEW); pFrame->m_pUsersView->ShowUsers(strSql); return; } //選擇項(xiàng)是房間號(hào),則右邊視圖顯示該住戶的詳細(xì)信息 strStudentName=pCtrl->GetItemText(pCtrl->GetParentItem (pCtrl->GetParentItem(pCtrl->GetParentItem(hSelItem)))); CStringstr=pCtrl->GetItemText(pCtrl->GetParentItem (pCtrl->GetParentItem(hSelItem))); intn=str.Find("號(hào)樓"); strBuildingNum=str.Left(n); str=pCtrl->GetItemText(pCtrl->GetParentItem(hSelItem)); n=str.Find("房間"); strRoomNum=str.Left(n); strBedNum=pCtrl->GetItemText(hSelItem); pFrame->SwitchToView(USERINFOVIEW); pFrame->m_pUserinfoView->UpdateUserInfo(strStudentName, atoi(strBuildingNum.GetBuffer(0)), atoi(strRoomNum.GetBuffer(0)), atoi(strBedNum.GetBuffer(0)));}voidCLeftTreeView::OnOperateDelete(){ if(m_hHitItem==NULL) return; CMainFrame*pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; CInhabitantsDoc*pDoc=(CInhabitantsDoc*)GetDocument(); CTreeCtrl*pCtrl=&GetTreeCtrl(); HTREEITEMhParentItem=pCtrl->GetParentItem(m_hHitItem); CStringstrSql; if(hParentItem==NULL&&m_hHitItem!=NULL) { //宿舍類型 CStringstrStudentName=pCtrl->GetItemText(m_hHitItem); strSql.Format("delete*fromhousewhereroomtype='%s'",strStudentName); if(this->MessageBox("你真的要?jiǎng)h除該宿舍區(qū)中的所有學(xué)生嗎?", "中南民族大學(xué)學(xué)生宿舍管理系統(tǒng)",MB_YESNO)==IDNO) return; } elseif(hParentItem!=NULL&&pCtrl->GetParentItem(hParentItem)==NULL) { //樓 CStringstrStudentName=pCtrl->GetItemText(pCtrl->GetParentItem(m_hHitItem)); CStringstr=pCtrl->GetItemText(m_hHitItem); intn=str.Find("號(hào)樓"); CStringstrBuildingNum=str.Left(n); strSql.Format("delete*fromhousewhereroomtype='%s'andbuildingnum=%s", strStudentName,strBuildingNum); if(this->MessageBox("你真的要?jiǎng)h除該樓中的所有學(xué)生嗎?", "中南民族大學(xué)學(xué)生宿舍管理系統(tǒng)",MB_YESNO)==IDNO) return; } elseif(pCtrl->GetParentItem(hParentItem)!=NULL &&pCtrl->GetParentItem(pCtrl->GetParentItem(hParentItem))==NULL) { //房間 CStringstrStudentName=pCtrl->GetItemText( pCtrl->GetParentItem(pCtrl->GetParentItem(m_hHitItem))); CStringstr=pCtrl->GetItemText(pCtrl->GetParentItem(m_hHitItem)); intn=str.Find("號(hào)樓"); CStringstrBuildingNum=str.Left(n); str=pCtrl->GetItemText(m_hHitItem); n=str.Find("房間"); CStringstrRoomNum=str.Left(n); strSql.Format("delete*fromhousewhereroomtype='%s'andbuildingnum=%sandroomnum=%s", strStudentName,strBuildingNum,strRoomNum); if(this->MessageBox("你真的要?jiǎng)h除該房間中的所有學(xué)生嗎?", "中南民族大學(xué)學(xué)生宿舍管理系統(tǒng)",MB_YESNO)==IDNO) return; } else { //學(xué)生 CStringstrStudentName=pCtrl->GetItemText(pCtrl->GetParentItem( pCtrl->GetParentItem(pCtrl->GetParentItem(m_hHitItem)))); CStringstr=pCtrl->GetItemText(pCtrl->GetParentItem( pCtrl->GetParentItem(m_hHitItem))); intn=str.Find("號(hào)樓"); CStringstrBuildingNum=str.Left(n); str=pCtrl->GetItemText(pCtrl->GetParentItem(m_hHitItem)); n=str.Find("房間"); CStringstrRoomNum=str.Left(n); CStringstrBedNum=pCtrl->GetItemText(m_hHitItem); strSql.Format("delete*fromhousewhereroomtype='%s'andbuildingnum=%sandroomnum=%sandbednum=%s", strStudentName,strBuildingNum,strRoomNum,strBedNum); if(this->MessageBox("你真的要?jiǎng)h除該學(xué)生嗎?","中南民族大學(xué)學(xué)生宿舍管理系統(tǒng)",MB_YESNO)==IDNO) return; } pDoc->DeleteUser(strSql); AddUsersToTree();}voidCLeftTreeView::OnUpdateOperateDelete(CCmdUI*pCmdUI){ pCmdUI->Enable(m_hHitItem!=NULL);}ENDINGofLeftTreeView.cppBeganingofQueryDlg.cpp.cpp//QueryDlg.cpp:implementationfile//#include"stdafx.h"#include"inhabitants.h"#include"QueryDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CQueryDlgdialogCQueryDlg::CQueryDlg(CWnd*pParent/*=NULL*/) :CDialog(CQueryDlg::IDD,pParent){ //{{AFX_DATA_INIT(CQueryDlg) m_strMajor=_T(""); m_nBuildingNum=0; m_nRoomNum=0; m_strRemarks=_T(""); m_strHomeTel=_T(""); m_strStudentname=_T(""); m_strId=_T(""); m_strSex=_T(""); m_strNationNal=_T(""); m_nBedNum=0; m_strStudentName=_T(""); //}}AFX_DATA_INIT}voidCQueryDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CQueryDlg) DDX_Text(pDX,IDC_EDIT_MAJOR,m_strMajor); DDX_Text(pDX,IDC_EDIT_BUILDINGNUM,m_nBuildingNum); DDX_Text(pDX,IDC_EDIT_ROOMNUM,m_nRoomNum); DDX_Text(pDX,IDC_EDIT_REMARKS,m_strRemarks); DDX_Text(pDX,IDC_EDIT_HOMETEL,m_strHomeTel); DDX_Text(pDX,IDC_EDIT_STUDENTNAME,m_strStudentname); DDX_Text(pDX,IDC_EDIT_ID,m_strId); DDX_Text(pDX,IDC_EDIT_SEX,m_strSex); DDX_Text(pDX,IDC_EDIT_NATIONAL,m_strNationNal); DDX_Text(pDX,IDC_EDIT_BED,m_nBedNum); DDX_Text(pDX,IDC_EDIT_ROOMTYPE,m_strStudentName); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CQueryDlg,CDialog) //{{AFX_MSG_MAP(CQueryDlg) ON_LBN_SELCHANGE(IDC_LIST3,OnSelchangeList3) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CQueryDlgmessagehandlersvoidCQueryDlg::OnOK(){ CDialog::OnOK();}voidCQueryDlg::OnClickTree2(NMHDR*pNMHDR,LRESULT*pResult){ //TODO:Addyourcontrolnotificationhandlercodehere *pResult=0;}voidCQueryDlg::OnSelchangeList3(){ //TODO:Addyourcontrolnotificationhandlercodehere }//QueryDlg.cpp:implementationfile//#include"stdafx.h"#include"inhabitants.h"#include"QueryDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CQueryDlgdialogCQueryDlg::CQueryDlg(CWnd*pParent/*=NULL*/) :CDialog(CQueryDlg::IDD,pParent){ //{{AFX_DATA_INIT(CQueryDlg) m_strMajor=_T(""); m_nBuildingNum=0; m_nRoomNum=0; m_strRemarks=_T(""); m_strHomeTel=_T(""); m_strStudentname=_T(""); m_strId=_T(""); m_strSex=_T(""); m_strNationNal=_T(""); m_nBedNum=0; m_strStudentName=_T(""); //}}AFX_DATA_INIT}voidCQueryDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CQueryDlg) DDX_Text(pDX,IDC_EDIT_MAJOR,m_strMajor); DDX_Text(pDX,IDC_EDIT_BUILDINGNUM,m_nBuildingNum); DDX_Text(pDX,IDC_EDIT_ROOMNUM,m_nRoomNum); DDX_Text(pDX,IDC_EDIT_REMARKS,m_strRemarks); DDX_Text(pDX,IDC_EDIT_HOMETEL,m_strHomeTel); DDX_Text(pDX,IDC_EDIT_STUDENTNAME,m_strStudentname); DDX_Text(pDX,IDC_EDIT_ID,m_strId); DDX_Text(pDX,IDC_EDIT_SEX,m_strSex); DDX_Text(pDX,IDC_EDIT_NATIONAL,m_strNationNal); DDX_Text(pDX,IDC_EDIT_BED,m_nBedNum); DDX_Text(pDX,IDC_EDIT_ROOMTYPE,m_strStudentName); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CQueryDlg,CDialog) //{{AFX_MSG_MAP(CQueryDlg) ON_LBN_SELCHANGE(IDC_LIST3,OnSelchangeList3) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CQueryDlgmessagehandlersvoidCQueryDlg::OnOK(){ CDialog::OnOK();}voidCQueryDlg::OnClickTree2(NMHDR*pNMHDR,LRESULT*pResult){ //TODO:Addyourcontrolnotificationhandlercodehere *pResult=0;}voidCQueryDlg::OnSelchangeList3(){ //TODO:Addyourcontrolnotificationhandlercodehere }ENDINGofQueryDlg.cpp.cppBeganingofUserinfoView.cpp//UserinfoView.cpp:implementationfile//#include"stdafx.h"#include"Inhabitants.h"#include"UserinfoView.h"#include"InhabitantsDoc.h"#include"House.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CUserinfoViewIMPLEMENT_DYNCREATE(CUserinfoView,CFormView)CUserinfoView::CUserinfoView() :CFormView(CUserinfoView::IDD){ //{{AFX_DATA_INIT(CUserinfoView) m_nBuildingnum=0; m_nRoomnum=0; m_strStudentname=_T(""); m_nBednum=0; m_strRoomtype=_T(""); m_strMajor=_T(""); m_strRemarks=_T(""); m_strHouseTel=_T(""); m_strId=""; m_strSex=_T(""); m_strNationNal=_T(""); //}}AFX_DATA_INIT}CUserinfoView::~CUserinfoView(){}voidCUserinfoView::DoDataExchange(CDataExchange*pDX){ CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CUserinfoView) DDX_Text(pDX,IDC_EDIT_BUILDINGNUM,m_nBuildingnum); DDX_Text(pDX,IDC_EDIT_ROOMNUM,m_nRoomnum); DDX_Text(pDX,IDC_EDIT_STUDENTNAME,m_strStudentname); DDX_Text(pDX,IDC_EDIT_BED,m_nBednum); DDX_Text(pDX,IDC_EDIT_ROOMTYPE,m_strRoomtype); DDX_Text(pDX,IDC_EDIT_MAJOR,m_strMajor); DDX_Text(pDX,IDC_EDIT_REMARKS,m_strRemarks); DDX_Text(pDX,IDC_EDIT_HOMETEL,m_strHouseTel); DDX_Text(pDX,IDC_EDIT_ID,m_strId); DDX_Text(pDX,IDC_EDIT_SEX,m_strSex); DDX_Text(pDX,IDC_EDIT_NATIONAL,m_strNationNal); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CUserinfoView,CFormView) //{{AFX_MSG_MAP(CUserinfoView) ON_EN_CHANGE(IDC_EDIT_REMARKS,OnChangeEditRemarks) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CUserinfoViewdiagnostics#ifdef_DEBUGvoidCUserinfoView::AssertValid()const{ CFormView::AssertValid();}voidCUserinfoView::Dump(CDumpContext&dc)const{ CFormView::Dump(dc);}#endif//_DEBUG///////////////////////////////////////////////////////////////////////////////CUserinfoViewmessagehandlers//顯示住址為strStudentName宿舍類型nBuildingNum號(hào)樓nRoomNum房間號(hào)nBedNum床鋪的住戶的詳細(xì)信息voidCUserinfoView::UpdateUserInfo(CStringstrStudentName,intnBuildingNum,intnRoomNum,intnBedNum){ //查詢?cè)搶W(xué)生 CStringstrSql; strSql.Format("select*fromhousewhereroomtype='%s'andbuildingnum=%dandroomnum=%dandbednum=%d", strStudentName,nBuildingNum,nRoomNum,nBedNum); CInhabitantsDoc*pDoc=(CInhabitantsDoc*)GetDocument(); CCommand<CAccessor<CHouseAccessor>>dbHouse; long*pCount=newlong; if(dbHouse.Open(pDoc->m_dbHouse.m_session,strSql,NULL,pCount)!=S_OK) { AfxMessageBox("error"); deletepCount; return; } //顯示信息 if(dbHouse.MoveFirst()==S_OK) { m_strStudentname=dbHouse.m_studentname; m_strRoomtype=dbHouse.m_roomtype; m_nBuildingnum=dbHouse.m_buildingnum; m_nRoomnum=dbHouse.m_roomnum; m_nBednum=dbHouse.m_bednum; m_strHouseTel=dbHouse.m_housetel; m_strSex=dbHouse.m_sex; m_strNationNal=dbHouse.m_national; m_strMajor=dbHouse.m_major; m_strId=dbHouse.m_id; m_strRemarks=dbHouse.m_remarks; } dbHouse.Close(); UpdateData(FALSE);}voidCUserinfoView::OnChangeEditRemarks(){ //TODO:IfthisisaRICHEDITcontrol,thecontrolwillnot //sendthisnotificationunlessyouoverridetheCFormView::OnInitDialog() //functionandcallCRichEditCtrl().SetEventMask() //withtheENM_CHANGEflagORedintothemask. //TODO:Addyourcontrolnotificationhandlercodehere }ENDINGofUserinfoView.cppBeganingofUsersListView.cpp//UsersListView.cpp:implementationfile//#include"stdafx.h"#include"Inhabitants.h"#include"UsersListView.h"#include"InhabitantsDoc.h"#include"MainFrm.h"#include"House.h"#include"UserinfoView.h"#include"LeftTreeView.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CUsersListViewIMPLEMENT_DYNCREATE(CUsersListView,CListView)CUsersListView::CUsersListView(){}CUsersListView::~CUsersListView(){}BEGIN_MESSAGE_MAP(CUsersListView,CListView) //{{AFX_MSG_MAP(CUsersListView) ON_WM_LBUTTONDBLCLK() ON_COMMAND(ID_OPERATE_DELETE,OnOperateDelete) ON_WM_RBUTTONDOWN() ON_UPDATE_COMMAND_UI(ID_OPERATE_DELETE,OnUpdateOperateDelete) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CUsersListViewdrawingvoidCUsersListView::OnDraw(CDC*pDC){ CDocument*pDoc=GetDocument(); //TODO:adddrawcodehere}///////////////////////////////////////////////////////////////////////////////CUsersListViewdiagnostics#ifdef_DEBUGvoidCUsersListView::AssertValid()const{ CListView::AssertValid();}voidCUsersListView::Dump(CDumpContext&dc)const{ CListView::Dump(dc);}#endif//_DEBUG///////////////////////////////////////////////////////////////////////////////CUsersListViewmessagehandlersvoidCUsersListView::SetListCtrlStyle(){ DWORDdwStyle=GetWindowLong(m_hWnd,GWL_STYLE); dwStyle&=~(LVS_TYPEMASK); dwStyle&=~(LVS_EDITLABELS); //Makesurewehavereportviewandsendeditlabelmessages.SetWindowLong(m_hWnd,GWL_STYLE, dwStyle|LVS_REPORT|LV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中化學(xué)第一章第二節(jié)原子結(jié)構(gòu)與元素的性質(zhì)第2課時(shí)元素周期律一教案新人教版選修3
- 2024-2025學(xué)年新教材高中化學(xué)第一章章末整合提升教案新人教版必修第一冊(cè)
- 2024-2025學(xué)年高中政治課時(shí)分層作業(yè)5消費(fèi)及其類型含解析新人教版必修1
- 2025年蒸餾單甘酯項(xiàng)目可行性研究報(bào)告
- 2024-2025學(xué)年高中物理第三章牛頓運(yùn)動(dòng)定律第4節(jié)牛頓第三定律課時(shí)作業(yè)含解析教科版必修1
- 2025年雙頭機(jī)械器研磨機(jī)項(xiàng)目投資可行性研究分析報(bào)告-20241226-203722
- 2025年中國無線網(wǎng)橋行業(yè)市場(chǎng)運(yùn)營現(xiàn)狀及投資規(guī)劃研究建議報(bào)告
- 稀土永磁材料項(xiàng)目可行性研究報(bào)告建議書
- 2024-2030年中國電動(dòng)病床行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃報(bào)告
- 2023-2029年中國荷蘭豆種植行業(yè)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 罪犯?jìng)€(gè)性分測(cè)驗(yàn)
- 辦公室職業(yè)健康業(yè)務(wù)培訓(xùn)
- 五年級(jí)英語閱讀理解(共20篇)
- 2024年重慶三峰環(huán)境集團(tuán)招聘筆試參考題庫附帶答案詳解
- (2024年)傳染病培訓(xùn)課件
- 部編版六年級(jí)語文下冊(cè)第一單元《臘八粥》作業(yè)設(shè)計(jì)
- 機(jī)房運(yùn)維管理制度
- 昆明撫仙湖鰭魚灣棋盤山度假娛樂旅游區(qū)總體規(guī)劃方案樣本
- 人教版一年級(jí)下冊(cè)數(shù)學(xué)第一單元單元作業(yè)設(shè)計(jì)
- 創(chuàng)魯班獎(jiǎng)工程條件及評(píng)審要求XX4
- 交通法規(guī)常識(shí)課件
評(píng)論
0/150
提交評(píng)論