用文件實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng) (含源文件)_第1頁(yè)
用文件實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng) (含源文件)_第2頁(yè)
用文件實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng) (含源文件)_第3頁(yè)
用文件實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng) (含源文件)_第4頁(yè)
用文件實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng) (含源文件)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 用文件實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)華南理工大學(xué)網(wǎng)絡(luò)學(xué)院“計(jì)算機(jī)操作系統(tǒng)”課程設(shè)計(jì)大作業(yè)(含全套完整資料)摘 要 學(xué)生成績(jī)管理系統(tǒng)是典型的信息管理系統(tǒng),是學(xué)校教務(wù)管理的重要組成部分,其處理信息量很大。本課程設(shè)計(jì)是用C+實(shí)現(xiàn)對(duì)學(xué)生的成績(jī)管理作一個(gè)簡(jiǎn)單的模擬,實(shí)質(zhì)是建立學(xué)生成績(jī)單鏈表,每條記錄由姓名、學(xué)號(hào)與成績(jī)組成,即鏈表中每個(gè)結(jié)點(diǎn)由4個(gè)域組成,分別為:學(xué)號(hào)、姓名、成績(jī)、存放下一個(gè)結(jié)點(diǎn)地址的next域。用菜單選擇操作方式完成五項(xiàng)功能分別寫成五個(gè)函數(shù),插入學(xué)生成績(jī)對(duì)應(yīng)建立學(xué)生單鏈表的功能,輸出全部學(xué)生成績(jī)記錄,后三個(gè)功能分別對(duì)應(yīng)單鏈表的查詢、修改與刪除三大基本操作。該系統(tǒng)中的數(shù)據(jù)采用線性表中的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)即

2、單鏈表來(lái)存儲(chǔ),用結(jié)構(gòu)體類型和類類型定義每個(gè)學(xué)生記錄并采用外部文件方式記錄數(shù)據(jù)簡(jiǎn)便數(shù)據(jù)的讀取與保存。關(guān)鍵詞 程序設(shè)計(jì);C+;文件;學(xué)生成績(jī)管理系統(tǒng); 網(wǎng)絡(luò)學(xué)院2014秋季 目錄1 引 言1.1 課程設(shè)計(jì)目的1.2課程設(shè)計(jì)內(nèi)容1.3課程設(shè)計(jì)目標(biāo)2系統(tǒng)需求與功能分析2.1 系統(tǒng)需求分析2.2系統(tǒng)功能分析2.3系統(tǒng)性能分析3總體結(jié)構(gòu)設(shè)計(jì)3.1系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)3.2系統(tǒng)管理流程圖4 系統(tǒng)詳細(xì)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)5 系統(tǒng)測(cè)試6 結(jié)束語(yǔ)參考文獻(xiàn)附錄1:結(jié)構(gòu)化設(shè)計(jì)源程序清單設(shè)計(jì)要求一、題目: 用文件實(shí)現(xiàn)的學(xué)生成績(jī)管理系統(tǒng)二、目的學(xué)生通過(guò)本次實(shí)驗(yàn)編程實(shí)現(xiàn)一個(gè)班級(jí)學(xué)生成績(jī)的管理,使學(xué)生了解文件的主要操作(創(chuàng)建、讀、寫、增

3、加和刪除記錄等)。三、內(nèi)容和要求1、 編寫一個(gè)學(xué)生成績(jī)管理的軟件系統(tǒng),語(yǔ)言不限。2、 軟件中能夠隨時(shí)增加學(xué)生成績(jī)記錄(姓名、班級(jí)、學(xué)號(hào)、課程名稱、成績(jī)),這些記錄存放到磁盤文件中。3、 利用磁盤文件的系統(tǒng)接口函數(shù)編程實(shí)現(xiàn)對(duì)學(xué)生成績(jī)進(jìn)行管理:以各種方式查詢成績(jī)、修改成績(jī);顯示所有的學(xué)生成績(jī)。4、 編寫將一個(gè)班級(jí)的成績(jī)復(fù)制到另一個(gè)文件的功能。5、 學(xué)習(xí)使用文件編程,實(shí)現(xiàn)指定班級(jí)成績(jī)文件的刪除操作。6、 能夠?qū)W(xué)生成績(jī)記錄進(jìn)行文件備份和還原。7、 本實(shí)驗(yàn)的目的是練習(xí)文件操作,因此該軟件不能使用數(shù)據(jù)庫(kù)存放信息,只能用普通文件存放信息。 四、提交內(nèi)容本大作業(yè)每個(gè)人必須單獨(dú)完成。最后需提交的內(nèi)容包括:源程

4、序(關(guān)鍵代碼需要注釋說(shuō)明)、可運(yùn)行程序、運(yùn)行結(jié)果、算法思路及流程圖、心得體會(huì)。將以上內(nèi)容刻入光盤,光盤上寫明班級(jí)、學(xué)號(hào)、姓名信息,再將大作業(yè)要求、源程序及注釋、算法思路及流程圖、心得體會(huì)等打印出來(lái)。最后將打印稿及光盤統(tǒng)一交給自己所在的教學(xué)點(diǎn)管理人員。截止時(shí)間2014年12月1日。過(guò)期自負(fù)。大作業(yè)嚴(yán)禁抄襲。發(fā)現(xiàn)抄襲一律以不及格論。學(xué)生提交的大作業(yè)必須與本次布置的大作業(yè)題目和要求相一致,否則成績(jī)記零分。1 引 言1.1 課程設(shè)計(jì)目的學(xué)生成績(jī)管理是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的管理者和學(xué)生以及學(xué)生家長(zhǎng)來(lái)說(shuō)都至關(guān)重要,所以一個(gè)良好的學(xué)生成績(jī)管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪?/p>

5、段。學(xué)生成績(jī)管理系統(tǒng)對(duì)學(xué)校加強(qiáng)學(xué)生成績(jī)管理有著極其重要的作用.由于各個(gè)大學(xué)都在持續(xù)擴(kuò)招,學(xué)生的數(shù)量日益龐大,對(duì)于如何管理如此龐大的學(xué)生成績(jī)數(shù)據(jù)顯得更為復(fù)雜,傳統(tǒng)的手工成績(jī)管理不僅工作量大,而且容易出現(xiàn)問(wèn)題,如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。已不能適應(yīng)時(shí)代的發(fā)展。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績(jī)信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽

6、命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高管理者管理的效率,也是學(xué)校走向科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)設(shè)計(jì)這樣一套學(xué)生成績(jī)管理軟件成為很有必要的事情。該學(xué)生成績(jī)管理系統(tǒng)采用C+語(yǔ)言開發(fā)研制,針對(duì)學(xué)生成績(jī)及其數(shù)據(jù)特點(diǎn),可以全面實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的插入、查詢、修改、刪除和輸出等功能的計(jì)算機(jī)管理。它能使學(xué)生成績(jī)數(shù)據(jù)的工作人員從繁重的工作中解脫出來(lái),大大減輕了工作量,減少人為的工作失誤,全面提高學(xué)生成績(jī)管理的效率,從而使學(xué)校對(duì)于學(xué)生成績(jī)的管理水平和技術(shù)水平躍上一個(gè)新的臺(tái)階。1.2課程設(shè)計(jì)內(nèi)容在程序設(shè)計(jì)中,可以用許多種數(shù)據(jù)結(jié)構(gòu)來(lái)處理數(shù)據(jù)存儲(chǔ),對(duì)于該學(xué)生管理系統(tǒng)而言線形表無(wú)疑是最好的選擇,考

7、慮到學(xué)生成績(jī)管理系統(tǒng)一經(jīng)建立不僅進(jìn)行查詢而且需要頻繁的進(jìn)行插入和刪除,所以采用單鏈表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)。這種內(nèi)存的動(dòng)態(tài)分配策略使我們?cè)诰帉懰惴ㄊ菬o(wú)需考慮有多少空間資源可用于實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu),算法在需要內(nèi)存的時(shí)候向內(nèi)存申請(qǐng),當(dāng)不需要的時(shí)候釋放它。為了簡(jiǎn)便起見,成績(jī)管理系統(tǒng)記錄中只包括學(xué)號(hào)、姓名、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)、英語(yǔ)成和成績(jī)存放下一個(gè)結(jié)點(diǎn)地址的next域等數(shù)據(jù)項(xiàng)。為學(xué)生成績(jī)?cè)O(shè)計(jì)一個(gè)類,內(nèi)中包含存儲(chǔ)學(xué)生成績(jī)信息的單鏈表以及對(duì)單鏈表進(jìn)行各種操作的成員函數(shù)。為各個(gè)成績(jī)?nèi)缯Z(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)和英語(yǔ)成績(jī)等數(shù)據(jù)項(xiàng)建立一個(gè)結(jié)構(gòu)體類型,并用此結(jié)構(gòu)類型對(duì)學(xué)生成績(jī)類進(jìn)行實(shí)例化。對(duì)學(xué)生成績(jī)信息要求完成如下功能:(1) 插入:將

8、學(xué)生的成績(jī)信息插入;(2) 查詢:查詢滿足條件的學(xué)生;(3) 修改:對(duì)成績(jī)信息的數(shù)據(jù)項(xiàng)進(jìn)行修改;(4) 刪除:將滿足條件的學(xué)生信息刪除;(5) 輸出:將全部的學(xué)生成績(jī)信息輸出。為了方便數(shù)據(jù)的讀取與保存,我們采用外部文件來(lái)進(jìn)行數(shù)據(jù)保存能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。1.3課程設(shè)計(jì)目標(biāo) 建立學(xué)生成績(jī)信息管理系統(tǒng),采用計(jì)算機(jī)對(duì)學(xué)生成績(jī)信息進(jìn)行管理,進(jìn)一步提高學(xué)?,F(xiàn)代化水平。幫助廣大成績(jī)信息管理者提高工作效率、減少工作時(shí)間,實(shí)現(xiàn)學(xué)生及其家長(zhǎng)信息查詢工作流程的系統(tǒng)化、公平化、規(guī)范化和自動(dòng)化,也為廣大在教師提供便利快捷的成績(jī)錄入功能。為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本課題將達(dá)到以下幾個(gè)目的:

9、(1)系統(tǒng)處理的準(zhǔn)確性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過(guò)程中,要充分考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足高校對(duì)信息處理的需求。(2)系統(tǒng)處理的及時(shí)性由于學(xué)生非常關(guān)心自己的信息正確與否以便及時(shí)接受來(lái)自學(xué)校的學(xué)習(xí)成績(jī)信息,學(xué)生成績(jī)信息管理功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重。在系統(tǒng)開發(fā)過(guò)程中,必須采用一定的方法保證系統(tǒng)的準(zhǔn)確性。(3)系統(tǒng)的保密性學(xué)生成績(jī)信息是屬于個(gè)人的隱私,所以系統(tǒng)在開發(fā)時(shí),應(yīng)該充分考慮系統(tǒng)的保密性,以保證學(xué)生的隱私權(quán)。(4)系統(tǒng)的開放性和可擴(kuò)充性學(xué)生成績(jī)信息管理系統(tǒng)在開發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如學(xué)生

10、成績(jī)信息管理的方式的改變,學(xué)生成績(jī)信息的需求也會(huì)不斷的更新和完善。2系統(tǒng)需求與功能分析2.1 系統(tǒng)需求分析 (1) 能完成學(xué)生成績(jī)的插入、查詢、修改、刪除、輸出等功能;(2)采用單鏈表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn);(3) 所有數(shù)據(jù)以外部文件方式保存。2.2系統(tǒng)功能分析(1)要設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),其功能包括:插入函數(shù)Add():將學(xué)生成績(jī)信息插入到鏈表中;查詢函數(shù)Search():分別可以按學(xué)號(hào)和按姓名進(jìn)行學(xué)生成績(jī)查詢;刪除函數(shù)Delete():當(dāng)需要?jiǎng)h除的學(xué)號(hào)和姓名一致時(shí)則刪除對(duì)應(yīng)的學(xué)生記錄;修改函數(shù)Modify():修改指定的學(xué)生成績(jī)信息;輸出函數(shù)Show():輸出全部學(xué)生成績(jī)信息;菜單函數(shù)Menu(

11、):為程序的菜單函數(shù)為實(shí)現(xiàn)各種功能提供便捷;讀取數(shù)據(jù)函數(shù)Read():從外部文件讀取學(xué)生成績(jī)信息;保存數(shù)據(jù)函數(shù)Save():將數(shù)據(jù)保存到外部文件中。(2)線性表的鏈接存儲(chǔ)結(jié)構(gòu)稱為單鏈表,單鏈表使用一組任意的存儲(chǔ)單元存放線性表的元素,這組存儲(chǔ)單元可以連續(xù)也可以不連續(xù),甚至可以零散分布在內(nèi)存中的任意位置。為了正確表示元素之間邏輯關(guān)系,每個(gè)存儲(chǔ)單元在存儲(chǔ)數(shù)據(jù)元素的同時(shí),還必須存儲(chǔ)其后繼元素所在地址信息,這個(gè)地址信息稱為指針,這兩部分組成了數(shù)據(jù)元素的存儲(chǔ)映像,稱為結(jié)點(diǎn),結(jié)點(diǎn)結(jié)構(gòu)如圖2.1所示。圖2.1單鏈表的結(jié)點(diǎn)構(gòu)造 設(shè)p是一個(gè)指針變量,則p的值是一個(gè)指針。設(shè)指針p指向某個(gè)結(jié)點(diǎn),則該結(jié)點(diǎn)用*p表示,在

12、單鏈表中,結(jié)點(diǎn)p由兩個(gè)域組成:存放數(shù)據(jù)元素的部分和存放后繼結(jié)點(diǎn)地址的指針部分,分別用p->data和p->next來(lái)標(biāo)識(shí),p->next指向結(jié)點(diǎn)ai+1,其指針與結(jié)點(diǎn)之間關(guān)系如圖2.2所示。圖2.2指針與結(jié)點(diǎn)之間關(guān)系的示意圖2.3系統(tǒng)性能分析1硬件環(huán)境處理器:CPU主頻在500MHz以上 內(nèi)存:128MB以上硬盤空間:10MB。2軟件環(huán)境操作系統(tǒng): Windows 98/Me/NT/2000/XP(推薦使用Windows 2000/XP)。調(diào)試環(huán)境: Visual C+及以上版本。3總體結(jié)構(gòu)設(shè)計(jì)3.1系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)通過(guò)對(duì)學(xué)生成績(jī)信息管理系統(tǒng)的功能分析,可以定義出系統(tǒng)的總體結(jié)構(gòu)

13、模塊圖,如圖3.1所示。圖3.1學(xué)生成績(jī)管理系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)3.2系統(tǒng)管理流程圖 前面的分析中已經(jīng)定義了系統(tǒng)各個(gè)模塊,屬于靜態(tài)建模的范圍。在系統(tǒng)運(yùn)行時(shí)刻的動(dòng)態(tài)模型應(yīng)該由系統(tǒng)的流程決定。當(dāng)用戶運(yùn)行該系統(tǒng)后可以來(lái)進(jìn)行學(xué)生成績(jī)信息插入管理、學(xué)生成績(jī)信息查詢管理、學(xué)生成績(jī)信息刪除管理、學(xué)生成績(jī)信息修改管理及學(xué)生成績(jī)信息輸出等操作,具體的流程如圖3.2所示。圖3.2系統(tǒng)流程圖主模塊應(yīng)負(fù)責(zé)應(yīng)用程序的主界面,由它調(diào)用其他模塊.因此主模塊應(yīng)具有操作性好、界面清晰的特點(diǎn),使用戶能夠很方便地找到所需功能。根據(jù)功能需求的結(jié)果分析,主界面應(yīng)該由學(xué)生成績(jī)信息插入管理,學(xué)生成績(jī)信息查詢管理、學(xué)生成績(jī)信息修改管理、學(xué)生成績(jī)

14、信息刪除管理和學(xué)生成績(jī)信息輸出管理組成,可以通過(guò)輸入相應(yīng)的數(shù)字進(jìn)入相應(yīng)的功能模塊。4 系統(tǒng)詳細(xì)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)系統(tǒng)總體設(shè)計(jì)完成后,就可以根據(jù)需求對(duì)各個(gè)模塊來(lái)進(jìn)行實(shí)現(xiàn)了。在本系統(tǒng)中需要編碼實(shí)現(xiàn)的主要有學(xué)生成績(jī)信息插入、學(xué)生成績(jī)信息查詢、學(xué)生成績(jī)信息修改、學(xué)生成績(jī)信息刪除和學(xué)生成績(jī)信息輸出等5個(gè)模塊。(1)學(xué)生成績(jī)插入模塊添加的信息包括學(xué)號(hào)(不允許重復(fù))、姓名(不允許重復(fù))、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)和英語(yǔ)成績(jī)。流程圖如下圖4.1所示。開始插入數(shù)據(jù)輸入學(xué)生成績(jī)信息調(diào)用類成員函數(shù)采用單鏈表保存數(shù)據(jù)結(jié)束圖4.1插入模塊流程圖本程序采用的是尾插法,就是每次將新申請(qǐng)的結(jié)點(diǎn)插在終端結(jié)點(diǎn)的后面,其執(zhí)行過(guò)程如圖4.2所示

15、。圖4.2尾插法建立單鏈表操作示意圖(2)學(xué)生成績(jī)查詢模塊按姓名和學(xué)號(hào)查找學(xué)生成績(jī)的流程圖分別如下圖4.3所示。結(jié)束輸入要查找姓名判斷抱歉沒(méi)有該學(xué)生輸出該學(xué)生的信息按姓名查找開始NY圖4.3按姓名查找學(xué)生成績(jī)信息流程圖在單鏈表中,即使知道被訪問(wèn)結(jié)點(diǎn)的位置i,也不能像順序表那樣直接按序號(hào)訪問(wèn),而只能從頭指針出發(fā),設(shè)置一個(gè)工作指針p,順next域逐個(gè)結(jié)點(diǎn)往下搜索。當(dāng)p指向某個(gè)結(jié)點(diǎn)時(shí)判斷是否為第i個(gè)結(jié)點(diǎn),若是則查找成功;否則,將工作指針p后移,即將p指向原來(lái)所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)。直到p為NULL時(shí)查找失敗。單鏈表查找過(guò)程如圖4.4所示。圖4.4單鏈表查找過(guò)程的示意圖按學(xué)號(hào)查詢學(xué)生成績(jī)信息同按姓名查找學(xué)

16、生成績(jī)信息,此處不再詳細(xì)列出。(3)學(xué)生成績(jī)修改模塊首先要查找與要修改數(shù)據(jù)相匹配的信息,若沒(méi)有則返回失敗。否則把相應(yīng)的信息輸出,然后再重新輸入新的數(shù)據(jù)并保存到單鏈表。(4)學(xué)生成績(jī)刪除模塊當(dāng)選擇刪除功能時(shí),首先輸入要?jiǎng)h除的同學(xué)的姓名,然后輸入要?jiǎng)h除的同學(xué)的學(xué)號(hào),如果該同學(xué)存在并且姓名與學(xué)號(hào)匹配的上,則進(jìn)行刪除操作,否則返回失敗。其流程圖4.5如下:開始刪除操作輸入姓名輸入學(xué)號(hào)姓名學(xué)號(hào)一致執(zhí)行刪除功能返回主菜單NY圖4.5刪除學(xué)生信息模塊流程圖刪除操作定義為將單鏈表的第i個(gè)結(jié)點(diǎn)刪去。因?yàn)樵趩捂湵碇薪Y(jié)點(diǎn)ai存儲(chǔ)地址在其前驅(qū)結(jié)點(diǎn)ai-1的指針域,所以必須首先找到ai-1的存儲(chǔ)地址p,然后令p的nex

17、t域指向ai 的后繼結(jié)點(diǎn),即把結(jié)點(diǎn)ai 從鏈上摘下來(lái),最后釋放結(jié)點(diǎn)ai的存儲(chǔ)空間,如圖4.6所示。 圖4.6在單鏈表中刪除結(jié)點(diǎn)指針的變化情況(5)學(xué)生成績(jī)輸出模塊從單鏈表表頭遍歷整個(gè)單鏈表,將所有數(shù)據(jù)輸出。其部分代碼如下: void Function:Show() char choose;Student *temp;system("cls");temp=Student_First->Next; if(!temp) cout<<"文件無(wú)數(shù)據(jù)nn "<<endl;cout<<"1.返回主菜單"&l

18、t;<endl; cin>>choose; while(choose!='1') cout<<"1.返回主菜單"<<endl; cin>>choose; Menu(); elsecout<<"姓名t學(xué)號(hào)t語(yǔ)文成績(jī)t數(shù)學(xué)成績(jī)t英語(yǔ)成績(jī)n"while(temp!=NULL)temp->Out(); temp=temp->Next; cout<<"1.返回主菜單"<<endl;cin>>choose;while(

19、choose!='1')cout<<"1.返回主菜單"<<endl; cin>>choose;Menu(); 5 系統(tǒng)測(cè)試在完成了系統(tǒng)各方面的設(shè)計(jì)后,并不是可以運(yùn)行就完成的,為了保證系統(tǒng)性能的穩(wěn)定性跟安全性等,就要對(duì)系統(tǒng)做測(cè)試。測(cè)試環(huán)境如下:l 硬件:P4C 2.4GHz,80GB硬盤,512M內(nèi)存;l 軟件:Windows XP Personal SP2,分辨率1024*768,Microsoft Visual C+ 6.0。運(yùn)行的主界面如圖5.1所示:圖5.1運(yùn)行主界面當(dāng)選擇1插入學(xué)生成績(jī)信息功能時(shí),如圖5.2所示。圖

20、5.2插入學(xué)生成績(jī)信息實(shí)現(xiàn)返回主菜單后選擇2查詢學(xué)生成績(jī)信息,運(yùn)行結(jié)果按由姓名查詢和按學(xué)號(hào)查詢分別如圖5.3和圖5.4所示。圖5.3按姓名查找相關(guān)信息實(shí)現(xiàn)圖5.4按學(xué)號(hào)查找相關(guān)信息實(shí)現(xiàn)當(dāng)在主菜單中選擇3時(shí),則進(jìn)行刪除功能。其運(yùn)行結(jié)果如圖5.5所示。圖5.5 刪除學(xué)生信息功能實(shí)現(xiàn)當(dāng)在主菜單中選擇4時(shí),則進(jìn)行學(xué)生信息修改功能。其運(yùn)行結(jié)果如圖5.6所示。圖5.6修改學(xué)生信息功能實(shí)現(xiàn)當(dāng)在主菜單中選擇5時(shí),則進(jìn)行學(xué)生信息輸出功能。其運(yùn)行結(jié)果如圖5.7所示。圖5.7輸出學(xué)生信息功能實(shí)現(xiàn)6 結(jié)束語(yǔ)在本次課程設(shè)計(jì)過(guò)程中,曾遇到過(guò)不少問(wèn)題,單靠我個(gè)人的努力,很難按時(shí)完成該課程設(shè)計(jì),在此,我衷心感謝我的指導(dǎo)老師肖

21、增良。肖增良老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我獲益非淺。從一遍一遍得修改到最后定稿的各個(gè)環(huán)節(jié)給予細(xì)心指導(dǎo),使我在知識(shí)和能力上都得到了極大的提高,在此表示衷心地感謝。在整個(gè)過(guò)程中,我查閱了大量的關(guān)于學(xué)生成績(jī)管理系統(tǒng)的資料和網(wǎng)站,在老師的指導(dǎo)和自己的努力下,終于完成了本次課程設(shè)計(jì)。通過(guò)這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的實(shí)驗(yàn),在解決問(wèn)題的過(guò)程中,充分體會(huì)到了數(shù)據(jù)結(jié)構(gòu)這門課程對(duì)于軟件設(shè)計(jì)的重要性,也體會(huì)到了數(shù)據(jù)結(jié)構(gòu)+算法=程序這句話的真正含義,一個(gè)實(shí)際問(wèn)題的解決第一步就是要依賴于良好的抽象思維的,將實(shí)際問(wèn)題轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)結(jié)構(gòu),只有這一步做好了,才能采取相應(yīng)的算法和優(yōu)化方法解決問(wèn)題和解決

22、好問(wèn)題。同時(shí)我還要感謝指導(dǎo)過(guò)我的每一位老師,他們給了我很大的指導(dǎo)和幫助,還有在我陷入困境時(shí)幫助過(guò)我的同學(xué)們。另外,還要感謝學(xué)校領(lǐng)導(dǎo)、輔導(dǎo)員,為我們提供了良好的設(shè)計(jì)環(huán)境以及各方面的支持。參考文獻(xiàn)1 錢新賢,楊猛,程兆煒,張少東Visual C+編程疑難詳解M 北京:人民郵電出版社,2000 2 王紅梅,胡明,王濤數(shù)據(jù)結(jié)構(gòu)(C+)M 北京:清華大學(xué)出版社,2007 3 程學(xué)先數(shù)據(jù)庫(kù)原理與技術(shù)M北京:中國(guó)水利水電出版社,2001 4 Alex Kriegel & Boris M.TrukhnovSQL BibleM北京:電子工業(yè)出版社,20005 鄭章,程剛,張勇Visual C+6.0數(shù)據(jù)

23、開發(fā)技術(shù)M北京:機(jī)械工業(yè)出版社,1999.96F.Brokken and K.Kubat. C+ Annotations. Version 4.4.0m,ICCE,University of Groningen,Netherlands,1990. 250280附錄1:結(jié)構(gòu)化設(shè)計(jì)源程序清單/ 程序名稱:Student.CPP / 程序功能:采用鏈表與文件實(shí)現(xiàn)一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)。 / 程序作者:李卉/ 最后修改日期:2008-9-10#include <iostream>#include <fstream>#include<cstring>#includ

24、e<conio.h>#include <ctime>using namespace std;struct Class int Chinese; int Math; int English;class Studentpublic: Student(); void Ofile(ofstream &of); void Infile(ifstream &f); void Out(); void Set(char *name,int no,Class score); char *GetName(); int GetNo(); Student *Next; prot

25、ected:char Name20; int No;Class Score ;Student:Student():Next(0) char *Student:GetName()return Name; int Student:GetNo()return No;void Student:Set(char *name,int no,Class score)strcpy(Name,name);No=no; Score=score; cout<<"1.返回主菜單n2.繼續(xù)刪除"<<endl;cin>>choose; while(choose!=&

26、#39;1'&&choose!='2')cout<<"1.返回主菜單n2.繼續(xù)刪除"<<endl; cin>>choose;if(choose='1')Menu(); else if(choose='2')Delete(); void Function:Modify() /修改學(xué)生信息函數(shù)char choose,name20; Student *temp,*p; int no;Class score;system("cls");temp=p=Stu

27、dent_First;cout<<"請(qǐng)輸入您要修改的學(xué)生姓名:"cin>>name;while(temp)Save();cout<<"修改成功!"<<endl;cout<<"1.返回主菜單n2.繼續(xù)修改"<<endl;cin>>choose;while(choose!='1'&&choose!='2') cout<<"1.返回主菜單n2.繼續(xù)修改"<<endl;

28、 cin>>choose;if(choose='1')Menu();else if(choose='2')Modify();void Function:Read() /讀取信息函數(shù)Student *p,*p2; p=Student_First; long t; ifstream is("Student.txt",ios:in); if(!is) ofstream os("Student.txt",ios:out); os.close(); return ; while(!is.eof() p2=new Stud

29、ent; p2->Infile(is); p->Next=p2; p2->Next=NULL; p=p->Next;void Function:Save() /保存學(xué)生成績(jī)信息函數(shù)ofstream of("Student.txt",ios:out); Student *p=Student_First->Next; while(p)p->Ofile(of); p=p->Next; of.close();void Function:Search() int flag(0); char choose; char t120;int t2;s

30、ystem("cls");Student *temp=Student_First->Next; do cout<<"輸入查詢方式:n1.按姓名查詢n2.按學(xué)號(hào)查詢n"cin>>choose;if(choose='1')cout<<"請(qǐng)輸入您要查詢的姓名:"cin>>t1;while(temp)if(strcmp(t1,temp->GetName()=0) flag=1;break;temp=temp->Next; if(flag=0)cout<&l

31、t;"n無(wú)該學(xué)生的信息n"<<endl;elsecout<<"姓名t學(xué)號(hào)t語(yǔ)文成績(jī)t數(shù)學(xué)成績(jī)t英語(yǔ)成績(jī)n"temp->Out();break;else if(choose='2')cout<<"請(qǐng)輸入您要查詢的學(xué)號(hào)"cin>>t2;while(temp)if(t2=temp->GetNo() flag=1; break;temp=temp->Next; if(flag=0)cout<<"n無(wú)該學(xué)生的信息n"<<

32、endl;elsecout<<"姓名t學(xué)號(hào)t語(yǔ)文成績(jī)t數(shù)學(xué)成績(jī)t英語(yǔ)成績(jī)n"temp->Out(); break;while(choose!='1'|choose!='2'); cout<<"n1.返回主菜單n2.繼續(xù)查詢"<<endl;cin>>choose;while(choose!='1'&&choose!='2')cout<<"1.返回主菜單n2.繼續(xù)查詢"<<endl;

33、cin>>choose;if(choose='1')Menu(); else if(choose='2') Search(); void Function:Show() char choose;Student *temp;system("cls");temp=Student_First->Next; if(!temp) cout<<"文件無(wú)數(shù)據(jù)nn "<<endl;cout<<"1.返回主菜單"<<endl; cin>>choose; while(choose!='1') cout<<"1.返回主菜單"<<endl; cin>>choose; Menu(); elsecout<<&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論