C++程序設(shè)計(jì)課程設(shè)計(jì)-選課管理系統(tǒng)_第1頁
C++程序設(shè)計(jì)課程設(shè)計(jì)-選課管理系統(tǒng)_第2頁
C++程序設(shè)計(jì)課程設(shè)計(jì)-選課管理系統(tǒng)_第3頁
C++程序設(shè)計(jì)課程設(shè)計(jì)-選課管理系統(tǒng)_第4頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

沈陽工程學(xué)院課程設(shè)計(jì)設(shè)計(jì)題目: C++程序設(shè)計(jì)課程設(shè)計(jì)--選課管理系統(tǒng) _系別 信息工程系 班級(jí)系統(tǒng)本101 學(xué)生姓名 張兆甲任志強(qiáng) 學(xué)號(hào)07號(hào)、08號(hào) 指導(dǎo)教師代欽張楠職稱講師講師 起止日期:20n年12月12日起——至201I年12月16日止

沈陽工程學(xué)院C++課程逛課程設(shè)計(jì)成績?cè)u(píng)定表系(部): 信息工程系 班級(jí):系統(tǒng)本101 學(xué)生姓名:張兆甲指導(dǎo)教師評(píng)審意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15432「作能ノノ態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)ー,編號(hào)齊全,圖表完備,書寫エ整規(guī)范。0.55432指導(dǎo)教師評(píng)審成績(加權(quán)分合計(jì)乘以!2)分加權(quán)分合計(jì)指導(dǎo)教師簽名:年月日評(píng)閱教師評(píng)審意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分杏閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性:有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)ー,編號(hào)齊全,圖表完備,書寫エ整規(guī)范。0.35432評(píng)閱教師評(píng)審成績(加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)評(píng)閱教師簽名:年月日

沈陽工程學(xué)院C++課程設(shè)計(jì) 課程設(shè)計(jì)成績?cè)u(píng)定表系(部): 信息工程系 班級(jí):系統(tǒng)本101 學(xué)生姓名:任志強(qiáng)指導(dǎo)教師評(píng)審意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15432「作能ノノ態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)ー,編號(hào)齊全,圖表完備,書寫エ整規(guī)范。0.55432指導(dǎo)教師評(píng)審成績(加權(quán)分合計(jì)乘以!2)分加權(quán)分合計(jì)指導(dǎo)教師簽名:年月日評(píng)閱教師評(píng)審意見評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分杏閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性:有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)ー,編號(hào)齊全,圖表完備,書寫エ整規(guī)范。0.35432評(píng)閱教師評(píng)審成績(加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)評(píng)閱教師簽名:年月日沈陽工程な院課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目: 選課管理系統(tǒng)ー系別信息工程系 班級(jí)系統(tǒng)本101學(xué)生姓名張兆甲任志強(qiáng) 學(xué)號(hào)07號(hào)、08號(hào)指導(dǎo)教師代欽張楠 職稱講師講師課程設(shè)計(jì)進(jìn)行地點(diǎn): 實(shí)訓(xùn)樓F611 任務(wù)下達(dá)時(shí)間: 2011年11月30日起止日期:201I年12月12日起——至2011年12月16日止教研室主任 年月日批準(zhǔn)ー、課程設(shè)計(jì)的原始資料及依據(jù)查閱有關(guān)資料,進(jìn)ー步理解面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,并編寫??個(gè)簡單的windows系統(tǒng)。通過本設(shè)計(jì)可以加深理解使用面向?qū)ο蟪绦蛟O(shè)計(jì)思想開發(fā)ー個(gè)系統(tǒng)的方法,提高分析問題、解決問題和實(shí)際動(dòng)手的能力。二、課程設(shè)計(jì)主要內(nèi)容及要求設(shè)計(jì)內(nèi)容:假定有n門課程,每門課程有課程編號(hào),課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。試設(shè)計(jì)ー選修課程系統(tǒng),使之能提供以下功能:(1)課程信息錄入功能(課程信息用文件保存)(2)課程信息瀏覽功能(3)查詢功能:(至少…種査詢方式).按學(xué)分查詢.按課程性質(zhì)查詢(4)學(xué)生選修課程(可選項(xiàng))設(shè)計(jì)要求:(1)要求在設(shè)計(jì)的過程中建立清晰的類層次,并畫出類圖;(2)設(shè)計(jì)功能滿足要求、易于操作的友好界面;(3)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮末`種機(jī)制:繼承、多態(tài)等;(4)在完成該題目時(shí),小組人員進(jìn)行詳細(xì)的任務(wù)分エ,并要在報(bào)告中體現(xiàn)出來。三、對(duì)課程設(shè)計(jì)說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1.課程設(shè)計(jì)說明書是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,主要內(nèi)容包括;設(shè)計(jì)題目、設(shè)計(jì)目的、設(shè)備器材、設(shè)計(jì)原理及內(nèi)容、設(shè)計(jì)步驟、遇到的問題及解決方法、設(shè)計(jì)總結(jié)、參考文獻(xiàn)等。一般不應(yīng)少于3000字。2,在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理圖、功能模塊圖、算法流程圖等圖表進(jìn)行說明。應(yīng)做到文理通順,內(nèi)容正確完整,書寫エ整,裝訂整齊。.設(shè)計(jì)總結(jié)部分主要寫本人完成工作簡介以及自己的設(shè)計(jì)體會(huì),包括通過課程設(shè)計(jì)學(xué)到了什么,哪里遇到了困難,解決的辦法以及今后的目標(biāo)。.課程設(shè)計(jì)說明書手寫或打印均可。手寫要用學(xué)校統(tǒng)?的課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨水工整書寫;打印時(shí)采用A4紙,頁邊距均為20mm,正文采用宋體小四號(hào)字,行間距18磅。文中大標(biāo)題采用黑體小三號(hào)字,?級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,ニ級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,表題與圖題采用宋體五號(hào)字。.課程設(shè)計(jì)說明書裝訂順序?yàn)?封面、任務(wù)書、成績?cè)u(píng)定表、目錄、正文、參考文獻(xiàn)。四、設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求.完成“任務(wù)書”中指定的功能,運(yùn)行結(jié)果正確。.課程設(shè)計(jì)說明書。

五、時(shí)間進(jìn)度安排順序階段日期計(jì)劃完成內(nèi)容備注1第1天進(jìn)行設(shè)計(jì)準(zhǔn)備,閱讀資料,分析設(shè)計(jì)任務(wù)書,明確設(shè)計(jì)要求、內(nèi)容和步驟2第2天需求分析3第3天概要設(shè)計(jì)4第4天詳細(xì)設(shè)計(jì)5第5天編碼、調(diào)試程序答辯,撰寫課程設(shè)計(jì)報(bào)告六、主要參考資料(文獻(xiàn))[1]鄭莉董淵張瑞豐編著.《C++語言程序設(shè)計(jì)》(第4版).北京:清華大學(xué)出版社.2010[2]陳維興,林小茶.《C++高級(jí)程序設(shè)計(jì)教程》.北京:清華大學(xué)出版社[3]譚浩強(qiáng).《C++程序設(shè)計(jì)教程》.北京:中國科學(xué)技術(shù)出版社[4I王燕.《面向?qū)ο蟮睦碚撆cC++實(shí)踐》.北京:清華大學(xué)出版社[5I馬石安,魏文平.主編《VisualC++程序設(shè)計(jì)與應(yīng)用教程》.北京:清華大學(xué)出版[6]王育堅(jiān).主編《VisualC++面向?qū)ο缶幊探坛獭罚ǖ诙妫?北京:清華大學(xué)出版現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了人類的生活。作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在時(shí)代發(fā)展的前列,掌握現(xiàn)代科學(xué)技術(shù)知識(shí),整自己的知識(shí)結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會(huì)發(fā)展的需求。C++語言是在國內(nèi)外使用的ー種計(jì)算機(jī)語言。C++語言功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好、既具有高級(jí)語言的優(yōu)點(diǎn),又具有低級(jí)語言的許多特點(diǎn),因此特別適合于編寫系統(tǒng)軟件。此題是設(shè)計(jì)ー個(gè)學(xué)生選課系統(tǒng),該系統(tǒng)主要包括錄入信息功能,瀏覽信息功能,查詢功能。其中錄入信息功能是錄入課程信息。瀏覽功能主要是為了看已錄入信息而設(shè)計(jì)的。查詢功能是為了方便用戶查看信息而設(shè)計(jì)的。并且,該系統(tǒng)還設(shè)計(jì)了文件輸入輸出流,作用是保存和打開信息。另外,為了美觀還需要設(shè)計(jì)ー個(gè)操作界面。最后,該系統(tǒng)是由對(duì)象來完成整個(gè)程序之間的連接,使得該系統(tǒng)操作簡便,容易實(shí)現(xiàn)功能。在設(shè)計(jì)中,首先要學(xué)習(xí)程序設(shè)計(jì)課程的目的掌握設(shè)計(jì)程序的思路,學(xué)習(xí)怎么樣用C++語言編寫程序來實(shí)現(xiàn)所需要系統(tǒng)的功能。要正確處理算法與語法的關(guān)系,算法是程序的核心。編寫過程中不能把學(xué)習(xí)重.點(diǎn)放在語法規(guī)則上,雖然語法是重要的,不掌握語法規(guī)則就無法編寫出正確的程序。?定要把重點(diǎn)放在解題的思路上,通過思考,和大量的閱讀,這樣來完成ー個(gè)好的程序設(shè)計(jì)。關(guān)鍵詞學(xué)生選課系統(tǒng);C++;函數(shù);類的繼承目錄TOC\o"1-5"\h\z摘要 I第1章緒論 1\o"CurrentDocument"題目背景 1\o"CurrentDocument"設(shè)計(jì)目的 1\o"CurrentDocument"解決問題 1\o"CurrentDocument"第2章C++語言的運(yùn)行環(huán)境及其特點(diǎn) 3\o"CurrentDocument"VC++概述 3VC++簡介 3VC++的適用范圍 3VC++的組成 4VC++的特點(diǎn) 4\o"CurrentDocument"VC++集成開發(fā)環(huán)境窗口 5\o"CurrentDocument"第3章系統(tǒng)分析與設(shè)計(jì) 7\o"CurrentDocument"系統(tǒng)分析 7\o"CurrentDocument"系統(tǒng)功能 7錄入課程信息功能 8信息瀏覽功能 9查詢功能 10\o"CurrentDocument"類圖 11第4章系統(tǒng)功能的實(shí)現(xiàn) 13主函數(shù) 13\o"CurrentDocument"登陸函數(shù) 14錄入課程信息模塊 15\o"CurrentDocument"瀏覽信息模塊 17查詢信息管理 18結(jié)論 22致謝 23\o"CurrentDocument"參考文獻(xiàn) 24題目背景當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最到好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好學(xué)生選課信息而設(shè)計(jì)的。學(xué)生選課作為?種信息資源的集散地,包含很多的信息數(shù)據(jù)的管理。由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的學(xué)校有計(jì)算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效カ,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。造成了時(shí)間上的浪費(fèi)?;谶@個(gè)問題,我認(rèn)為有必要建立一個(gè)學(xué)生選課系統(tǒng),使學(xué)生選課信息管理工作規(guī)范化、系統(tǒng)化、程序化,避免學(xué)生選課管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改選課情況。設(shè)計(jì)目的學(xué)生選課系統(tǒng)是ー個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生選課系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兌际褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外隨著時(shí)間ー長,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難?;诰W(wǎng)上學(xué)分制的選課系統(tǒng)已經(jīng)在很多高校得到廣泛的應(yīng)用,深得廣大師生的稱贊,它改變了以往由學(xué)校統(tǒng)發(fā)課程表到學(xué)生手中,然后由學(xué)生填好再反饋到學(xué)校,而學(xué)校還要對(duì)結(jié)果進(jìn)行審查,確定有效性,最后オ實(shí)施上課計(jì)劃,這一傳統(tǒng)的手工選課不僅復(fù)雜,也牽涉了很多的人力,對(duì)管理也造成了諸多不變,而借助網(wǎng)上選課系統(tǒng),學(xué)生在規(guī)定選課時(shí)間段內(nèi),可以不受地點(diǎn)和時(shí)間的限制完成選修課的申請(qǐng),而學(xué)校也可以方便地對(duì)系統(tǒng)進(jìn)行管理和控制,提高工作效率。解決問題這次設(shè)計(jì)主要通過運(yùn)用程序設(shè)計(jì)模塊化的思想,運(yùn)用平時(shí)所學(xué)知識(shí)和查找到的資料編寫ー個(gè)學(xué)生選課管理系統(tǒng)。在這個(gè)程序中管理員可以對(duì)學(xué)生選課管理系統(tǒng)中的內(nèi)容進(jìn)行輸入和修改,學(xué)生也可以通過該系統(tǒng)后査詢課程信息并進(jìn)行選課,教師通過該系統(tǒng)可以錄入學(xué)生成績,使信息管理更具體、更便捷、更電子化。第2章C++語言的運(yùn)行環(huán)境及其特點(diǎn)VC++概述VC++簡介VisualC++是ー個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具,它不僅是ー個(gè)C++編譯器,還是…個(gè)基于Windows操作系統(tǒng)的集成開發(fā)環(huán)境。VisualC++由許多組件組成,包括編輯器、編譯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lasswizard等。這些組件通過ー個(gè)名為DeveloperStudio的組件集成為管委會(huì)和諧的開發(fā)環(huán)境。VC作為ー個(gè)主流的開發(fā)平臺(tái)一直深受編程愛好者的喜愛,但是很多人卻對(duì)它的入門感到難于上青天,究其原因主要是大家對(duì)他錯(cuò)誤的認(rèn)識(shí)造成的,嚴(yán)格的來說VC++不是門語言,雖然它和C++之間有密切的關(guān)系,如果形象點(diǎn)比喻的話,可以C++看作為?種“エ業(yè)標(biāo)準(zhǔn)”,而VC++則是某種操作系統(tǒng)平臺(tái)下的“廠商標(biāo)準(zhǔn)”,而“廠商標(biāo)準(zhǔn)”是在遵循“エ業(yè)標(biāo)準(zhǔn)”的前提下擴(kuò)展而來的。VC++是微軟公司開發(fā)的一個(gè)IDE(集成開發(fā)環(huán)境),換句話說,就是使用C++的ー個(gè)開發(fā)平臺(tái)。有些軟件就是這個(gè)編出來的。另外還有VB,VF,只是使用不同語言,但是,VC++是Windows平臺(tái)上的C++編程環(huán)境,學(xué)習(xí)VC++要了解很多Windows平臺(tái)的特性并且還要掌握MFC、ATL、COM等的知識(shí),難度比較大。Windows下編程需要了解Windows的消息機(jī)制以及冋調(diào)(callback)函數(shù)的原理;MFC是Win32Api的包裝類,需要理解文檔視圖類的結(jié)構(gòu),窗口類的結(jié)構(gòu),消息流向等等:COM是代碼共享的二進(jìn)制標(biāo)準(zhǔn),需要掌握其基本原理等等。VC++應(yīng)用程序的開發(fā)主要有兩種模式,?種是WINAP!方式,另ー種則是MFC方式,傳統(tǒng)的WINAPI開發(fā)方式比較繁瑣,而MFC則是對(duì)WINAPI再次封裝,所以MFC相對(duì)于WINAPI開發(fā)更具備效率優(yōu)勢(shì),但為了對(duì)WINDOWS開發(fā)有一個(gè)較為全面細(xì)致的認(rèn)識(shí),筆者在這里還是以講解WINAPI的相關(guān)內(nèi)容為主線。VC++基于C,C++語言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說VC++在Windows平臺(tái)無所不能。最大缺點(diǎn)是開發(fā)效率不高。VC++的適用范圍VC主要是針對(duì)Windows系統(tǒng),適合一些系統(tǒng)級(jí)的開發(fā),可以方便實(shí)現(xiàn)ー些底層的調(diào)用。在VC里邊嵌入?yún)R編語言很簡單。VC主要用在驅(qū)動(dòng)程序開發(fā)。VC執(zhí)行效率高,當(dāng)對(duì)系統(tǒng)性能要求很高的時(shí)候,可用VC開發(fā)。VC主要適用于游戲開發(fā)。VC多用于單片機(jī),工業(yè)控制等軟件開發(fā),如直接對(duì)I/O地址操作,就要用C++。VC適用開發(fā)高效,短小,輕量級(jí)的COM組件,DLL。比如WEB上的控件。VC可以開發(fā)優(yōu)秀的基于通信的程序。VC可以開發(fā)高效靈活的文件操作程序。VC可以開發(fā)靈活高效的數(shù)據(jù)庫操作程序。VC是編CAD軟件的唯一選擇!!!包括AUTOCAD,UG的二次開發(fā)。VC在多線程、網(wǎng)絡(luò)通信、分布應(yīng)用方面,VC++有不可比擬的優(yōu)勢(shì)。VC++的組成VisualC++6.0不僅是ー?個(gè)C++編譯器,而且是ー個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)oVisualC++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lassWizard等開發(fā)工具。這些組件通過ー?個(gè)名為DeveloperStudio的組件集成為和諧的開發(fā)環(huán)境。VisualC++它大概可以分成三個(gè)主要的部分:DeveloperStudio?這是ー個(gè)集成開發(fā)環(huán)境,我們?nèi)粘9ぷ鞯?9%都是在它上面完成的,再加上它的標(biāo)題赫然寫著“MicrosoftVisualC++”,所以很多人理所當(dāng)然的認(rèn)為,那就是VisualC++T〇其實(shí)不然,雖然DeveloperStudio提供了一個(gè)很好的編輯器和很多Wizard,但實(shí)際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕后英雄后面會(huì)介紹。我們也知道,DeveloperStudio并不是專門用于VC的,它也同樣用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。所以不要把DeveloperStudio當(dāng)成VisualC++,它充其量只是VisualC++的ー個(gè)殼子而已。這一點(diǎn)請(qǐng)切記!MFC-從理論上來講,MFC也不是專用于VisualC++,BorlandC++,C++Builder和SymantecC++同樣可以處理MFC。同保狀isualC++編寫代碼也并不意味著一定要用MFC,只要愿意,用VisualC++來編寫SDK程序,或者使用STL,ATL,ー樣沒有限制。不過,VisualC++本來就是為MFC打造的,VisualC++中的許多特征和語言擴(kuò)展也是為MFC而設(shè)計(jì)的,所以用VisualC++面不用MFC就等于拋棄了VisualC++中很大的一部分功能。但是,VisualC++也不等于MFCoPlatformSDK。這オ是VisualC++和整個(gè)VisualStudio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,PlatformSDK是以MicrosoftC/C++編譯器為核心(不是VisualC++,看清楚了),配合MASM,輔以其他…些工具和文檔資料。上面說到DeveloperStudio沒有編譯程序的功能,那么這項(xiàng)工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序オ是構(gòu)成VisualStudio的基石。VC++的特點(diǎn)源程序用C++語言編寫,支持面向?qū)ο笤O(shè)計(jì)方法,使用功能強(qiáng)大的微軟基礎(chǔ)類庫MFC(MicrosoftFoundationClass)〇開發(fā)出來的軟件穩(wěn)定性好、可移植性強(qiáng)。可以編制各種各樣Windows應(yīng)用程序,包括對(duì)話框程序、文檔/視圖程序和組合界面程序。作為VisualStudio可視化組件家族中最重要的一個(gè)成員,與其它可視化開發(fā)工具如VisualJ++、VisualBasic及VisualC#緊密地集成在ー起,適用于特殊、復(fù)雜和綜合軟件項(xiàng)目的開發(fā),乃至ー個(gè)系統(tǒng)軟件的設(shè)計(jì)。聯(lián)機(jī)幫助系統(tǒng)MSDN(MicrosoftDeveloperNetworkLibrary)功能強(qiáng)大。它既能與集成開發(fā)環(huán)境有機(jī)地結(jié)合在ー起,使得用戶在編程時(shí)隨機(jī)查詢需要的內(nèi)容信息,又能脫離集成開發(fā)環(huán)境而獨(dú)立地運(yùn)行。除了VisualC++,其它ー些公司也推出了自己的C++集成開發(fā)環(huán)境,如Borland的C++Builder和!BM的VisualAgeC++〇迄今為止,VisualC++是功能最強(qiáng)和使用范圍最廣的軟件開發(fā)工具。比較VisualBasic、C++Builder和Delphi等編程工具,用VisualC++編寫Windows應(yīng)用程序最富于挑戰(zhàn)性和艱巨性。而當(dāng)熟練掌握VisualC++后,你會(huì)感受到作為ー個(gè)VisualC++程序員的無比優(yōu)越性。要想在使用VisualC++編程時(shí)做到游刃有余,必須解決四個(gè)主要困難:C++語言的面向?qū)ο髾C(jī)制MFC類庫功能的龐大Windows編程的復(fù)雜性向?qū)⒌膽?yīng)用程序框架的透明性VC++集成開發(fā)環(huán)境窗口從Windows的“開始I程序”欄選擇MicrosoftVisualStudio6.0菜單中的MicrosoftVisualC++6.0菜單項(xiàng),就啟動(dòng)了VisualC++集成開發(fā)環(huán)境,出現(xiàn)集成開發(fā)環(huán)境的主窗口DeveloperStudiooVisualC++通過DeveloperStudio將所有組件集成在開發(fā)環(huán)境中,用戶可以利用DeveloperStudio編寫應(yīng)用程序。例如,利用VisualC++6.0創(chuàng)建?個(gè)Windows應(yīng)用程序Mysdi□.執(zhí)行FilelNew菜單命令,出現(xiàn)New對(duì)話框。在Project頁面窗口中選擇MFCAppWizard[exe]選項(xiàng),在ProjectName編輯框中輸入項(xiàng)目名稱Mysdi,在location編輯框中輸入保存項(xiàng)目的路徑,如圖2-1所小。圖2-1創(chuàng)建一個(gè)應(yīng)用程序

.在MFCAppWizard-Stepl對(duì)話框中設(shè)置應(yīng)用程序的類型,本例創(chuàng)建一個(gè)單文檔程序,選擇Singledocument項(xiàng),單擊Finish按鈕,出現(xiàn)NewProjectInformation對(duì)話框,單擊OK按鈕,將生成應(yīng)用程序框架文件,并在項(xiàng)目工作區(qū)窗口打開生成的應(yīng)用程序的項(xiàng)目,如圖2-2所示。工作區(qū)包口編輯窗ロ縞出窗ユ標(biāo)題欄工作區(qū)包口編輯窗ロ縞出窗ユ標(biāo)題欄菜單欄工具欄圖2-2VisualC++6.0集成開發(fā)環(huán)境第3章系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析假定有n門課程,每門課程有課程編號(hào),課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。試設(shè)計(jì)ー選修課程系統(tǒng),使之能提供以下功能:(1)課程信息錄入功能(課程信息用文件保存)(2)課程信息瀏覽功能(3)查詢功能:(至少…種查詢方式).按學(xué)分查詢.按課程性質(zhì)查詢系統(tǒng)功能本系統(tǒng)主要由一個(gè)Course類,Search類及其五個(gè)成員函數(shù)組成。課題所要求的功能由各個(gè)函數(shù)分別得以實(shí)現(xiàn)。首先,在Course類內(nèi)定義了一些成員變量,用來保存課程編號(hào),課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開課學(xué)期等信息,還對(duì)它的成員變量進(jìn)行了聲明。Search類主要實(shí)現(xiàn)課程的查詢,并繼承了Course類的數(shù)據(jù)成員。然后,在類外,通過作用域運(yùn)算符將類內(nèi)聲明的成員函數(shù)定義,以及進(jìn)行相應(yīng)的操作,以實(shí)現(xiàn)相應(yīng)的功能。主要包括功能要求中的三大功能,即信息輸入、信息瀏覽、信息的査詢。最后,在主函數(shù)中設(shè)置目錄顯示。用switch瓜分不同的功能選項(xiàng)。系統(tǒng)根據(jù)用戶輸入的符號(hào),調(diào)用相應(yīng)的成員函數(shù),完成功能的實(shí)現(xiàn)。如圖3-1所示:圖3-I功能模塊圖類層次圖如圖3-2所示:課程課程編號(hào)課程名字課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)驗(yàn)或上機(jī)學(xué)時(shí)學(xué)分開課學(xué)期課程信息錄入功能

課程信息瀏覽功能

按學(xué)分查詢

按課程性質(zhì)查詢圖3-2類層次圖錄入課程信息功能首先,創(chuàng)建一個(gè)文件輸出流對(duì)象outfile,打開文件,判斷文件是否存在。通過while設(shè)ー個(gè)無限循環(huán),當(dāng)給出指定條件時(shí)退出。在循環(huán)中,調(diào)用cout函數(shù)來提示用戶輸入相應(yīng)的信息,如課程編號(hào)、名稱、課程性質(zhì)、總學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)或上機(jī)學(xué)時(shí)、學(xué)分、開課學(xué)期等等。將需要的課程輸入完畢之后,可根據(jù)提示再輸入“〇”,即可返回主菜單,重新進(jìn)行功能的選擇。錄入課程信息流程圖如圖3-3所示:結(jié)束圖3-3錄入課程信息流程圖信息瀏覽功能該函數(shù)首先創(chuàng)建了輸入流文件對(duì)象infile,使用語句infile,open(file)J然后定義ー個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息,用for循環(huán)保證保存不止ー?門課程的信息。最后,cout輸出顯示所有保存的信息。

查詢功能查找功能,即按學(xué)分查找和按課程性質(zhì)查找。按課程性質(zhì)查找:創(chuàng)建輸入流文件對(duì)象infHe,然后定義ー個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息,比較用戶輸入的字符和保存的信息中那些課程的性質(zhì)相對(duì)應(yīng),將相應(yīng)的課程信息進(jìn)行輸出顯示。流程圖如圖3-4所示圖3-4按課程性質(zhì)查詢流程圖按課程學(xué)分查找:創(chuàng)建輸入流文件對(duì)象infile,然后定義ー個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息,比較用戶輸入的字符和保存的信息中那些課程的性質(zhì)相對(duì)應(yīng),將相應(yīng)的課程信息進(jìn)行輸出顯示。流程圖如圖3-5所示:

圖3-5按學(xué)分査詢流程圖類圖本程序包括兩個(gè)類,Course類,Serach類,其中Serach類繼承了Course類中的數(shù)據(jù)成員,類圖如圖3-6所示:Course+courseNumber:int+courseName:string+courseKind:string+coursePeriod:int+schoolPeriod:int+experimentPeriod:int+credithour:float+courseterm:string+Courselnfolnput():void+CourseInfoOutPut():void A Search+chaozhao():void+SearchByCredithour(incredithour:float):void+SearchByCourseKind(incourseKind:string):void圖3-6學(xué)生選課系統(tǒng)類圖第4章系統(tǒng)功能的實(shí)現(xiàn)4.1主函數(shù)首先調(diào)用事先定義好的函數(shù),用switch函數(shù),返回值整數(shù)作開關(guān)語句的條件。主要實(shí)現(xiàn)項(xiàng)目選擇的功能。其優(yōu)點(diǎn)為程序簡單明了,方便閱讀。主函數(shù)是程序的入口,采用模塊化設(shè)計(jì),主函數(shù)不宜復(fù)雜,功能盡量在模塊中實(shí)現(xiàn)。先聲明一些必要的變量,然后做多個(gè)函數(shù)的調(diào)用,該語句的條件值是通過調(diào)用主菜單函數(shù)得到的返回值,根據(jù)該值,調(diào)用相應(yīng)的各功能函數(shù),同時(shí)設(shè)置ー個(gè)出口,即返回值為一定條件時(shí)運(yùn)行退出函數(shù)結(jié)束程序,以免造成死循環(huán)。主函數(shù)設(shè)計(jì)地比較簡潔,只調(diào)用了一個(gè)“登陸界面函數(shù)”。[程序]intmain()(CourseExcourse;SearchC;while(1)cout?H******************************************************************************\pj?.cout?"? 學(xué)生選課系統(tǒng)*\n";cout ? "? 請(qǐng) 選 擇 操 作:*\n";cout?"* ⑴.錄入課程信息*\n";cout?"* (2).瀏覽課程信息*\n";cout?"* ⑶.查詢課程信息*\n";cout?"* (0).退出系統(tǒng)*\n";——..X, ”******************************************************************************”.しモcout?endl;inti;J

cin?i;switch(i)(Excourse.Courselnfolnput();break;Excourse.CourselnfoOutPut();break;C.chazhao();break;case0:exit(O);)}return1;)4.2登陸函數(shù)登陸函數(shù)主要使用了switch語句,以用來作為各個(gè)函數(shù)的接口。在登陸界面中有4個(gè)選項(xiàng),如圖4-2所示。選“ド后,開始錄入課程的信息。選“2”后,瀏覽課程信息。選“3”后,查詢課程信息。選“0”后,退出系統(tǒng)。學(xué)生選課系統(tǒng)?請(qǐng)選擇操作:自5自5自5亠一回ーーa亠=00學(xué)生選課系統(tǒng)?請(qǐng)選擇操作:自5自5自5亠一回ーーa亠=00く81人^^出肅查退部分代碼switch(i)(Excourse.Courselnfolnput();break;Excourse.CourselnfoOutPut();break;C.chazhao();break;case0:exit(O);4.3錄入課程信息模塊首先,創(chuàng)建一個(gè)文件輸出流對(duì)象outfile?打開文件,判斷文件是否存在。通過while設(shè)一個(gè)無限循環(huán),當(dāng)給出指定條件時(shí)退出。在循環(huán)中,調(diào)用cout函數(shù)來提示用戶輸入相應(yīng)的信息,如課程編號(hào)、名稱、課程性質(zhì)、總學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)或上機(jī)學(xué)時(shí)、學(xué)分、開課學(xué)期等等。將需要的課程輸入完畢之后,可根據(jù)提示再輸入“〇”,即可返回主菜單,重新進(jìn)行功能的選擇。課程界面如圖4-2所示。***“Ir^:2***“Ir^:2體2期ー

編ゆ屜也$子..學(xué)ー子覆分課ー課課課總^1子開宀入入入入入入入入f按囈灘息錄入XXXXXXXXXXXXXXXXXXXMXXXX圖4-2課程信息錄入界面部分代碼voidCourse::Courselnfolnput() 〃課程信息的錄入(ofstreamoutcoursefile; 〃創(chuàng)建,?個(gè)文件輸出流對(duì)象outcoursefile.open(coursefile); 〃打開文件if(!outcoursefile) 〃判斷文件是否存在{cout?"文件打開失敗!"?endl;return;}while(1) 〃無限循環(huán),給出指定條件退出{cout「ー ??********★********★★★*★★************ スロ イ主 白***********************************\n11*cout?" 按任意鍵開始信息錄入\n";cout?" 輸入q退出\n";if(getch()=='q')(break;)coutvv"請(qǐng)輸入課程編號(hào):";cin?courseNumber;coutvv"請(qǐng)輸入課程名稱:";cin?courseName;coutvv"請(qǐng)輸入課程性質(zhì):";cin?courseKind;coutvv"請(qǐng)輸入總學(xué)時(shí):";cin?coursePeriod;coutvv"請(qǐng)輸入授課學(xué)時(shí):";cin?schoolPeriod;cout<<"請(qǐng)輸入實(shí)踐學(xué)時(shí):";cin?experimentPeriod;coutvv"請(qǐng)輸入學(xué)分:";cin?credithour;cout<<"請(qǐng)輸入開課學(xué)期:";cin?courseterm;outcoursefile?courseNumber?""?courseName?""?courseKind?"16

?coursereriod?""?schoolPeriod?""?experimentPeriod?""?credithour?""?courseterm?endl;}outcoursefile.close(); 〃關(guān)閉輸出流文件瀏覽信息模塊該函數(shù)首先創(chuàng)建了輸入流文件對(duì)象infile,使用語句infile.open(file),然后定義ー個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息,用for循環(huán)保證保存不止ー門課程的信息。最后,cout輸出顯示所有保存的信息。學(xué)生界面如圖4-3所示。課程編號(hào);課程名稱;課程性質(zhì);總學(xué)時(shí);授課學(xué)時(shí);實(shí)踐學(xué)時(shí);學(xué)分所課學(xué)期?請(qǐng)選擇操作:學(xué)生選課系統(tǒng)H譚課出為查退?請(qǐng)選擇操作:學(xué)生選課系統(tǒng)H譚課出為查退圖4-3瀏覽信息界面部分代碼如下:〃課程信息的瀏覽〃創(chuàng)建輸入流文件對(duì)象〃課程信息的瀏覽〃創(chuàng)建輸入流文件對(duì)象〃打開〃判斷文件存在ifstreamincoursefile;incoursefile.open(coursefile);if(!incoursefile)cout<<"文件讀取失敗";return;}cout?"課程編號(hào)I課程名稱I課程性質(zhì)I總學(xué)時(shí)I授課學(xué)時(shí)I實(shí)踐學(xué)時(shí)I學(xué)分I開課學(xué)期\n";stringarrcourse[100][100l; 〃定義一個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息intline=0;memset(arroourse,0,sizeof(arrcourse)):〃將數(shù)組清空while(!incoursefile.eof()) 〃文件不為空的條件設(shè)置for(intj=0;j<8;j++)(incoursefile?arrcourse[line][j];)line++;for(inti=O;i<line;i++){for(intj=0;j<8;j++)(cout?" "?arrcourse[i][j])cout?endl;}incoursefile.close();}查詢信息管理查找功能,即按學(xué)分查找和按課程性質(zhì)查找,具體的實(shí)現(xiàn)如下:按課程性質(zhì)查找:創(chuàng)建輸入流文件對(duì)象infile,然后定義ー個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息,比較用戶輸入的字符和保存的信息中那些課程的性質(zhì)相對(duì)應(yīng),將相應(yīng)的課程信息進(jìn)行輸出顯示,界面設(shè)計(jì)操作圖4-4所示:圖4-4課程性質(zhì)查詢界面部分代碼如下:voidSearch::SearchByCourseKind(stringstrtemp)///課程類型查詢(ifstreamincoursefile; 〃創(chuàng)建輸入流文件對(duì)象incoursefile.open(coursefile); 〃打?開if(iincoursefile) 〃判斷文件存在{cout?"文件讀取失敗";return;}stringarrcourse[100][100];intline=0;memset(arrcourse,0,sizeof(arrcourse));while(!incoursefile.eof()){incoursefile?arrcourse[line][0]?arrcourse[line][1]?arrcourse[line][2]?arrcourse[line][3]?arrcourse[line][4]?arrcourse[line][5]?arrcourse[line][6]?arrcourse[line][7];line++;)cout?"課程編號(hào)I課程名稱I課程性質(zhì)I總學(xué)時(shí)I授課學(xué)時(shí)I實(shí)踐學(xué)時(shí)I學(xué)分I開課學(xué)期\n";for(inti=0;i<line;i++){if(arrcourse[i][2]==strtemp)cout?""?arrcourse[i][0]?"\t"?" "?arrcourse[i][1]?"M"?""?arrcourse[i][2]?"\t"?" "?arrcourse[i][3]?"\t"?" "?arrcourse[i][4]?"\t"?" "?arrcourse[i][5]?"\t"?" "<<arrcourse[i][6]?"\t"?""?arrcourse[i][7]?"\n "?endl;cout?"\n\n";

按課程學(xué)分查找:創(chuàng)建輸入流文件對(duì)象infile,然后定義ー個(gè)string類型的二維數(shù)組,用來保存從文本內(nèi)讀取的信息,比較用戶輸入的字符和保存的信息中那些課程的性質(zhì)相對(duì)應(yīng),將相應(yīng)的課程信息進(jìn)行輸出顯示,界面設(shè)計(jì)操作圖4-5所示:請(qǐng)輸入學(xué)分:課程編號(hào)!課程名稱I課程性質(zhì);總學(xué)時(shí):授課學(xué)時(shí);實(shí)踐學(xué)時(shí)I學(xué)分;開課學(xué)期選擇查詢方式:〈1>.按課程類型查詢<2>.按學(xué)分查詢<0>.返回圖4-5課程學(xué)分查詢界面部分代碼如下:voidSearch::SearchByCredithour(floattempeh)〃創(chuàng)建輸入流文件對(duì)象〃打開〃判斷文件存在〃創(chuàng)建輸入流文件對(duì)象〃打開〃判斷文件存在〃定義ー個(gè)string類型的二維數(shù)組,用來保存從incoursefile.open(coursefile);if(lincoursefile){cout?"文件讀取失敗";return;)stringarrcourse[100][100];文本內(nèi)讀取的信息intline=0;memset(arrcourse,0,sizeof(arrcourse));〃將數(shù)組清空while(!incoursefile.eof()) //文件不為空的條件設(shè)置{incoursefile?arrcourse[line][0]?arrcourse[line][1]?arrcourse[line][2]?arrcourse[line][3]?arrcourse[line][4]?arrcourse[line][5]?arrcourse[line][6]?arrcourse[line][7];〃文件流讀取數(shù)據(jù)line++;cout?"課程編號(hào)I課程名稱I課程性質(zhì)I總學(xué)時(shí)I授課學(xué)時(shí)I實(shí)踐學(xué)時(shí)I學(xué)分I開課學(xué)期\n";for(inti=0;i<line;i++){if(atof(arrcourse[i][6].c_str())==tempch)〃比較cout?""?arrcourse[i][0]?"\t"?" "?arrcourse[i][1]?'M"?""?arrcourse[i][2]?"\t"?" "?arrcourse[i][3]?"\t"?" "?arrcourse[i][4]?"\t"?" "?arrcourse[i][5]?"\t"?" "?arrcourse[i][6]?"\t"?""?arrcourse[i][7]?"\n "?endl;cout?"\n\n";incoursefile.close();為期一周的C++課程設(shè)計(jì)很快就要結(jié)束了,疲憊之余感到的是勝利的喜悅。這兩星期的時(shí)間里,我們經(jīng)過不懈的努力,完成了所選課程設(shè)計(jì)的編寫,能夠?qū)崿F(xiàn)任務(wù)書上的基本要求。在程序設(shè)計(jì)的過程中,我們將C++的知識(shí)又重新的溫習(xí)了一次,使我們的C++知識(shí)又穩(wěn)固了一次。剛開始拿到課程設(shè)計(jì)題目時(shí),認(rèn)真看了看要求,一點(diǎn)思路都沒有。在剛開始做的時(shí)候沒有想法,不知道從何做起。于是,到圖書館查看相關(guān)資料,看看別人是怎么做的,為了更加詳細(xì)的了解各部分是如何實(shí)現(xiàn)的,自己在電

溫馨提示

  • 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)論