




已閱讀5頁,還剩22頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄前言 2摘要 3正文 4(1) 問題描述 4(2) 需求分析 5(3) 概要設計 6(4) 詳細設計 8(五)測試結果 10(六)調試分析 16設計總結 17參考文獻 18致謝 19附件 I 部分源程序代碼 20前言本演示程序用C+編寫,主要用到的數據結構是線性表的順序存儲結構。因為學生信息管理系統需要經常查找數據。根據這個特點我們采用了順序存儲結構。它是一種靜態存儲結構。根據數據的特點,每一條記錄包含多個屬性,我們定義了兩個類Student和date。開發目的如下:能對學生信息進行錄入和修改;能刪除每個學生的信息;能根據學號和姓名來查找相應的學生;能比較兩個不同學號的學生是不是一樣;同時能將他們顯示出來。摘要學生信息管理系統是很常用的信息管理系統,也是典型的管理系統,其要求系統擁有良好的易用性和健壯性,能簡單方便的管理學生信息。基于要求進行設計,使管理學生信息便捷和高效。關鍵詞:信息,管理,學生正文(1) 問題描述 隨著社會的發展,教育越來越受到重視,學校需要管理的學生信息越來越多。但伴著計算機的進入生活,管理變得簡單起來,使用良好的管理軟件,可以方便的解決學生的管理問題。 系統以滿足的要求是:信息的輸入輸出及合理管理方式的運行。(2) 需求分析C+設計需要建立合理的類及對象,建立清晰的類層次,每個類中要有各自的屬性和方法;運用面向對象的機制(繼承、派生及多態性)來實現系統功能。 學生信息管理應該滿足如下要求: 1)系統以菜單方式工作; 2)學生信息錄入功能; 3)學生信息瀏覽功能; 4)查詢、排序功能:按學號查詢、按姓名查詢; 5)學生信息的刪除與修改。(3) 概要設計 v 系統分析 實現學生信息的錄入,修改,刪除,比較,顯示,查詢等工作。v 系統設計思想在設計的過程中,要建立清晰的類層次; 分析和定義各個類,每個類中要有各自的屬性和方法;運用面向對象的機制(繼承、派生及多態性)來實現系統功能。同時系統應該符合學生信息管理的規定,滿足對學生信息管理的需要,并達到操作過程中的直觀、方便、實用、安全等要求。系統采用模塊化程序設計的方法,既便于系統功能的組合和修改,又便于為參與開發的技術維護人員補充和維護。系統應具備文件維護功能,及時根據用戶需求進行數據的添加、刪除、修改、備份等操作。開始v 系統結構圖定義類主函數Switch語句進行選擇(輸入06)退出管理系統刪除學生信息顯示學生信息比較學生信息修改學生信息錄入學生信息查詢學生信息退出函數顯示函數比較函數刪除函數修改函數查詢函數輸入函數退出返回函數(四)詳細設計l 類屬性的詳細設計日期類:class Data/日期類 public:double Year,Month,Day;Data() Year=0;Month=0;Day=0; ;學生類:class student /學生類public: char name10; /姓名char sex5; /性別char jiguan10; /籍貫int num,age;/學號,年齡char adr30;/住址Data year;friend class Data;/date作為student的友元 /定義一個日期類void operator=(student s); /=重載int operator = (student s);/=重載stu100;l 類行為的詳細設計int i;void comp(); void input(); void find();void alt() ;void del(); void exit();void show(); void operator=(student s); /=重載 int operator = (student s);/=重載void student:operator =(student stu)/對=運算符重載函數的實現num=stu.num;for(int i=0;i9;i+)namei=i;for(i=0;i4;i+)sexi=stu.sexi; age=stu.age;for(i=0;i9;i+)jiguani=stu.jiguani ;for(i=0;i29;i+)adri=stu.adri ;year.Year=stu.year.Year ;year.Month =stu.year.Month ;year.Day =stu.year.Day ;int student:operator = (student stu)/對=運算符重載函數的實現if(*name=* & *sex=*stu.sex & age=stu.age & *jiguan=*stu.jiguan & *adr=*stu.adr&year.Year =stu.year.Year&year.Month =stu.year.Month&year.Day =stu.year.Day ) return 1;else1 return 0; Data() Year=0;Month=0;Day=0; (五)測試結果1.調試首界面 2.信息錄入界面3.查找界面4.刪除界面5.修改界面6.比較界面(六)調試分析實驗過程中的問題出現了很多,開始是語法錯誤,例如書寫標識符時,忽略了大小寫字母的區別,忘記加分號,用錯運算符的優先級,循環條件語句后誤加分號,沒有聲明函數原型等。這個錯誤不是很難解決,編輯器可以提示錯誤的位置,雖然好多錯誤不能找到真正出現錯誤的地方,或是找到錯誤卻沒辦法正確的解決,最后通過查資料,詢問其他同學終于可以改掉語法錯誤。 程序函數無法調用的錯誤就更難了。由于最初開始寫代碼是心中的思路并不是很成熟,第一次的代碼寫到一半發現不正確不得不從新開始寫。后來不得不先寫好流程圖然后寫好每部分小函數代碼。然后根據流圖將各部分的程序代碼逐步填入得出真確的代碼。 后期調試的過程總是的不出理想的結果,無法實現老師的要求。經過反復的調試錯誤查找和同學的幫助發現是函數調用的先后次序有問題。我的程序就是在不斷調試,不斷更改的過程中慢慢完成的。設計總結 本次課程設計以C+語言知識為基礎,運用C+語言面向對象中合理的算法,結合了順序表相關的知識,根據不同的情況選擇出相對較好的方法。 在課程設計過程中,把握好自己的課題,找到相關的算法和實現函數并設計它非常重要。能準確的抓住課題,設計高效的算法是必要的,這樣設計的系統才符合標準。要完成所有的工作僅靠我一個人是非常困難的,因我所掌握知識有限。所以,在老師和同學們的幫助下,通過查閱各種資料,解決了其中的問題,完成了此次課程設計。這次課程設計雖短暫,但其間的所學內容是很充實的,在其中我學習到了很多平時書本中無法學到的東西,積累了經驗,鍛煉了自己分析問題,解決問題的能力,并學會了如何將所學的各課知識融會,組織,來配合學習,在這兩周中我的收獲很多,學到很多知識,我相信這在以后會對我有很大幫助。參考文獻1陳維興,林小茶.c+面向對象程序設計教程. 北京: 清華大學出版社,1996.2004.2張國峰. C+程序設計實用教程. 北京: 清華大學出版社,1996. 3張松梅. C+語言教程. 電子科技大學出版社,1993.4閻龍. C程序員的C+指南. 北京航空航天大學出版社,1992.5王博. 面向對象的建模、設計技術與方法. 北京希望電腦公司,1990.6譚浩強.c+程序設計.北京: 清華大學出版社,2004.7傅明.c+與面向對象程序設計實驗教程.中南大學出版社.8陳清華,朱紅.Visual C+課程設計案例精選與編程指導.東南大學出版社,2003.致謝在這次課程設計中,由于自身缺乏經驗,知識和水平又很有限,難免有許多考慮不周全的地方,如果沒有老師的指導及同學們的支持和幫助,想要完成這個設計是難以想象的。在這里首先要感謝我的老師。是她在我做課程設計的每個階段都給予了我悉心的指導和耐心的幫助。其次,要感謝我的同學,在完成編程的過程時,他們給了我很多支持和幫助,如果沒有他們,我的的課程設計就不會這么順利的完成。最后感謝學校為我們提供這樣一個自我鍛煉的機會和好的課設環境,讓我有了很大提升。附件I 部分源程序代碼#include #include#include#include #include void back();/返回開始菜單void out();/輸出信息int w=1; /用于記錄學生人數,全局變量class Data/日期類public:double Year,Month,Day;Data() Year=0;Month=0;Day=0; ;class student /學生類public: char name10; /姓名char sex5; /性別char jiguan10; /籍貫int num,age;/學號,年齡char adr30;/住址Data year;friend class Data;/date作為student的友元 /定義一個日期類void operator=(student s); /=重載int operator = (student s);/=重載stu100;void main() system(cls);/清屏 DOC調用system(color f4); /顏色 同樣是調用docint i;void comp(); void input(); void find();void alt() ;void del(); void exit();void show();coutsetw(53)歡迎進入學生管理系統!endl; coutsetw(55)1 添加學生信息 2 查詢學生信息endlendl; coutsetw(55)3 刪除學生信息 4 修改學生信息endlendl; coutsetw(55)5 比較學生信息 6 顯示學生信息endlendl;coutsetw(45)0 退出系統endl;couti;if(i6|i0) cout輸入有誤!endl; back(); switch(i) case 1:input();break; case 2:find();break; case 3:del();break; case 4:alt();break;case 5:comp();break;case 6:show();break;case 0:exit();break;default:cout你的輸入有誤!n; void input() /添加學生system(color 84); /顏色 同樣是調用docsystem(cls);/清屏int n; coutn;if(n=100|n=0) cout輸入有誤!0;w+,n-) cout請輸入姓名、性別、籍貫,年齡,學號,住址:stuw.sexstuw.jiguanstuw.age stuw.numstuw.adr ; cout請輸入該生生日(年 月 日)stuw.year.Year;cinstuw.year.Month;cinstuw.year.Day; out();cout添加完畢2秒后返回endl;Sleep(2000); /延時2秒 back();void find() /查找學生system(color f4); /顏色 同樣是調用docsystem(cls);int i,k,l,id,j=0;/j是用以記錄是否有信息被找到 char name110;coutsetw(55)1按姓名查找學生信息 2 按學號查詢學生信息endlk;switch(k) case 1: coutname1; for(i=1;iw;i+)l=(strcmp( ,name1); if ( l=0)couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Daystui.adrendl; j+;if(j=0)cout沒有你要查找的信息;back();break;case 2:coutid;for(i=1;iw;i+)if(stui.num =id) couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Daystui.adrendl; j+;if(j=0)cout沒有你要查找的信息;back();void del()/刪除指定學號學生信息 system(color f4); /顏色 同樣是調用docint i,a,y=0;char x;couta;for(i=1;iw;i+)if(stui.num=a)cout該生情況:endl; couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Day stui.adrendl; cout是否確認刪除?(Y/N)x; if(x=Y|x=y)y+; for(;iw-1;i+) stui=stui+1;w-;/每刪除一個對總是減少一個if(y=0) cout該學生不存在!endl; back(); else cout刪除后的信息為:endl; out(); back(); void alt()/修改指定學號學生 system(color f4); /顏色 同樣是調用doc int id,y=0; char x; coutid;for(int i=1;iw;i+) if(stui.num =id) cout該生情況:endl; couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Day stui.adrendl; cout是否確認修改?(Y/N)x;if(x=Y|x=y) y+; cout請輸入姓名、性別、籍貫,年齡,學號,住址:stui.sexstui.jiguanstui.age stui.numstui.adr ; cout請輸入該生生日(年 月 日)stui.year.Year;cinstui.year.Month;cinstui.year.Day; elsecout2秒后返回endl; Sleep(2000); back(); if(y=0) cout 該學生不存在!; back(); else cout修改后的信息為:endl; out(); back(); void student:operator =(student stu)/對=運算符重載函數的實現num=stu.num;for(int i=0;i9;i+)namei=i;for(i=0;i4;i+)sexi=stu.sexi; age=stu.age;for(i=0;i9;i+)jiguani=stu.jiguani ;for(i=0;i29;i+)adri=stu.adri ;year.Year=stu.year.Year ;year.Month =stu.year.Month ;year.Day =stu.year.Day ;int student:operator = (student stu)/對=運算符重載函數的實現if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子脂肪儀項目合作計劃書
- 套筒扳手企業ESG實踐與創新戰略研究報告
- 電動銼具企業ESG實踐與創新戰略研究報告
- 竹雕工藝品企業ESG實踐與創新戰略研究報告
- 型煤設備企業ESG實踐與創新戰略研究報告
- 無堵塞排污泵企業縣域市場拓展與下沉戰略研究報告
- 電爐中、低碳鉻鐵企業數字化轉型與智慧升級戰略研究報告
- 粘膠絡絲機企業縣域市場拓展與下沉戰略研究報告
- 普通數控刀架企業數字化轉型與智慧升級戰略研究報告
- 電容器級鉭粉企業數字化轉型與智慧升級戰略研究報告
- 2025年中國經緯儀行業市場調查研究及投資前景展望報告
- 杭州2025年浙江杭州余杭區余杭街道招聘編外勞務派遣人員25人筆試歷年參考題庫附帶答案詳解
- 2024-2025學年度四川省達州市達川區銘仁園學校高一第二學期3月月考歷史試題(含答案)
- 2025年全球美容與美容個護趨勢報告:中國篇
- 2025年安陽學院單招職業技能考試題庫必考題
- 2025年陪玩培訓考試題及答案
- 農村電工安全培訓課件
- 競彩考試試題及答案
- 2025年山東省濟南中考一模英語試題(含答案)
- 小鵬P7+用戶調研報告
- 2025年度礦山買賣中介服務傭金結算協議
評論
0/150
提交評論