《C++學(xué)生信息管理體系課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C++學(xué)生信息管理體系課程設(shè)計(jì)(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、程序設(shè)計(jì)綜合課程設(shè)計(jì)計(jì)算機(jī)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告 (2010/2011學(xué)年 第一學(xué)期)學(xué)生姓名: 學(xué)生班級(jí): 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 2010年1月5日18目錄第一章 課程設(shè)計(jì)目的和要求11.1 本課程設(shè)計(jì)的目的11.2 課程設(shè)計(jì)的任務(wù)及要求1第二章:課程設(shè)計(jì)任務(wù)要求22.1.課程設(shè)計(jì)內(nèi)容:22.2功能實(shí)現(xiàn):22.3運(yùn)行環(huán)境:3第三章:詳細(xì)說(shuō)明43.1.主函數(shù)的流程圖:43.2.引入的頭文件43.3 定義的類53.4 子函數(shù)介紹63.4.1. 查找學(xué)生函數(shù):63.4.2.添加學(xué)生信息73.4.3.刪除學(xué)生信息8第四章: 軟件使用說(shuō)明9第五章:課程設(shè)計(jì)心得與體會(huì)10附錄
2、111附錄212第一章 課程設(shè)計(jì)目的和要求1.1 本課程設(shè)計(jì)的目的(1)熟練掌握C+語(yǔ)言的基本知識(shí)和技能; (2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;(3)利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題;(4)提高學(xué)生的科技論文寫(xiě)作能力。 1.2 課程設(shè)計(jì)的任務(wù)及要求 基本要求:(1)課程設(shè)計(jì)前必須根據(jù)課程設(shè)計(jì)題目認(rèn)真準(zhǔn)備實(shí)驗(yàn)源程序及調(diào)試時(shí)所需的數(shù)據(jù); (2)要求采用簡(jiǎn)明、嚴(yán)格的問(wèn)題描述,設(shè)計(jì)求解算法;(3)數(shù)據(jù)結(jié)構(gòu)選用得當(dāng),程序結(jié)構(gòu)合理;(4)程序簡(jiǎn)明易懂,多運(yùn)用輸出提示,程序運(yùn)行正確; (5)對(duì)設(shè)計(jì)進(jìn)行總結(jié)和討論。第二章:課程設(shè)計(jì)任務(wù)要求2.1.課程設(shè)計(jì)內(nèi)容: 該系統(tǒng)是由c
3、+語(yǔ)言編寫(xiě)的一個(gè)學(xué)生信息管理體系,其主要功能是實(shí)現(xiàn)對(duì)學(xué)生信息的增加,刪除,修改,查詢,其中查詢可以分別以姓名,學(xué)號(hào)為關(guān)鍵字查詢學(xué)生的信息。有學(xué)生信息,內(nèi)容如下: 姓名 學(xué)號(hào) 性別 地址 電話 白雪亮 1001 男 河北邯鄲 15513069479逢成杰 1002 男 浙江嘉興 15513064356高國(guó)君 1003 男 山西臨汾 15567890987高嘯天 1004 男 河北衡水 15532423424耿金燦 1005 男 河北衡水 15538929308侯玲 1006 女 山西忻州 13445456556及永超 1007 男 河北滄州 155349234991、當(dāng)前學(xué)生信息:通過(guò)類來(lái)保存學(xué)
4、生的姓名,學(xué)號(hào),性別,地址,電話等等相關(guān)信息,并且通過(guò)cin函數(shù)來(lái)進(jìn)行給當(dāng)前學(xué)生輸入初始信息。 2、學(xué)生成績(jī)查詢: 輸入一個(gè)學(xué)號(hào)或姓名, 在文件中查找此學(xué)生, 若找到則輸出此學(xué)生的全部信息; 若找不到則輸出查找失敗的信息.。3、新生插入,此生的信息保存下來(lái)。4、修改學(xué)生信息。2.2功能實(shí)現(xiàn): (1) 信息維護(hù): 此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息、查找學(xué)生信息(2) 信息查詢: 查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢 2.3運(yùn)行環(huán)境:服務(wù)器端運(yùn)行環(huán)境為windows XP,客戶端運(yùn)行環(huán)境為windows XP版,windows 98以上的操作系統(tǒng),Microsof t v
5、isual c+6.0 Office 2003 應(yīng)用軟件。第三章:詳細(xì)說(shuō)明3.1.主函數(shù)的流程圖:Main()輸入一個(gè)數(shù) 0Grade.ModifyItem()Grade.RemoveItem()Grade.Find()Grade.Display()Grade.AddItem()54321 結(jié)束圖3.1主函數(shù)流程圖3.2.引入的頭文件# include # include # include # include 說(shuō)明:引入string,使用到其中包含的strcpy()字符串拷貝函數(shù)與strcmp()字符串比較函數(shù)。引入iostream,使用了標(biāo)準(zhǔn)輸入輸出流如cin,cout,endl等。引入f
6、stream,使用到其中定義的兩個(gè)類ifstream與ofstream,分別用與創(chuàng)建輸入流對(duì)象與輸出流對(duì)象,實(shí)現(xiàn)對(duì)磁盤(pán)文件的讀取與數(shù)據(jù)的存盤(pán)。3.3 定義的類本程序中定義了類即Student。其中包含五個(gè)成員變量char name20,char Id10;char sex4char dizhi20;char dianh20;分別對(duì)應(yīng)學(xué)生的姓名,學(xué)號(hào),性別,地址,電話。class Studentpublic: char name20; char Id10; char sex4; char dizhi20; /地址 char dianh20; /電話 Student * Next; void In
7、put() coutname; coutId; coutsex; coutdizhi; coutdianh; void ReadFile(istream & in) innameIdsexdizhidianh; /讀取文件中的信息 void Show() cout姓名:nameendl學(xué)號(hào):Idendl性別sexendl 地址:dizhiendl電話:dianhendlendlendlNext; p-Next=p-Next-Next; N 輸出沒(méi)有該結(jié)點(diǎn) 輸出:刪除成功 getch()將鏈表存儲(chǔ)回文本文件圖3.4 刪除函數(shù)流程圖第四章: 軟件使用說(shuō)明將程序代碼輸入到C+編譯器中,運(yùn)行,按照程序
8、運(yùn)行提示操作即可。該系統(tǒng)是由c+語(yǔ)言編寫(xiě)的一個(gè)學(xué)生信息管理體系,其主要功能是實(shí)現(xiàn)對(duì)學(xué)生信息的增加,刪除,修改,查詢,其中查詢可以分別以姓名,學(xué)號(hào)為關(guān)鍵字查詢學(xué)生的信息。第五章:課程設(shè)計(jì)心得與體會(huì)忙碌了幾個(gè)星期,在大家的幫助下,我總算將此程序設(shè)計(jì)出來(lái)。盡管不是自己獨(dú)立完成,但仍然很高興,因?yàn)樵谠O(shè)計(jì)的過(guò)程中,讓我了解到要設(shè)計(jì)一個(gè)大型程序,查找資料是至關(guān)重要的,在他人的基礎(chǔ)上,再根據(jù)自己所學(xué)進(jìn)行修改與調(diào)試,最后設(shè)計(jì)出自己想要的程序,這過(guò)程艱辛,但只要你持之以恒,成功指日可待。另外平時(shí)扎實(shí)的基礎(chǔ)也很關(guān)鍵,因?yàn)槿绻闫綍r(shí)學(xué)得就不怎么樣,那么你面對(duì)這么一個(gè)比較有難度的程序,你可能會(huì)望而卻步,看他人的程序都
9、是個(gè)難點(diǎn),更別說(shuō)讓你自己去設(shè)計(jì)。為了解決此。類問(wèn)題,最好就是多向同學(xué),老師請(qǐng)教,不要怕難為情。尤其是老師,評(píng)他們多年的編寫(xiě)程序的經(jīng)驗(yàn),要解決我們的問(wèn)題,對(duì)他們來(lái)說(shuō)只是small case。 在設(shè)計(jì)這個(gè)程序時(shí),我們剛開(kāi)始是根據(jù)老師給我們提供的資料,但是接下去便無(wú)從下手了,計(jì)算是個(gè)關(guān)鍵和難點(diǎn),我也查了相應(yīng)的資料,經(jīng)過(guò)自己的反復(fù)嘗試以及與與同學(xué)的討論,這也不難,最好還是被我搞定了。附錄1參考文獻(xiàn):1.C+.語(yǔ)言基礎(chǔ)教程 譚浩強(qiáng). 清華大學(xué)出版社.2.C+程序開(kāi)發(fā)與設(shè)計(jì)(第二版) Gary J.Bronson著 劉勇譯 人民郵電出版社3.http:/www.bc-4.附錄2程序源代碼:# includ
10、e # include # include # include /用getch();using namespace std;/Student類class Studentpublic: char name20; char Id10; char sex4; char dizhi20; /地址 char dianh20; /電話 Student * Next; void Input() coutname; coutId; coutsex; coutdizhi; coutdianh; void ReadFile(istream & in) innameIdsexdizhidianh; void Sho
11、w() cout姓名:nameendl學(xué)號(hào):Idendl性別sexendl 地址:dizhiendl電話:dianhendlendlendlNext;p!=End;p=p-Next) p-Show(); coutInput(); End-Next=new Student; End=End-Next; cout添加成功!endl; coutNext!=End;p=p-Next)/匹配成功則返回上一個(gè)指針,不成功就返回空 if(!strcmp(p-Next-name,name)return p; return NULL; Student *FindID(char * Id) for(Student
12、 * p=Head;p-Next!=End;p=p-Next)/匹配成功則返回上一個(gè)指針,不成功就返回空 if(!strcmp(p-Next-Id,Id)return p; return NULL; ;/構(gòu)造函數(shù)Studentmassage:Studentmassage() Head=new Student; Head-Next=new Student; End=Head-Next; in.open(sort.txt); if(!in) cout這是一個(gè)系統(tǒng)請(qǐng)先輸入。ReadFile(in); if(End-name0=0)break; End-Next=new Student; End=En
13、d-Next; in.close(); couttt讀取學(xué)生信息成功!Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp; delete Head,End;/菜單void Studentmassage:ShowMenu() cout 學(xué) 生 成 績(jī) 管 理 系 統(tǒng) endl; cout 1.增加學(xué)生成績(jī) endl; cout 2.顯示學(xué)生成績(jī) endl; cout 3.查找學(xué)生成績(jī) endl; cout 4.刪除學(xué)生成績(jī) endl; cout 5.修改學(xué)生信息 endl; cout 0.安全退出系統(tǒng) endl; c
14、outnttntt請(qǐng)選擇:;/查找函數(shù)void Studentmassage:Find() char name20 ,Id10; int x; Student * p=NULL; coutntt*n; couttt 1.按學(xué)生的姓名查找ntt 2.按學(xué)生學(xué)號(hào)查找; coutx; switch(x) case 1:coutname; if(p=FindItem(name) p-Next-Show(); cout請(qǐng)選擇; getch(); else couttt沒(méi)有找到該姓名的學(xué)生!nendl; cout請(qǐng)選擇; getch(); break; case 2: coutId; if(p=FindI
15、D(Id) p-Next-Show(); cout請(qǐng)選擇; getch(); else couttt沒(méi)有找到該學(xué)好的學(xué)生!nendl; cout請(qǐng)選擇; getch(); break; /修改信息void Studentmassage:ModifyItem() /修改信息 char name20; Student * p=NULL; coutname; if(p=FindItem(name) couttt已找到學(xué)生的信息,請(qǐng)輸入新的信息!Next-Input(); cout修改成功!endl; cout請(qǐng)選擇; getch(); else couttt沒(méi)有找到!endl; cout請(qǐng)選擇; g
16、etch(); /刪除信息void Studentmassage:RemoveItem() / 刪除信息 char name20; Student * p=NULL,*temp=NULL; couttt請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名:name; if(p=FindItem(name) temp=p-Next; p-Next=p-Next-Next; delete temp; couttt刪除成功!endl; cout請(qǐng)選擇; getch(); else couttt沒(méi)有找到!endl; coutNext;p!=End;p=p-Next) n+; return n;/保存函數(shù)void Studentm
17、assage:Save() out.open(sort.txt); for(Student *p=Head-Next;p!=End;p=p-Next) outnametIdtsext dizhitdianhtn; out.close();/主函數(shù)int main() int x,i=0; bool quit=false; coutttendl; /for(i=0;i3;i+) /couttttttttt endl; couttt【 歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng) 】endl; /for(i=0;i3;i+) / couttttttttt endl; /coutttnendl; Studentmassage Grade; coutx; switch(x) case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Find();break; case 4:Grade.RemoveItem();break; case 5:Grade.ModifyItem();break; return 0;