面向?qū)ο笳n程設(shè)計(jì)報(bào)告—學(xué)生學(xué)籍管理系統(tǒng)_第1頁
面向?qū)ο笳n程設(shè)計(jì)報(bào)告—學(xué)生學(xué)籍管理系統(tǒng)_第2頁
面向?qū)ο笳n程設(shè)計(jì)報(bào)告—學(xué)生學(xué)籍管理系統(tǒng)_第3頁
面向?qū)ο笳n程設(shè)計(jì)報(bào)告—學(xué)生學(xué)籍管理系統(tǒng)_第4頁
面向?qū)ο笳n程設(shè)計(jì)報(bào)告—學(xué)生學(xué)籍管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、仲愷農(nóng)業(yè)工程學(xué)院課程設(shè)計(jì)報(bào)告*課 程 面向?qū)ο笳n程設(shè)計(jì)姓 名 院 (系) 計(jì)算機(jī)科學(xué)與工程學(xué)院 專業(yè)年級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)班學(xué) 號(hào) 指導(dǎo)教師 日 期 2010年8月30日-2010年9月12日仲愷農(nóng)業(yè)工程學(xué)院教務(wù)處制目錄課程設(shè)計(jì)目的1課程設(shè)計(jì)的內(nèi)容1詳細(xì)程序8課程設(shè)計(jì)總結(jié)17一、課程設(shè)計(jì)目的 1.通過c+課程設(shè)計(jì),使學(xué)生能夠?qū)W(xué)到的面向?qū)ο蟮脑O(shè)計(jì)思想運(yùn)用在具體的工作和學(xué)習(xí) 中,加深對類和對象的理解,要求學(xué)生對生活中許多具體的事物抽象出類,并掌握繼承和派 生類、基類、虛函數(shù)和多態(tài)的概念。2、通過這次課程設(shè)計(jì)掌握c+語言程序設(shè)計(jì)的編程思想,為后續(xù)課程打下基礎(chǔ)。3、培養(yǎng)我實(shí)際操作能力和實(shí)踐能力,為以

2、后的工作打下堅(jiān)實(shí)的基礎(chǔ)。課程設(shè)計(jì)的要求 利用學(xué)到的編程知識(shí)和編程技巧,要求學(xué)生:1、對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確2、系統(tǒng)設(shè)計(jì)要能完成題目所要求的功能。3、編程簡練,可用,盡可能的使系統(tǒng)的功能更加完善和全面4、使用說明書、流程圖要清楚。5、特別要求自己獨(dú)立完成。二、課程設(shè)計(jì)的內(nèi)容1、課程設(shè)計(jì)的題目及簡介有新生來報(bào)到,要逐個(gè)錄入其信息,如:學(xué)生姓名,性別,專業(yè),出生日期,家庭地址、英語入學(xué)成績。要求設(shè)計(jì)鏈表類來實(shí)現(xiàn),并統(tǒng)計(jì)學(xué)生人數(shù)。文本界面為:1. 新增學(xué)生信息2. 刪除學(xué)生信息3. 導(dǎo)入學(xué)生信息(已經(jīng)保存于的文件信息)4. 學(xué)生信息搜索(按姓名)5. 學(xué)生信息統(tǒng)計(jì)(按專業(yè)或性別或年齡

3、-年齡要自動(dòng)計(jì)算)6. 按英語成績排序7. 學(xué)生信息保存8. 退出2、設(shè)計(jì)說明總體結(jié)構(gòu)我們采取模塊化方式進(jìn)行程序設(shè)計(jì),要求程序的功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及整體結(jié)構(gòu)設(shè)計(jì)合理。也可根據(jù)自己對題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,如能采用圖形菜單界面更好)工作,運(yùn)行界面友好,演示程序以用戶和計(jì)算機(jī)的對話方式進(jìn)行(1)首先,看題目要求,每一條記錄包括一個(gè)學(xué)生的姓名、性別、專業(yè)、出生日期、家庭住址、英語成績。同時(shí),應(yīng)具備以下功能:1、輸入功能:一次可以完成自定義學(xué)生人數(shù)的學(xué)生信息記錄的輸入。2、刪除功能:對指定學(xué)生的信息進(jìn)行刪除。3、修改功能:對指定學(xué)生的信息進(jìn)行修改。4、

4、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。5、統(tǒng)計(jì)功能:對某幾個(gè)專業(yè)的人數(shù)、男女性別學(xué)生信息進(jìn)行統(tǒng)計(jì)。6、 排序功能:以英語課程的分?jǐn)?shù)為依據(jù)對學(xué)生信息進(jìn)行排序。7、 顯示功能:將以上功能操作后的學(xué)生信息顯示出來。8、 退出主菜單。3 程序流程圖 各功能模塊的實(shí)現(xiàn)流程圖:1增加學(xué)生信息調(diào)用函數(shù)node* create()判斷gg是否等于一如果是可創(chuàng)建鏈表輸入相應(yīng)的學(xué)生信息如果不是則需要運(yùn)用insert(p)函數(shù)插入結(jié)點(diǎn)增加學(xué)生信息的,并通過chundang(p)函數(shù)進(jìn)行存檔,具體流程如下圖所示判斷以前是否存儲(chǔ)了學(xué)生信息是新增信息退出該功能,返回主菜單,繼續(xù)選擇流程圖新增學(xué)生信息按

5、提示:輸入學(xué)個(gè)的各種信息按格式顯示輸入的學(xué)生信息 2刪除學(xué)生信息 調(diào)用函數(shù)node* delete(node* head , int num) 刪除學(xué)生的信息則必須對鏈表結(jié)點(diǎn)進(jìn)行刪除意味著將某個(gè)要?jiǎng)h除結(jié)點(diǎn)前后的連續(xù)打斷,去掉該結(jié)點(diǎn),使前后指針變量重新連接,完成鏈表結(jié)點(diǎn)的刪除任務(wù) 流程圖輸入要?jiǎng)h除學(xué)生信息2退出該功能,返回主菜單,繼續(xù)選擇輸入要?jiǎng)h除信息的編號(hào)該生信息已刪除,顯示其他同學(xué)的信息輸出所有學(xué)生的信息3導(dǎo)入學(xué)生信息打開存檔文件ifstream filein(out.txt);輸出說存檔的學(xué)生信息導(dǎo)入學(xué)生信息顯示學(xué)生的信息退出該功能,返回主菜單,繼續(xù)選擇 4、學(xué)生信息的搜索 調(diào)用函數(shù)nod

6、e* sousuo(node* head , char na20) ,按學(xué)生的姓名進(jìn)行搜索退出該功能,返回主菜單,繼續(xù)選擇 輸出所以查詢的學(xué)生信息按照提示輸入學(xué)生的姓名進(jìn)行搜索搜索學(xué)生信息 4流程圖: 5信息的統(tǒng)計(jì) 調(diào)用函數(shù)node* tongji(node* head) 運(yùn)用一個(gè)for循環(huán),將輸入的相應(yīng)的學(xué)生信息用strcmp()函數(shù)與對應(yīng)的數(shù)組進(jìn)行比較,然后再進(jìn)行統(tǒng)計(jì)輸出統(tǒng)計(jì)的信息統(tǒng)計(jì)所設(shè)定的專業(yè)人數(shù)和男女性別的人數(shù),計(jì)算學(xué)生的年齡并統(tǒng)計(jì)信息的統(tǒng)計(jì):5退出該功能,返回主菜單,繼續(xù)選擇。 6、按英語成績進(jìn)行排序:調(diào)用函數(shù)node* paixu(node* head)完成排序功能它的主要思想的

7、:首先設(shè)置英語成績的最大值100,最小值0(也可以使150或者其他)然后讓輸入的學(xué)生信息英語成績一次比較進(jìn)行比較,(如果有相等的就輸出排名1 ,然后排名加1),否則最大值減1,然后再次進(jìn)行比較( 如果等于99且上次沒有等于100的,就輸出排名1,然后排名加1,如果上次有等于100的排名為2),如果沒有與99相等的.,則繼續(xù)循環(huán)流程圖:輸出排序之后的學(xué)生信息對英語成績進(jìn)行排序退出該功能,返回主菜單,繼續(xù)選擇按學(xué)生信息進(jìn)行排序5總功能模塊圖:2、輸入要?jiǎng)h除的學(xué)生的編號(hào),刪除學(xué)生信息。1輸入學(xué)生的信息:姓名、性別、專業(yè)、出生日期、家庭地址、英語成績 菜單1. 新增學(xué)生信息2. 刪除學(xué)生信息3. 導(dǎo)入

8、學(xué)生信息4. 學(xué)生信息搜索5. 學(xué)生信息統(tǒng)計(jì)6. 按英語成績排序7. 學(xué)生信息保存8. 退出5統(tǒng)計(jì)各種專業(yè)、男女、相應(yīng)年齡的人數(shù)6按英語成績降序排列,輸出學(xué)生的姓名排名和英語成績7保存學(xué)生信息:提示保存成功4、輸入你要查找你學(xué)生姓名3、輸出學(xué)生的編號(hào)、姓名、性別、專業(yè)、出生日期、家庭地址、英語成績8、退出系統(tǒng)學(xué)生管理系統(tǒng)功能模塊圖各功能顯示效果模塊圖:增加學(xué)生信息和導(dǎo)入學(xué)生信息保存學(xué)生信息統(tǒng)計(jì)電子、建筑、通信、三個(gè)專業(yè)的人的個(gè)數(shù),按英語成績進(jìn)行排名并輸出刪除相應(yīng)學(xué)生的信息四、詳細(xì)程序#include #include #include#includeusing namespace std;in

9、t nn=0;struct node int num;char name20;char xb20;char zy20;int nian,yue,ri;char dz20;int mark;node *next ;/* node* create() /鏈表創(chuàng)建 cout請輸入學(xué)生信息(輸入0退出):num=1; head=null; n+; while (p1-num!=null) if (n=1) head=p1; else p2-next=p1; p2=p1; p1=new node; int a; nn+; p1-num=nn; coutp1-name; a=(int)p1-name0-4

10、8; if (a=0)break; coutp1-xb; coutp1-zy; coutp1-nian; cinp1-yue; cinp1-ri; coutp1-dz; coutp1-mark; n+; p2-next=null; return head; /* /* void chundang(node *head) /存檔 node *p=head; p=p-next; ofstream fileout(out.txt);fileout學(xué)生資料endl;fileout-endl;while(p)fileout - 編號(hào):num 姓名:name 性別:xb 專業(yè):zy 出生日期:nian/y

11、ue/ri/ 地址:dz 英語入學(xué)成績:marknext; fileout-num=nn; coutp0-name; coutp0-xb; coutp0-zy; coutp0-nian; cinp0-yue; cinp0-ri; coutp0-dz; coutp0-mark; if (head=null) head=p0; p0-next=null; return head; while (p1-numnum & p1-next) p2=p1; p1=p1-next; if (p1-num=p0-num) if (p1=head) head=p0; else p2-next=p0; p0-ne

12、xt=p1; else p1-next=p0; p0-next=null; return head; /* /* node* delete(node* head , int num) /刪除節(jié)點(diǎn) if (head=null) cout不存在此編號(hào)num!=num & p1-next) p2=p1; p1=p1-next; if (p1-num=num) if (p1=head) head=p1-next; else p2-next=p1-next; else cout沒找編號(hào)為 num的學(xué)生!next; /整頓編號(hào) while (p1) kk+; p1-num=kk; p1=p1-next;

13、/* return head; /*/* node* sousuo(node* head , char na20) /搜索 node *p1=head; while(p1!=null)if(!strcmp(p1-name,na)cout編號(hào):num姓名:name 性別:xb 專業(yè):zy 出生日期:nian/yue/ri/ 地址:dz 英語入學(xué)成績:marknext; return 0; /*/* node* tongji(node* head) /統(tǒng)計(jì) node *p1=head;int a=0,b=0,c=0,d=0,e=0,i100,j100;char aa=網(wǎng)絡(luò)工程, bb=計(jì)算機(jī)科學(xué)與

14、技術(shù),cc=其他,nan=男,nv=女;for(int k=0;kzy,aa)a+;else if(!strcmp(p1-zy,bb)b+;else if(!strcmp(p1-zy,cc)c+;if(!strcmp(p1-xb,nan)d+;else if(!strcmp(p1-xb,nv)e+;for(int l=0;lnian=il)jl+;p1=p1-next;/-存檔ofstream fileout(統(tǒng)計(jì).txt);fileout統(tǒng)計(jì)信息endl;fileout-endl;fileouta專業(yè)的個(gè)數(shù):aendlb專業(yè)的個(gè)數(shù):bendlc專業(yè)的個(gè)數(shù):cendl;fileout男性個(gè)數(shù):

15、dendl女性個(gè)數(shù):eendl;for(int mm=0;mm100;mm+)if(jmm!=0)fileout年齡imm的個(gè)數(shù):jmmendl;fileout-endl;fileout.close(); /-cout統(tǒng)計(jì)信息endl;cout-endl;cout網(wǎng)絡(luò)工程的個(gè)數(shù):aendl計(jì)算機(jī)科學(xué)與技術(shù)的個(gè)數(shù):bendl其他專業(yè)的個(gè)數(shù):cendl; cout男性個(gè)數(shù):dendl女性個(gè)數(shù):eendl;for(int m=0;m100;m+)if(jm!=0)cout年齡im的個(gè)數(shù):jmendl;cout-endl; return 0; /*/*node* paixu(node* head) /

16、英語成績排序node *p1=head;int rr=100;/成績int ll=1;/排名ofstream fileout(英語成績排序.txt);fileout英語成績排序endl;fileout-endl;fileout排名 成績 姓名endl;cout-endl;cout排名 成績 姓名mark=rr)fileoutll mark nameendl; coutll mark namenext ;rr-;fileout-endl;fileout.close(); cout-endl;return 0; /* main()int gg=1; int strcmp(const char *s

17、1,const char *s2);node *p;/= cout* 學(xué) 生 信 息 管 理 系 統(tǒng) * endl; cout* * endl; cout* 1.增加學(xué)生信息 *endl; cout* 2.刪除學(xué)生信息 *endl; cout* 3.導(dǎo)入學(xué)生信息 *endl; cout* 4.學(xué)生信息搜索 *endl; cout* 5.學(xué)生信息統(tǒng)計(jì) *endl; cout* 6.按英語成排序 *endl; cout* 7.學(xué)生信息保存 *endl;cout* 8.退出 *endl; cout 請輸入您的選擇(1-8):endl;while(1) /輸出操作文本int line=0;char b

18、uf100;ifstream filein(in.txt);while(filein.getline(buf,100)+line;coutbufn;/-if(n=1) /新增學(xué)生信息if(gg) p=create();/調(diào)用創(chuàng)建列表gg-;elseinsert(p);/新增學(xué)生信息nn+;chundang(p);/信息存檔/-elseif(n=2) /刪除學(xué)生信息int line=0;/導(dǎo)入學(xué)生信息char buf100;ifstream filein(out.txt);while(filein.getline(buf,100)+line;coutbufendl;filein.close();

19、coutcc;delete(p ,cc);chundang(p);/信息存檔/-else if(n=3) /導(dǎo)入學(xué)生信息int line=0;char buf100;ifstream filein(out.txt);while(filein.getline(buf,100)+line;coutbufendl;filein.close();/-else if(n=4) /學(xué)生信息搜索coutname;sousuo(p,name);/-else if(n=5) /學(xué)生信息統(tǒng)計(jì)tongji(p);/-else if(n=6) /英語入學(xué)成績排序cout按英語成績排序:endl;paixu(p);/-

20、else if(n=7) /學(xué)生信息保存char ch,ch1=n;ofstream file1(學(xué)生信息保存.txt,ios_base:app);/=清空文件學(xué)生信息保存.txt的內(nèi)容 file * fp; fp = fopen(學(xué)生信息保存.txt,w);/=組合文件ifstream file2(out.txt);file1.write(char *) &ch1,sizeof(ch1);while(file2.get(ch)file1.put(ch);ifstream file3(統(tǒng)計(jì).txt);file1.write(char *) &ch1,sizeof(ch1);while(file3.get(ch)file1.put(ch);ifstream file4(英語成績排序.txt);file1.write(char *) &ch1,sizeof(ch1);whi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論