c++ 學(xué)生信息管理系統(tǒng) (鏈表格+文件全資料)實(shí)驗(yàn)資料報(bào)告材料
《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、單"< 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 19、ude 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é)生成績信息:"< 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)來確定插入位置:"< 32、(flag==0)
{
cout<<"\n無該學(xué)生的信息,程序?qū)⒎祷刂鞑藛蝄n"< 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< 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<<"修改成功!"< 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"< 48、
{flag=1;
break;
}
temp=temp->Next;
}
if(flag==0)
cout<<"\n無該學(xué)生的信息\n"< 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 "< 51、 Function::Menu()
{ system("color F9");
time_t t;
time(&t);
char choose;
system("cls");
cout< 52、息管理系統(tǒng) "< 53、---------------------------╮"< 54、"< 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 植樹問題課件PPT
- 實(shí)驗(yàn)九蕨類植物觀察和解剖
- 護(hù)理禮儀講解
- 初中物理_液體的壓強(qiáng)課件
- 武漢市【人教部編版】2019年秋語文一年級(jí)上冊(cè):統(tǒng)編版一年級(jí)上冊(cè)語文期末總復(fù)習(xí)資料課件
- 護(hù)士管理法律制度
- 核心肌群的功能和訓(xùn)練方式
- 在尋找野敗的日子里-PPT
- 安全培訓(xùn)遠(yuǎn)離大貨車
- 《10000以內(nèi)數(shù)的認(rèn)識(shí)(例5、例6)》教學(xué)課件-PPT
- 思達(dá)心臟醫(yī)院心血管病峰會(huì)邀請(qǐng)函
- 臨藥咳嗽和咳痰呼吸困難
- 用友通財(cái)務(wù)培訓(xùn)教程
- 頭頂球與運(yùn)球技術(shù)動(dòng)作分析
- 新城幼兒園中班科學(xué)有趣的石頭課件