c++數(shù)據(jù)結(jié)構(gòu) 鏈表操作 學(xué)生管理系統(tǒng)

上傳人:一*** 文檔編號(hào):61941412 上傳時(shí)間:2022-03-13 格式:DOCX 頁(yè)數(shù):29 大?。?57.44KB
收藏 版權(quán)申訴 舉報(bào) 下載
c++數(shù)據(jù)結(jié)構(gòu) 鏈表操作 學(xué)生管理系統(tǒng)_第1頁(yè)
第1頁(yè) / 共29頁(yè)
c++數(shù)據(jù)結(jié)構(gòu) 鏈表操作 學(xué)生管理系統(tǒng)_第2頁(yè)
第2頁(yè) / 共29頁(yè)
c++數(shù)據(jù)結(jié)構(gòu) 鏈表操作 學(xué)生管理系統(tǒng)_第3頁(yè)
第3頁(yè) / 共29頁(yè)

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

16 積分

下載資源

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

資源描述:

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

1、劉楊&李虎乘&劉楊&李虎乘&劉楊&李虎乘&劉楊&李虎乘&劉楊&李虎乘&劉楊&李虎乘&劉楊&李虎乘&劉楊&李虎乘北京郵電大學(xué)課程設(shè)計(jì)報(bào)告 劉楊 李虎乘We are the best!課程設(shè)計(jì)名稱學(xué)生信息管理系統(tǒng)學(xué) 院理學(xué)院指導(dǎo)教師谷勇浩班 級(jí)班內(nèi)序號(hào)學(xué) 號(hào)學(xué)生姓名成績(jī)2010214102510212653李虎乘20102141022310212670劉楊課程設(shè)計(jì)內(nèi)容教學(xué)目的:1、進(jìn)一步掌握利用C+進(jìn)行類的定義和操作方法;2、進(jìn)一步掌握類的繼承和派生方法;3、進(jìn)一步理解虛函數(shù)和多態(tài);4、綜合利用上述知識(shí),學(xué)習(xí)設(shè)計(jì)并編寫面向?qū)ο蟮腃+簡(jiǎn)單應(yīng)用程序;5、培養(yǎng)學(xué)生團(tuán)結(jié)協(xié)作的能力?;緝?nèi)容:用C+語(yǔ)言編寫

2、學(xué)生信息管理系統(tǒng)。實(shí)驗(yàn)方法:在DEV C+環(huán)境下編寫代碼并排查語(yǔ)法錯(cuò)誤和運(yùn)行錯(cuò)誤。團(tuán)隊(duì)分工:李虎乘負(fù)責(zé)節(jié)點(diǎn)、鏈表、增加、查找、刪除、更改函數(shù)的編寫;劉楊負(fù)責(zé)主函數(shù)、輸入輸出流、輸出函數(shù)、現(xiàn)實(shí)幫助函數(shù)的編寫。其余工作均有參與。 學(xué)生課程設(shè)計(jì)報(bào)告(附頁(yè))課程設(shè)計(jì)成績(jī)?cè)u(píng)定遵照實(shí)踐教學(xué)大綱并根據(jù)以下四方面綜合評(píng)定成績(jī):1、課程設(shè)計(jì)目的任務(wù)明確,選題符合教學(xué)要求,份量及難易程度2、團(tuán)隊(duì)分工是否恰當(dāng)與合理3、綜合運(yùn)用所學(xué)知識(shí),提高分析問(wèn)題、解決問(wèn)題及實(shí)踐動(dòng)手能力的效果4、是否認(rèn)真、獨(dú)立完成屬于自己的課程設(shè)計(jì)內(nèi)容,課程設(shè)計(jì)報(bào)告是否思路清晰、文字通順、書寫規(guī)范評(píng)語(yǔ): 成績(jī):指導(dǎo)教師簽名: 年 月 日注:評(píng)語(yǔ)要

3、體現(xiàn)每個(gè)學(xué)生的工作情況,可以加頁(yè)。第一章 需求分析1. 課程設(shè)計(jì)性質(zhì)和目的第二章 使用說(shuō)明和程序流程圖1 系統(tǒng)總框圖.2. 使用手冊(cè)3.第三章 程序設(shè)計(jì)1. 每個(gè)模塊的設(shè)計(jì)分析及功能描述2. 函數(shù)和重要參數(shù)及其說(shuō)明. 第四章 總結(jié)附件:源代碼第一章、需求分析一、設(shè)計(jì)目的1、進(jìn)一步掌握利用C+進(jìn)行類的定義和操作方法;2、進(jìn)一步掌握類的繼承和派生方法;3、進(jìn)一步理解虛函數(shù)和多態(tài);4、綜合利用上述知識(shí),學(xué)習(xí)設(shè)計(jì)并編寫面向?qū)ο蟮腃+簡(jiǎn)單應(yīng)用程序;5、培養(yǎng)學(xué)生團(tuán)結(jié)協(xié)作的能力。掌握一般類的定義、測(cè)試、封裝、數(shù)據(jù)隱藏、繼承及多態(tài)等概念,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念和基本方法,掌握 C+語(yǔ)言的基本語(yǔ)法和基本

4、內(nèi)容,并能運(yùn)用C+語(yǔ)言進(jìn)行基本的面向?qū)ο蟪绦蛟O(shè)計(jì),并且通過(guò)綜合課程設(shè)計(jì),提高實(shí)踐動(dòng)手技能,培養(yǎng)獨(dú)立分析分析問(wèn)題和解決問(wèn)題的能力。第二章、系統(tǒng)總框圖開(kāi)始界面主要提示菜單界面增加學(xué)生信息刪除學(xué)生信息輸出學(xué)生信息顯示幫助界面修改學(xué)生信息結(jié)束二、使用手冊(cè)1、輸入輸出的形式本系統(tǒng)是一個(gè)學(xué)生成績(jī)管理系統(tǒng),采用DEV 編譯器作為開(kāi)發(fā)環(huán)境,這個(gè)環(huán)境是我們?cè)趯W(xué)習(xí)C+時(shí)使用的平臺(tái)。輸入數(shù)據(jù)類型主要是char、int、float等數(shù)據(jù)類型,輸入內(nèi)容包括:班級(jí)、學(xué)號(hào)、姓名、性別、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)等數(shù)據(jù)。顯示內(nèi)容包括:班級(jí)、學(xué)號(hào)、姓名、平均分等數(shù)據(jù)。2、程序的實(shí)現(xiàn)功能用戶運(yùn)行程序后進(jìn)入系統(tǒng)主界面,在主界面用戶可以輸入

5、所有學(xué)生的數(shù)據(jù)并保存到文件中,也可以讀取文件中已有的學(xué)生數(shù)據(jù)。本系統(tǒng)同時(shí)只能對(duì)一個(gè)數(shù)據(jù)文件進(jìn)行相關(guān)操作,不能同時(shí)打開(kāi)多個(gè)數(shù)據(jù)文件,其類似于單用戶操作系統(tǒng)。當(dāng)用戶讀取學(xué)生數(shù)據(jù)后可對(duì)其進(jìn)行顯示,插入,刪除,修改,計(jì)算平均分等相關(guān)操作。用戶在操作過(guò)程中可隨時(shí)對(duì)當(dāng)前文件進(jìn)行保存到文件操作,以防止修改的數(shù)據(jù)丟失。3、操作演示 、增加學(xué)生信息進(jìn)入開(kāi)始界面以后,輸入數(shù)字 1 ,即可進(jìn)入“增加學(xué)生信息功能” 然后,依照程序提示的格式,逐個(gè)輸入該學(xué)生的信息,每個(gè)類別的信息以回車為間隔。完成輸入以后,結(jié)束功能,回歸指令界面。如果還需要增加,只需重復(fù)以上操作即可。、輸出學(xué)生信息進(jìn)入指令界面以后,輸入數(shù)字 2 ,進(jìn)入

6、輸出學(xué)生信息功能:本系統(tǒng)提供的輸出功能除包括對(duì)已經(jīng)輸入的學(xué)生基本信息以外,還自動(dòng)附帶對(duì)總分的計(jì)算并輸出、對(duì)平均分的計(jì)算并輸出。詳情可參考上圖。如果學(xué)生信息為空,即尚未輸入任何學(xué)生信息數(shù)據(jù),則會(huì)提示“沒(méi)有學(xué)生信息”。、查找學(xué)生信息進(jìn)入指令界面以后,輸入數(shù)字 3 ,即可進(jìn)入“查找學(xué)生信息”功能:查找時(shí),輸入要查找對(duì)象的學(xué)號(hào)進(jìn)行操作,按回車確認(rèn)輸入: 如果輸入的信息有誤(無(wú)法匹配),則會(huì)提示“沒(méi)有符合條件的學(xué)生”。、刪除學(xué)生信息 同樣地,輸入學(xué)生學(xué)號(hào),進(jìn)行匹配,匹配失敗則會(huì)提示“沒(méi)有符合條件的學(xué)生”。成功,則會(huì)刪除該對(duì)象的信息。、修改學(xué)生信息 進(jìn)入指令界面以后,輸入數(shù)字 5 ,即可進(jìn)入“修改學(xué)生信息

7、”功能。輸入學(xué)生學(xué)號(hào)進(jìn)行對(duì)象確認(rèn)。同樣地,參照輸入學(xué)生信息時(shí)的方式,進(jìn)行信息重新輸入。倘若修改時(shí)輸入的學(xué)號(hào)無(wú)法在已經(jīng)錄入的學(xué)生信息中找到匹配的,則會(huì)提示“沒(méi)有找到符合條件的學(xué)生”。、顯示幫助信息表格用于幫助現(xiàn)實(shí)提示表格。在指令界面下,鍵入數(shù)字7即可進(jìn)入該功能。第三章、程序設(shè)計(jì)一、每個(gè)模塊的設(shè)計(jì)分析及功能描述1 main.cpp主函數(shù),用于實(shí)現(xiàn)對(duì)提示界面及對(duì)函數(shù)的操作。2 appcommand.hAppcommand的頭文件。外部聲明appcommand類,實(shí)現(xiàn)對(duì)以下函數(shù)的的聲明:增加學(xué)生信息函數(shù): addInform();輸出學(xué)生信息函數(shù): outputInformList();查找學(xué)生信息函

8、數(shù):searchInform();刪除學(xué)生信息函數(shù):deleteInform();更改學(xué)生信息函數(shù):modifyInform();顯示幫助函數(shù):showHelp();3 Listnode.hListnode的頭文件。外部聲明Listnode類,實(shí)現(xiàn)單鏈表的生成及歲單鏈表操作的聲明,4 inform.hInform的頭文件。外部聲明inform類,實(shí)現(xiàn)對(duì)學(xué)生信息的存儲(chǔ)。5 achieve.hAchieve的頭文件。外部聲明achieve類,實(shí)現(xiàn)對(duì)計(jì)算學(xué)生總分與平均分的函數(shù)的聲明。6 appcommand.cppAppcommand的源文件。定義appcommand類,實(shí)現(xiàn)對(duì)頭文件中聲明函數(shù)的的定

9、義。7 Listnode.cppListnode的源文件。定義Listnode類,實(shí)現(xiàn)對(duì)單鏈表的具體操作等。8 inform.cppInform的源文件。定義inform類,實(shí)現(xiàn)對(duì)學(xué)生信息的存儲(chǔ)的操作。9 achieve.cppAchieve源頭文件。定義achieve類,實(shí)現(xiàn)對(duì)計(jì)算學(xué)生總分與平均分的函數(shù)的具體定義(該函數(shù)在查找中課體現(xiàn))。二、文件所定義的函數(shù)及其說(shuō)明一 、main1.int main()函數(shù):主函數(shù),用于產(chǎn)生主操作界面及提示用戶進(jìn)行操作。二 、ppcommand1.addInform()函數(shù):增加學(xué)生信息函數(shù),用于增加學(xué)生信息。在主操作頁(yè)面中輸入1調(diào)用。2.outputInf

10、ormList()函數(shù):輸出學(xué)生信息函數(shù),用于輸出學(xué)生信息。在主操作頁(yè)面中輸入2調(diào)用3. searchInform()函數(shù): 查找學(xué)生信息函數(shù),用于查找學(xué)生信息。在主操作頁(yè)面中輸入3調(diào)用4. deleteInform()函數(shù): 刪除學(xué)生信息函數(shù),用于刪除學(xué)生信息。在主操作頁(yè)面中輸入4調(diào)用5. modifyInform()函數(shù);修改學(xué)生信息函數(shù),用于修改學(xué)生信息。在主操作頁(yè)面輸入5調(diào)用6. showHelp()函數(shù);顯示主頁(yè)面,在主操作頁(yè)面輸入5調(diào)用。 三、achieve1. getTotalScore()函數(shù):用于計(jì)算學(xué)生的總分,可以在查找學(xué)生信息的同時(shí)顯示學(xué)生總分。 其中對(duì)輸入輸出函數(shù)進(jìn)行重

11、載2. getAvgScore()函數(shù)用于計(jì)算學(xué)生的平均分,可以在查找學(xué)生信息的同時(shí)顯示學(xué)生平均分。其中對(duì)輸入輸出函數(shù)進(jìn)行重載三、重要參數(shù)說(shuō)明1 addInform()函數(shù):尾指針:*pTail , 頭指針: *pHead2 outputInformList()函數(shù):指針變量 *p3 searchInform()函數(shù):指針變量 *p4 deleteInform()函數(shù):指針變量 *p,指針變量 *q5 modifyInform()函數(shù):指針變量*found,指針變量 *p;第四章、總結(jié)一、語(yǔ)法錯(cuò)誤1、語(yǔ)句的最后忘記了加上“;”,使程序發(fā)生錯(cuò)誤。2、把“”寫反,以及字符與字符串的操作問(wèn)題,這些是

12、比較簡(jiǎn)單的錯(cuò)誤,很容易分辨出來(lái),并改正之。3、函數(shù)的返回值問(wèn)題,也是比較容易找出并解決的問(wèn)題。二、邏輯錯(cuò)誤1、數(shù)據(jù)的輸入與讀出,剛開(kāi)始對(duì)數(shù)據(jù)的操作不太明白,一致不能很好的操作,其中最大的問(wèn)題是對(duì)輸入輸出流的控制、重載問(wèn)題,通過(guò)“輸出” 將數(shù)據(jù)從系統(tǒng)中讀出,可是在使用過(guò)程中總是出現(xiàn)讀出錯(cuò)誤,出現(xiàn)亂碼。2、內(nèi)存的分配問(wèn)題,這也是困惑了我好久的問(wèn)題。對(duì)于我們初學(xué)者來(lái)說(shuō)對(duì)內(nèi)存的分配和釋放問(wèn)題是比較抽象和模糊的難題,本來(lái)使用鏈表的方式存儲(chǔ)數(shù)據(jù),然而待到排序時(shí)出現(xiàn)了交換數(shù)據(jù)困難的問(wèn)題,以及分配空間繁瑣釋放空間不及時(shí)的問(wèn)題,造成空間浪費(fèi)使得程序運(yùn)行效率低的問(wèn)題。因此最后采用了順序存儲(chǔ)記錄的方式,這樣就能改變

13、前述問(wèn)題。3、對(duì)最后的菜單進(jìn)行編寫時(shí),剛開(kāi)始只能單次循環(huán),然后直接跳出菜單,后來(lái)我們進(jìn)行商量討論,運(yùn)用循環(huán)語(yǔ)句的嵌套寫出了完整的菜單系統(tǒng)。三、心得與體會(huì)2、課程設(shè)計(jì)經(jīng)驗(yàn)和體會(huì)一個(gè)多月的課程設(shè)計(jì),雖然有些疲勞和困倦,但帶給我們很多的收獲。C+已經(jīng)學(xué)了一個(gè)學(xué)年了,有許多知識(shí)都存在似懂非懂的現(xiàn)象,這種現(xiàn)象通過(guò)實(shí)際的上機(jī)操作,已經(jīng)減少了許多。對(duì)這些知識(shí)也有了更深的理解和很好的掌握。也有很多理論上說(shuō)得過(guò)去的代碼,但到了實(shí)際操作,卻是行不通的。這種困惑,有許多已經(jīng)通過(guò)實(shí)際操作解決了,并能夠深刻認(rèn)識(shí),但也有很多沒(méi)有明白。只能避過(guò)這些方法,換方法實(shí)現(xiàn)。在課程設(shè)計(jì)之前,因?yàn)橛辛司C合實(shí)驗(yàn)的經(jīng)驗(yàn)與教訓(xùn),明白了寫代碼

14、這一步是非常重要的,因?yàn)楫?dāng)你把代碼輸入電腦,并用編譯器將其運(yùn)行,發(fā)現(xiàn)通過(guò)不了,再來(lái)檢查找出問(wèn)題,這是一件非常辛苦的事情,也很浪費(fèi)時(shí)間。于是在課程設(shè)計(jì)的時(shí)候,我們花了數(shù)天的時(shí)間來(lái)規(guī)劃與寫代碼,將要實(shí)現(xiàn)的內(nèi)容分析清楚,才把代碼輸入電腦。我們從中發(fā)現(xiàn),寫程序應(yīng)該先找到該程序中的核心地方,用多種方法來(lái)實(shí)現(xiàn)該核心,這才可能避免等到發(fā)現(xiàn)邏輯上或者編譯器不支持上的錯(cuò)誤,才來(lái)想補(bǔ)救的措施,這樣花費(fèi)時(shí)間在想補(bǔ)救措施是很不值得的。此次任務(wù)的完成,也體現(xiàn)出同學(xué)之間的團(tuán)結(jié)精神。實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。沒(méi)有實(shí)踐,就不會(huì)發(fā)現(xiàn)和深刻體會(huì)它的真實(shí)所在。只有通過(guò)檢驗(yàn)的真理,在自己的心里,才會(huì)認(rèn)可它的真實(shí)性。面向?qū)ο蟪绦蛟O(shè)計(jì)的

15、完成,使我們懂得了真理的重要性,理論和實(shí)際的相結(jié)合,才能真正把握所學(xué)和所掌握的知識(shí)。此外,此次程序設(shè)計(jì)課,也增添了我們對(duì)計(jì)算機(jī)編程的興趣與愛(ài)好,可以說(shuō),這是一次非凡的經(jīng)歷! 劉楊 李虎乘 2011年11月于北京郵電大學(xué)附件:程序源代碼_main.cpp_#include #include #include #include appcommands.husing namespace std;class ListNode;ListNode *pHead;int main()pHead = NULL;showHelp();cout 請(qǐng)輸入命令. n)if (n = 1)addInform();els

16、e if (n = 2)outputInformList();else if (n = 3)searchInform();else if (n = 4)deleteInform();else if (n = 5)modifyInform();else if (n = 6)return 0;else if (n = 7)showHelp();elsecout 無(wú)效命令 endl;cout 請(qǐng)輸入命令. endl;/ 沒(méi)有顯示釋放鏈表占用的內(nèi)存,進(jìn)程結(jié)束時(shí)由操作系統(tǒng)回收內(nèi)存system(pause);return 0;_listnode.h_#ifndef LISTNODE_H#define LI

17、STNODE_H#include Inform.hclass ListNode/ ListNode 類指對(duì)節(jié)點(diǎn)和單鏈表的操作 public:ListNode(Inform &data);ListNode();Inform &GetData(void);/獲取信息 void SetData(Inform inform);/用于修改數(shù)據(jù)和next ListNode *GetNext(void) const;/下一個(gè)節(jié)點(diǎn)的指針 void SetNext(ListNode *node);/ 設(shè)置下一結(jié)點(diǎn) Inform _data;/liform里面的具體對(duì)象 ListNode *_next;#endi

18、f_listnode.cpp_#include ListNode.h/對(duì)函數(shù)的定義 ListNode:ListNode(Inform &data)/對(duì) : _data(data), _next(NULL)Inform &ListNode:GetData(void)/對(duì)getdate函數(shù)的定義 return _data;void ListNode:SetData(Inform inform) _data=inform ;/指針設(shè)置 ListNode *ListNode:GetNext(void) const/指針后移 return _next;void ListNode:SetNext(List

19、Node * node)/ _next = node;ListNode:ListNode()/析構(gòu)函數(shù) _inform.h_#ifndef INFORM_H#define INFORM_H#include #include #include achieve.husing namespace std;class Informpublic:/輸出(流)的重載(統(tǒng)一格式輸出學(xué)生信息)friend ostream &operator(istream &input, Inform &t);public:Inform(void);/學(xué)生信息的初始化,拷貝構(gòu)造函數(shù)使用編譯器合成的版本/Inform(Info

20、rm &d);/ 析構(gòu)函數(shù)Inform();/學(xué)生信息的匹配判斷(所有信息都匹配)/int operator=(const Inform &d);/查找學(xué)生的某項(xiàng)信息s是否匹配/int operator=(char *s);/查找學(xué)生的某項(xiàng)信息t是否不匹配/int operator!=(char *t);/學(xué)生信息賦值操作/Inform &operator=(Inform &d);public: / 數(shù)據(jù)成員/學(xué)號(hào)string number;/身份證號(hào)string id;/姓名string name;/性別string sex;/成績(jī)(第一步基本信息中無(wú)此變量)achieve ach;/電話號(hào)

21、碼string phonenumber;/寢室號(hào)string roomnumber;#endif_inform.cpp_#include Inform.hInform:Inform()Inform:Inform(void)ostream &operator(ostream &output, const Inform &t)/輸出(流)的重載(統(tǒng)一格式輸出學(xué)生信息) ,使可以在inform類上使用iostream output 身份證: t.id , /t是output(重載操作符) 的形參 姓名: t.name , 學(xué)號(hào): t.number , 電話: t.phonenumber , 寢室:

22、t.roomnumber , 性別: t.sex , (istream &input, Inform &t)input t.id t.name t.number t.phonenumber t.roomnumber t.sex t.ach;if (!input)/ 輸入無(wú)效,重置狀態(tài)t = Inform();return input;_appcommands.h_/ 應(yīng)用程序的命令/ 增加學(xué)生信息void addInform();/ 輸出學(xué)生信息void outputInformList();/ 查找學(xué)生信息void searchInform();/ 刪除學(xué)生信息void deleteInfo

23、rm();/ 更改學(xué)生信息void modifyInform();/ 顯示幫助void showHelp();_appcommands.app_#include #include achieve.h#include Inform.h#include ListNode.h#include extern ListNode *pHead;/表示phead是在外部定義的 ListNode *pHeadbefore;/ 增加學(xué)生信息void addInform()/增加學(xué)生信息 cout 增加學(xué)生信息,格式為:身份證,姓名,學(xué)號(hào),電話,寢室號(hào),性別,語(yǔ)文分?jǐn)?shù),數(shù)學(xué)分?jǐn)?shù) inform;if (cin)/

24、判斷是否輸入成功if (!pHead)/判斷phead指針是否為null ,如果是null 則繼續(xù)運(yùn)行 pHead = new ListNode(inform);/listnode為鏈表的新節(jié)點(diǎn) else/如果phead不為空 ListNode *pTail = pHead;while(pTail-GetNext() != NULL)/getnext為listnode的成員函數(shù),作用為取得下一個(gè)節(jié)點(diǎn) pTail = pTail-GetNext();/指向尾結(jié)點(diǎn)的指針向后移動(dòng) / 找到尾部節(jié)點(diǎn),加到隊(duì)尾 pTail-SetNext(new ListNode(inform);/把新節(jié)點(diǎn)掛到鏈表尾

25、/ 輸出學(xué)生信息void outputInformList()cout 輸出學(xué)生信息 endl;if (!pHead) /判斷phead指針是否為null ,如果是null 則輸出沒(méi)有學(xué)生信息 cout 沒(méi)有學(xué)生信息 endl;return;/表示函數(shù)結(jié)束 ListNode *p = pHead;/ while(p)/判斷p ,如果p不為null則繼續(xù) coutGetData()GetNext(); /指針向后 / 查找學(xué)生信息void searchInform()if (!pHead)/判斷phead指針是否為null ,如果是null 則輸出沒(méi)有學(xué)生信息 cout 沒(méi)有學(xué)生信息 endl;

26、return;cout 查找學(xué)生信息,請(qǐng)輸入學(xué)號(hào) input;if(cin)ListNode *p = pHead;while (p)/判斷p ,如果p不為null則繼續(xù) if (p-GetData().number = input)coutGetData()endl;cout總分; cout_data.ach.getTotalScore()endl;cout平均分; cout_data.ach.getAvgScore()GetNext();cin.clear();/ 清除標(biāo)準(zhǔn)輸入的錯(cuò)誤(如果有)void deleteInform()/ 刪除學(xué)生信息cout 刪除學(xué)生信息,請(qǐng)輸入學(xué)號(hào) inpu

27、t;if(cin)ListNode *p = pHead; ListNode *q = pHeadbefore ;while (p)/判斷p ,如果p不為null則繼續(xù) if (p-GetData().number = input) q=p-GetNext(); delete p; p=q; break; / 向后走q=p;p=p-GetNext();cin.clear();/ 清除標(biāo)準(zhǔn)輸入的錯(cuò)誤(如果有)void modifyInform()cout 更改學(xué)生信息,請(qǐng)輸入學(xué)號(hào) input;ListNode *found = NULL;if(cin)/輸入正確 ListNode *p = pH

28、ead;while (p)if (p-GetData().number = input)found = p;break;p = p-GetNext();/ 向后走/ 清除標(biāo)準(zhǔn)輸入的錯(cuò)誤(如果有)cin.clear();if (found)cout 修改 GetData().number 的信息,格式為:身份證,姓名,電話,寢室號(hào),性別,語(yǔ)文分?jǐn)?shù),數(shù)學(xué)分?jǐn)?shù) inform.id inform.name inform.phonenumber inform.roomnumber inform.sex inform.ach;if (cin)/ 輸入成功found-SetData(inform);else

29、cout 沒(méi)有找到符合條件的學(xué)生記錄 endl;void showHelp()/ 顯示幫助 cout * endl; cout歡迎您使用學(xué)生成績(jī)管理系統(tǒng) * endl; cout * * * endl; cout * 1: 增加學(xué)生信息 * endl; cout * 2: 輸出學(xué)生信息 * endl; cout * 3: 查找學(xué)生信息 * endl; cout * 4: 刪除學(xué)生信息 * endl; cout * 5: 更改學(xué)生信息 * endl; cout * 6: 退出系統(tǒng) * endl; cout * 7: 顯示此幫助 * endl; cout * * endl; cout * * en

30、dl; cout * endl; cout請(qǐng)你選擇操作(1-7):endl; _achieve.h_#ifndef ACHIEVE_H#define ACHIEVE_H#include using namespace std;class achievefriend istream &operator(istream &in, achieve &obj);friend ostream &operator(ostream &out, const achieve &obj);/重載輸入輸出,否則不響應(yīng) public:achieve(void);achieve(void);/ 獲取總分double g

31、etTotalScore();/ 獲取平均分double getAvgScore();double yu_wen;/ 語(yǔ)文double shu_xue;/ 數(shù)學(xué);#endif_achieve.cpp_#include achieve.hachieve:achieve(void): yu_wen(0.0), shu_xue(0.0) /構(gòu)造函數(shù) ,將分?jǐn)?shù)初始為0分 achieve:achieve(void)/析構(gòu)函數(shù) double achieve:getTotalScore()return yu_wen + shu_xue;/計(jì)算總分 double achieve:getAvgScore()co

32、nst int subjectCount = 2;return getTotalScore() / subjectCount;/計(jì)算平均分 cout(istream &in, achieve &obj)/ 重載輸入操作符 in obj.yu_wen obj.shu_xue;/ if (!in)/判斷輸入數(shù)字是否有效 ,若不空,則繼續(xù)執(zhí)行 obj = achieve();/ 輸入無(wú)效,重置狀態(tài)return in;ostream &operator(ostream &out, const achieve &obj)out 語(yǔ)文: obj.yu_wen , /重載輸入輸出操作符 數(shù)學(xué): obj.shu_xue;return out;/返回第一個(gè)形參的引用 _完_29

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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),我們立即給予刪除!