【設(shè)計】論文基于C的課程信息管理系統(tǒng)的設(shè)計與開發(fā)_第1頁
【設(shè)計】論文基于C的課程信息管理系統(tǒng)的設(shè)計與開發(fā)_第2頁
【設(shè)計】論文基于C的課程信息管理系統(tǒng)的設(shè)計與開發(fā)_第3頁
【設(shè)計】論文基于C的課程信息管理系統(tǒng)的設(shè)計與開發(fā)_第4頁
【設(shè)計】論文基于C的課程信息管理系統(tǒng)的設(shè)計與開發(fā)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.PAGE0文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.【關(guān)鍵字】設(shè)計湖南涉外經(jīng)濟學(xué)院本科畢業(yè)論文(設(shè)計)題目基于C++的課程信息管理系統(tǒng)的設(shè)計與開發(fā)作者學(xué)院電氣與信息學(xué)院專業(yè)電子信息工程(自動化)學(xué)號指導(dǎo)教師二〇一二年湖南涉外經(jīng)濟學(xué)院畢業(yè)論文(設(shè)計)任務(wù)書學(xué)生姓名:學(xué)號:專業(yè)班級:畢業(yè)論文(設(shè)計)題目:基于C++的課程信息管理系統(tǒng)的設(shè)計與開發(fā)題目類型:軟件開發(fā)畢業(yè)論文(設(shè)計)時間:自2012年12月18開始至2012年4月24日止畢業(yè)論文(設(shè)計)內(nèi)容要求:本文需設(shè)計一個較完善的課程信息管理系統(tǒng)。論文應(yīng)文字流暢,語言準確,層次清晰,觀點明確,論據(jù)準確,論證完整,嚴密,有獨立的觀點和見解,應(yīng)具備學(xué)術(shù)性,科學(xué)性和一定的創(chuàng)新性。論文要求實事求是,尊重知識產(chǎn)權(quán),凡引用他人的觀點、統(tǒng)計數(shù)據(jù)或計算公式要有注釋,程序應(yīng)該調(diào)試正確,能實現(xiàn)一定的功能。論文書寫中應(yīng)包含以下內(nèi)容:(一)系統(tǒng)概述(二)系統(tǒng)需求分析(三)系統(tǒng)邏輯方案(四)系統(tǒng)總體結(jié)構(gòu)設(shè)計(五)系統(tǒng)詳細設(shè)計(六)結(jié)論[1]題目類型:(1)理論研究(2)實驗研究(3)工程設(shè)計(4)工程技術(shù)研究(5)軟件開發(fā)2.主要參考資料[1]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論(第三版)[M].北京高等教育出版社,2000年[2]葉蓓.SQLServer2000關(guān)系數(shù)據(jù)庫性能的分析.[M].現(xiàn)代電子技術(shù),2003,5(23)[3]王興東著.Visualc++軟件項目開發(fā)案例.[M].電子工業(yè)出版社,2004年4月[4]陳發(fā)吉著.Visualc++案例開發(fā).[M].中國水利水電出版社,2004年6月[5]譚浩強著.C程序設(shè)計教程[M].清華大學(xué)出版社,2010年10月3.畢業(yè)論文(設(shè)計)進度安排階段階段內(nèi)容起止時間一開題并撰寫開題報告2011.12.18二查閱資料,撰寫詳細的論文提綱2011.12.19--2012.2.5三程序開發(fā)并撰寫論文2012.2.6--2012.3.25四調(diào)試程序并修改論文2012.3.26--2012.4.8五再次修改論文并定稿2012.4.9--2012.4.24指導(dǎo)教師(簽章):____________日期:__________________系(教研室)主任(簽章):____________日期:__________________二級學(xué)院院長(簽章):____________日期:__________________湖南涉外經(jīng)濟學(xué)院畢業(yè)論文(設(shè)計)指導(dǎo)教師評語[建議成績:指導(dǎo)教師:年月日湖南涉外經(jīng)濟學(xué)院畢業(yè)論文(設(shè)計)答辯記錄日期:學(xué)生姓名:學(xué)號:專業(yè)班級:題目:基于C++的課程信息管理系統(tǒng)的設(shè)計與開發(fā)課程設(shè)計畢業(yè)論文(設(shè)計)答辯委員會(小組)意見:答辯成績:評定等級:答辯委員會(小組)負責(zé)人:委員(小組成員):二級學(xué)院審查意見:論文(設(shè)計)最終評定等級:______________負責(zé)人:______年___月___日摘要隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日益成熟,其強大的功能以為人們深刻認識,他已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。課程信息管理系統(tǒng)是一個不斷發(fā)展的新型學(xué)科,任何一個學(xué)校要發(fā)展要生存,要高效率的把內(nèi)部活動有機的組織起來,就必須建立與自身特點相適應(yīng)的學(xué)生課程信息管理系統(tǒng)。作為計算機應(yīng)用的一部分,使用計算機對學(xué)生課程進行管理,例如:迅速檢索、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大的提高學(xué)生課程管理系統(tǒng)的效率,也是學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。本文介紹了在VisualC++6.0環(huán)境下開發(fā)一個學(xué)生課程信息管理系統(tǒng)的過程。通過分析一個學(xué)校學(xué)生課程管理的需要,創(chuàng)建了一個行之有效計算機管理學(xué)生課程法案。文章介紹了學(xué)生課程信息管理系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、數(shù)據(jù)流程分析等;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計及代碼設(shè)計;系統(tǒng)實現(xiàn)部分說明了幾個模塊的算法及嘗試效果,本系統(tǒng)界面友好、操作簡單、美觀實用。關(guān)鍵詞:課程信息管理系統(tǒng);VC:C++:ABSTRACTWithmoreandmorewidespreadandprofoundapplicationofstudentinformationtechnologyinmanagement,theimplementofmanagementcourseinformationsystemhasbecomematureintechnologystepbystep.Studentmanagingcourseinformationsystemisanewsubject.Enterpriseneedsexistenceanddevelopment,soenterpriseactivitiesshouldbeorganizedefficientlyand organically,whichmeanstighteninguptheenterpeisemanagementandstrengtheningeffectivemanagementofanyresource(staff,finance,property,etc.)internaltheenterprise,andalsoestablishingastudentmanagementinformationsystemfittinginwithitsowncharacteristics.Thearticleintroducesthedetailedprocessofexploringastudentmanagementinformationsystemundertheenvironmentofactiveservicepage,utilizing”Top-Bottom”overallplanandastrategyaccordingto“Bottom-Top”applicationandexploitation.Thatistoestablishasetofeffectiveschemeforbuildingmanagementbycomputer.,throughanalyzingdisadvantageofbuildingstudentmanagementbyhumanresource.Thisarticleemphasizesonthreesections.Thesystemanalysissectionofstudentmanagementinformantionincludesfeasiblealysis,managementfunctionanalysis.Thesystemdesignsectionmainlyfocusesonsystemfuctiondesigndatabasedesignanddatanumberdesign.Andthestemealizationsectionseveralmajorfunction,togetherwiththemainwindowsandprogram.Thiseconomicalandpragmaticsydtemhasexpliciteinterface,withsimpleoperation.KEYWORDS:studentmanagementsystem,vc,c++目錄3.3功能需求 9第四章系統(tǒng)設(shè)計 104.1內(nèi)存的數(shù)據(jù)結(jié)構(gòu)設(shè)計(我們采用單鏈表方式來實現(xiàn)) 104.1.1抽象數(shù)據(jù)類型線性表的定義 104.1.2建立一個course類來存放課程信息 114.1.3線性表的單鏈表存儲結(jié)構(gòu) 114.2數(shù)據(jù)文件設(shè)計 124.3用戶界面設(shè)計 134.4處理過程設(shè)計 13第五章系統(tǒng)測試 155.1測試用例描述 155.2測試目的、測試方法和測試結(jié)果 15結(jié)論 19參考文獻 20致謝 21附錄:源程序代碼 22第一章前言隨著科學(xué)技術(shù)的發(fā)展,計算機領(lǐng)域不斷取得新的研究成果。計算機在代替和延伸腦力勞動方面發(fā)揮越來越重要的作用,不僅在商業(yè)、企業(yè)、銀行等起著重要作用,而且在日常生活中也越來越離不開計算機。就像在大學(xué),有很多學(xué)生的信息需要處理、保存,以及提供優(yōu)質(zhì)的服務(wù),此時計算機顯得尤為重要。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識。作為計算機應(yīng)用的一部分,使用計算機對學(xué)生課程信息進行管理,有著手工管理所無法比擬的優(yōu)點。所以,現(xiàn)今絕大部分大學(xué)都使用了計算機來規(guī)劃整個學(xué)生的信息、提供選課、網(wǎng)絡(luò)教學(xué)等。課程管理信息系統(tǒng)是一個以人為主導(dǎo),利用計算機硬件、軟件、網(wǎng)絡(luò)通信設(shè)備以及其他辦公設(shè)備,進行信息的收集、傳輸、加工、儲存、更新和維護,以學(xué)校戰(zhàn)略競優(yōu)、提高效益和效率為目的,支持學(xué)校的高層決策、中層控制、基層運作的集成化的人機系統(tǒng)。而基于C++的課程信息管理系統(tǒng)則隨著計算機和網(wǎng)絡(luò)的高速發(fā)展,使得使用計算機來管理課程信息成為發(fā)展趨勢。由于長期以來學(xué)校使用的是人工的形式管理課程信息,從而使基于C++的課程信息管理系統(tǒng)成為學(xué)校管理者不可缺少的一部分,為使用者提供了充足的信息和快捷的查詢手段。基于C++的課程信息管理系統(tǒng)的設(shè)計與開發(fā),通過利用C++語言編程基礎(chǔ)和VC開發(fā)平臺的使用完成。1.1C++語言介紹及其相關(guān)趨勢C++這個詞在中國大陸的程序員圈子中通常被讀做“C加加”,而西方的程序員通常讀做“Cplusplus”,“CPP”。它是一種使用非常廣泛的計算機編程語言。C++是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計語言。它支持過程化程序設(shè)計、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計、制作圖標等等泛型程序設(shè)計等多種程序設(shè)計風(fēng)格。1.1.1簡史美國AT&T貝爾實驗室的本賈尼·斯特勞斯特盧普(BjarneStroustrup)博士在20世紀80年代初期發(fā)明并實現(xiàn)了C++(最初這種語言被稱作“CwithClasses”)。一開始C++是作為C語言的增強版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。虛函數(shù)(virtualfunction)、運算符重載(operatoroverloading)、多重繼承(multipleinheritance)、模板(template)、異常(exception)、RTTI、命名空間(namespace)逐漸被加入標準。1998年國際標準組織(ISO)頒布了C++程序設(shè)計語言的國際標準ISO/IEC1988-1998。C++是具有國際標準的編程語言,通常稱作ANSI/ISOC++。1998年是C++標準委員會成立的第一年,以后每5年視實際需要更新一次標準。C++0x最終國際投票已于2011年8月10日結(jié)束,并且所有國家都投出了贊成票,C++0x已經(jīng)毫無疑義地成為正式國際標準。先前被臨時命名為C++0x的新標準將被稱為C++2011。C++2011將取代現(xiàn)行的C++標準ISO/IEC14882,它公開于1998年并于2003年更新,通稱C++98以及C++03。國際標準化組織于2011年1.1.2組成部分根據(jù)EffectiveC++第三版第一條款的描述,現(xiàn)在C++由以下四個“子語言”組成:1、C子語言。C++支持C語言的幾乎全部功能,主要是c89的部分,在語法上與C語言僅有極微妙的差別(如括號表達式的左右值性,具體請參考C++標準文獻)。2、面向?qū)ο蟮腃++語言。C++語言原本不具備面向?qū)ο蟮脑O(shè)計功能,然而隨著面向?qū)ο缶幊痰母拍畹奶岢鲆约叭鏙ava等語言的發(fā)展成熟,C++語言也開發(fā)出了支持面向?qū)ο蠊δ艿陌姹尽?、泛型編程語言。C++強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。4、STL(C++標準模板庫,StandardTemplateLibrary)。隨著STL的不斷發(fā)展,它已經(jīng)逐漸成為C++程序設(shè)計中不可或缺的部分,其效率可能比一般的native代碼低些,但是其安全性與規(guī)范性使它大受歡迎。此外,包含在TR1等中的C++0x將實現(xiàn)的新功能在開發(fā)和測試中。1.1.3代碼性能人們一般認為,使用Java或C#的開發(fā)成本比C++低。但是,如果你能夠充分分析C++和這些語言的差別,會發(fā)現(xiàn)這句話的成立是有條件的。這個條件就是:軟件規(guī)模和復(fù)雜度都比較小。如果不超過3萬行有效代碼(不包括生成器產(chǎn)生的代碼),這句話基本上還能成立。否則,隨著代碼量和復(fù)雜度的增加,C++的優(yōu)勢將會越來越明顯。造成這種差別的就是C++的軟件工程性。1.1.4優(yōu)點C++在一定程度上可以和C語言很好的結(jié)合,甚至目前大多數(shù)C語言程序是在C++的集成開發(fā)環(huán)境中完成的。C++相對眾多的面向?qū)ο蟮恼Z言,具有相當高的性能。C++引入了面向?qū)ο蟮母拍?,使得開發(fā)人機交互類型的應(yīng)用程序更為簡單、快捷。很多優(yōu)秀的程序框架包括MFC、QT、wxWidgets就是使用的C++。1.2VisualC++6.0介紹VisualC++6.0,簡稱VC或者VC6.0,是微軟推出的一款C++編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。VisualC++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出VisualC++1.0后,隨著其新版本的不斷問世,VisualC++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了VisualC++.NET(VisualC++7.0),但它的應(yīng)用有很大的局限性,只適用于Windows2000、WindowsXP和WindowsNT4.0。所以實際中,更多的是以VisualC++6.0為平臺。特色:VisualC++6.0由Microsoft開發(fā),它不僅是一個C++編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)。VisualC++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lassWizard等開發(fā)工具。這些組件通過一個名為DeveloperStudio的組件集成為和諧的開發(fā)環(huán)境。Microsoft的主力軟件產(chǎn)品。VisualC++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出VisualC++1.0后,隨著其新版本的不斷問世,VisualC++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了VisualC++.NET(VisualC++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows2000,WindowsXP和WindowsNT4.0。所以實際中,更多的是以VisualC++6.0為平臺。VisualC++6.0以擁有“語法高亮”,自動編譯功能以及高級除錯功能而著稱。比如,它允許用戶進行遠程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動正在調(diào)試的程序。其編譯及創(chuàng)建預(yù)編譯頭文件(stdafx.h)、最小重建功能及累加連結(jié)(link)著稱。這些特征明顯縮短程序編輯、編譯及連結(jié)的時間花費,在大型軟件計劃上尤其顯著。缺點:由于C++是由C語言發(fā)展起來的,也支持C語言的編譯。6.0版本是使用最多的版本,很經(jīng)典。最大的缺點是對于模版的支持比較差。現(xiàn)在最新補丁為SP6,推薦安裝,否則易出現(xiàn)編譯時假死狀態(tài)。僅支持Windows操作系統(tǒng)。目前發(fā)現(xiàn)與windows7兼容性不好,安裝成功后可能會出現(xiàn)無法打開cpp文件的現(xiàn)象。DeveloperStudio:這是一個集成開發(fā)環(huán)境,[1]我們?nèi)粘9ぷ鞯?9%都是在它上面完成的,再加上它的標題赫然寫著“MicrosoftVisualC++”,所以很多人理所當然的認為,那就是VisualC++了。其實不然,雖然DeveloperStudio提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕后英雄后面會介紹。我們也知道,DeveloperStudio并不是專門用于VC的,它也同樣用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。所以不要把DeveloperStudio當成VisualC++,它充其量只是VisualC++的一個殼子而已。這一點請切記!MFC:從理論上來講,MFC也不是專用于VisualC++,BorlandC++,C++Builder和SymantecC++同樣可以處理MFC。同時,用VisualC++編寫代碼也并不意味著一定要用MFC,只要愿意,用VisualC++來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。不過,VisualC++本來就是為MFC打造的,VisualC++中的許多特征和語言擴展也是為MFC而設(shè)計的,所以用VisualC++而不用MFC就等于拋棄了VisualC++中很大的一部分功能。但是,VisualC++也不等于MFC。PlatformSDK:這才是VisualC++和整個VisualStudio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,PlatformSDK是以MicrosoftC/C++編譯器為核心(不是VisualC++,看清楚了),配合MASM,輔以其他一些工具和文檔資料。上面說到DeveloperStudio沒有編譯程序的功能,那么這項工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構(gòu)成VisualStudio的基石。1.3論文目的及主要的完成工作由于長期以來學(xué)校使用的是人工的形式管理課程信息,從而使基于C++的課程信息管理系統(tǒng)成為學(xué)校管理者不可缺少的一部分,為使用者提供了充足的信息和快捷的查詢手段?;贑++的課程信息管理系統(tǒng),總的目標是提高學(xué)生課程管理工作的效率,圍繞此管理所需要的課程信息、任課教師信息、所選課程信息進行管理及維護。學(xué)生可以通過此系統(tǒng)進行課程查詢功能。系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)學(xué)生課程信息查詢和管理員管理課程信息課程代碼、課程名稱、上課教室、授課教師、上課時刻以及具體時間,并實現(xiàn)對數(shù)據(jù)記錄的增加、修改、刪除、查詢(查詢應(yīng)能按不同數(shù)據(jù)項進行)。課程信息管理系統(tǒng)基本上有各種語言編寫的,也有幾種語言混合編寫的,例如JSP+JavaBean+Servlet的課程管理系統(tǒng)。但由于C++語言的簡單明了,可靠性速度性方面有明顯的優(yōu)勢,故本論文采取了基于C++的課程信息管理系統(tǒng)。本文介紹了在VisualC++6.0環(huán)境下開發(fā)一個學(xué)生課程信息管理系統(tǒng)的過程。通過分析一個學(xué)校學(xué)生課程管理的需要,創(chuàng)建了一個行之有效計算機管理學(xué)生課程法案。文章介紹了學(xué)生課程信息管理系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、數(shù)據(jù)流程分析等;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計及代碼設(shè)計;系統(tǒng)實現(xiàn)部分說明了幾個模塊的算法及測試效果,本系統(tǒng)界面友好、操作簡單、美觀實用。第二章系統(tǒng)概述通過利用C++語言編程基礎(chǔ)和VC開發(fā)平臺的使用,對課程信息管理系統(tǒng)的開發(fā)與設(shè)計,實現(xiàn)了具有相對功能齊全的程序。在課程信息管理系統(tǒng)的設(shè)計與實現(xiàn)程序中,用鏈表做存儲結(jié)構(gòu)能夠?qū)崿F(xiàn)課程信息的插入、查詢、修改以及刪除等操作,并且運用C++中的文件輸入輸出流來實現(xiàn)對文件信息的存儲,基本上能夠?qū)崿F(xiàn)所要求的功能??紤]到設(shè)計的要求,我把整個程序分為兩個大的部分:學(xué)生部分和管理員部分。其中課程信息包含有課程代碼、課程名字、上課教師、上課時間、上課地點,具體結(jié)構(gòu)如下:圖2.1程序結(jié)構(gòu)圖基于C++課程信息管理系統(tǒng)有兩大特點:1操作方便??梢苑奖愕挠斡[整個系統(tǒng)文件及目錄,減少查詢時間。2集中管理。通過單一的穩(wěn)定的管理界面,集中管理用戶的操作,減少冗余,降低維護成本。整個的開發(fā)和設(shè)計過程中,基于以上特點我設(shè)計的C++的課程信息管理系統(tǒng)功能組成大致的有以下組成部分:2.1課程管理系統(tǒng)的功能學(xué)生課程管理系統(tǒng)的功能包括:學(xué)生的操作功能管理員的操作功能2.2學(xué)生的操作功能學(xué)生只是利用此系統(tǒng)進行與自己有關(guān)的信息查詢,不能操作和修改其他信息,學(xué)生所具有的操作功能如下:(1)學(xué)生登錄系統(tǒng)后,為了保證系統(tǒng)的安全性,學(xué)生只能瀏覽課程信息。(2)學(xué)生利用此系統(tǒng)查看單門課程所有信息。(3)學(xué)生利用此系統(tǒng)查看所有課程所有信息。2.3管理員的操作功能管理員權(quán)限最大,可以對學(xué)生、班級、課程等情況進行統(tǒng)一的管理,其中能修改的信息有課程代碼、課程名字、上課教師、上課時間、上課地點,其中詳細功能細分如下:(1)上課的時間的添加、修改、刪除。(2)上課的地點的添加、修改、刪除。(3)上課老師信息的添加、修改、刪除。(4)學(xué)校基本課程的瀏覽;學(xué)校基本課程的添加;學(xué)?;菊n程修改、刪除。(5)學(xué)校對所設(shè)課程進行教師分配。(6)為了保證系統(tǒng)的安全性,除了管理員用戶,不允許其他用戶進入該模塊。第三章系統(tǒng)需求分析3.1問題說明運用所學(xué)知識,在內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計、數(shù)據(jù)文件設(shè)計、代碼設(shè)計、輸入/輸出設(shè)計、用戶界面設(shè)計、處理過程設(shè)計的基礎(chǔ)上,結(jié)合鏈表組織,數(shù)據(jù)文件用文本文件,用戶界面用字符界面等設(shè)計一個課程信息管理系統(tǒng),包括課程代碼、課程名稱、上課教室、授課教師、上課時刻以及具體時間,并實現(xiàn)對數(shù)據(jù)記錄的增加、修改、刪除、查詢。通過調(diào)查,要求系統(tǒng)有以下功能:1由于操作人員的計算機人知識普遍較差,要求有簡單的操作界面。2由于該系統(tǒng)的使用對象較多,要求有較好的管理權(quán)限。3原始數(shù)據(jù)修改簡單方便,支持多條件查詢和修改。4在相應(yīng)的權(quán)限下,刪除數(shù)據(jù)方便簡單,數(shù)據(jù)穩(wěn)定性好。5方便的數(shù)據(jù)查詢,支持多條件查詢。3.2數(shù)據(jù)需求由于基于C++的課程信息管理系統(tǒng)采用鏈表結(jié)構(gòu)以及考慮到實際需求的需要,另外綜合C++語言開發(fā)人機交互類型的應(yīng)用程序更為簡單、快捷的特點,我設(shè)計了以下幾個相對應(yīng)部分所需的數(shù)據(jù),如課程代碼、課程名稱、上課教室、授課教師、上課時刻以及具體時間等。具體數(shù)據(jù)類型以及相對應(yīng)的功能表如下表3.1:表3.1數(shù)據(jù)需求char*課程代碼char*課程名稱char*上課教室char*授課教師char*上課時間char*具體時間3.3功能需求參考我們實際生活需要以及程序的設(shè)計需要,每個信息部分都能執(zhí)行幾個功能(增加、修改、刪改和查詢),并且每個功能在執(zhí)行相關(guān)課程時,都能通過3個查詢方式(如圖3.1所示)查找到所查課程。每個功能及其相關(guān)的作用如表3.2:表3.2功能需求增加添加課程信息修改對查找到的課程信息進行修改刪除刪除查找到得課程信息查詢按課程代碼或課程名稱或授課教師查詢課程信息圖3.1第四章系統(tǒng)設(shè)計4.1內(nèi)存的數(shù)據(jù)結(jié)構(gòu)設(shè)計(我們采用單鏈表方式來實現(xiàn))包括內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計、數(shù)據(jù)文件設(shè)計、代碼設(shè)計、輸入/輸出設(shè)計、用戶界面設(shè)計、處理過程設(shè)計。要求內(nèi)存數(shù)據(jù)用鏈表組織,數(shù)據(jù)文件用文本文件,用戶界面用字符界面。至少實現(xiàn)數(shù)據(jù)記錄的增加、修改、刪除、查詢(查詢應(yīng)能按不同數(shù)據(jù)項進行)。4.1.1抽象數(shù)據(jù)類型線性表的定義對抽象數(shù)據(jù)類型線性表的定義如下:ADTStack{數(shù)據(jù)對象:D={ai|ai}數(shù)據(jù)關(guān)系:R1={<ai-1,ai>|ai-1,ai}基本操作:InitList(&L)操作結(jié)果:構(gòu)造一個空的線性表L。DestroyList(&L)初始條件:線性表L已存在。操作結(jié)果:線性表L被銷毀。ClearList(&L)初始條件:線性表L已存在。操作結(jié)果:將線性表L重置為空表。ListEmpty(L)初始條件:線性表L已存在。操作結(jié)果:若線性表為空表,則返回TRUE,否則FALSE。ListLength(L)初始條件:線性表L已存在。操作結(jié)果:返回L的元素個數(shù)。ListInsert(&L,i,e)初始條件:線性表已存在,1<=i<=ListLength(L)+1。操作結(jié)果:在L中第i個位置之前插入元素e,L的長度加1。ListDelete(&L,i,&e)初始條件:線性表已存在且非空,1<=i<=ListLength(L)+1。操作結(jié)果:刪除L中第i個元素。并用e返回其值,L的長度減1。}ADTStack4.1.2建立一個course類來存放課程信息我通過建立一個course類來存放課程信息,來實現(xiàn)課程信息的存儲。代碼如下所示:classcourse{ private: charnumber[MAXINT]; //課程代號; charname[MAXINT]; //課程名字; charclassroom[MAXINT];//上課教室; charteacher[MAXINT]; //授課教師 charday[MAXINT]; //時刻時間 chartime[MAXINT]; //授課具體時間 public: course(){} voidInitCourse();//課程信息初始化 voidAddCourse();//添加課程信息 longGetNumber();//獲得課程編號 intCompare(charch[]);//查找課程名與ch[]相同的課程 voidPrintCourse();//打印課程信息};4.1.3線性表的單鏈表存儲結(jié)構(gòu)為了表示每個數(shù)據(jù)元素ai與其直接后繼數(shù)據(jù)元素ai+1之間的邏輯關(guān)系,對數(shù)據(jù)元素ai來說,除了存儲其本身的信息之外,還需要存儲一個指示其直接后繼的信息(即直接后繼的存儲位置)。把存儲數(shù)據(jù)元素信息的域稱為數(shù)據(jù)域,把存儲直接后繼位置的域稱為指針域。指針域中存儲的信息稱作指針鏈,這兩部分信息組成數(shù)據(jù)元素ai的存儲映象,稱為結(jié)點(Node)。

n個結(jié)點(ai的存儲映像)鏈結(jié)成為一個鏈表,即為線性表(ai,a2,…,an)的鏈式存儲結(jié)構(gòu),因為此鏈表的每一個結(jié)點中只包含一個指針域,所以叫做單鏈表。鏈表中第一個結(jié)點的存儲位置叫做頭指針。若將鏈表的左端固定,鏈表不斷向右延伸,這種建立鏈表的方法稱為尾插法。尾插法建立鏈表時,頭指針固定不動,故必須設(shè)立一個搜索指針,向鏈表右邊延伸,則整個算法中應(yīng)設(shè)立三個鏈表指針,即頭指針head、搜索指針p2、申請單元指針pl。尾插法最先得到的是頭結(jié)點。由于對數(shù)據(jù)的存儲采用線性表的單鏈表存儲結(jié)構(gòu)和使用尾插法經(jīng)行初始化,代碼如下所示:typedefstructLNode{ coursedata; structLNode*next;}LNode,*LinkList;LNode*first=NULL;voidInitLinkList(){//鏈表括初始化 inti; for(i=1;i<=Total;i++){//使用尾插法經(jīng)行初始化 coursecs; cs.InitCourse(); LNode*newlink=newLNode; newlink->data=cs; newlink->next=first; first=newlink;}}4.2數(shù)據(jù)文件設(shè)計我們采用C++中文件輸出流的方式來對文件進行設(shè)計,將原始信息存放在文檔in.txt中,通過增加、刪除等操作,最后通過輸入輸出流打印所有課程信息,存放在文檔out.txt中。代碼如下:ifstreamfin("in.txt");ofstreamfout("out.txt");voidPrintItem(){//打印所有課程信息 cout<<"\n當前所有"<<Total<<"門課程的信息如下:"<<endl;//控制臺輸出 cout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; fout<<"\n當前所有"<<Total<<"門課程的信息如下:"<<endl;//外部文件輸出 fout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; LNode*current=first; while(current!=NULL){ current->data.PrintCourse(); current=current->next; }}4.3用戶界面設(shè)計用戶界面是人與機之間交流、溝通的層面。從深度上分為兩個層次:感覺的和情感的。感覺層次指人和機器之間的視覺、觸覺、聽覺層面;情感層次指人和機器之間由于溝通所達成的融洽關(guān)系??傊脩艚缑嬖O(shè)計是以人為中心,使產(chǎn)品達到簡單使用和愉悅使用的設(shè)計。為了置界面于用戶的控制之下;減少用戶的記憶負擔(dān);保持界面的一致性,利用C++中I/O格式化,我設(shè)計用戶界面如下圖所示:學(xué)生課程管理系統(tǒng)的功能包括:學(xué)生的操作功能管理員的操作功能4.4處理過程設(shè)計通過循環(huán)語句使菜單界面循環(huán)顯示,每次執(zhí)行命令完后都會顯示菜單界面,知道選擇退出命令,系統(tǒng)停止后不再顯示,并且加入了刷屏函數(shù),不至于在界面上出現(xiàn)過多的信息,使界面更加簡潔,明了。代碼如下:voidManager_MemuList(){//管理員操作界面 cout<<endl; cout<<"\n\t\t歡迎進入管理員系統(tǒng)\n"; starline(); cout<<"*"<<setw(10)<<"0."<<setw(20)<<"返回上級菜單"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"1."<<setw(20)<<"添加課程信息"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"2."<<setw(20)<<"查看課程信息"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"3."<<setw(20)<<"修改課程信息"<<setw(9)<<"*"<<endl;cout<<"*"<<setw(10)<<"4."<<setw(20)<<"刪除課程信息"<<setw(9)<<"*"<<endl;cout<<"*"<<setw(10)<<"5."<<setw(20)<<"查看所有課程信息"<<setw(9)<<"*"<<endl; starline();}voidManager(LinkListL){//管理員操作系統(tǒng) intopt=1; while(opt!=0){//管理員操作界面 Manager_MemuList(); cout<<"\t\t請輸入下面操作動作的序號:"; cin>>opt; switch(opt){ case0:cout<<"\n返回上級菜單"<<endl;break; case1:InsertLinkList();system("cls");break; case2:system("cls");SearchCourse();break;//查看指定課程情況 case3:system("cls");ChangeItem();system("cls");break;//修改課程信息 case4:system("cls");DelItem();system("cls");break;//刪除課程 case5:system("cls");PrintItem();;break;//打印課程 default:break;}}}第五章系統(tǒng)測試5.1測試用例描述為了以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷,我根據(jù)開發(fā)各階段的需求、設(shè)計等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計測試用例,并利用以下這些實例來運行程序,以便發(fā)現(xiàn)錯誤。系統(tǒng)測試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟,是對系統(tǒng)開發(fā)過程中的系統(tǒng)分析系統(tǒng)設(shè)計和實施的最后復(fù)查。根據(jù)測試的概念和目的,在進行信息系統(tǒng)測試時遵循以基本原則。不僅要確定輸入數(shù)據(jù),而且根據(jù)系統(tǒng)功能確定預(yù)期的輸出結(jié)果,將實際輸出結(jié)果與預(yù)期結(jié)果相比較就能發(fā)現(xiàn)測試對象是否正確。原有課程信息如下表:1001數(shù)據(jù)結(jié)構(gòu)5-504劉春周二1、2節(jié)1002大學(xué)英語5-606方新洪周一1、2節(jié)1003通信原理5-606許毅周四5、6節(jié)1004組成原理5-415姚寒冰周三3、4節(jié)1005概論1-602王盛開周五1、2節(jié)1006體育操場王炎軍周五3、4節(jié)添加課程信息如下:1007軍事理論5-401王希征周四3、4節(jié)查看課程信息:分別以課程編號、課程名稱和授課教師查詢,選取的實例如下:1001數(shù)據(jù)結(jié)構(gòu)5-504劉春周二1、2節(jié)修改課程信息:將1006號信息中的授課老師“王炎軍”修改為“王彥軍”。刪除課程信息:刪除1005號課程信息;最后將操作完畢后的課程信息打印出來。5.2測試目的、測試方法和測試結(jié)果不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能確定預(yù)期的輸出結(jié)果。將實際輸出結(jié)果與預(yù)期結(jié)果相比較就能發(fā)現(xiàn)測試對象是否正確。不僅要檢驗程序是否做了該做的事,還要檢驗程序是否做了不該做的事。多余的工作會帶來副作用,影響程序的效率,有時會帶來潛在的危害或錯誤不僅要設(shè)計有效合理的輸入條件,也要包含不合理、失效的輸入

條件。測試的時候,人們往往習(xí)慣按照合理的、正常的情況進行測試,而忽略了對異常、不合理、意想不到的情況進行測試,而這些可能就是隱患。因此在測試時,我不僅會利用測試例子進行反復(fù)測試,也會對異常、不合理、意想不到的情況進行測試,檢驗程序是否做了該做的事,還要檢驗程序是否做了不該做的事。系統(tǒng)測試是保證系統(tǒng)質(zhì)量和可靠性的關(guān)鍵步驟,是對系統(tǒng)開發(fā)過程中的系統(tǒng)分析、系統(tǒng)設(shè)計和實施的最后復(fù)查??偣策M行了查詢測試、添加測試、修改測試、刪除測試、修改測試。查詢選項:(可以進行通過按課程代碼或課程名稱或授課教師查詢課程信息多項選擇,效果一樣,就不一一展示)添加課程信息:(輸入“第幾節(jié)課:3、4節(jié)”時會刷屏)添加課程信息如下:1007軍事理論5-401王希征周四3、4節(jié)查看課程信息:(這里采用選取編號查看,另外兩種查看方式得出的結(jié)果一樣)查看課程信息:分別以課程編號、課程名稱和授課教師查詢,選取的實例如下:1001數(shù)據(jù)結(jié)構(gòu)5-504劉春周二1、2節(jié)修改課程信息:(輸入最后一項會刷屏)修改課程信息:將1006號信息中的授課老師“王炎軍”修改為“王彥軍”。刪除課程信息刪除1005號課程信息;最后將操作完畢后的課程信息打印出來。輸入y后,代號為1005的課程信息被刪除并且刷屏。查看課程信息:最后的輸出結(jié)果存放在out.txt中,以便使用。結(jié)論本文介紹了在VisualC++6.0環(huán)境下開發(fā)一個學(xué)生課程信息管理系統(tǒng)的過程。通過分析一個學(xué)校學(xué)生課程管理的需要,創(chuàng)建了一個行之有效計算機管理學(xué)生課程法案。文章介紹了學(xué)生課程信息管理系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、數(shù)據(jù)流程分析等;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計及代碼設(shè)計;系統(tǒng)實現(xiàn)部分說明了幾個模塊的算法及測試效果,本系統(tǒng)界面友好、操作簡單、美觀實用。由于課程信息管理系統(tǒng)目標的一致,盡管各種語言的的差異,但我認為在在應(yīng)用領(lǐng)域,基于C++課程信息管理系統(tǒng)會更加應(yīng)用到更廣泛的應(yīng)用?;贑++課程信息管理系統(tǒng)有兩大特點:1操作方便??梢苑奖愕挠斡[整個系統(tǒng)文件及目錄,減少查詢時間。2集中管理。通過單一的穩(wěn)定的管理界面,集中管理用戶的操作,減少冗余,降低維護成本。課程信息管理系統(tǒng)的設(shè)計與實現(xiàn)程序中,用鏈表做存儲結(jié)構(gòu)能夠?qū)崿F(xiàn)課程信息的插入、查詢、修改以及刪除等操作,并且運用C++中的文件輸入輸出流來實現(xiàn)對文件信息的存儲,基本上能夠?qū)崿F(xiàn)所要求的功能。要求我們綜合到目前為止所學(xué)知識來決絕問題,并不是單一的運用C++或是數(shù)據(jù)結(jié)構(gòu)來解題。我不僅加深了對現(xiàn)階段學(xué)習(xí)的知識的了解而且還鞏固了以前所學(xué)的知識,學(xué)會了融會貫通,對個人來說是一次極大的鍛煉和提高。由本次論文題目——基于的課程信息管理系統(tǒng)的設(shè)計與開發(fā)所開發(fā)出來的課程信息管理系統(tǒng),由于在C++平臺上實現(xiàn),所以界面不是很美觀,功能不是很齊全。但是對于課程信息管理系統(tǒng)來說,由其他開發(fā)平臺或單個平臺或多個平臺聯(lián)合開發(fā)出來的軟件具有更明顯的優(yōu)勢。這次的開發(fā)證明C++語言的方面簡潔、方便等優(yōu)點和C++由于語言本身過度復(fù)雜,這甚至使人類難于理解其語義的缺點??墒沁@阻止不了課程信息管理系統(tǒng)在學(xué)校的應(yīng)用。課程管理系統(tǒng)的功能已經(jīng)能滿足各類學(xué)校教務(wù)管理的需要,使用課程管理系統(tǒng)進行信息管理與傳統(tǒng)手工管理相比,它具有明顯的有點,如:編排快速、調(diào)整發(fā)辮可靠性高、保密性好、成本低等。這些有點不但提高了各類學(xué)校教務(wù)管理的效率,而且使得資料的管理更加安全。隨著現(xiàn)代教育的發(fā)展,課程信息管理系統(tǒng)在各類學(xué)校的應(yīng)用必將更加廣泛。參考文獻[1]閔聯(lián)營、何克右主編.C++程序設(shè)計[M].清華大學(xué)出版社,2010年[2]鐘珞主編.計算機科學(xué)導(dǎo)論(第二版)[M].武漢:武漢理工大學(xué)出版社,2004年[3]嚴蔚敏、吳偉民主編.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]..清華大學(xué)出版社,2007年[4]薩師煊,王珊著.數(shù)據(jù)庫系統(tǒng)概論(第三版)[M]..高等教育出版社,2000年[5]葉蓓著.SQLServer2000關(guān)系數(shù)據(jù)庫性能的分析[N]..現(xiàn)代電子技術(shù),2003年第23期[6]王興東、尹立民著.Visualc++軟件項目開發(fā)實例[M]..電子工業(yè)出版社,2004年[7]林青松、胡方霞、劉杰、陳發(fā)吉著.Visualc++案例開發(fā)[M]..中國水利水電出版社,2004年[8]譚浩強著.C程序設(shè)計教程[M]..清華大學(xué)出版社,2010年[9]呂鳳翥編著.C++語言基礎(chǔ)教程[M]..清華大學(xué)出版社,2004年[10]劉娜娜等編著.C++語言程序設(shè)計[M]..北京:北京航空航天大學(xué)出版社,2010年[11]張基溫編著.C+程序設(shè)計基礎(chǔ)例題與習(xí)題[M]..高等教育出版社,1998年[12]NicolaiM.Josuttis.TheC++StandardLibrary:ATutorialandReference[M]..August06,1999年[13]BruceEckel.ThinkinginC++[M]..PrenticeHall,2000年[14]JohnLakos.Large-ScaleC++SoftwareDesign[M]..Addison-WesleyProfessional,1996年[15](美)斯特勞斯特魯普,王剛譯.C++程序設(shè)計原理與實踐[M]..機械工業(yè)出版社,2010年[16]成穎主編.C++程序設(shè)計語言[M]..東南大學(xué)出版社,2008年[17](美)BrianW.Kernighan,DennisM.Ritchie.徐寶文李志譯.C程序設(shè)計語言[M]..機械工業(yè)出版社,2004年[18]PeitelHM,DeitelPJ.CHowtoprogram.SecondEdition.蔣才鵬等譯.C語言設(shè)計教程[M]..北京:機械工業(yè)出版社,2000年[19]BrianW.Kernighan&DennisM.Ritchie.TheCProgrammingLanguage,SecondEdition[M]..北京:機械工業(yè)出版社,2007年[20]楊琦主編.C/C++語言程序設(shè)計案例教程[M]..清華大學(xué)出版社,2010致謝大學(xué)四年學(xué)習(xí)時光已經(jīng)接近尾聲,在此我想對我的母校,我的父母、親人們,我的老師和同學(xué)們表達我由衷的謝意。感謝我的家人對我大學(xué)四年學(xué)習(xí)的默默支持;感謝我的母校湖南涉外經(jīng)濟學(xué)院給了我在大學(xué)四年深造的機會,讓我能繼續(xù)學(xué)習(xí)和提高;感謝*****班的老師和同學(xué)們四年來的關(guān)心和鼓勵。老師們課堂上的激情洋溢,課堂下的諄諄教誨;同學(xué)們在學(xué)習(xí)中的認真熱情,生活上的熱心主動,所有這些都讓我的四年充滿了感動。這次畢業(yè)論文設(shè)計我得到了很多老師和同學(xué)的幫助,其中我的論文指導(dǎo)老師彭瓊老師對我的關(guān)心和支持尤為重要。每次遇到難題,我最先做的就是向彭老師尋求幫助,而彭老師每次不管忙或閑,總會抽空來找我面談,然后一起商量解決的辦法。彭老師平日里工作繁多,但我做畢業(yè)設(shè)計的每個階段,從選題到查閱資料,論文提綱的確定,中期論文的修改,后期論文格式調(diào)整等各個環(huán)節(jié)中都給予了我悉心的指導(dǎo)。這幾個月以來,彭老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時還在思想給我以無微不至的關(guān)懷,在此謹向彭老師致以誠摯的謝意和崇高的敬意。感謝在整個畢業(yè)設(shè)計期間和我密切合作的同學(xué),和曾經(jīng)在各個方面給予過我?guī)椭幕锇閭?,在此,我再一次真誠地向幫助過我的老師和同學(xué)表示感謝。附錄:源程序代碼#include<iostream>#include<fstream>#include<string>#include<stdlib.h>//foratoi();#include<stdio.h>//forgetchar();#include<iomanip>//forsetw();usingnamespacestd;intTotal=6;//設(shè)定Total為全局變量,用來記錄當前課程總數(shù)ifstreamfin("in.txt");ofstreamfout("out.txt");constintMAXINT=100;classcourse{ private: charnumber[MAXINT]; //課程代號 charname[MAXINT]; //課程名字 charclassroom[MAXINT];//上課教室 charteacher[MAXINT]; //授課教師 charday[MAXINT];//時刻時間 chartime[MAXINT];//授課具體時間 public: course(){} voidInitCourse(){//課程信息初始化 fin>>number; fin>>name; fin>>classroom; fin>>teacher; fin>>day; fin>>time;} voidAddCourse(){//添加課程信息 cout<<endl<<"\t課程代號為:"; cin>>number; cout<<"\t課程名為:"; cin>>name; cout<<"\t上課教室:"; cin>>classroom; cout<<"\t授課教師:"; cin>>teacher; cout<<"\t上課時間:"; cin>>day; cout<<"\t第幾節(jié)課:"; cin>>time;} longGetNumber(){//獲得課程編號 returnatoi(number);} intCompare(charch[]){//查找課程名與ch[]相同的課程 inti=0; charc='y'; //intt=strcmp(c_name,ch);//t=0時表示name=ch if(strcmp(name,ch)==0)return1;//name=ch返回1; if(strcmp(number,ch)==0)return1;//number=ch返回1; if(strcmp(teacher,ch)==0)return1;//teacher=ch返回1 return0;} voidPrintCourse(){//打印課程信息 cout<<setw(10)<<number<<setw(10)<<name<<setw(10)<<classroom<<setw(10)<<teacher<<setw(10)<<setw(10)<<day<<setw(10)<<time<<setw(10)<<endl; fout<<setw(10)<<number<<setw(10)<<name<<setw(10)<<classroom<<setw(10) <<teacher<<setw(10)<<setw(10)<<day<<setw(10)<<time<<setw(10)<<endl;}};typedefstructLNode{//使用單向鏈表作為存儲結(jié)構(gòu) coursedata; structLNode*next;}LNode,*LinkList;LNode*first=NULL;voidManager(LinkListL);voidManager_MemuList();voidInitLinkList(){//鏈表初始化 inti; for(i=1;i<=Total;i++){//使用尾插法經(jīng)行初始化 coursecs; cs.InitCourse(); LNode*newlink=newLNode; newlink->data=cs; newlink->next=first; first=newlink;}}voidInsertLinkList(){//添加課程 coursecs; cs.AddCourse(); LNode*newlink=newLNode; newlink->data=cs; newlink->next=first; first=newlink; Total++;//課程總數(shù)加1; cout<<"\n添加完畢"<<endl;}voidPrint(){//查詢所有課程信息 system("cls"); cout<<"\n當前所有"<<Total<<"門課程的信息如下:"<<endl;//控制臺輸出 cout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; fout<<"\n當前所有"<<Total<<"門課程的信息如下:"<<endl;//外部文件輸出 fout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; LNode*current=first; while(current!=NULL){ current->data.PrintCourse(); current=current->next;}}voidPrintItem(){//打印所有課程信息 cout<<"\n當前所有"<<Total<<"門課程的信息如下:"<<endl;//控制臺輸出 cout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; fout<<"\n當前所有"<<Total<<"門課程的信息如下:"<<endl;//外部文件輸出 fout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; LNode*current=first; while(current!=NULL){ current->data.PrintCourse(); current=current->next; }}intSearchCourse(){//尋找課程名為"ch"的全部信息 inti=0; intopt; charch[MAXINT]; cout<<"\n\t\t\t\t查詢的項目菜單:\n";//選擇要查詢的項目 cout<<"\t\t\t**********************************"<<endl; cout<<"\t\t\t1.按課程號查詢"<<endl; cout<<"\t\t\t2.按課程名查詢"<<endl; cout<<"\t\t\t3.按教師姓名查詢"<<endl; cout<<"\t\t\t4.回到管理員菜單界面"<<endl; cout<<"\t\t\t**********************************"<<endl; cout<<"\n\t\t\t請選擇查詢的項目:"; cin>>opt; if(opt==1)cout<<"\t請輸入課程號:"; if(opt==2)cout<<"\t請輸入課程名:"; if(opt==3)cout<<"\t請輸入教師姓名:"; if(opt==4)Manager_MemuList(); cin>>ch; LNode*current=first; while(current!=NULL){ if(current->data.Compare(ch)==1){ //cout<<"Iamhere!"<<"i="<<i<<endl; cout<<"\t您要查詢的課程信息如下:\n"; cout<<endl<<setw(10)<<"課程代號"<<setw(10)<<"課程名為"<<setw(10)<<"上課教室"<<setw(10)<<"授課教師"<<setw(10)<<"上課時間"<<setw(10)<<"第幾節(jié)課"<<setw(10)<<endl; current->data.PrintCourse();//打印當前課的信息 returni;} current=current->next; i++;} cout<<"\n\t查找不成功有關(guān)"<<ch<<"的信息未被收錄"; return-1;}voidChangeItem(){//修改課程信息 inti=SearchCourse(); if(i!=-1){ charch; cout<<"\n\t確認修改該課程(y/n):"; cin>>ch; if(ch=='y'){//修改該課程; LNode*current=first; intj=0; while(current->next!=NULL&&j<i){ current=current->next; j++;} current->data.AddCourse(); cout<<"\n\t修改成功\n";} else{ cout<<"修改操作取消\n"; Manager_MemuList();//回到管理員單界面;}}}voidDelItem(){//刪除課程信息 inti=SearchCourse(); if(i!=-1){ charch; cout<<"\n\t確認刪除該課程(y/n):"; cin>>ch; if(ch=='y'){//刪除該課程; LNode*current=first; intj=0; while(current->next!=NULL&&j<i-1){ current=current->next; j++;} LNode*q=current->next; current->next=q->next; deleteq; Total--; cout<<"\n\t刪除成功\n";} else{ cout<<"不存在該課程,刪除操作取消\n"; Manager_MemuList();//回到管理員菜單界面;}}}voidstarline(){ inti; for(i=10;i<50;i++)cout<<"*"; cout<<endl;}voidManager_MemuList(){//管理員操作界面 cout<<endl; cout<<"\n\t\t歡迎進入管理員系統(tǒng)\n"; starline(); cout<<"*"<<setw(10)<<"0."<<setw(20)<<"安全退出"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"1."<<setw(20)<<"添加課程信息"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"2."<<setw(20)<<"查看課程信息"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"3."<<setw(20)<<"修改課程信息"<<setw(9)<<"*"<<endl;cout<<"*"<<setw(10)<<"4."<<setw(20)<<"刪除課程信息"<<setw(9)<<"*"<<endl; cout<<"*"<<setw(10)<<"5."<<setw(20)<<"查看所有課程信息"<<setw(9)<<"*"<<endl; starline();}voidManager(LinkListL){//管理員操作系統(tǒng) intopt=1; while(opt!=0){//管理員操作界面 Manager_MemuList(); cout<<"\t\t請輸入下面操作動作的序號:"; cin>>opt; switch(opt){ case0:cout<<"\n該賬號已安全退出"<<endl;break; case1:InsertLinkList();system("cls");break; case2:system("cls");SearchCourse();break;//查看指定課程情況 case3:system("cls");ChangeItem();system("cls");break;//修改課程信息 case4:system("cls");DelItem();system("cls");break;//刪除課程 case5:system("cls");PrintItem();;break;//打印課程 default:break; } }}intLoginManager()//密碼登陸部分{chars[80],adminPWD[]="",c='a';intk;cout<<"\t\t************************************\n";cout<<"\n\n\t\t\t請輸入密碼:\n";cout<<"\n\n\t\t************************************\n";cin>>s;while(c=='a'){if(strcmp(s,adminPWD)==0){k=1; system("cls");break;}else{cout<<"密碼錯誤,按a重新輸入,其他鍵返回"<<endl;cin>>c;k=0;}cin>>s;}return

溫馨提示

  • 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

提交評論