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

下載本文檔

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

文檔簡介

1、課 程 設 計 報 告課程名稱 面向對象程序設計 課題名稱 高校學籍管理系統(tǒng) 專 業(yè) 通信工程 班 級 通信工程0801 學 號 姓 名 指導教師 2010年 01 月 16日湖南工程學院課 程 設 計 任 務 書課程名稱 面向對象程序設計 課 題 高校學籍管理系統(tǒng) 專業(yè)班級 通信工程0801 學生姓名 學 號 200803020126 指導老師 審 批 任務書下達日期 2009年 12 月 29 日任務完成日期 2010年 01 月 16 日面向對象程序設計課程設計任務書授課班級:通信工程0801/02 學時: 3授課教師:一、課程設計報告規(guī)范(包括系統(tǒng)設計要求,設計思路,系統(tǒng)功能模塊圖,系

2、統(tǒng)流程圖,類的層次圖(包括類成員列表),調(diào)試過程,關鍵程序代碼,總結,參考書目等)。(一)需求分析系統(tǒng)設計目的與意義系統(tǒng)功能需求(系統(tǒng)流程圖);輸入輸出的要求;(二)總體設計系統(tǒng)功能分析;系統(tǒng)功能模塊劃分與設計(系統(tǒng)功能模塊圖)。(三)詳細設計數(shù)據(jù)庫需求分析數(shù)據(jù)庫概念結構設計(er圖);數(shù)據(jù)庫邏輯結構設計。類層次圖(四)界面設計與各功能模塊實現(xiàn)(五)系統(tǒng)調(diào)試調(diào)試問題出現(xiàn)的主要問題:編譯語法錯誤及修改,重點是運行邏輯問題修改和調(diào)整(六)使用說明及編程體會說明如何使用你編寫的程序,詳細列出每一步的操作步驟。(七)關鍵源程序(帶注釋)二、書寫格式1、設計報告要求用a4紙打印成冊;2、標題為:黑體三號

3、,正文為:宋體五號。三、答辯與評分標準: 1、完成基本功能:40分; 2、設計報告及使用說明書:40分; 3、設置錯誤或者按照要求改變結果:10分;4、回答問題:10分。四、 教材及參考書 朱戰(zhàn)立等著, c+面向對象程序設計,人民郵電出版社;鄭莉著, c+ 語言程序設計(含實驗指導書)。 清華大學出版社 ( 結構化程序設計部分 ) 錢能主編 ,c+ 程序設計教程,清華大學出版社, 2000.11 戴鋒編著, visual c+ 程序設計基礎 , 清華大學出版社 ,2001.4 呂日著, c+ 程序設計教程,清華大學出版社, c+ 大學教程,美國 harvey m.deitel 等 五、課程設計

4、時間安排1、 班級:通信工程0801/022、 指導教師:雷曉3、時間安排: 上機時間:十九周 周一下午 14:00-18:00 周二下午 14:00-18:00 十九周 周三上午 08:00-12:00附:選題方案:所選題目根據(jù)學生學號確定,學號模6加1,即(學號%6+1)。如你的學號為17,則所選題目號為:17%6+16(題目6)。六、 設計項目:題目3: 高校學籍管理系統(tǒng) (一)、課程設計題目: 高校學籍管理系統(tǒng) (二)、目的與要求:1、目的: (1)要求學生達到熟練掌握c+語言的基本知識和技能; (2)基本掌握面向對象程序設計的基本思路和方法; (3)能夠利用所學的基本知識和技能,解決

5、簡單的面向對象程序設計問題。2、基本要求: (1)要求利用面向對象的方法以及c+的編程思想來完成系統(tǒng)的設計; (2)要求在設計的過程中,建立清晰的類層次; 3、創(chuàng)新要求: 在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結果進行修改的功能。4、寫出設計說明書 (三)、設計方法和基本原理:1、功能要求 要求完成以下功能:1)能夠從屏幕上讀取一個學生的信息并將信息存入到數(shù)據(jù)文件中。2)能夠將指定的信息從文件中刪除。3)能夠按編號、姓名對學生的信息進行檢索并將檢索結果顯示在屏幕上。4)可以統(tǒng)計全部學生的總成績,及其在班上的排名。5)能夠統(tǒng)計各科的平均成績及及格率。6)要求有錯誤提示功能,例如性別只能輸入

6、男女,輸入錯誤提示重新輸入。7)如果檢索不到相應的信息應提示用戶。 2、問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: a)寫出需求分析(做什么) b)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為; c)根據(jù)問題描述,設計系統(tǒng)的類層次; d)完成類層次中各個類的描述(包括屬性和方法); e)完成類中各個成員函數(shù)的定義; f)用戶界面的設計 g)分析系統(tǒng)功能模塊(系統(tǒng)流程圖) h)代碼編寫 i)功能調(diào)試; j)完成系統(tǒng)總結報告以及系統(tǒng)使用說明書。 目 錄一、需求分析31.系統(tǒng)設計目的與意義32.系統(tǒng)功能需求(系統(tǒng)流程圖)32.系統(tǒng)功能流程圖43.輸入輸出的要求4二、總體分析51.

7、系統(tǒng)功能分析52.系統(tǒng)功能結構圖5三、詳細設計61.類設計:6三、界面設計與各功能模塊的實現(xiàn)81.界面設計8四、系統(tǒng)調(diào)試101.首頁進入學籍管理系統(tǒng)主菜單102錄入學生信息界面:103.顯示學生信息界面114.查找學生信息界面115.刪除學生信息界面126.修改學生信息127.統(tǒng)計學生信息:13五、使用說明及心得體會14六、附件15 一、 需求分析1.系統(tǒng)設計目的與意義要求用c+面向程序設計語言編寫一高校學籍管理系統(tǒng),1、目的: 1)要求學生達到熟練掌握c+語言的基本知識和技能; 2)基本掌握面向對象程序設計的基本思路和方法; 3)能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。

8、2. 系統(tǒng)設計的意義:系統(tǒng)要能夠對相應的數(shù)據(jù)進行很好的測試,系統(tǒng)的統(tǒng)計對每一科的總成績,平均成績,及格律都進行了統(tǒng)計;系統(tǒng)數(shù)據(jù)的錄入 除可以手工錄入外,還可以采用文件的錄入;系統(tǒng)統(tǒng)計學生的基本信息較全面,包括學號,姓名,民族,政治面貌,身份證號,生日,性別,數(shù)學、英語、計算機的成績;程序中查找運用了兩種查找方式即學號查找和姓名查找。2.系統(tǒng)功能需求(系統(tǒng)流程圖)1.要求完成以下功能:1)能夠從屏幕上讀取一個學生的信息并將信息存入到數(shù)據(jù)文件中。2)能夠將指定的信息從文件中刪除。3)能夠按編號、姓名對學生的信息進行檢索并將檢索結果顯示在屏幕上。4)可以統(tǒng)計全部學生的總成績,及其在班上的排名。5)能

9、夠統(tǒng)計各科的平均成績及及格率。6)要求有錯誤提示功能,例如性別只能輸入男女,輸入錯誤提示重新輸入。7)如果檢索不到相應的信息應提示用戶。 2.系統(tǒng)功能流程圖退出主程序初始化程序菜單程序查找刪除修改統(tǒng)計錄入顯示保存3.輸入輸出的要求1.輸入的要求:通過主函數(shù)體調(diào)用其他函數(shù)應用系統(tǒng)主控界面包括學生信息錄入,查找等功能模塊。學生信息錄入功能完成學生信息和成績的輸入。記錄查詢功能可以對數(shù)據(jù)各分類的記錄進行查詢。2.輸出的要求:1)能夠按編號、姓名對學生的信息進行檢索并將檢索結果顯示在屏幕上。2)可以統(tǒng)計全部學生的總成績,及其在班上的排名。3)能夠統(tǒng)計各科的平均成績及及格率。4)如果檢索不到相應的信息應

10、提示用戶二、 總體分析1. 系統(tǒng)功能分析能夠從屏幕上讀取一個學生的信息并將信息存入到數(shù)據(jù)文件中。能夠將指定的信息從文件中刪除。能夠按編號、姓名對學生的信息進行檢索并將檢索結果顯示在屏幕上??梢越y(tǒng)計全部學生的總成績,及其在班上的排名。能夠統(tǒng)計各科的平均成績及及格率。要求有錯誤提示功能,例如性別只能輸入男女,輸入錯誤提示重新輸入。如果檢索不到相應的信息應提示用戶。 開始選擇菜單序號1錄入信息2顯示信息3查找信息4刪除信息5修改信息6統(tǒng)計成績7保存信息0退出按要求逐步輸入學生信息選擇修改方式1?編號查詢姓名查找2?保存?輸入學生信息退出保存2.系統(tǒng)功能結構圖 三、詳細設計1.類設計:類:studen

11、t 數(shù)據(jù)成員編號,姓名,性別,籍貫,民族,生日,政治面貌,省份證,數(shù)學成績,英語成績,計算機成績class student protected: int number; /學號char name20; /姓名char sex6; /性別char place20; /籍貫char nation6; /民族char birth20; /出生日期char party10; /政治面貌char id20; /身份證號float score3; /成績類:school成員函數(shù)錄入函數(shù)input():逐步輸入學生信息;修改函數(shù) mend():按姓名或編號修改學生信息;統(tǒng)計函數(shù)count():統(tǒng)計各科的總成

12、績,計算平均成績,統(tǒng)計各科的及格率;查找函數(shù)found():按學號或姓名查找學生的記錄;修改函數(shù)mend():修改指定學號學生成績記錄;刪除函數(shù)del():刪除指定學號學生記錄;輸出函數(shù)show():輸出班級所有學生成績記錄;class schoolvoid input(); /錄入函數(shù)void mend(); /修改函數(shù)void del(); /刪除函數(shù)int find(student *p,int num,char *pn=); /子查找函數(shù)void found(); /查找函數(shù)void show(); /顯示函數(shù)void count(); /統(tǒng)計函數(shù)void save(); /保存函數(shù)v

13、oid begin(); /初始化函數(shù)void clear(); /清空函數(shù)char mainmenu(); /主菜單函數(shù)具體如下圖所示:student#number:int#name20:char#sex6:char#place20:char#nation6:char#birth20:char#party10: char#id20:char#score3:float+student*next; +student() +student() + * getname():char+getnumber():int+getscore(inti)double+ getg():float+ input()

14、:void+input(ifstream & is): void +output():void+output(ofstream&os):voidschool+school()+school()+ input():void+ mend():void+ del():void+ find:int+found():void+ show():void+ count():void+ save():void+ begin():void+ clear():void+mainmenu():char+getkey():int+setkey(intk):void- *head: student - key:int三

15、、 界面設計與各功能模塊的實現(xiàn)1. 界面設計1.界面設計程序運行后會出現(xiàn)一個簡捷的窗口,便于用戶查詢數(shù)據(jù)。2.功能模塊實現(xiàn)設計通過主窗體調(diào)用其他窗體。應用系統(tǒng)主控界面包括學生信息錄入,查找等功能模塊。學生信息錄入功能完成學生信息和成績的輸入。記錄查詢功能可以對數(shù)據(jù)各分類的記錄進行查詢。具體舉例如下:1) 查找函數(shù):void school:found()student *p;int num=-1,n=9;char name20=;do coutn;while(n2);if(n=1)coutnum;if(n=2)coutname;if(!find(&p,num,name) )coutsorry!找

16、不到你要查找的內(nèi)容!next)-output();2)刪除函數(shù)void school:del()student *p,*p2;int num;coutnum;if( !find(&p,num,) )coutsorry!找不到你要刪除的內(nèi)容!next)-output();p2=p-next;p-next=p2-next;delete p2;school:setkey(1);四、 系統(tǒng)調(diào)試1.首頁進入學籍管理系統(tǒng)主菜單2錄入學生信息界面:3.顯示學生信息界面:4.查找學生信息界面:5.刪除學生信息界面:6.修改學生信息:7.統(tǒng)計學生信息:五、 使用說明及心得體會此次c+課程設計,在指導教師的精心教

17、導下,我們學會了如何用c+編寫一個簡單的應用程序。首先要對程序的設計要求有一個比較明確的認識,然后系統(tǒng)分析與系統(tǒng)設計,最后是代碼設計與調(diào)試。程序實現(xiàn)上,設計了簡單的查詢界面,將各個功能集中出來按照程序編寫原則,便于查詢。其中遇到了四個錯誤,第一個是d:123123.h(341) : error c2143: syntax error : missing ; before 。是在主菜單函數(shù)中多了一個“;”經(jīng)調(diào)試查出改正。第二個錯誤時d:123123.h(326) : error c2111: pointer addition requires integral operand。是在統(tǒng)計函數(shù)中,定

18、義了g 為數(shù)組格式,但是在用到的時候卻忽略了,按照非數(shù)組形式計算,結果出錯,一直沒有找出,最后在老師的精心指導下才發(fā)現(xiàn)了這一問題。第三個錯誤是:根據(jù)c+課程所學的概念、理論和方法,按照c+程序設計的基本步驟,設計出一個適當規(guī)模的程序;進一步加深對c+語言的理解和掌握。理論聯(lián)系實際,加深和鞏固所學的理論知識,提高實踐能力和計算機的綜合運用能力。我們編寫程序的過程是辛苦與快樂的,程序的編寫原則很重要,只要我們在編程,就必須不斷改進,才能更好提高編程能力。六、附件源文件代碼:1. 頭文件:#include#include#include#include class student protected

19、: int number; /學號char name20; /姓名char sex6; /性別char place20; /籍貫char nation6; /民族char birth20; /出生日期char party10; /政治面貌char id20; /身份證號float score3; /成績public: student *next; student() student() char* getname() return name; int getnumber() return number;float getscore(int i) return scorei;float getg

20、() return (score0+score1+score2); /錄入信息void input()int e=1;cout按提示輸入:endl;coutnumber;coutname;do coutsex; if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutplace; coutnation; coutbirth; coutparty; coutid; coutscore0; coutscore1; coutscore2; e=0; else cout無此類型性別!重新輸入!numbernamesexplacenationbirthpartyid scor

21、e0score1score2;is.get(); /顯示信息void output()cout學生基本信息如下:endl;cout 編號:number 姓名:name 性別:sex 籍貫:place 民族:nation 生日:birth 政治面貌:partyendl 身份證號:id 數(shù)學:score0 英語:score1 計算機:score2 總分:getg()endlendl;void output(ofstream & os) ossetw(6)number setw(15)name setw(6)sex setw(20)place setw(6)nation setw(20)birth

22、setw(20)party setw(20)id setw(6)score0 setw(6)score1 setw(6)score2next=null; key=0; school() delete head; void input(); /錄入函數(shù)void mend(); /修改函數(shù)void del(); /刪除函數(shù)int find(student *p,int num,char *pn=); /子查找函數(shù)void found(); /查找函數(shù)void show(); /顯示函數(shù)void count(); /統(tǒng)計函數(shù)void save(); /保存函數(shù)void begin(); /初始化函數(shù)

23、void clear(); /清空函數(shù)char mainmenu(); /主菜單函數(shù)int getkey() return key;void setkey(int k) key=k; private: student *head; int key;/錄入函數(shù)void school:input()student *p,*p2=null;p=head; int n;while(p-next)p=p-next;while(n) p2=new student; p2-input(); p-next=p2; p2-next=null; p=p-next; school:setkey(1); coutn;

24、/子查找函數(shù)int school:find(student *p1,int num,char *pn) student *p; p=head;while(p-next) (*p1)=p; if( (p-next)-getnumber()=num|!strcmp( (p-next)-getname(),pn ) ) return 1; p=p-next;return 0;/查找函數(shù)void school:found()student *p;int num=-1,n=9;char name20=;do coutn;while(n2);if(n=1)coutnum;if(n=2)coutname;i

25、f(!find(&p,num,name) )coutsorry!找不到你要查找的內(nèi)容!next)-output();/刪除函數(shù)void school:del()student *p,*p2;int num;coutnum;if( !find(&p,num,) )coutsorry!找不到你要刪除的內(nèi)容!next)-output();p2=p-next;p-next=p2-next;delete p2;school:setkey(1);/顯示函數(shù)void school:show()student *p;p=head;while(p-next)(p-next)-output();p=p-next;

26、/修改函數(shù)void school:mend()student *p;int num=-1,n;char name20=;do coutn;while(n2);if(n=1)coutnum;if(n=2)coutname;if( !find(&p,num,name) )coutsorry!找不到你要修改的內(nèi)容!next)-output();(p-next)-input();school:setkey(1);/保存函數(shù)void school:save()student *p;p=head;ofstream os(student.txt,ios:out);if (school:getkey()=1)

27、 while(p-next) (p-next)-output(os); p=p-next;cout文件已保存! num;is.seekg(t); if(numinput(is);p-next=p2;p2-next=null;p=p-next;/清空函數(shù) void school:clear()student *p,*p2;p=head-next;while( p )p2=p;p=p-next;delete p2;/統(tǒng)計函數(shù) void school:count()student *p;p=head;int n=0;double g3=0,0,0;float j3=0,0,0;while(p-next) p=p-next; n+; for(int i=0;igetscore(i) ); (p-getscore(i) )=60? i+ : 0 ;cout數(shù)學總分:g0 平均分:g0/n 及格率:j0/nendl英語總分:g1 平均分:g1/n 及格率:j1/nendl計算機總分: g2 平均分: g2/n 及格率:j2/nendl;/主選菜單函數(shù)char school:mainmenu()char n6;coutnn 歡迎

溫馨提示

  • 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

提交評論