大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績管理系統(tǒng)

上傳人:仙*** 文檔編號(hào):83803000 上傳時(shí)間:2022-05-02 格式:DOC 頁數(shù):43 大?。?92.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績管理系統(tǒng)_第1頁
第1頁 / 共43頁
大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績管理系統(tǒng)_第2頁
第2頁 / 共43頁
大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績管理系統(tǒng)_第3頁
第3頁 / 共43頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 學(xué)生成績管理系統(tǒng)(43頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、word任 務(wù) 書題目:學(xué)生成績管理系統(tǒng)設(shè)計(jì)內(nèi)容與要求:設(shè)計(jì)一個(gè)簡易的學(xué)生成績管理系統(tǒng),能夠完成學(xué)生成績的增加、刪除、查找、修改、統(tǒng)計(jì)等操作,數(shù)據(jù)信息保存文件保存。要求系統(tǒng)具有菜單和提示,界面友好。實(shí)現(xiàn)學(xué)生成績的管理和保存。開發(fā)環(huán)境:實(shí)現(xiàn)目標(biāo):(1) 熟悉的運(yùn)用c語言程序編寫代碼。(2) 能夠理清整個(gè)程序的運(yùn)行過程并繪畫流程圖(3) 了解如何定義局部變量和整體變量;(4) 學(xué)會(huì)上機(jī)調(diào)試程序,發(fā)現(xiàn)問題,并解決(5) 學(xué)習(xí)使用C+程序來了解程序原理。(6) 學(xué)習(xí)用文檔書寫程序說明摘 要管理信息系統(tǒng)正在向著網(wǎng)絡(luò)化、智能化和集成化等趨勢開展。學(xué)生成績管理系統(tǒng)是為了更好的管理學(xué)生考試成績而開發(fā)的數(shù)據(jù)管理

2、軟件。它對(duì)于一個(gè)學(xué)校是不可缺少的重要局部,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要。學(xué)生成績管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢手段,實(shí)現(xiàn)學(xué)生根本信息、成績的錄入,刪除,查詢,維護(hù)以與成績的統(tǒng)計(jì)分析等幾方面的功能,是現(xiàn)實(shí)問題的迫切要求。本系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生成績管理的系統(tǒng)化、規(guī)X化、自動(dòng)化。達(dá)到提高學(xué)生成績管理效率的目的。與傳統(tǒng)管理方法相比有明顯的優(yōu)點(diǎn):查找方便,可靠性高,某某性好,本錢低。徹底改變了以前繁雜的管理模式,實(shí)現(xiàn)全面的、相對(duì)集中的、職能化的信息綜合管理。計(jì)算機(jī)被用到信息管理系統(tǒng)的環(huán)境正是適應(yīng)了當(dāng)今時(shí)代飛速開展的信息時(shí)代。人們深刻的認(rèn)識(shí)到了計(jì)算機(jī)功能的強(qiáng)大,對(duì)于

3、復(fù)雜的信息管理,計(jì)算機(jī)充分發(fā)揮著它的優(yōu)越性。檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、某某性好、壽命長、本錢低,這些優(yōu)點(diǎn)極大地減輕了學(xué)院教學(xué)人員的工作量,縮小開支,提高了學(xué)生檔案管理的效率和準(zhǔn)確性,能夠合理的安排時(shí)間,學(xué)生能夠盡快的知道自己的考試成績。同時(shí),學(xué)生管理系統(tǒng)的應(yīng)用也為今天的教育在未來市場的競爭力有所提高。 目 錄1.引 言52.課題分析73.具體設(shè)計(jì)過程8設(shè)計(jì)思路88.函數(shù)實(shí)現(xiàn)說明104.程序運(yùn)行結(jié)果135.軟件使用說明146.結(jié)論14參 考 文 獻(xiàn)16附錄:源代碼161.引 言數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)界至今沒有標(biāo)準(zhǔn)的定義。個(gè)人根據(jù)各自的理解的不同而有不同的表述方法:Sartaj Sah

4、ni在他的數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用一書中稱:“數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)對(duì)象,以與存在于該對(duì)象的實(shí)例和組成實(shí) 例的數(shù)據(jù)元素之間的各種聯(lián)系。這些聯(lián)系可以通過定義相關(guān)的函數(shù)來給出。他將數(shù)據(jù)對(duì)象data object定義為“一個(gè)數(shù)據(jù)對(duì)象是實(shí)例或值的集合。在數(shù)據(jù)結(jié)構(gòu)與算法分析一書中的定義是:“數(shù)據(jù)結(jié)構(gòu)是 ADT抽象數(shù)據(jù)類型Abstract Data Type 的物理實(shí)現(xiàn)。 在數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)一書中,將一個(gè)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)過程分成抽象層、數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層。其中,抽象層是指抽象數(shù)據(jù)類型層,它討論數(shù)據(jù)的邏輯結(jié)構(gòu)與其運(yùn)算,數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層討論一個(gè)數(shù)據(jù)結(jié)構(gòu)的表示和在計(jì)算機(jī)內(nèi)的存儲(chǔ)細(xì)節(jié)以與運(yùn)算的實(shí)現(xiàn)。數(shù)據(jù)結(jié)構(gòu)具體指同一類數(shù)據(jù)

5、元素中,各元素之間的相互關(guān)系,包括三個(gè)組成成分,數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)運(yùn)算結(jié)構(gòu)。 1.1. 重要意義一般認(rèn)為,一個(gè)數(shù)據(jù)結(jié)構(gòu)是由數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來的。對(duì)數(shù)據(jù)元素間邏輯關(guān)系的描述稱為數(shù)據(jù)的邏輯結(jié)構(gòu);數(shù)據(jù)必須在計(jì)算機(jī)內(nèi)存儲(chǔ),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)形式,是其在計(jì)算機(jī)內(nèi)的表示;此外討論一個(gè)數(shù)據(jù)結(jié)構(gòu)必須同時(shí)討論在該類數(shù)據(jù)上執(zhí)行的運(yùn)算才有意義。 在許多類型的程序的設(shè)計(jì)中,數(shù)據(jù)結(jié)構(gòu)的選擇是一個(gè)根本的設(shè)計(jì)考慮因素。許多大型系統(tǒng)的構(gòu)造經(jīng)驗(yàn)明確,系統(tǒng)實(shí)現(xiàn)的困難程度和系統(tǒng)構(gòu)造的質(zhì)量都嚴(yán)重的依賴于是否選擇了最優(yōu)的數(shù)據(jù)結(jié)構(gòu)。許多時(shí)候,確定了數(shù)據(jù)結(jié)構(gòu)后,算法就容易得到了。有些時(shí)候事情也會(huì)

6、反過來,我們根據(jù)特定算法來選擇數(shù)據(jù)結(jié)構(gòu)與之適應(yīng)。不論哪種情況,選擇適宜的數(shù)據(jù)結(jié)構(gòu)都是非常重要的。 選擇了數(shù)據(jù)結(jié)構(gòu),算法也隨之確定,是數(shù)據(jù)而不是算法是系統(tǒng)構(gòu)造的關(guān)鍵因素。這種洞見導(dǎo)致了許多種軟件設(shè)計(jì)方法和程序設(shè)計(jì)語言的出現(xiàn),面向?qū)ο蟮某绦蛟O(shè)計(jì)語言就是其中之一。 1.2. 研究內(nèi)容在計(jì)算機(jī)科學(xué)中,數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中計(jì)算機(jī)的操作對(duì)象數(shù)據(jù)元素以與它們之間的關(guān)系和運(yùn)算等的學(xué)科,而且確保經(jīng)過這些運(yùn)算后所得到的新結(jié)構(gòu)仍然是原來的結(jié)構(gòu)類型。 “數(shù)據(jù)結(jié)構(gòu)作為一門獨(dú)立的課程在國外是從1968年才開始設(shè)立的。 1968年美國唐歐克努特教授開創(chuàng)了數(shù)據(jù)結(jié)構(gòu)的最初體系,他所著的計(jì)算機(jī)程序設(shè)計(jì)技巧

7、第一卷根本算法是第一本較系統(tǒng)地闡述數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)與其操作的著作。“數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)中是一門綜合性的專業(yè)根底課。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件三者之間的一門核心課程。數(shù)據(jù)結(jié)構(gòu)這一門課的內(nèi)容不僅是一般程序設(shè)計(jì)特別是非數(shù)值性程序設(shè)計(jì)的根底,而且是設(shè)計(jì)和實(shí)現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)與其他系統(tǒng)程序的重要根底。 計(jì)算機(jī)是一門研究用計(jì)算機(jī)進(jìn)展信息表示和處理的科學(xué)。這里面涉與到兩個(gè)問題:信息的表示,信息的處理 。 而信息的表示和組織又直接關(guān)系到處理信息的程序的效率。隨著計(jì)算機(jī)的普與,信息量的增加,信息X圍的拓寬,使許多系統(tǒng)程序和應(yīng)用程序的規(guī)模很大,結(jié)構(gòu)又相當(dāng)復(fù)雜。因此,為了編寫

8、出一個(gè)“好的程序,必須分析待處理的對(duì)象的特征與各對(duì)象之間存在的關(guān)系,這就是數(shù)據(jù)結(jié)構(gòu)這門課所要研究的問題。眾所周知,計(jì)算機(jī)的程序是對(duì)信息進(jìn)展加工處理。在大多數(shù)情況下,這些信息并不是沒有組織,信息數(shù)據(jù)之間往往具有重要的結(jié)構(gòu)關(guān)系,這就是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。計(jì)算機(jī)解決一個(gè)具體問題時(shí),大致需要經(jīng)過如下幾個(gè)步驟:首先要從具體問題中抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計(jì)一個(gè)解此數(shù)學(xué)模型的算法Algorithm,最后編出程序、進(jìn)展測試、調(diào)整直至得到最終解答。尋求數(shù)學(xué)模型的實(shí)質(zhì)是分析問題,從中提取操作的對(duì)象,并找出這些操作對(duì)象之間含有的關(guān)系,然后用數(shù)學(xué)的語言加以描述。計(jì)算機(jī)算法與數(shù)

9、據(jù)的結(jié)構(gòu)密切相關(guān),算法無不依附于具體的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)直接關(guān)系到算法的選擇和效率。運(yùn)算是由計(jì)算機(jī)來完成,這就要設(shè)計(jì)相應(yīng)的插入、刪除和修改的算法 。也就是說,數(shù)據(jù)結(jié)構(gòu)還需要給出每種結(jié)構(gòu)類型所定義的各種運(yùn)算的算法。 數(shù)據(jù)是對(duì)客觀事物的符號(hào)表示,在計(jì)算機(jī)科學(xué)中是指所有能輸入到計(jì)算機(jī)中并由計(jì)算機(jī)程序處理的符號(hào)的總稱。 數(shù)據(jù)元素是數(shù)據(jù)的根本單位,在計(jì)算機(jī)程序中通常作為一個(gè)整體考慮。一個(gè)數(shù)據(jù)元素由假如干個(gè)數(shù)據(jù)項(xiàng)組成。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的不可分割的最小單位。有兩類數(shù)據(jù)元素:一類是不可分割的原子型數(shù)據(jù)元素,如:整數(shù)5,字符 N 等;另一類是由多個(gè)款項(xiàng)構(gòu)成的數(shù)據(jù)元素,其中每個(gè)款項(xiàng)被稱為一個(gè)數(shù)據(jù)項(xiàng)。例如描述一個(gè)學(xué)生的

10、信息的數(shù)據(jù)元素可由如下6個(gè)數(shù)據(jù)項(xiàng)組成。其中的出生日期又可以由三個(gè)數(shù)據(jù)項(xiàng):年、月和日組成,如此稱出生日期為組合項(xiàng),而其它不可分割的數(shù)據(jù)項(xiàng)為原子項(xiàng)。關(guān)鍵字指的是能識(shí)別一個(gè)或多個(gè)數(shù)據(jù)元素的數(shù)據(jù)項(xiàng)。假如能起唯一識(shí)別作用,如此稱之為 主 關(guān)鍵字,否如此稱之為 次 關(guān)鍵字。數(shù)據(jù)對(duì)象是性質(zhì)一樣的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集。數(shù)據(jù)對(duì)象可以是有限的,也可以是無限的。數(shù)據(jù)處理是指對(duì)數(shù)據(jù)進(jìn)展查找、插入、刪除、合并、排序、統(tǒng)計(jì)以與簡單計(jì)算等的操作過程。在早期,計(jì)算機(jī)主要用于科學(xué)和工程計(jì)算,進(jìn)入八十年代以后,計(jì)算機(jī)主要用于數(shù)據(jù)處理。據(jù)有關(guān)統(tǒng)計(jì)資料明確,現(xiàn)在計(jì)算機(jī)用于數(shù)據(jù)處理的時(shí)間比例達(dá)到80%以上,隨著時(shí)間的推移和

11、計(jì)算機(jī)應(yīng)用的進(jìn)一步普與,計(jì)算機(jī)用于數(shù)據(jù)處理的時(shí)間比例必將進(jìn)一步增大。2. 課題分析學(xué)生成績管理系統(tǒng)主要提供成績查詢,方便管理的網(wǎng)上的信息查閱平臺(tái),學(xué)生可以通過該系統(tǒng) 查閱與自己相關(guān)信息,查看留言、提交留言。教師可以通過成績管理系統(tǒng)查閱學(xué)生成績信息,教師信 息,查看教師留言、學(xué)生留言、提交留言、留言的管理等相關(guān)操作。系統(tǒng)管理員可以實(shí)現(xiàn)以上的所有 功能,還有對(duì)學(xué)生的添加、刪除、修改、教師的添加、刪除、修改,數(shù)據(jù)庫的備份、數(shù)據(jù)庫的復(fù)原等 相關(guān)操作。 根據(jù)開發(fā)要求,學(xué)生成績管理系統(tǒng)主要應(yīng)用于教育系統(tǒng),完成對(duì)日常的教學(xué)、教務(wù)、教師以與學(xué) 生的計(jì)算機(jī)化的管理。開發(fā)學(xué)生成績管理系統(tǒng)可使學(xué)院教職員工減輕工作壓

12、力,比擬系統(tǒng)地對(duì)教務(wù)、 教學(xué)上的各項(xiàng)服務(wù)和信息進(jìn)展管理,同時(shí),可以減少勞動(dòng)力的使用,加快查詢速度、加強(qiáng)管理,以與 國家各部門關(guān)于信息化的步伐,使各項(xiàng)管理更加規(guī)X化。目前,學(xué)校工作繁雜、資料重多。目前,管 理信息系統(tǒng)已進(jìn)入高校,但還未普與,而對(duì)于學(xué)生成績管理來說,目前還沒有一套完整的、統(tǒng)一的系統(tǒng)。因此,開發(fā)一套適和大眾的、兼容性好的系統(tǒng)是很有必要的。3. 具體設(shè)計(jì)過程設(shè)計(jì)思路 要完成學(xué)生成績信息的增刪改查與統(tǒng)計(jì),首先設(shè)計(jì)一下內(nèi)存中存放數(shù)據(jù)信息的格式。在本設(shè)計(jì)中采用動(dòng)態(tài)內(nèi)存空間分配的鏈表方法,該方法為一個(gè)結(jié)構(gòu)分配內(nèi)存空間。每一次分配一塊空間可用來存放一個(gè)學(xué)生成績的數(shù)據(jù),可稱之為一個(gè)結(jié)點(diǎn)。有多少個(gè)學(xué)

13、生就應(yīng)該有多少結(jié)點(diǎn)??偪啬K管理有三種不同的信息的處理模塊,即管理員模塊、教師模塊、學(xué)生模塊,各模塊的主要功能有:1系統(tǒng)管理員進(jìn)入學(xué)生成績管理的主要功能:實(shí)現(xiàn)管理員用戶的添加、修改和刪除,以與對(duì)教師添加、教師修改、教師刪除、教師查詢、學(xué)生添加、學(xué)生修改、學(xué)生刪除、學(xué)生查詢等根本功能,并且參與開設(shè)課程、選擇課程的管理,安排教師的任課和學(xué)生的選課工作。2教師進(jìn)入學(xué)生成績管理系統(tǒng)的主要功能:各科教師登錄系統(tǒng)后查詢和修改個(gè)人信息,修改自己的賬號(hào)密碼,查詢自己的授課課程,實(shí)現(xiàn)對(duì)選修了自己課程的學(xué)生的成績進(jìn)展查詢、錄入和修改,各科教師可以對(duì)自己學(xué)生選修課程完畢后給予分?jǐn)?shù),同時(shí)可以對(duì)自己所帶課程的成績優(yōu)秀人

14、數(shù)、與格人數(shù)、不與格人數(shù)的分布信息進(jìn)展查詢。3學(xué)生進(jìn)入學(xué)生成績管理系統(tǒng)的主要功能:每個(gè)學(xué)生登錄后可以查詢和修改個(gè)人信息、修改自己的賬號(hào)密碼,以與自己所選任課教師的個(gè)人信息,同時(shí)在課程完畢后可以查詢?cè)谛F陂g各個(gè)時(shí)間段選修課程的成績與學(xué)分,以與對(duì)單科成績和總分的排名查詢。 學(xué)生成績系統(tǒng)中學(xué)生的成績信息按照學(xué)號(hào)的順序進(jìn)展存放。根據(jù)任務(wù)要求,下面將系統(tǒng)功能進(jìn)展詳細(xì)設(shè)計(jì)劃分,功能結(jié)構(gòu)圖1如下: 圖1.函數(shù)實(shí)現(xiàn)說明 在本實(shí)驗(yàn)中,使用鏈表存放學(xué)生成績數(shù)據(jù),設(shè)計(jì)一個(gè)功能類record來完成系統(tǒng)的各項(xiàng)功能。具體設(shè)計(jì)如下:class recordpublic: struct SCORE * InsertRecor

15、d(struct SCORE * h); /增加學(xué)生成績信息struct SCORE * DeleteRecord(struct SCORE * h); /刪除學(xué)生成績信息struct SCORE * UpdateRecord(struct SCORE * h); /修改學(xué)生成績信息 void FindRecord(struct SCORE * h,int x,float s1,float s2); /根據(jù)某門課程的分?jǐn)?shù)段查詢學(xué)生成績信息void FindRecord(struct SCORE * h,string x); /根據(jù)學(xué)生某某查詢成績信息void FindRecord(struct

16、 SCORE * h,int x); /根據(jù)學(xué)生學(xué)號(hào)查詢成績信息void StatisticRecord(struct SCORE * h,int x); /統(tǒng)計(jì)某門課程的與格學(xué)生人數(shù)、與格率,并顯示不與格學(xué)生信息void StacRecordFine(struct SCORE * h); /統(tǒng)計(jì)三門課程成績?nèi)珵閮?yōu)秀的學(xué)生人數(shù),并顯示全為優(yōu)秀的學(xué)生信息 void StacRecordDisq(struct SCORE * h); /統(tǒng)計(jì)三門課程成績?nèi)坎慌c格的學(xué)生人數(shù),并顯示全部不與格的學(xué)生信息void PrintRecord(struct SCORE * h); /輸出所有學(xué)生成績信息voi

17、d SaveRecordFile(struct SCORE * h); /保存學(xué)生成績信息到文件struct SCORE * LoadRecordFile(struct SCORE * h); /從文件中加載學(xué)生成績信息;4.程序運(yùn)行結(jié)果圖1為初始界面,當(dāng)我們選擇運(yùn)行程序時(shí),便會(huì)出現(xiàn)如如下圖的界面。根據(jù)上面文字的內(nèi)容,我們可以了解系統(tǒng)的功能。并開始根據(jù)提示操作。如如下圖所示:圖2為具體添加學(xué)生信息的操作:圖3為修改學(xué)生成績信息:圖4為刪除學(xué)生成績信息:學(xué)生成績管理系統(tǒng)包括九個(gè)模塊:輸入學(xué)生資料,輸出學(xué)生資料,學(xué)生某某按順 序排列,添加學(xué)生資料,按某某查找,刪除該學(xué)生資料,查找并顯示學(xué)生資料,按

18、某某 查找,修改該學(xué)生資料,從文件中讀入數(shù)據(jù),儲(chǔ)存學(xué)生資料并退出系統(tǒng)。這九個(gè)模塊既 相互聯(lián)系又相互獨(dú)立。 本系統(tǒng)根據(jù)學(xué)生成績管理的需要,而建立一個(gè)學(xué)生成績管理系統(tǒng),以方便對(duì)成績的 各項(xiàng)管理操作。本系統(tǒng)能對(duì)成績進(jìn)展輸入和輸出;能按某某對(duì)學(xué)生進(jìn)展排序,并顯示學(xué)生資料、成績等,不過得以系統(tǒng)輸入學(xué)生資料、成績?yōu)榍疤?;能添加學(xué)生成績資料;能根據(jù)學(xué)生的某某來查詢?cè)搶W(xué)生的成績資料,并修改或是刪除該學(xué)生信息;能夠從文件中讀取學(xué)生信息,并且添加到系統(tǒng)中;能把對(duì)系統(tǒng)所進(jìn)展的操作進(jìn)展保存,以與時(shí)更新系統(tǒng)中的數(shù)據(jù)。6.結(jié)論課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí) ,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是

19、對(duì)我們的實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)開展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強(qiáng)大的一種高級(jí)語言,因此做好C語言課程設(shè)計(jì)是十分必要的。回顧起此次課程設(shè)計(jì),至今我們?nèi)愿锌H多,確實(shí),自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)月的日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論

20、,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)一些前面學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠結(jié)實(shí),比如說結(jié)構(gòu)體,指針,鏈表通過這次課程設(shè)計(jì)之后,我們把前面所學(xué)過的知識(shí)又重新溫故了一遍。我做的是黑白棋的課程設(shè)計(jì),雖然是很簡單的一個(gè)小的程序,但對(duì)我一個(gè)初學(xué)者來說卻是一個(gè)很大的困難。更加是第一次做課程設(shè)計(jì),所以第一天下午在機(jī)房做了一個(gè)下午卻絲毫沒有進(jìn)展,最主要是不知從何開始,這個(gè)時(shí)候才知道上課教師們不厭其煩的教誨是多么的寶貴,這個(gè)時(shí)候才后悔上課的時(shí)候沒

21、有認(rèn)真的聽講。可是現(xiàn)在一切都晚了,還好時(shí)間還算是充裕,只好拿出書本重新復(fù)習(xí)一下。特別是結(jié)構(gòu)體,繪制棋盤的局部,幾乎是一片空白,不知從何著手。不過經(jīng)過幾天的努力,大體上把課本上的知識(shí)點(diǎn)看了一遍,知識(shí)點(diǎn)也都根本是撐握了,所以一下一步就是開始正式的編程序了。不過畢竟是個(gè)新手,還是不知如何下手,于是就在網(wǎng)上下了一篇類似的程序,經(jīng)過仔細(xì)的研究,終于讀懂了C語言編程的根本過程和方法。經(jīng)過一波三折,終于開始正式編程。編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強(qiáng)破自己堅(jiān)持下去,按照教師所說的模塊化思想,分局部的進(jìn)展編寫。而且編程是一件高精度、模X化的事情,稍有疏乎都會(huì)影響全局,也可

22、能因?yàn)槟骋惶幍男〉腻e(cuò)誤而導(dǎo)致整個(gè)程序的無法運(yùn)行。所以認(rèn)真仔細(xì)就是非常重要的了。開始的時(shí)候真的感覺編程是一件很無聊的事情,不過當(dāng)一個(gè)程序運(yùn)行成功的時(shí)候那種喜悅是無法言語的,那種成就感是無法比擬的。又經(jīng)過幾天的努力,終于把程序完成了,盡管程序還是有很多錯(cuò)誤和漏洞,不過還是很高興的。無論如何是自己的勞動(dòng)成果,是自己經(jīng)過努力得到的成績,同時(shí)也是學(xué)習(xí)C語言的一次實(shí)踐作業(yè),自己進(jìn)步的證明。通過這次課程設(shè)計(jì),使我對(duì)C語言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯(cuò)字母,通過學(xué)習(xí)也有所改良;再有對(duì)C語言的一些

23、標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)C語言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過實(shí)踐的學(xué)習(xí),我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以與其它的計(jì)算機(jī)方面的知識(shí)都要重在實(shí)踐,所以后在學(xué)習(xí)過程中,我會(huì)更加注視實(shí)踐操作,使自己便好地學(xué)好計(jì)算機(jī)。 在課程設(shè)計(jì)過程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克制心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定會(huì)把課程設(shè)計(jì)的精神帶到生活中,不畏困難,勇往直前!參 考 文 獻(xiàn)附錄:源代碼# include # includ

24、e # include using namespace std;struct SCORE /定義存放學(xué)生成績信息的結(jié)點(diǎn) int num; /學(xué)號(hào)string name; /某某float math; /數(shù)學(xué)成績float english; /英語成績float puter; /就算計(jì)根底成績float scoresum; /總成績struct SCORE * next; /next為指向下一結(jié)點(diǎn)的指針;struct SCORE * head; /指向鏈表頭結(jié)點(diǎn)的指針int studentSum=0; /學(xué)生總?cè)藬?shù)class recordpublic: struct SCORE * Insert

25、Record(struct SCORE * h); /增加學(xué)生成績信息struct SCORE * DeleteRecord(struct SCORE * h); /刪除學(xué)生成績信息struct SCORE * UpdateRecord(struct SCORE * h); /修改學(xué)生成績信息 void FindRecord(struct SCORE * h,int x,float s1,float s2); /根據(jù)某門課程的分?jǐn)?shù)段查詢學(xué)生成績信息void FindRecord(struct SCORE * h,string x); /根據(jù)學(xué)生某某查詢成績信息void FindRecord(s

26、truct SCORE * h,int x); /根據(jù)學(xué)生學(xué)號(hào)查詢成績信息void StatisticRecord(struct SCORE * h,int x); /統(tǒng)計(jì)某門課程的與格學(xué)生人數(shù)、與格率,并顯示不與格學(xué)生信息void StacRecordFine(struct SCORE * h); /統(tǒng)計(jì)三門課程成績?nèi)珵閮?yōu)秀的學(xué)生人數(shù),并顯示全為優(yōu)秀的學(xué)生信息 void StacRecordDisq(struct SCORE * h); /統(tǒng)計(jì)三門課程成績?nèi)坎慌c格的學(xué)生人數(shù),并顯示全部不與格的學(xué)生信息void PrintRecord(struct SCORE * h); /輸出所有學(xué)生成績

27、信息void SaveRecordFile(struct SCORE * h); /保存學(xué)生成績信息到文件struct SCORE * LoadRecordFile(struct SCORE * h); /從文件中加載學(xué)生成績信息;struct SCORE * record:InsertRecord(struct SCORE * h) struct SCORE * p1,*p2,*p3; /定義指針變量p1、p2、p3p3=new SCORE; /創(chuàng)建新的學(xué)生成績結(jié)點(diǎn)coutp3-num; /從鍵盤接收輸入數(shù)賦值給結(jié)點(diǎn)的學(xué)號(hào)coutp3-name; /從鍵盤接收輸入數(shù)賦值給結(jié)點(diǎn)的某某coutp

28、3-math; /從鍵盤接收輸入數(shù)賦值給結(jié)點(diǎn)的數(shù)學(xué)成績coutp3-english; /從鍵盤接收輸入數(shù)賦值給結(jié)點(diǎn)的英語成績coutp3-puter; /從鍵盤接收輸入數(shù)賦值給結(jié)點(diǎn)的計(jì)算機(jī)成績p3-scoresum=p3-math+p3-english+p3-puter; /計(jì)算結(jié)點(diǎn)的總成績p3-next=NULL; /將要插入結(jié)點(diǎn)的指針域設(shè)置為空if(h=NULL) /當(dāng)鏈表中沒有結(jié)點(diǎn)時(shí),將要參加的結(jié)點(diǎn)作為頭結(jié)點(diǎn) h=p3;return h;p1=p2=h;while(p1!=NULL&p3-nump1-num) /查找結(jié)點(diǎn)的學(xué)號(hào)大于要插入結(jié)點(diǎn)學(xué)號(hào)的第一個(gè)結(jié)點(diǎn) /指針p1表示符合條件的結(jié)點(diǎn)的

29、指針,指針p2是指針p1的前一個(gè)結(jié)點(diǎn)指針p2=p1;p1=p1-next; if(p1=h) /插入位置為頭結(jié)點(diǎn)前p3-next=p3;h=p3;return h;else /插入位置為鏈表中間和鏈表尾部p2-next=p3;p3-next=p1;studentSum+=1; /學(xué)生人數(shù)加1return h; /返回鏈表的頭結(jié)點(diǎn)void record:PrintRecord(SCORE * h) if(h=NULL)coutn抱歉,沒有任何記錄!n;return;coutn學(xué)號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分endl;while(h) /輸出鏈表中每個(gè)結(jié)點(diǎn)的學(xué)生成績信息coutnumtname

30、tmathtenglishtputertscoresumnext;struct SCORE * record:DeleteRecord(struct SCORE * h) struct SCORE * p1,* p2;int num;if(h=NULL) /鏈表為空coutn抱歉,沒有任何記錄!;return h;p1=p2=h; /將鏈表的頭結(jié)點(diǎn)指針h賦值給指針p1和指針p2coutnum;while(p1!=NULL&p1-num!=num) /查找結(jié)點(diǎn)的學(xué)號(hào)等于要?jiǎng)h除學(xué)生學(xué)號(hào)的第一個(gè)結(jié)點(diǎn) /指針p1表示符合條件的結(jié)點(diǎn)的指針,指針p2是指針p1的前一個(gè)結(jié)點(diǎn)指針p2=p1;p1=p1-nex

31、t;if(p1=NULL) /沒有找到符合要求的結(jié)點(diǎn)coutnum=num)studentSum-=1; /學(xué)生人數(shù)減1 if(p1=h) /刪除的是頭結(jié)點(diǎn)h=h-next ;else /刪除的是非頭結(jié)點(diǎn)p2-next=p1-next;delete p1; /釋放p1 所指向的儲(chǔ)存單元return h; struct SCORE * record:UpdateRecord(struct SCORE *h ) struct SCORE * p1;int num;if(h=NULL) /鏈表為空 coutn抱歉,沒有任何記錄!;return h;p1=h; /將鏈表的頭結(jié)點(diǎn)指針h賦值給指針p1co

32、utnum;while(p1!=NULL&p1-num!=num) /查找結(jié)點(diǎn)的學(xué)號(hào)等于要修改學(xué)生學(xué)號(hào)的指針結(jié)點(diǎn)p1=p1-next; /將p1指針移到下一個(gè)結(jié)點(diǎn)if(p1=NULL) /沒有找到符合要求的結(jié)點(diǎn)coutnum=num) /找到符合要求的結(jié)點(diǎn),并修改學(xué)生的相關(guān)成績coutp1-math ;coutp1-english ;coutp1-puter;p1-scoresum=p1-math+p1-english+p1-puter;return h;void record:FindRecord(struct SCORE * h,int x,float s1,float s2) if(h=

33、NULL) /鏈表為空coutn抱歉,沒有任何記錄!;return;cout n學(xué)號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分math=s1&h-math=s2)coutnumtnametmathtenglishtputertscoresumenglish=s1&h-english=s2)coutnumtnametmathtenglishtputertscoresum puter=s1&h-english=s2)coutnumtnametmathtenglishtputertscoresum next;void record:FindRecord(struct SCORE * h,int num) /根

34、據(jù)學(xué)生學(xué)號(hào)查找學(xué)生成績信息 struct SCORE * p1;if(h=NULL) /鏈表為空coutnum!=num) /查找節(jié)點(diǎn)的學(xué)號(hào)等于要查找學(xué)生學(xué)號(hào)的指針結(jié)點(diǎn) p1=p1-next;if(p1=NULL) /沒有找到coutnum=num) /找到并顯示信息coutn學(xué)號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分endl;coutnumtnametmathtenglishtputertscoresumendl;void record:FindRecord(struct SCORE * h,string name) /根據(jù)學(xué)生某某查找學(xué)生成績信息 struct SCORE * p1;if(h=N

35、ULL) /鏈表為空coutname!=name)p1=p1-next;if(p1=NULL)coutname=name)coutn學(xué)號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分endl;coutnumtnametmathtenglishtputertscoresumendl;void record:StatisticRecord(struct SCORE*h,int x)struct SCORE*p=h; /將鏈表的頭結(jié)點(diǎn)指針h復(fù)制給指針pint count=0; /定義統(tǒng)計(jì)人數(shù)count變量并賦初始值為0if(p=NULL) /鏈表為空coutmath=60)count+=1;if(x=2) /統(tǒng)計(jì)

36、英語成績與格的學(xué)生人數(shù)if(p-english=60)count+=1;if(x=3) /統(tǒng)計(jì)計(jì)算機(jī)成績與格的學(xué)生人數(shù)if(p-puter=60)count+=1;p=p-next;if(x=1) /顯示數(shù)學(xué)成績與格的學(xué)生人數(shù)與與格率cout數(shù)學(xué)成績與格學(xué)生人數(shù)為;coutcount;cout,與格率為;coutcount/(float)studentSumendl;if(countstudentSum)coutn學(xué)號(hào)t某某t數(shù)學(xué)endl;elsecout沒有數(shù)學(xué)成績不與格學(xué)生endl;elseif(x=2) /顯示英語成績與格的學(xué)生人數(shù)與與格率cout英語績與格學(xué)生人數(shù)為;coutcount

37、;cout,與格率為;coutcount/(float)studentSumendl;if(countstudentSum)coutn學(xué)號(hào)t某某t英語endl;elsecout沒有英語成績不與格的學(xué)生endl;elseif(x=3) /顯示計(jì)算機(jī)成績與格的學(xué)生人數(shù)與與格率cout計(jì)算機(jī)成績與格的學(xué)生人數(shù)為;coutcount;cout,與格率為;coutcount/(float)studentSumendl;if(countstudentSum)coutn學(xué)號(hào)t某某t計(jì)算機(jī)endl;elsecout沒有計(jì)算機(jī)成績不與格的學(xué)生math60)coutnumtnametmathenglish60)c

38、outnumtnametenglishputer60)coutnumtnametputernext;void record:StacRecordFine(struct SCORE*h)struct SCORE *p=h; /將鏈表的頭結(jié)點(diǎn)指針h賦值給指針平pint count=0; /定義統(tǒng)計(jì)人數(shù)count變量并賦初始值為0if(p=NULL) /鏈表為空coutmath=90&p-english=90&p-puter=90)/統(tǒng)計(jì)三門成績?nèi)繛閮?yōu)秀的學(xué)生人數(shù)count+=1;p=p-next; /將指針移到下一結(jié)點(diǎn)cout三門成績?nèi)珵閮?yōu)秀的學(xué)生人數(shù)為;coutcountendl;coutn學(xué)

39、號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分math=90&p-english=90&p-puter=90) /顯示三門成績?nèi)繛閮?yōu)秀的學(xué)生信息coutnumtnametmathtenglishtputertscoresumnext;void record:StacRecordDisq(struct SCORE*h)struct SCORE*p=h; /將鏈表的頭結(jié)點(diǎn)指針h賦值給指針pint count=0; /定義統(tǒng)計(jì)人數(shù)count變量并賦初值為0if(p=NULL) /鏈表為空coutmathenglishputernext; cout三門成績?nèi)坎慌c格的學(xué)生信息為;coutcountendl;co

40、ut全為不與格的學(xué)生信息為:endl;coutn學(xué)號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分mathenglishputer60) /顯示三門成績?nèi)繛椴慌c格的學(xué)生信息coutnumtnametmathtenglishtputertscoresumnext;void record:SaveRecordFile(struct SCORE *h) /將鏈表中的數(shù)據(jù)寫入文件struct SCORE *p; ofstream ofile; if(!ofile) /文件打開錯(cuò)誤coutn數(shù)據(jù)文件打開錯(cuò)誤沒有將數(shù)據(jù)寫入文件!n;return ;ofile學(xué)號(hào)t某某t數(shù)學(xué)t英語t計(jì)算機(jī)t總分;while(h)ofi

41、leendlnumtnametmathtenglishtputertscoresum; /將當(dāng)前結(jié)點(diǎn)的數(shù)據(jù)信息寫入到文件中p=h;h=h-next;delete p;ofile.close(); /關(guān)閉文件對(duì)象struct SCORE * record:LoadRecordFile(struct SCORE *h)ifstream ifile; /定義輸入文件對(duì)象struct SCORE *p,*q;if(! ifile) /文件打開錯(cuò)誤coutp-nump-namep-mathp-englishp-puterp-scoresum; /將數(shù)據(jù)從文件中讀取到新的結(jié)點(diǎn)中p-next=NULL; /新結(jié)點(diǎn)的指針域?yàn)榭読f(h=NULL) /將新結(jié)點(diǎn)插入到鏈表中q=h=p;e

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!