c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料

上傳人:無*** 文檔編號(hào):86994814 上傳時(shí)間:2022-05-09 格式:DOC 頁數(shù):32 大?。?44.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料_第1頁
第1頁 / 共32頁
c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料_第2頁
第2頁 / 共32頁
c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料_第3頁
第3頁 / 共32頁

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

10 積分

下載資源

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

資源描述:

《c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料》由會(huì)員分享,可在線閱讀,更多相關(guān)《c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料(32頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、word XX大學(xué) 二○一二~二○一三學(xué)年第二學(xué)期 xxxxxxx學(xué)院 面向?qū)ο驝++語言課程設(shè)計(jì)報(bào)告 課程名稱: 面向?qū)ο驝++語言課程設(shè)計(jì) 班 級(jí):____ 學(xué) 號(hào):____________________ 姓 名:_________ 指導(dǎo)教師:______________________ 二○一三年 六 月 32 / 32 目錄 一、系統(tǒng)需求與功能分析3 1.1 系統(tǒng)需求分析3 1.2系統(tǒng)功能分析3 1.3系統(tǒng)性能分析4 二、總體結(jié)構(gòu)設(shè)計(jì)5 2.1系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)5 2.2系統(tǒng)管理流程圖

2、5 三、系統(tǒng)詳細(xì)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)7 四、系統(tǒng)測(cè)試13 五、測(cè)試結(jié)果14 六、心得體會(huì)19 七、附錄20 附錄一:源程序清單20 附錄二:運(yùn)行結(jié)果32 一、系統(tǒng)需求與功能分析 1.1 系統(tǒng)需求分析 (1)能完成學(xué)生信息的錄入,插入、修改、刪除、輸出、查詢等功能; (2)采用單鏈表存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn); (3) 所有數(shù)據(jù)以外部文件方式保存。 1.2系統(tǒng)功能分析 (1)要設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng),其功能包括: ①錄入函數(shù)Add():將學(xué)生信息按尾插法插入到鏈表中; ②插入函數(shù)Insert():根據(jù)所給學(xué)號(hào)作為插入位置,在其后插入信息; ③修改函數(shù)Modify():

3、修改指定的學(xué)生信息; ④刪除函數(shù)Delete():當(dāng)需要?jiǎng)h除的學(xué)號(hào)和一致時(shí)如此刪除對(duì)應(yīng)的學(xué)生記錄; ⑤輸出函數(shù)Show():顯示全部學(xué)生信息; ⑥查詢函數(shù)Search():分別可以按學(xué)號(hào)和按進(jìn)展學(xué)生信息查詢; ⑦菜單函數(shù)Menu():為程序的菜單函數(shù)為實(shí)現(xiàn)各種功能提供便捷; ⑧讀取數(shù)據(jù)函數(shù)Read():從外部文件讀取學(xué)生信息信息; ⑨保存數(shù)據(jù)函數(shù)Save():將數(shù)據(jù)保存到外部文件中。 (2)線性表的存儲(chǔ)結(jié)構(gòu)稱為單鏈表,單鏈表使用一組任意的存儲(chǔ)單元存放線性表的元素,這組存儲(chǔ)單元可以連續(xù)也可以不連續(xù),甚至可以零散分布在存中的任意位置。為了正確表示元素之間邏輯關(guān)系,每個(gè)存儲(chǔ)單元在存儲(chǔ)數(shù)

4、據(jù)元素的同時(shí),還必須存儲(chǔ)其后繼元素所在地址信息,這個(gè)地址信息稱為指針,這兩局部組成了數(shù)據(jù)元素的存儲(chǔ)映像,稱為結(jié)點(diǎn),結(jié)點(diǎn)結(jié)構(gòu)如圖1.1所示。 圖1.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->next來標(biāo)識(shí),p->next指向結(jié)點(diǎn)ai+1,其指針與結(jié)點(diǎn)之間關(guān)系如圖1.2所示。 圖1.2指針與結(jié)點(diǎn)之間關(guān)系的示意圖 1.3系統(tǒng)性能分析 1.硬件環(huán)境 處理器:CPU主頻在500MHz以上 存:128MB以上

5、 硬盤空間:10MB。 2.軟件環(huán)境 操作系統(tǒng): Windows 98/Me/NT/2000/XP(推薦使用Windows 2000/XP)。 調(diào)試環(huán)境: Visual C++與以上版本。 二、總體結(jié)構(gòu)設(shè)計(jì) 2.1系統(tǒng)的結(jié)構(gòu)設(shè)計(jì) 通過對(duì)學(xué)生信息管理系統(tǒng)的功能分析,可以定義出系統(tǒng)的總體結(jié)構(gòu)模塊圖,如圖2.1所示。 學(xué)生信息管理系統(tǒng) 學(xué)生信息插入 學(xué)生信息修改 學(xué)生信息刪除 學(xué)生信息顯示 學(xué)生信息查詢 學(xué)生信息讀取 學(xué)生信息保存 學(xué)生信息錄入 圖2.1學(xué)生信息管理系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 2.2系統(tǒng)管理流程圖 前面的分析中已經(jīng)定義了系統(tǒng)各個(gè)模塊,屬于靜態(tài)建

6、模的圍。在系統(tǒng)運(yùn)行時(shí)刻的動(dòng)態(tài)模型應(yīng)該由系統(tǒng)的流程決定。當(dāng)用戶運(yùn)行該系統(tǒng)后可以來進(jìn)展學(xué)生信息信息〔錄入〕插入管理、學(xué)生信息修改管理、學(xué)生信息刪除管理、學(xué)生信息顯示管理與學(xué)生信息顯示等操作,具體的流程如圖2.2所示。 進(jìn)入系統(tǒng) 數(shù)據(jù)讀入 修改 刪除 顯示 查詢 數(shù)據(jù)保存 退出系統(tǒng) 不保存 Y N 圖2.2系統(tǒng)流程圖 主模塊應(yīng)負(fù)責(zé)應(yīng)用程序的主界面,由它調(diào)用其他模塊.因此主模塊應(yīng)具有操作性好、界面清晰的特點(diǎn),使用戶能夠很方便地找到所需功能。 根據(jù)功能需求的結(jié)果分析,主界面應(yīng)該由學(xué)生信息錄入管理,學(xué)生信息插入管理,學(xué)生信息修改管理、學(xué)生信息刪除管理、學(xué)生信息顯示管理和

7、學(xué)生信息信息查詢管理組成,可以通過輸入相應(yīng)的數(shù)字進(jìn)入相應(yīng)的功能模塊。 三、 系統(tǒng)詳細(xì)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn) 系統(tǒng)總體設(shè)計(jì)完成后,就可以根據(jù)需求對(duì)各個(gè)模塊來進(jìn)展實(shí)現(xiàn)了。在本系統(tǒng)中需要編碼實(shí)現(xiàn)的主要有學(xué)生信息信息插入、學(xué)生信息信息查詢、學(xué)生信息信息修改、學(xué)生信息信息刪除和學(xué)生信息信息輸出等5個(gè)模塊。 (1)學(xué)生信息錄入模塊 添加的信息包括(允許重復(fù))、學(xué)號(hào)(不允許重復(fù))、年齡、性別、宿舍地址、計(jì)算機(jī)成績、數(shù)學(xué)成績和英語成績。流程圖如如下圖3.1所示。 開始錄入數(shù)據(jù) 輸入學(xué)生信息 調(diào)用類成員函數(shù)采用單鏈表保存數(shù)據(jù) 完畢 圖3.1錄入模塊流程圖 本程序采用的是尾插法,就是每

8、次將新申請(qǐng)的結(jié)點(diǎn)插在終端結(jié)點(diǎn)的后面,其執(zhí)行過程如圖3.12所示。 圖3.12尾插法建立單鏈表操作示意圖 (2)學(xué)生信息插入模塊 輸入一個(gè)存在的學(xué)號(hào)作為插入位置,在其后插入的信息包括、學(xué)號(hào)、年齡、性別、宿舍地址、計(jì)算機(jī)成績、數(shù)學(xué)成績和英語成績。流程圖如如下圖3.2所示。 開始插入數(shù)據(jù) 輸入學(xué)生學(xué)號(hào) 以學(xué)號(hào)為插入位置,在其后插入信息 完畢 調(diào)用類成員函數(shù)采用單鏈表保存數(shù)據(jù) 圖3.2插入模塊流程圖 本程序采用的是尾插法,就是每次將新申請(qǐng)的結(jié)點(diǎn)插在終端結(jié)點(diǎn)的后面,其執(zhí)行過程如圖3.22所示。 圖3.22 尾插法插入操作示意圖 (3)學(xué)生信息修改模塊 首

9、先要查找與要修改數(shù)據(jù)相匹配的信息,假如沒有如此返回失敗。否如此把相應(yīng)的信息輸出,然后再重新輸入新的數(shù)據(jù)并保存到單鏈表。 (4)學(xué)生信息刪除模塊 當(dāng)選擇刪除功能時(shí),首先輸入要?jiǎng)h除的同學(xué)的,然后輸入要?jiǎng)h除的同學(xué)的學(xué)號(hào),如果該同學(xué)存在并且與學(xué)號(hào)匹配的上,如此進(jìn)展刪除操作,否如此返回失敗。其流程圖3.4如下: 開始刪除操作 輸入某某 輸入學(xué)號(hào) 某某學(xué)號(hào)一致 執(zhí)行刪除功能 返回主菜單 N Y 圖3.4刪除學(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的n

10、ext域指向ai 的后繼結(jié)點(diǎn),即把結(jié)點(diǎn)ai 從鏈上摘下來,最后釋放結(jié)點(diǎn)ai的存儲(chǔ)空間,如圖3.42所示。 圖3.42在單鏈表中刪除結(jié)點(diǎn)指針的變化情況 (5)學(xué)生信息顯示模塊 從單鏈表表頭遍歷整個(gè)單鏈表,將所有數(shù)據(jù)輸出。其局部代碼如下: void Function::Show() { Student *temp; system("cls"); temp=Student_First->Next; if(!temp) {cout<<"文件無數(shù)據(jù)\n\n "<

11、單"<Out(); temp=temp->Next; } } cout<

12、 按某某或?qū)W號(hào) 查找開始 完畢 輸入要查找的信息 判斷 抱歉沒有該學(xué)生 輸出該學(xué)生的信息 N Y 圖3.6按或?qū)W號(hào)查找學(xué)生信息信息流程圖 在單鏈表中,即使知道被訪問結(jié)點(diǎn)的位置i,也不能像順序表那樣直接按序號(hào)訪問,而只能從頭指針出發(fā),設(shè)置一個(gè)工作指針p,順next域逐個(gè)結(jié)點(diǎn)往下搜索。當(dāng)p指向某個(gè)結(jié)點(diǎn)時(shí)判斷是否為第i個(gè)結(jié)點(diǎn),假如是如此查找成功;否如此,將工作指針p后移,即將p指向原來所指結(jié)點(diǎn)的后繼結(jié)點(diǎn)。直到p為NULL時(shí)查找失敗。單鏈表查找過程如圖3.62所示。 圖3.62單鏈表查找過程的示意圖 四、 系統(tǒng)測(cè)試 在完成了系統(tǒng)各方面的設(shè)計(jì)后,并不是可以運(yùn)行

13、就完成的,為了保證系統(tǒng)性能的穩(wěn)定性跟安全性等,就要對(duì)系統(tǒng)做測(cè)試。 測(cè)試環(huán)境如下: l 硬件:聯(lián)想ThinkPad 2.4GHz,500GB硬盤,4G存; l 軟件:Windows 7 Personal SP1,分辨率1366*768,Microsoft Visual C++ 6.0。 在對(duì)系統(tǒng)功能進(jìn)展逐一測(cè)試的時(shí)候,遇到了一些問題,例如,因?yàn)榘褜W(xué)號(hào)定義為整形〔int〕,在輸入以0為開頭的學(xué)號(hào)時(shí),系統(tǒng)會(huì)自動(dòng)把0去掉,這樣學(xué)號(hào)的信息就丟失了第一位。為了解決這個(gè)問題,將學(xué)號(hào)改成了 字符型(char),這樣在構(gòu)造函數(shù)里也需要把學(xué)號(hào)的初始化用 字符串拷貝〔strcpy〕來實(shí)現(xiàn)。 遇到的問題

14、還有很多,例如數(shù)據(jù)出錯(cuò),存溢出等,經(jīng)過反復(fù)測(cè)試,調(diào)試和努力修正,程序得以完善。 五、 測(cè)試結(jié)果 運(yùn)行的主界面如圖5.1所示: 圖5.1運(yùn)行主界面 ①當(dāng)選擇1學(xué)生信息錄入功能時(shí),如圖5.2所示。 圖5.2錄入學(xué)生信息實(shí)現(xiàn) ②為了驗(yàn)證插入的正確性,首先再錄入一條信息,然后顯示信息。然后在第一個(gè)人和第二個(gè)人之間插入信息。 錄入第二條信息后,返回主菜單 選擇5 顯示全部學(xué)生信息:運(yùn)行結(jié)果如圖5.3所示。 圖5.3顯示學(xué)生信息 按任意鍵返回主菜單后,選擇2 插入學(xué)生信息,輸入存在的學(xué)號(hào)作為插入位置,比我在第一個(gè)和第二人之間插入一個(gè)新信息,只需要輸入第一個(gè)學(xué)生

15、的學(xué)號(hào)即可,運(yùn)行結(jié)果如圖5.4所示。 圖5.4插入學(xué)生信息 插入完成后,程序會(huì)自動(dòng)返回主菜單,為了驗(yàn)證插入的正確性,選擇5 顯示全部學(xué)生信息,運(yùn)行結(jié)果如圖5.5 所示。 圖5.5顯示學(xué)生信息 ③當(dāng)在主菜單中選擇3時(shí),如此進(jìn)展學(xué)生信息修改功能。其運(yùn)行結(jié)果如圖5.6所示。 圖5.6修改學(xué)生信息菜單 選擇按或?qū)W號(hào)修改均可,運(yùn)行結(jié)果如 圖5.7所示 圖5.6按學(xué)號(hào)修改學(xué)生信息 為了驗(yàn)證修改的正確性,返回主菜單 輸入5 顯示全部學(xué)生信息,可以看到第三條記錄已經(jīng)更新,如圖5.7 所示 圖5.7顯示學(xué)生信息 ④當(dāng)在主菜單中選擇3時(shí),

16、如此進(jìn)展刪除功能。輸入正確的和學(xué)號(hào)才會(huì)執(zhí)行刪除操作。其運(yùn)行結(jié)果如圖5.8所示。 圖5.8 刪除學(xué)生信息功能實(shí)現(xiàn) 為了驗(yàn)證程序的正確性,返回主菜單,選擇5 顯示全部學(xué)生信息,可以看到第二條記錄已被刪除。如圖5.9所示。 圖5.9 顯示學(xué)生信息 ②返回主菜單后選擇6查詢學(xué)生信息,運(yùn)行結(jié)果按由查詢和按學(xué)號(hào)查詢分別如圖5.10和圖5.11所示。 圖5.10按查找相關(guān)信息實(shí)現(xiàn) 圖5.11按學(xué)號(hào)查找相關(guān)信息實(shí)現(xiàn) 六、心得體會(huì) 在本次課程設(shè)計(jì)過程中,曾遇到過不少問題,單靠我個(gè)人的努力,很難按時(shí)完成該課程設(shè)計(jì),在此,我衷心感我的指導(dǎo)教師——xxx。xxx教師

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

18、還要感指導(dǎo)過我的每一位教師,他們給了我很大的指導(dǎo)和幫助,還有在我陷入困境時(shí)幫助過我的同學(xué)們。另外,還要感學(xué)校領(lǐng)導(dǎo)、輔導(dǎo)員,為我們提供了良好的設(shè)計(jì)環(huán)境以與各方面的支持。 七、附錄 附錄一:源程序清單〔源代碼〕: 附錄二:運(yùn)行結(jié)果: 附錄一:源程序清單 // 程序名稱:Student.cpp // 程序功能:采用鏈表與文件實(shí)現(xiàn)一個(gè)簡單的學(xué)生成績管理系統(tǒng)。 #include #include #include #include #include #incl

19、ude using namespace std; struct Class { int puter; int Math; int English; }; class Student{ public: Student(); void Ofile(ofstream &of); void Infile(ifstream &f); void Out();

20、void Set(char *name,char *no,int age,char *sex,char *add,Class score); char *GetName(); char * GetNo(); Student *Next; protected: char Name[20]; char No[20]; int Age; char Sex[20];

21、char Add[40]; Class Score ; }; Student::Student():Next(0){} char *Student::GetName(){return Name;} char *Student::GetNo(){return No;} void Student::Set(char *name,char *no,int age,char *sex,char *add,Class score) {strcpy(Name,name); strcpy(No,no); Age=age; strcpy

22、(Sex,sex); strcpy(Add,add); Score=score; } void Student::Infile(ifstream &f) {f>>Name>>No>>Age>>Sex>>Add>>Score.puter>>Score.Math>>Score.English; //將數(shù)據(jù)輸入到文件 } void Student::Ofile(ofstream &of) {of<<" "<

23、<

24、ndl; } class Function //功能類 { public: Function(); //構(gòu)造函數(shù) ~Function(); //析構(gòu)函數(shù) void Menu(); //菜單函數(shù) void Add(); //錄入學(xué)生信息函數(shù) void Insert(); //插入

25、學(xué)生信息函數(shù) void Modify(); //修改學(xué)生信息函數(shù) void Delete(); //刪除學(xué)生信息函數(shù) void Show(); //顯示學(xué)生信息函數(shù) void Search(); //查詢學(xué)生信息函數(shù) private: Student *Student_First; void Read();

26、 //讀取學(xué)生信息函數(shù) void Save(); //保存學(xué)生信息函數(shù) }; Function::Function() { Student_First=new Student; Read(); } Function::~Function() {delete Student_First; } void Function::Add()

27、//錄入學(xué)生信息函數(shù) {char name[20]; char no[20]; int age; char sex[20]; char add[100]; Class score; char choose; Student *f1,*p,*f2; system("cls"); f1=Student_First; f2=Student_First->Next; while(f1->Next) f1=f1->Next;

28、do { p=new Student; cout<<"請(qǐng)輸入您要添加的學(xué)生成績信息:"<>name; cout<<"請(qǐng)輸入學(xué)號(hào): "; cin>>no; while(f2) {if(strcmp(f2->GetNo(),no)==0) {cout<<"該學(xué)生已存在,請(qǐng)確定學(xué)號(hào)!\n\n"; cout<<"1.返回主菜單\n2.繼續(xù)添加 ------- "; cin>>choose; while(choose!='1'&&choose!='2') {cout<<"1.返回主菜單\n2.繼續(xù)添加 ------- "

29、; cin>>choose; } if(choose=='1') Menu(); else if(choose=='2') Add(); } f2=f2->Next; } cout<<"請(qǐng)輸入年齡: "; cin>>age; cout<<"請(qǐng)輸入性別: "; cin>>sex; cout<<"請(qǐng)輸入宿舍地址: "; cin>>add; cout<<"請(qǐng)輸入計(jì)算機(jī)成績: "; cin>>score.puter; cout<<"請(qǐng)輸入數(shù)學(xué)成績: "; cin>>score.Math; cout<<"請(qǐng)輸入英語成績:

30、"; cin>>score.English; p->Set(name,no,age,sex,add,score); f1->Next=p; p->Next=NULL; f1=f1->Next; cout<<"是否繼續(xù)輸入信息?(Y\\N) ------- "; cin>>choose; }while(choose=='y'||choose=='Y'); Save(); Menu(); } void Function::Insert() { char name[20]; char no[20]; int age

31、; char sex[20]; char add[100]; Class score; int flag(0); Student *f1,*p; system("cls"); f1=Student_First; p=new Student; cout<<"請(qǐng)輸入學(xué)號(hào)來確定插入位置:"<>no; while(f1) {if(strcmp(f1->GetNo(),no)==0) {flag=1; break; } f1=f1->Next; } if

32、(flag==0) { cout<<"\n無該學(xué)生的信息,程序?qū)⒎祷刂鞑藛蝄n"<>name; cout<<"請(qǐng)輸入學(xué)號(hào): "; cin>>no; cout<<"請(qǐng)輸入年齡: "; cin>>age; cout<<"請(qǐng)輸入性別: "; cin>>sex; cout<<"請(qǐng)輸入宿舍地址: "; cin>>add; cout<<"請(qǐng)輸入計(jì)算機(jī)成績: "; cin>>score.puter; cout<<"請(qǐng)輸入數(shù)學(xué)成績: "; c

33、in>>score.Math; cout<<"請(qǐng)輸入英語成績: "; cin>>score.English; p->Set(name,no,age,sex,add,score); } p->Next=f1->Next; f1->Next=p; Save(); cout<<"插入成功! "; Sleep(1500); Menu(); } void Function::Modify() //修改學(xué)生信息函數(shù) { int flag(0); char choose,name[20]; Studen

34、t *temp,*p; char no[20]; int age; char sex[20]; char add[100]; Class score; system("cls"); temp=p=Student_First; cout<<"輸入修改方式:\n1.按修改\n2.按學(xué)號(hào)修改 ------- "; cin>>choose; if(choose=='1') { cout<<"請(qǐng)輸入您要修改的:\n "; cin>>name; while(temp) {if(strcmp(temp->GetNa

35、me(),name)==0) { flag=1; cout<<"\n\t學(xué)號(hào)\t\t年齡\t性別\t宿舍住址\t 計(jì)算機(jī) 數(shù)學(xué) 英語\n"; temp->Out(); cout<<"請(qǐng)輸入: "; cin>>name; cout<<"請(qǐng)輸入學(xué)號(hào): "; cin>>no; cout<<"請(qǐng)輸入年齡: "; cin>>age; cout<<"請(qǐng)輸入性別: "; cin>>sex; cout<<"請(qǐng)輸入宿舍地址: "; cin>>add; cout<<"請(qǐng)

36、輸入計(jì)算機(jī)成績: "; cin>>score.puter; cout<<"請(qǐng)輸入數(shù)學(xué)成績: "; cin>>score.Math; cout<<"請(qǐng)輸入英語成績: "; cin>>score.English; temp->Set(name,no,age,sex,add,score); break; } temp=temp->Next; } } else if(choose=='2') { cout<<"請(qǐng)輸入您要修改的學(xué)號(hào): "; cin>>no; while(temp)

37、 {if(strcmp(temp->GetNo(),no)==0) { flag=1; cout<<"\n\t學(xué)號(hào)\t\t年齡\t性別\t宿舍住址\t 計(jì)算機(jī) 數(shù)學(xué) 英語\n"; temp->Out(); cout<>name; cout<<"請(qǐng)輸入學(xué)號(hào): "; cin>>no; cout<<"請(qǐng)輸入年齡: "; cin>>age; cout<<"請(qǐng)輸入性別: "; cin>>sex; cout<<"請(qǐng)輸入宿舍地址:

38、"; cin>>add; cout<<"請(qǐng)輸入計(jì)算機(jī)成績: "; cin>>score.puter; cout<<"請(qǐng)輸入數(shù)學(xué)成績: "; cin>>score.Math; cout<<"請(qǐng)輸入英語成績: "; cin>>score.English; temp->Set(name,no,age,sex,add,score); break; } temp=temp->Next; } } if(flag==0) cout<<"\n無該學(xué)生的信息\n"<

39、 else { Save(); cout<<"修改成功!"<>choose; while(choose!='1'&&choose!='2') { cout<<"1.返回主菜單\n2.繼續(xù)修改 ------- "; cin>>choose; } if(choose=='1') Menu(); else if(choose=='2') Modify(); } void Function::Delete() //刪除學(xué)生信息函數(shù) { ch

40、ar name[20]; char no[20]; char choose; Student *temp,*p; system("cls"); p=temp=Student_First->Next; cout<<"請(qǐng)輸入: "; cin>>name; cout<<"輸入學(xué)號(hào): "; cin>>no; while(temp) { if(strcmp(temp->GetName(),name)==0&&strcmp(temp->GetNo(),no)==0) //判斷該學(xué)生信息是否存在 { cout<<"\t學(xué)號(hào)\t\t年齡

41、\t性別\t宿舍住址\t 計(jì)算機(jī) 數(shù)學(xué) 英語\n"; temp->Out(); cout<<"\n是否刪除(Y/N) -------"; cin>>choose; if(choose=='y'||choose=='Y') {p->Next=p->Next->Next; delete temp; cout<<"刪除成功:\n"; } break; } p=temp; temp=temp->Next; } Save();

42、 cout<<"1.返回主菜單\n2.繼續(xù)刪除 ------- "; cin>>choose; while(choose!='1'&&choose!='2') {cout<<"1.返回主菜單\n2.繼續(xù)刪除 ------- "; cin>>choose; } if(choose=='1') Menu(); else if(choose=='2') Delete(); }

43、 void Function::Read() //讀取學(xué)生信息函數(shù) {Student *p,*p2; p=Student_First; ifstream is("Student.txt",ios::in); if(!is) { ofstream os("Student.txt",ios::out); os.close();

44、 return ; } while(!is.eof()) { p2=new Student; p2->Infile(is); p->Next=p2; p2->Next=NULL; p=p->Next; } } void Function::Save() //保存學(xué)生信息函數(shù) {of

45、stream 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 cho

46、ose; char t1[20]; char t2[20]; system("cls"); Student *temp=Student_First->Next; do { cout<<"輸入查詢方式:\n1.按查詢\n2.按學(xué)號(hào)查詢 ------- "; cin>>choose; if(choose=='1') {cout<<"請(qǐng)輸入您要查詢的:"; cin>>t1; while(temp) {if(strcmp(t1,temp->GetName())==0) {f

47、lag=1; break; } temp=temp->Next; } if(flag==0) cout<<"\n無該學(xué)生的信息\n"<Out(); } break; } else if(choose=='2') {cout<<"請(qǐng)輸入您要查詢的學(xué)號(hào) ------- "; cin>>t2; while(temp) {if(strcmp(t2,temp->GetNo())==0)

48、 {flag=1; break; } temp=temp->Next; } if(flag==0) cout<<"\n無該學(xué)生的信息\n"<Out(); } break; } }while(choose!='1'||choose!='2'); cout<<"\n1.返回主菜單\n2.繼續(xù)查詢 ------- "; cin>>choose; while(cho

49、ose!='1'&&choose!='2') {cout<<"1.返回主菜單\n2.繼續(xù)查詢 ------- "; cin>>choose; } if(choose=='1') Menu(); else if(choose=='2') Search(); } void Function::Show() { Student *temp; system("cls"); temp=Student_First->Next; if(!temp) {cou

50、t<<"文件無數(shù)據(jù)\n\n "<Out(); temp=temp->Next; } } cout<

51、 Function::Menu() { system("color F9"); time_t t; time(&t); char choose; system("cls"); cout<

52、息管理系統(tǒng) "<

53、---------------------------╮"<

54、"<>choose; switch(choose) {case '1': Add();break; case '2': Insert();break;

55、 case '3': Modify();break; case '4': Delete();break; case '5': Show();break; case '6': Search();break; case '7': exit(1);break; default: {cout<<"請(qǐng)按規(guī)定輸入選擇項(xiàng)!"<

展開閱讀全文
溫馨提示:
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),我們立即給予刪除!