單鏈表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)分析_第1頁(yè)
單鏈表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)分析_第2頁(yè)
單鏈表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)分析_第3頁(yè)
單鏈表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)分析_第4頁(yè)
單鏈表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)分析_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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、-. z- . - .可修編-建筑學(xué)院數(shù)據(jù)構(gòu)造課程設(shè)計(jì)論文基于單鏈表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)Design and implementation of the system of student performance management based on single table 年 級(jí): 12級(jí) 學(xué) 號(hào): 121500103 姓 名: *文輝 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師: 常大俊 二零一三年十二月-. z- . - .可修編-摘 要學(xué)生成績(jī)管理系統(tǒng)是典型的信息管理系統(tǒng),是學(xué)校教務(wù)管理的重要組成局部,其處理信息量很大。本課程設(shè)計(jì)是用C+實(shí)現(xiàn)對(duì)學(xué)生的成績(jī)管理作一個(gè)簡(jiǎn)單的模擬,實(shí)質(zhì)是建

2、立學(xué)生成績(jī)單鏈表,每條記錄由、*與成績(jī)組成,即鏈表中每個(gè)結(jié)點(diǎn)由4個(gè)域組成,分別為:*、成績(jī)、存放下一個(gè)結(jié)點(diǎn)地址的ne*t域。用菜單項(xiàng)選擇擇操作方式完成五項(xiàng)功能分別寫成五個(gè)函數(shù),插入學(xué)生成績(jī)對(duì)應(yīng)建立學(xué)生單鏈表的功能,輸出全部學(xué)生成績(jī)記錄,后三個(gè)功能分別對(duì)應(yīng)單鏈表的查詢、修改與刪除三大根本操作。該系統(tǒng)中的數(shù)據(jù)采用線性表中的鏈?zhǔn)酱鎯?chǔ)構(gòu)造即單鏈表來(lái)存儲(chǔ),用構(gòu)造體類型和類類型定義每個(gè)學(xué)生記錄并采用外部文件方式記錄數(shù)據(jù)簡(jiǎn)便數(shù)據(jù)的讀取與保存。關(guān)鍵詞:數(shù)據(jù)構(gòu)造,單鏈表,C語(yǔ)言,學(xué)生成績(jī)管理AbstractStudent achievement management system is a typical ma

3、nagement information system, is an important part of the school educational administration management, the large amount of information. The curriculum design is used to achieve C+ performance management for the students to make a simplesimulation, the essence is to establish students report list, ea

4、ch recordconsists of name,and grade, namely the linked list in each node isposed of 4 domains, respectively: ne*t domain name, student number,grade, put down a node address the. plete the five functions were written in five function menu to select the mode of operation, into the student achievement

5、established a single list of the output function of students, allstudents record, after the three functions corresponding to single table query,modify and delete the three basic operations. The system data in the linked storage structure of linear table is a single linked list to store, use the stru

6、cture types and class types define each student records and the use of an e*ternal file to read and save data and simple data record.-. z- . - .可修編-目 錄 TOC o 1-3 h z u HYPERLINK l _Toc24551 摘 要 PAGEREF _Toc24551 II HYPERLINK l _Toc28509 Abstract PAGEREF _Toc28509 III HYPERLINK l _Toc3388 第1章 引 言 PAG

7、EREF _Toc3388 - 1 - HYPERLINK l _Toc4869 1.1設(shè)計(jì)容 PAGEREF _Toc4869 - 1 - HYPERLINK l _Toc22248 1.2設(shè)計(jì)目的 PAGEREF _Toc22248 - 1 - HYPERLINK l _Toc28983 1.3設(shè)計(jì)目標(biāo) PAGEREF _Toc28983 - 2 - HYPERLINK l _Toc32597 第2章 系統(tǒng)需求與功能分析 PAGEREF _Toc32597 - 4 - HYPERLINK l _Toc20744 2.1系統(tǒng)需求分析 PAGEREF _Toc20744 - 4 - HYPER

8、LINK l _Toc28211 2.2系統(tǒng)功能分析 PAGEREF _Toc28211 - 4 - HYPERLINK l _Toc3225 2.3系統(tǒng)性能分析 PAGEREF _Toc3225 - 5 - HYPERLINK l _Toc2469 第3章 總體構(gòu)造分析 PAGEREF _Toc2469 - 6 - HYPERLINK l _Toc7159 3.1系統(tǒng)的構(gòu)造分析: PAGEREF _Toc7159 - 6 - HYPERLINK l _Toc21014 3.2系統(tǒng)管理流程圖: PAGEREF _Toc21014 - 6 - HYPERLINK l _Toc3113 第4章 概

9、要設(shè)計(jì) PAGEREF _Toc3113 - 12 - HYPERLINK l _Toc7566 第5章 詳細(xì)設(shè)計(jì) PAGEREF _Toc7566 - 13 - HYPERLINK l _Toc27573第6章 調(diào)試分析 PAGEREF _Toc27573 - 20 - HYPERLINK l _Toc30386 第7章 測(cè)試結(jié)果 PAGEREF _Toc30386 - 21 - HYPERLINK l _Toc16400 第8章 完畢語(yǔ) PAGEREF _Toc16400 - 24 - HYPERLINK l _Toc1249 參考文獻(xiàn) PAGEREF _Toc1249 - 25 -. z

10、- . - .可修編-第1章 引 言1.1設(shè)計(jì)容在程序設(shè)計(jì)中,可以用許多種數(shù)據(jù)構(gòu)造來(lái)處理數(shù)據(jù)存儲(chǔ),對(duì)于該學(xué)生管理系統(tǒng)而言線形表無(wú)疑是最好的選擇,考慮到學(xué)生成績(jī)管理系統(tǒng)一經(jīng)建立不僅進(jìn)展查詢而且需要頻繁的進(jìn)展插入和刪除,所以采用單鏈表存儲(chǔ)構(gòu)造實(shí)現(xiàn)。這種存的動(dòng)態(tài)分配策略使我們?cè)诰帉懰惴ㄊ菬o(wú)需考慮有多少空間資源可用于實(shí)現(xiàn)數(shù)據(jù)構(gòu)造,算法在需要存的時(shí)候向存申請(qǐng),當(dāng)不需要的時(shí)候釋放它。為了簡(jiǎn)便起見,成績(jī)管理系統(tǒng)記錄中只包括*、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)、英語(yǔ)成和成績(jī)存放下一個(gè)結(jié)點(diǎn)地址的ne*t域等數(shù)據(jù)項(xiàng)。為學(xué)生成績(jī)?cè)O(shè)計(jì)一個(gè)類,中包含存儲(chǔ)學(xué)生成績(jī)信息的單鏈表以及對(duì)單鏈表進(jìn)展各種操作的成員函數(shù)。為各個(gè)成績(jī)?nèi)缯Z(yǔ)文成績(jī)、數(shù)

11、學(xué)成績(jī)和英語(yǔ)成績(jī)等數(shù)據(jù)項(xiàng)建立一個(gè)構(gòu)造體類型,并用此構(gòu)造類型對(duì)學(xué)生成績(jī)類進(jìn)展實(shí)例化。對(duì)學(xué)生成績(jī)信息要求完成如下功能:(1) 插入:將學(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.2設(shè)計(jì)目的學(xué)生成績(jī)管理是一個(gè)學(xué)校不可缺少的局部,它的容對(duì)于學(xué)校的管理者和學(xué)生以及學(xué)生家長(zhǎng)來(lái)說(shuō)都至關(guān)重要,所以一個(gè)良好的學(xué)生成績(jī)管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。學(xué)生成績(jī)管理系統(tǒng)對(duì)學(xué)校加強(qiáng)學(xué)

12、生成績(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í)代的開展。隨著科學(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ǔ)量大、性好、壽命長(zhǎng)、本錢低等。這些優(yōu)點(diǎn)能夠極提高管理者

13、管理的效率,也是學(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.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é)生

14、及其家長(zhǎng)信息查詢工作流程的系統(tǒng)化、公平化、規(guī)化和自動(dòng)化,也為廣闊在教師提供便利快捷的成績(jī)錄入功能。為了保證系統(tǒng)能夠長(zhǎng)期、平安、穩(wěn)定、可靠、高效的運(yùn)行,本課題將到達(dá)以下幾個(gè)目的:(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è)

15、人的隱私,所以系統(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é)生成績(jī)信息管理的方式的改變,學(xué)生成績(jī)信息的需求也會(huì)不斷的更新和完善。第2章 系統(tǒng)需求與功能分析2.1系統(tǒng)需求分析1) 能完成學(xué)生成績(jī)的插入、查詢、修改、刪除、輸出等功能;(2)采用單鏈表存儲(chǔ)構(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():分別可以按*和按進(jìn)展學(xué)生成績(jī)查詢;刪除函數(shù)Delete():

16、當(dāng)需要?jiǎng)h除的*和一致時(shí)則刪除對(duì)應(yīng)的學(xué)生記錄;修改函數(shù)Modify():修改指定的學(xué)生成績(jī)信息;輸出函數(shù)Show():輸出全部學(xué)生成績(jī)信息;菜單函數(shù)Menu():為程序的菜單函數(shù)為實(shí)現(xiàn)各種功能提供便捷;讀取數(shù)據(jù)函數(shù)Read():從外部文件讀取學(xué)生成績(jī)信息;保存數(shù)據(jù)函數(shù)Save():將數(shù)據(jù)保存到外部文件中。(2)線性表的存儲(chǔ)構(gòu)造稱為單鏈表,單鏈表使用一組任意的存儲(chǔ)單元存放線性表的元素,這組存儲(chǔ)單元可以連續(xù)也可以不連續(xù),甚至可以零散分布在存中的任意位置。為了正確表示元素之間邏輯關(guān)系,每個(gè)存儲(chǔ)單元在存儲(chǔ)數(shù)據(jù)元素的同時(shí),還必須存儲(chǔ)其后繼元素所在地址信息,這個(gè)地址信息稱為指針,這兩局部組成了數(shù)據(jù)元素的存儲(chǔ)

17、映像,稱為結(jié)點(diǎn),結(jié)點(diǎn)構(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表示,在單鏈表中,結(jié)點(diǎn)p由兩個(gè)域組成:存放數(shù)據(jù)元素的局部和存放后繼結(jié)點(diǎn)地址的指針局部,分別用p-data和p-ne*t來(lái)標(biāo)識(shí),p-ne*t指向結(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以上 存:128MB以上硬盤空間:10MB。2軟件環(huán)境操作系統(tǒng): Windows 98/Me/NT/2000/*P(推薦使用Windows 2000/*P)。調(diào)試環(huán)境: V

18、isual C+及以上版本。第3章 總體構(gòu)造分析3.1系統(tǒng)的構(gòu)造分析:通過(guò)對(duì)學(xué)生成績(jī)信息管理系統(tǒng)的功能分析,可以定義出系統(tǒng)的總體構(gòu)造模塊圖,如圖3.1所示。學(xué)生成績(jī)管理系統(tǒng) 學(xué)生成績(jī)插入學(xué)生成績(jī)查詢學(xué)生成績(jī)刪除學(xué)生成績(jī)修改學(xué)生成績(jī)輸出學(xué)生成績(jī)讀取學(xué)生成績(jī)保存圖3.1學(xué)生成績(jī)管理系統(tǒng)總體構(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所示。進(jìn)入系統(tǒng)數(shù)據(jù)讀入查

19、詢修改刪除輸出數(shù)據(jù)保存退出系統(tǒng)不保存YN圖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ī)信息刪除管理和學(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ī)

20、插入模塊添加的信息包括*(不允許重復(fù))、(不允許重復(fù))、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)和英語(yǔ)成績(jī)。流程圖如下列圖4.1所示。開場(chǎng)插入數(shù)據(jù)輸入學(xué)生成績(jī)信息調(diào)用類成員函數(shù)采用單鏈表保存數(shù)據(jù)完畢 圖4.1插入模塊流程圖 本程序采用的是尾插法,就是每次將新申請(qǐng)的結(jié)點(diǎn)插在終端結(jié)點(diǎn)的后面,其執(zhí)行過(guò)程如圖4.2所示。圖4.2尾插法建立單鏈表操作示意圖(2)學(xué)生成績(jī)查詢模塊按和*查找學(xué)生成績(jī)的流程圖分別如下列圖4.3所示。完畢輸入要查找*判斷抱歉沒有該學(xué)生輸出該學(xué)生的信息按*查找開場(chǎng)NY 圖4.3按查找學(xué)生成績(jī)信息流程圖在單鏈表中,即使知道被結(jié)點(diǎn)的位置i,也不能像順序表那樣直接按序號(hào),而只能從頭指針出發(fā),設(shè)置一個(gè)工作指針

21、p,順ne*t域逐個(gè)結(jié)點(diǎn)往下搜索。當(dāng)p指向*個(gè)結(jié)點(diǎn)時(shí)判斷是否為第i個(gè)結(jié)點(diǎn),假設(shè)是則查找成功;否則,將工作指針p后移,即將p指向原來(lái)所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)。直到p為NULL時(shí)查找失敗。單鏈表查找過(guò)程如圖4.4所示。圖4.4單鏈表查找過(guò)程的示意圖按*查詢學(xué)生成績(jī)信息同按查找學(xué)生成績(jī)信息,此處不再詳細(xì)列出。(3)學(xué)生成績(jī)修改模塊首先要查找與要修改數(shù)據(jù)相匹配的信息,假設(shè)沒有則返回失敗。否則把相應(yīng)的信息輸出,然后再重新輸入新的數(shù)據(jù)并保存到單鏈表。(4)學(xué)生成績(jī)刪除模塊中選擇刪除功能時(shí),首先輸入要?jiǎng)h除的同學(xué)的,然后輸入要?jiǎng)h除的同學(xué)的*,如果該同學(xué)存在并且與*匹配的上,則進(jìn)展刪除操作,否則返回失敗。其流程圖4.

22、5如下:開場(chǎng)刪除操作輸入*輸入*一致執(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的ne*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=S

23、tudent_First-Ne*t; if(!temp) cout文件無(wú)數(shù)據(jù)nn endl;cout1.返回主菜單choose; while(choose!=1) cout1.返回主菜單choose; Menu(); elsecoutOut(); temp=temp-Ne*t; cout1.返回主菜單choose;while(choose!=1)cout1.返回主菜單choose;Menu(); 第4章 概要設(shè)計(jì)利用單鏈表設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),使之提供以下功能:1 錄入學(xué)生信息記錄2 查詢學(xué)生信息記錄3 刪除學(xué)生信息記錄4 修改學(xué)生信息記錄5 顯示全部學(xué)生信息記錄需求說(shuō)明:1 學(xué)生信息包括

24、*、性別、數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī)、計(jì)算機(jī)成績(jī)、總分、平均分、名次,并且要求*不重復(fù);2 錄入記錄可以從以二進(jìn)制形式存儲(chǔ)的數(shù)據(jù)文件中讀入,也可以從鍵盤逐個(gè)輸入學(xué)生記錄。當(dāng)從數(shù)據(jù)文件中讀入記錄時(shí),它就是在以記錄為單位存儲(chǔ)的數(shù)據(jù)文件中,將記錄逐條復(fù)制到單鏈表中。3 對(duì)學(xué)生信息應(yīng)能夠分別按*及按兩種方式進(jìn)展查詢,要求能返回所有符合條件的學(xué)生的信息;假設(shè)找到該學(xué)生的記錄,它則返回該學(xué)生記錄的指針。否則,它返回一個(gè)值為NULL的空指針,并打印出未找到該學(xué)生記錄的提示信息。4 更新學(xué)生信息:要求可以對(duì)其進(jìn)展修改、刪除、排序、插入等操作,進(jìn)展了這些操作之后,需要將修改的數(shù)據(jù)存入源數(shù)據(jù)文件;5 輸出要求:對(duì)學(xué)生記錄

25、存盤操作,即將單鏈表中的各節(jié)點(diǎn)中存儲(chǔ)的學(xué)生記錄信息寫入數(shù)據(jù)文件中,并將單鏈表中存儲(chǔ)的學(xué)生記錄信息以表格的形式在屏幕上打印出來(lái);6 學(xué)生信息的顯示要求有一定的規(guī)格式;7 并要求在此過(guò)程中能夠盡可能的兼容用戶使用過(guò)程中的異常情況。二、總體設(shè)計(jì)初步提出解決方案,以及系統(tǒng)的體系構(gòu)造和數(shù)據(jù)構(gòu)造的設(shè)計(jì)方案,并寫出書面總體設(shè)計(jì)說(shuō)明書。三、詳細(xì)設(shè)計(jì)四、編寫代碼調(diào)試總結(jié)第5章 詳細(xì)設(shè)計(jì)/*錄入模板*/ void Add() /錄入學(xué)生成績(jī)信息函數(shù)char name20; int no; Class score;char choose; Student *f1,*p,*f2; system(cls);f1=Stu

26、dent_First;f2=Student_First-Ne*t;while(f1-Ne*t)f1=f1-Ne*t; do p=new Student;Printf(請(qǐng)輸入您要添加的學(xué)生成績(jī)信息:n);Printf(請(qǐng)輸入學(xué)生:); Sccanf(%c,&name);while(f2)if(strcmp(f2-GetName(),name)=0)printf(該學(xué)生已存在,請(qǐng)確定!nn);Printf(請(qǐng)輸入:); Sccanf(%c,&name);break;f2=f2-Ne*t; printf(請(qǐng)輸入*:); Scanf(%c,no); printf(請(qǐng)輸入語(yǔ)文成績(jī):); Scanf(%d

27、,&score.Chinese); printf(請(qǐng)輸入數(shù)學(xué)成績(jī):); Scanf(%d,&score.Math); printf(請(qǐng)輸入英語(yǔ)成績(jī):); Scanf(%d,&score.English); p-Set(name,no,score);f1-Ne*t=p; p-Ne*t=NULL;f1=f1-Ne*t;Printf(是否繼續(xù)輸入信息(YN) n);Scanf(%c,&choose);while(choose=y|choose=Y);Save();Printf(1.返回主菜單n);Scanf(%d,&choose);while(choose!=1)printf(1.返回主菜單); S

28、canf(%d,&choose);Menu();/*刪除模板*/ void Delete() /刪除信息函數(shù) char name20; int no;char choose;Student *temp,*p;system(cls);p=temp=Student_First-Ne*t; Printf(請(qǐng)輸入:); Scanf(%c,&name);Printf(輸入*:);Scanf(%c,&no);while(temp) if(strcmp(temp-GetName(),name)=0&temp-GetNo()=no) /判斷該學(xué)生信息是否存在 printf(t*t語(yǔ)文成績(jī)t數(shù)學(xué)成績(jī)t英語(yǔ)成績(jī)n

29、); temp-Out(); printf(n是否刪除(Y/N); Scanf(%c,&choose); if(choose=y|choose=Y)p-Ne*t=temp-Ne*t;delete temp;Printf(刪除成功:n); break; p=temp; temp=temp-Ne*t; Save(); Printf(1.返回主菜單n2.繼續(xù)刪除);Scanf(%c,&choose); while(choose!=1&choose!=2)printf(1.返回主菜單n2.繼續(xù)刪除); Scanf(%c,&choose);if(choose=1)Menu(); else if(choo

30、se=2)Delete(); /*修改模板*/ void Modify() /修改學(xué)生信息函數(shù)char choose,name20; Student *temp,*p; int no;Class score;system(cls);temp=p=Student_First;Printf(請(qǐng)輸入您要修改的學(xué)生:);Scanf(%c,&name);while(temp)if(strcmp(temp-GetName(),name)=0) Printf(t*t語(yǔ)文成績(jī)t數(shù)學(xué)成績(jī)t英語(yǔ)成績(jī)n;temp-Out(); Printf(請(qǐng)輸入:); Scanf(%c,&name); Printf(請(qǐng)輸入*:)

31、; Scanf(%c,&no); Printf(請(qǐng)輸入語(yǔ)文成績(jī):); Scanf(%c,&score.Chinese); Printf(請(qǐng)輸入數(shù)學(xué)成績(jī):); Scanf(%c,&score.Math); Printf(請(qǐng)輸入英語(yǔ)成績(jī):); Scanf(%c,&score.English); temp-Set(name,no,score);break;temp=temp-Ne*t; Save();Printf(修改成功!);Printf(1.返回主菜單n2.繼續(xù)修改); Scanf(%c,&choose);while(choose!=1&choose!=2) Printf(1.返回主菜單n2.繼

32、續(xù)修改); Scanf(%c,&choose);if(choose=1)Menu();else if(choose=2)Modify();/*查找模板*/ void Search() int flag(0); char choose; char t120;int t2;system(cls);Student *temp=Student_First-Ne*t; do printf(輸入查詢方式:n1.按查詢n2.按*查詢n);Scanf(%c,&choose);if(choose=1)printf(請(qǐng)輸入您要查詢的:);Scanf(%d,&t1);while(temp)if(strcmp(t1,

33、temp-GetName()=0) flag=1;break;temp=temp-Ne*t; if(flag=0)Printf(n無(wú)該學(xué)生的信息n);elseprintf(t*t語(yǔ)文成績(jī)t數(shù)學(xué)成績(jī)t英語(yǔ)成績(jī)n);temp-Out();break;else if(choose=2)printf(請(qǐng)輸入您要查詢的*);Scanf(%d,&t2);while(temp)if(t2=temp-GetNo() flag=1; break;temp=temp-Ne*t; if(flag=0)printf(n無(wú)該學(xué)生的信息nOut(); break;while(choose!=1|choose!=2); p

34、rintf(n1.返回主菜單n2.繼續(xù)查詢);Scanf(%c,&choose);while(choose!=1&choose!=2)printf(1.返回主菜單n2.繼續(xù)查詢);Scanf(%c,&choose;);if(choose=1)Menu(); else if(choose=2) Search(); 第6章 調(diào)試分析對(duì)以上代碼在DEV C+環(huán)境下運(yùn)行,進(jìn)展不斷調(diào)試,發(fā)現(xiàn)錯(cuò)誤,修改錯(cuò)誤。1開場(chǎng)程序運(yùn)行輸入學(xué)生數(shù)據(jù)時(shí),沒有設(shè)置完畢語(yǔ)造成了無(wú)限循環(huán)的結(jié)果。2開場(chǎng)執(zhí)行輸入函數(shù),按*順序輸入學(xué)生的成績(jī),輸完后執(zhí)行顯示功能,學(xué)生成績(jī)記錄是空的無(wú)法顯示的,試著在其中增加一些語(yǔ)句,把學(xué)生信息寫入文件中,然后再?gòu)奈募凶x取,接著

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論