MFC學(xué)生信息管理系統(tǒng)_第1頁
MFC學(xué)生信息管理系統(tǒng)_第2頁
MFC學(xué)生信息管理系統(tǒng)_第3頁
MFC學(xué)生信息管理系統(tǒng)_第4頁
MFC學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、重慶交通大學(xué)信息科學(xué)與工程學(xué)院報(bào)告書專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)課程 名稱:信息技術(shù)實(shí)訓(xùn)I題 目:學(xué)生信息管理系統(tǒng)班 級(jí):2010級(jí),計(jì)科四班設(shè) 計(jì) 者: 韓旭輝完 成 時(shí) 間:2011年 11月1 日至2011年 11月27 日重慶交通大學(xué)信息科學(xué)與工程學(xué)院任務(wù)書課 程信息技術(shù)實(shí)訓(xùn)班級(jí)2010計(jì)科專業(yè)信息技術(shù)方向指導(dǎo)教師徐毅題 目自選完成時(shí)間2011年10月19日至2011年11月 2日主要內(nèi)容要求:完成一個(gè)完整功能實(shí)現(xiàn)的MFC程序開發(fā),報(bào)告需包括以下內(nèi)容1系統(tǒng)分析與設(shè)計(jì)(總體設(shè)計(jì)和模塊詳細(xì)設(shè)計(jì))。2系統(tǒng)編程與實(shí)現(xiàn)(必須有源碼和注釋)。3功能測(cè)試計(jì)劃內(nèi)容和結(jié)果。

2、4存在問題與不足及對(duì)策。設(shè)計(jì)報(bào)告要求1封面:(格式見前頁)2課程設(shè)計(jì)任務(wù)書3課程設(shè)計(jì)報(bào)告: 功能需求分析 系統(tǒng)設(shè)計(jì)功能模塊詳細(xì)設(shè)計(jì)和流程圖 設(shè)計(jì)代碼 心得體會(huì)和參考資料說明:第14周周三下午34節(jié)一班提交打印設(shè)計(jì)報(bào)告及軟件,回答老師提問,周四下午34節(jié)二班提交打印設(shè)計(jì)報(bào)告及軟件,回答老師提問。報(bào)告文字不少于5000 字,并裝訂成冊(cè)??己藘?nèi)容與方式1 平時(shí)成績(jī): 20%2 設(shè)計(jì)報(bào)告: 40%3 程序與演示,回答問題:40%版面要求1 題目用黑體三號(hào),段后距18磅(或1行),居中對(duì)齊;2 標(biāo)題用黑體四號(hào),段前、段后距6磅(或0.3行);3 正文用小四號(hào)宋體,行距為1.25倍行距;4 標(biāo)題按“一”、

3、“”、“1”、“”順序編號(hào)。上機(jī)時(shí)間安排星期周次一二三四五六日1819 課程設(shè)計(jì)報(bào)告一. 功能需求分析:(一). 實(shí)現(xiàn)簡(jiǎn)單地使用用戶名和密碼來進(jìn)入登陸界面,以加強(qiáng)DOS運(yùn)行窗口的可視化效果。如果輸入的用戶名和密碼有一項(xiàng)為空或者是輸入的用戶名和密碼是錯(cuò)誤的,則不能進(jìn)入系統(tǒng)。(二). 實(shí)現(xiàn)任意添加學(xué)生的信息,包括添加學(xué)生的個(gè)人學(xué)號(hào),姓名,性別,專業(yè),年級(jí)出生日期。輸入不允許為空,并且有提示功能,如果輸入的時(shí)候有一項(xiàng)為空則提示輸入相關(guān)的信息。(三). 實(shí)現(xiàn)刪除學(xué)生的信息,包括刪除學(xué)生的個(gè)人學(xué)號(hào),姓名,性別,專業(yè),年出生日期。根據(jù)編號(hào)進(jìn)行用戶權(quán)限檢查,在數(shù)據(jù)庫中進(jìn)行查找相符和的記錄,如果編號(hào)在數(shù)據(jù)庫中

4、不存在相應(yīng)記錄,則提示不能刪除,否則可以刪除該記錄。輸入不允許為空,并且有提示功能,如果輸入的時(shí)候?yàn)榭談t提示輸入相關(guān)的信息。(四). 實(shí)現(xiàn)編輯學(xué)生的信息,包括編輯學(xué)生的個(gè)人學(xué)號(hào),姓名,性別,專業(yè),年級(jí),出生日期。輸入不允許為空,并且有提示功能,如果輸入的時(shí)候有一項(xiàng)為空則提示輸入相關(guān)的信息。(五). 實(shí)現(xiàn)查詢學(xué)生的信息,包括編輯查詢學(xué)生的個(gè)學(xué)號(hào),姓名,性別,專業(yè),年級(jí),出生日期。輸入不允許為空,并且有提示功能,如果輸入的時(shí)候?yàn)榭談t提示輸入相關(guān)的信息。(六). 實(shí)現(xiàn)保存學(xué)生的信息,包括保存學(xué)生的個(gè)人學(xué)號(hào),姓名,性別,專業(yè),年級(jí),出生日期。二系統(tǒng)分析:(一). 該實(shí)驗(yàn)在Visual C+ 的MFC

5、中完成,通過可視化編程實(shí)現(xiàn)實(shí)驗(yàn)的要求。用工程MFC AppWizard(exe) 建一個(gè)工程文件Stuinfor。(二).該系統(tǒng)的MFC的實(shí)驗(yàn)共分為四個(gè)類:Add 實(shí)現(xiàn)學(xué)生信息的添加Delete 實(shí)現(xiàn)學(xué)生信息的刪除Modify 實(shí)現(xiàn)學(xué)生信息的修改Search 實(shí)現(xiàn)學(xué)生信息的查找(三).由系統(tǒng)的功能分析,可把系統(tǒng)分成若干個(gè)對(duì)話框窗口的形式,分別實(shí)現(xiàn)系統(tǒng)的輸入,修改,刪除,查詢功能。每一個(gè)對(duì)話框定義一個(gè)類分別用來完成各個(gè)功能的實(shí)現(xiàn)。整個(gè)系統(tǒng)的功能在菜單內(nèi)完成,分別是在學(xué)生信息管理下的學(xué)生信息錄入,學(xué)生信息的刪除,學(xué)生信息的修改,學(xué)生信息的查詢??梢暬拇翱谖鍌€(gè),分別實(shí)現(xiàn)用戶的登錄,學(xué)生信息的錄入,

6、修改,刪除,查找。通過窗口的各個(gè)按鍵對(duì)學(xué)生信息進(jìn)行操作。(四).由于整個(gè)系統(tǒng)的功能比較簡(jiǎn)單,所以實(shí)現(xiàn)所需的控件和代碼不會(huì)太多,各個(gè)控件的變量以及控件的點(diǎn)擊映射函數(shù)都是比較簡(jiǎn)潔的,整體來說,該系統(tǒng)是一個(gè)比較簡(jiǎn)潔的系統(tǒng),他通過簡(jiǎn)明易懂的方式實(shí)現(xiàn)了實(shí)驗(yàn)的目的,對(duì)初步接觸MFC的學(xué)生來說是一個(gè)非常好的實(shí)驗(yàn)教程。三功能模塊詳細(xì)設(shè)計(jì)和流程圖(一).功能模塊詳細(xì)設(shè)計(jì)1首先完成系統(tǒng)的登錄窗口的設(shè)計(jì),按ctrl+r鍵,彈出插入資源對(duì)話框,選擇dialog新建,在該對(duì)話框的屬性里將標(biāo)題改為登錄。然后在新建的窗口中分別加入圖中的各個(gè)控件,其中包括兩個(gè)靜態(tài)文本,兩個(gè)編輯框。其中靜態(tài)文本分別定為用戶和密碼,其相對(duì)應(yīng)的編

7、輯框的ID分別按默認(rèn)的IDC_EDIT1,IDC_EDIT2不需要更改。在窗口中的確認(rèn)鍵的屬性里將標(biāo)題改為登錄,取消不變,其ID分別為IDOK,IDCANCEL不變。調(diào)整各個(gè)控件的位置,如圖。2完成學(xué)生信息的輸入窗口,將窗口標(biāo)題改為輸入。同理,創(chuàng)建一個(gè)對(duì)話框,加入靜態(tài)文本,學(xué)生信息錄入,學(xué)號(hào),姓名,性別,專業(yè),年級(jí),出生日期,ID取默認(rèn)的,其中與學(xué)號(hào),姓名,性別(男,女),專業(yè),年級(jí),出生日期,錄入,取消相對(duì)應(yīng)的編輯框或是按鈕的ID分別是IDC_EDIT2,IDC_EDIT3,IDC_RADIO1,IDC_RADIO2,IDC_EDIT4,IDC_EDIT5,IDC_EDIT6,IDOK,ID

8、CANCEL如圖所示加入個(gè)控件并設(shè)置相應(yīng)的ID,調(diào)整個(gè)控件的位置。3同上,完成學(xué)生信息管理系統(tǒng)的刪除窗口,將窗口屬性里的標(biāo)題改為刪除,加入靜態(tài)文本,編輯框,按鈕,組框,如下圖所示,其中靜態(tài)文本的ID取其默認(rèn)值,將確認(rèn)鍵的標(biāo)題改為刪除,其余控件的ID也保持默認(rèn)值不變。調(diào)整控件位置如圖。組框的屬性里的標(biāo)題改為查詢結(jié)果,用于顯示查尋結(jié)果的,為下面信息的刪除做好鋪墊。如果沒有查到要找的信息,系統(tǒng)也會(huì)給出提示,同時(shí),查詢結(jié)果里沒有任何信息。同時(shí)為查詢按鈕映射一個(gè)成員函數(shù)OnButton1(),用于完成查詢按鈕的功能的實(shí)現(xiàn)。4查詢窗口的設(shè)計(jì)也是一樣,在窗口屬性里將標(biāo)題改為查詢,如下圖加入各個(gè)靜態(tài)文本和控件

9、,同上,各個(gè)控件的ID取其默認(rèn)值,刪除取消鍵,將確認(rèn)鍵屬性里的標(biāo)題改為查詢,用于執(zhí)行數(shù)據(jù)的查詢,同上,此對(duì)話框里也有一個(gè)查詢結(jié)果的組框用于信息的輸出,按鍵ctrl+w鍵,在MFC ClassWizard里為查詢鍵加入函數(shù)映射OnOK(),此函數(shù)的功能是查詢記錄中的數(shù)據(jù)。5創(chuàng)建一個(gè)對(duì)話框如圖,圖中加入的控件有靜態(tài)文本,編輯框,旋轉(zhuǎn)按鈕,單選按鈕,列表控件,刪除原圖中的確認(rèn),取消鍵,ID取其默認(rèn)值。6在ResourceView的Menu的工具欄里添加按鍵如下,按鈕學(xué)生信息管理屬性里的選擇彈出,在學(xué)生信息管理下分別加入按鍵學(xué)生信息錄入,學(xué)生信息的刪除,學(xué)生信息的修改,學(xué)生信息的查詢,ID分別為ID_

10、MAdd,ID_MDelete,ID_MModify,ID_MModify 。7在MFC ClassWizard的Member Variables 中分別為類Search,Delete,Modify,Password控件添加變量如下圖8在主窗口的類CMainFrame為成員函數(shù)添加點(diǎn)擊映射,如下圖所示,代碼在后面。(二) 流程圖登錄,輸入用戶名,密碼 進(jìn)入系統(tǒng) 進(jìn)入系統(tǒng)頁面密碼輸入錯(cuò)誤學(xué)生信息管理學(xué)生信息查詢學(xué)生信息修改 學(xué)生信息刪除學(xué)生信息錄入輸入要查詢的學(xué)號(hào)學(xué)生基本信息瀏覽查找選中輸入學(xué)號(hào)查找錄入完畢有無有填入修改后的數(shù)據(jù)修改輸出查詢結(jié)果無惡該學(xué)生信息不存在確定要?jiǎng)h除該學(xué)生的所有信息嗎該學(xué)

11、生信息不存在確認(rèn)確定要修改該學(xué)生的信息確認(rèn)該學(xué)生信息已刪除修改完畢四設(shè)計(jì)代碼(一)錄入學(xué)生信息void Add:OnOK() UpdateData();if(m_sNum = | m_sName = | m_sMajor = | m_sGrade = |m_sBirthday = | (!m_cMale.GetCheck() & !m_cFemale.GetCheck() MessageBox(學(xué)生信息不完整,無法錄入!, 錯(cuò)誤);return;/ 查詢學(xué)號(hào)是否存在int flag = 0;CStudent *stu = new CStudent;stu-m_strID = m_sNum;st

12、ring temp;ifstream in(record.txt);while(in temp) if(temp = stu-m_strID) flag = 1;MessageBox(該學(xué)號(hào)已存在!, 注意);in.close();m_sNum = ;UpdateData(false);/ 只將學(xué)號(hào)清空,其余信息保留return;in.close();/ 說明該學(xué)生信息還沒存檔,以下將其信息存檔write(stu);delete stu;MessageBox(錄入完畢!, 成功);clean();/ 清空表格/ TODO: Add extra validation here/CDialog:O

13、nOK();void Add:clean()m_sNum = ;m_sName = ;m_sMajor = ;m_sGrade = ;m_sBirthday = ;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);void Add:write(CStudent* stu)stu-m_strName = m_sName;stu-m_strMajor = m_sMajor;stu-m_strGrade = m_sGrade;stu-m_strDate = m_sBirthday;string temp;if(m_cMale.Ge

14、tCheck()temp = 男;elsetemp = 女;ofstream ou;ou.open(record.txt, ios:app);/ 選擇附加模式ou left;ou setw(20) m_strID;ou setw(20) m_strName;if(m_cMale.GetCheck()temp = 男;elsetemp = 女;ou setw(20) temp;ou setw(20) m_strMajor;ou setw(20) m_strGrade;ou setw(20) m_strDate;ou endl;ou.close();(二)查詢信息代碼void Delete:OnO

15、K() if(!searched) MessageBox(請(qǐng)先查詢!, 注意);return;if(!find) MessageBox(該學(xué)生信息不存在,無法刪除!, 錯(cuò)誤);return;int mbr = MessageBox(確定要?jiǎng)h除該學(xué)生的所有信息嗎?, 注意, MB_YESNO|MB_ICONQUESTION);if(mbr = IDNO) return;int k;ifstream in(record.txt);for(int i = 1; i a;k = a.size();/為了得到文件指針的偏移量if(i = index)/ 說明文件指針到達(dá)要?jiǎng)h除那行了,但偏移了k字節(jié)bre

16、ak;in.ignore(1024, n);in.seekg(-k, ios:cur);/ 讓指針跳到要?jiǎng)h除那行的行首int offset = in.tellg();/ 記下指針位置,便于寫新的記錄fstream ou;/ 這是文件流,不是輸出流!ou.open(record.txt);ou.seekp(offset, ios:beg);/跳到刪除行string str;getline(in, str);int size = str.size();/ 得到刪除行的大小for(i = 0; i size; i+)ou temp) index+;str = m_sNum;if(str = temp

17、) find = true;/ 找到了in temp;m_sName = temp.c_str();in temp;if(temp = 男)m_cMale.SetCheck(1);elsem_cFemale.SetCheck(1);in temp;m_sMajor = temp.c_str();in temp;m_sGrade = temp.c_str();in temp;m_sBirthday = temp.c_str();UpdateData(false);in.close();break;in.ignore(1024, n);in.close();if(!find) MessageBox

18、(該學(xué)生信息不存在!, 注意);m_sNum = ;UpdateData(false);searched = false;/ TODO: Add your control notification handler code herevoid Delete:clean() m_sMajor = ;m_sGrade = ;m_sBirthday = ;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);(三)修改學(xué)生信息代碼void Modify:OnOK() / TODO: Add extra validation hereUp

19、dateData();ifstream in(record.txt);int r = 0, k;string a;while(r != m_nRecord) in a;k = a.size();r+;if(r = m_nRecord)break;in.ignore(1024, n);in.seekg(-k, ios:cur);int offset = in.tellg();string temp, str;int flag = 0;/ 用來判斷信息是否改動(dòng)for(int col = 0; col temp;switch(col) case 0:if(m_sNum != temp.c_str()

20、 flag = 1; break;case 1:if(m_sName != temp.c_str()flag = 1;break;case 2:if(m_cMale.GetCheck()str = 男;elsestr = 女;if(temp != str)flag = 1;break;case 3:if(m_sMajor != temp.c_str()flag = 1;break;case 4:if(m_sGrade != temp.c_str()flag = 1;break;case 5:if(m_sBirthday != temp.c_str()flag = 1;break;if(flag

21、)break;if(flag = 0) MessageBox(該學(xué)生信息沒有改動(dòng)!, 注意);return;if(m_nRecord = 0 | index = 0) MessageBox(沒有學(xué)生信息!, 錯(cuò)誤);return;/ 查看新改的學(xué)號(hào)是否已存在ifstream infile(record.txt);int rd = 0;/ 因?yàn)橐懦瓉砟切?是與其它行比較看是否重號(hào)while(infile temp) rd+;if(temp.c_str() = m_sNum & rd != m_nRecord) MessageBox(該學(xué)號(hào)已存在, 請(qǐng)重新輸入!, 注意, MB_ICONWAR

22、NING);show(m_nRecord);return;infile.ignore(1024, n);infile.close();int mbr = MessageBox(確定要修改該學(xué)生的信息嗎, 注意, MB_YESNO|MB_ICONQUESTION);if(mbr = IDNO) show(m_nRecord);/ 顯示原來信息return;CStudent *stu = new CStudent;stu-m_strID = m_sNum;stu-m_strName = m_sName;if(m_cMale.GetCheck()stu-m_strSex = 男;elsestu-m_

23、strSex = 女;stu-m_strMajor = m_sMajor;stu-m_strGrade = m_sGrade;stu-m_strDate = m_sBirthday;/ 將信息存入變量,便于比較stu-savetofile(offset);delete stu;LVITEM lvi;lvi.mask = LVIF_IMAGE | LVIF_TEXT;lvi.iItem = m_nRecord;in.seekg(offset, ios:beg);int c = 0;while(in str) lvi.iSubItem = c;lvi.pszText = (LPTSTR)(str.

24、c_str();if(c = 0)m_cList.InsertItem(&lvi);elsem_cList.SetItem(&lvi);c+;if(c = 6) break;m_cList.DeleteItem(m_nRecord-1);MessageBox(修改完畢!, 成功);/CDialog:OnOK();void Modify:show(int r)clean();if(r index)return;ifstream in(record.txt);int k = 0;for(int i = 1; i a;k = a.size();if(i = r)break;in.ignore(102

25、4, n);/同樣,也是為了得到要顯示那行in.seekg(-k, ios:cur);/退回到行頭m_nRecord = r;string temp;for(int col = 0; col != 6; col+) in temp;switch(col) case 0:m_sNum = temp.c_str();break;case 1:m_sName = temp.c_str();break;case 2:if(temp = 男)m_cMale.SetCheck(1);elsem_cFemale.SetCheck(1);break;case 3:m_sMajor = temp.c_str()

26、;break;case 4:m_sGrade = temp.c_str();break;case 5:m_sBirthday = temp.c_str();break;UpdateData(false);in.close();void Modify:clean()m_nRecord = 0;m_sNum = ;m_sName = ;m_sGrade = ;m_sMajor = ;m_sBirthday = ;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);BOOL Modify:OnInitDialog() CDialog

27、:OnInitDialog();/ TODO: Add extra initialization hereindex = 0;/ 行數(shù)ifstream infile(record.txt);string str;while(infile str) / 為了得到總共的記錄數(shù)(行數(shù))index+;infile.ignore(1024, n);infile.close();m_cList.InsertColumn(0, 學(xué)號(hào), LVCFMT_LEFT, 130);m_cList.InsertColumn(1, 姓名, LVCFMT_LEFT, 100);m_cList.InsertColumn(2,

28、 性別, LVCFMT_LEFT, 70);m_cList.InsertColumn(3, 專業(yè), LVCFMT_LEFT, 120);m_cList.InsertColumn(4, 年級(jí), LVCFMT_LEFT, 80);m_cList.InsertColumn(5, 出生日期, LVCFMT_LEFT, 100);ifstream in(record.txt);LVITEM lvi;for(int r = 0; r str) lvi.iSubItem = c;lvi.pszText = (LPTSTR)(str.c_str();if(c = 0)m_cList.InsertItem(&l

29、vi);elsem_cList.SetItem(&lvi);c+;if(c = 6)break;in.close();DWORD dwStyleEx;/ 網(wǎng)格風(fēng)格dwStyleEx = LVS_EX_FULLROWSELECT | LVS_REPORT | LVS_EX_ONECLICKACTIVATE; m_cList.SetExtendedStyle(dwStyleEx);m_cSpin.SetRange(0, index);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX P

30、roperty Pages should return FALSEvoid Modify:OnDeltaposSpin2(NMHDR* pNMHDR, LRESULT* pResult) NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;/ TODO: Add your control notification handler code hereint r = m_cSpin.GetPos();if(pNMUpDown-iDelta = 1)/ 說明點(diǎn)擊了Spin的往上箭頭show(r+1);else if(pNMUpDown-iDelta = -1)/ 說明

31、點(diǎn)擊了Spin的往下箭頭show(r-1);*pResult = 0;void Modify:OnClickList3(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code herePOSITION pos = m_cList.GetFirstSelectedItemPosition();int r = m_cList.GetNextSelectedItem(pos);show(r+1);*pResult = 0;void Modify:OnKeydownList3(NMHDR*

32、pNMHDR, LRESULT* pResult) LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;/ TODO: Add your control notification handler code herePOSITION pos = m_cList.GetFirstSelectedItemPosition();int r = m_cList.GetNextSelectedItem(pos);if(GetKeyState(38) 0)/ upshow(r);if(GetKeyState(40) temp) str = m_sNum;if(temp =

33、 str) flag = 1;/ 說明找到了in temp;m_sName = temp.c_str();/ 類型轉(zhuǎn)換in temp;if(temp = 男)m_cMale.SetCheck(1);elsem_cFemale.SetCheck(1);in temp;m_sMajor = temp.c_str();in temp;m_sGrade = temp.c_str();in temp;m_sBirthday = temp.c_str();UpdateData(false);in.close();break;in.ignore(1024, n);in.close();if(!flag) M

34、essageBox(該學(xué)生信息不存在!, 注意);m_sNum = ;UpdateData(false);/CDialog:OnOK();(五)登錄信息代碼BOOL CStuinforApp:InitInstance()AfxEnableControlContainer();int nCount=0;while(nCount=3)MessageBox(NULL,口令輸入已超過三次,請(qǐng)退出!,錯(cuò)誤信息,MB_OK|MB_ICONERROR);return FALSE;(六)寫入學(xué)生基本信息write:write()CStudent *stu; stu-m_strName = m_sName;st

35、u-m_strMajor = m_sMajor;stu-m_strGrade = m_sGrade;stu-m_strDate = m_sBirthday;string temp;if(m_cMale.GetCheck()temp = 男;elsetemp = 女;ofstream ou;ou.open(record.txt, ios:app);/ 選擇附加模式ou left;ou setw(20) m_strID;ou setw(20) m_strName;if(m_cMale.GetCheck()temp = 男;elsetemp = 女;ou setw(20) temp;ou setw(

36、20) m_strMajor;ou setw(20) m_strGrade;ou setw(20) m_strDate;ou endl;ou.close();write:write()測(cè)試結(jié)果: (五)心得體會(huì)和參考資料通過這次實(shí)驗(yàn),我充分認(rèn)識(shí)到自己的不足之處,同時(shí)也讓我在實(shí)驗(yàn)中學(xué)到了很多知識(shí),在這之中,我感覺自己不僅增加了實(shí)驗(yàn)的分析及處理能力,而且我也懂得了課本知識(shí)的重要性,課本是我們學(xué)習(xí)的根本,同時(shí)也是我們實(shí)驗(yàn)的基礎(chǔ),在實(shí)驗(yàn)中遇到的問題,大多都能在課本中找到解決的方法,并且課本都會(huì)有或多或少的對(duì)于此類問題的講解,對(duì)我們理解這一類問題都有很大的幫助,另一方面,書本上還有一些實(shí)驗(yàn)中并沒有涉及的知識(shí),這些知識(shí)對(duì)我們認(rèn)識(shí)和理解MFC功能和正確的使用它都有很大的作用。由于自己平時(shí)并沒有過多的看書本上的內(nèi)容,致使自

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論