計(jì)算概論A大作業(yè)實(shí)驗(yàn)報(bào)告
--選課系統(tǒng)
設(shè)計(jì)思路:主要是依靠鏈表和文件操作相關(guān)知識(shí),借助c++面向?qū)ο蟮奶匦赃M(jìn)行設(shè)計(jì)。將主要功能攜程“類”。一共有五個(gè)類:賬號(hào)密碼類,界面類,課程類,學(xué)生類,教務(wù)類。賬號(hào)密碼類用于儲(chǔ)存學(xué)生注冊(cè)的學(xué)號(hào)和密碼。界面類顧名思義,有,主要實(shí)現(xiàn)界面的一些功能,如選擇和跳轉(zhuǎn),不過我也將注冊(cè)放到了這個(gè)類里。學(xué)生類里包括查看個(gè)人信息,選課退課等。教務(wù)類里包括添加課程 ,刪除課程,查看課程等。課程類里有查看,添加,刪除,修改等。教務(wù)的功能是調(diào)用了這個(gè)類里的功能。最后main函數(shù)只是短短幾行啟動(dòng)類。
功能:設(shè)計(jì)思路里已經(jīng)提及,包括了選課系統(tǒng)的基本功能,額外增加了一些貼合實(shí)際情況,便于操作的功能。
程序亮點(diǎn):與別的一些同學(xué)的程序不同,我的程序使用的是鏈表,有些同學(xué)是結(jié)構(gòu)體數(shù)組,鏈表在某些情況下更便于操作且節(jié)省空間。而且利用鏈表,可以大大減少txt文檔的創(chuàng)建,最終我的程序只需要4個(gè)txt文檔保存數(shù)據(jù)即可。此外我在設(shè)計(jì)程序時(shí)利用了面向?qū)ο蟮木幊趟枷?,將程序分為多個(gè)cpp和頭文件,使得程序更簡明易懂,更加符合c++的本質(zhì)。
關(guān)于實(shí)驗(yàn)過程:實(shí)驗(yàn)中還是遇到了不少坎坷,比如考慮輸入是否合法時(shí)要頻繁引入getline函數(shù),但換行符會(huì)有很大的干擾,給編寫程序造成了一些麻煩,還有便是面對(duì)如何利用最少txt文檔實(shí)現(xiàn)學(xué)生模塊功能的實(shí)現(xiàn)的問題時(shí)遇到了一些困難,借鑒了網(wǎng)絡(luò)上的一些方法,即鏈表嵌套,我在此方案上進(jìn)一步優(yōu)化,結(jié)合文件指針的運(yùn)用,最終克服了這個(gè)困難。
實(shí)驗(yàn)總結(jié):由于對(duì)鏈表的操作運(yùn)用不是那么熟練和,對(duì)類的理解不是那么深刻,有些功能的實(shí)現(xiàn)放在了本不應(yīng)該放在的類里,造成程序有一點(diǎn)混亂,沒有完全地摒棄掉面向過程的編程思想,這是本次大作的一個(gè)遺憾。但總的來說,這次大作業(yè)大大強(qiáng)化了自己對(duì)鏈表的運(yùn)用和對(duì)類的運(yùn)用,是一個(gè)提升自己編程能力的難得的機(jī)會(huì)。