面向對象課程設計報告—學生學籍管理系統(tǒng)_第1頁
面向對象課程設計報告—學生學籍管理系統(tǒng)_第2頁
面向對象課程設計報告—學生學籍管理系統(tǒng)_第3頁
面向對象課程設計報告—學生學籍管理系統(tǒng)_第4頁
面向對象課程設計報告—學生學籍管理系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

8、學生信息4. 學生信息搜索5. 學生信息統(tǒng)計6. 按英語成績排序7. 學生信息保存8. 退出5統(tǒng)計各種專業(yè)、男女、相應年齡的人數(shù)6按英語成績降序排列,輸出學生的姓名排名和英語成績7保存學生信息:提示保存成功4、輸入你要查找你學生姓名3、輸出學生的編號、姓名、性別、專業(yè)、出生日期、家庭地址、英語成績8、退出系統(tǒng)學生管理系統(tǒng)功能模塊圖各功能顯示效果模塊圖:增加學生信息和導入學生信息保存學生信息統(tǒng)計電子、建筑、通信、三個專業(yè)的人的個數(shù),按英語成績進行排名并輸出刪除相應學生的信息四、詳細程序#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請輸入學生信息(輸入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學生資料endl;fileout-endl;while(p)fileout - 編號:num 姓名:name 性別:xb 專業(yè):zy 出生日期:nian/y

11、ue/ri/ 地址:dz 英語入學成績: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é)點 if (head=null) cout不存在此編號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沒找編號為 num的學生!next; /整頓編號 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編號:num姓名:name 性別:xb 專業(yè):zy 出生日期:nian/yue/ri/ 地址:dz 英語入學成績:marknext; return 0; /*/* node* tongji(node* head) /統(tǒng)計 node *p1=head;int a=0,b=0,c=0,d=0,e=0,i100,j100;char aa=網(wǎng)絡工程, bb=計算機科學與

14、技術,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)計.txt);fileout統(tǒng)計信息endl;fileout-endl;fileouta專業(yè)的個數(shù):aendlb專業(yè)的個數(shù):bendlc專業(yè)的個數(shù):cendl;fileout男性個數(shù):

15、dendl女性個數(shù):eendl;for(int mm=0;mm100;mm+)if(jmm!=0)fileout年齡imm的個數(shù):jmmendl;fileout-endl;fileout.close(); /-cout統(tǒng)計信息endl;cout-endl;cout網(wǎng)絡工程的個數(shù):aendl計算機科學與技術的個數(shù):bendl其他專業(yè)的個數(shù):cendl; cout男性個數(shù):dendl女性個數(shù):eendl;for(int m=0;m100;m+)if(jm!=0)cout年齡im的個數(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* 學 生 信 息 管 理 系 統(tǒng) * endl; cout* * endl; cout* 1.增加學生信息 *endl; cout* 2.刪除學生信息 *endl; cout* 3.導入學生信息 *endl; cout* 4.學生信息搜索 *endl; cout* 5.學生信息統(tǒng)計 *endl; cout* 6.按英語成排序 *endl; cout* 7.學生信息保存 *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) /新增學生信息if(gg) p=create();/調(diào)用創(chuàng)建列表gg-;elseinsert(p);/新增學生信息nn+;chundang(p);/信息存檔/-elseif(n=2) /刪除學生信息int line=0;/導入學生信息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) /導入學生信息int line=0;char buf100;ifstream filein(out.txt);while(filein.getline(buf,100)+line;coutbufendl;filein.close();/-else if(n=4) /學生信息搜索coutname;sousuo(p,name);/-else if(n=5) /學生信息統(tǒng)計tongji(p);/-else if(n=6) /英語入學成績排序cout按英語成績排序:endl;paixu(p);/-

20、else if(n=7) /學生信息保存char ch,ch1=n;ofstream file1(學生信息保存.txt,ios_base:app);/=清空文件學生信息保存.txt的內(nèi)容 file * fp; fp = fopen(學生信息保存.txt,w);/=組合文件ifstream file2(out.txt);file1.write(char *) &ch1,sizeof(ch1);while(file2.get(ch)file1.put(ch);ifstream file3(統(tǒng)計.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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論