【精品課程設(shè)計(jì)】C++編寫的學(xué)生信息管理系統(tǒng).doc_第1頁
【精品課程設(shè)計(jì)】C++編寫的學(xué)生信息管理系統(tǒng).doc_第2頁
【精品課程設(shè)計(jì)】C++編寫的學(xué)生信息管理系統(tǒng).doc_第3頁
【精品課程設(shè)計(jì)】C++編寫的學(xué)生信息管理系統(tǒng).doc_第4頁
【精品課程設(shè)計(jì)】C++編寫的學(xué)生信息管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄前言 2摘要 3正文 4(1) 問題描述 4(2) 需求分析 5(3) 概要設(shè)計(jì) 6(4) 詳細(xì)設(shè)計(jì) 8(五)測試結(jié)果 10(六)調(diào)試分析 16設(shè)計(jì)總結(jié) 17參考文獻(xiàn) 18致謝 19附件 I 部分源程序代碼 20前言本演示程序用C+編寫,主要用到的數(shù)據(jù)結(jié)構(gòu)是線性表的順序存儲結(jié)構(gòu)。因?yàn)閷W(xué)生信息管理系統(tǒng)需要經(jīng)常查找數(shù)據(jù)。根據(jù)這個(gè)特點(diǎn)我們采用了順序存儲結(jié)構(gòu)。它是一種靜態(tài)存儲結(jié)構(gòu)。根據(jù)數(shù)據(jù)的特點(diǎn),每一條記錄包含多個(gè)屬性,我們定義了兩個(gè)類Student和date。開發(fā)目的如下:能對學(xué)生信息進(jìn)行錄入和修改;能刪除每個(gè)學(xué)生的信息;能根據(jù)學(xué)號和姓名來查找相應(yīng)的學(xué)生;能比較兩個(gè)不同學(xué)號的學(xué)生是不是一樣;同時(shí)能將他們顯示出來。摘要學(xué)生信息管理系統(tǒng)是很常用的信息管理系統(tǒng),也是典型的管理系統(tǒng),其要求系統(tǒng)擁有良好的易用性和健壯性,能簡單方便的管理學(xué)生信息?;谝筮M(jìn)行設(shè)計(jì),使管理學(xué)生信息便捷和高效。關(guān)鍵詞:信息,管理,學(xué)生正文(1) 問題描述 隨著社會的發(fā)展,教育越來越受到重視,學(xué)校需要管理的學(xué)生信息越來越多。但伴著計(jì)算機(jī)的進(jìn)入生活,管理變得簡單起來,使用良好的管理軟件,可以方便的解決學(xué)生的管理問題。 系統(tǒng)以滿足的要求是:信息的輸入輸出及合理管理方式的運(yùn)行。(2) 需求分析C+設(shè)計(jì)需要建立合理的類及對象,建立清晰的類層次,每個(gè)類中要有各自的屬性和方法;運(yùn)用面向?qū)ο蟮臋C(jī)制(繼承、派生及多態(tài)性)來實(shí)現(xiàn)系統(tǒng)功能。 學(xué)生信息管理應(yīng)該滿足如下要求: 1)系統(tǒng)以菜單方式工作; 2)學(xué)生信息錄入功能; 3)學(xué)生信息瀏覽功能; 4)查詢、排序功能:按學(xué)號查詢、按姓名查詢; 5)學(xué)生信息的刪除與修改。(3) 概要設(shè)計(jì) v 系統(tǒng)分析 實(shí)現(xiàn)學(xué)生信息的錄入,修改,刪除,比較,顯示,查詢等工作。v 系統(tǒng)設(shè)計(jì)思想在設(shè)計(jì)的過程中,要建立清晰的類層次; 分析和定義各個(gè)類,每個(gè)類中要有各自的屬性和方法;運(yùn)用面向?qū)ο蟮臋C(jī)制(繼承、派生及多態(tài)性)來實(shí)現(xiàn)系統(tǒng)功能。同時(shí)系統(tǒng)應(yīng)該符合學(xué)生信息管理的規(guī)定,滿足對學(xué)生信息管理的需要,并達(dá)到操作過程中的直觀、方便、實(shí)用、安全等要求。系統(tǒng)采用模塊化程序設(shè)計(jì)的方法,既便于系統(tǒng)功能的組合和修改,又便于為參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充和維護(hù)。系統(tǒng)應(yīng)具備文件維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、備份等操作。開始v 系統(tǒng)結(jié)構(gòu)圖定義類主函數(shù)Switch語句進(jìn)行選擇(輸入06)退出管理系統(tǒng)刪除學(xué)生信息顯示學(xué)生信息比較學(xué)生信息修改學(xué)生信息錄入學(xué)生信息查詢學(xué)生信息退出函數(shù)顯示函數(shù)比較函數(shù)刪除函數(shù)修改函數(shù)查詢函數(shù)輸入函數(shù)退出返回函數(shù)(四)詳細(xì)設(shè)計(jì)l 類屬性的詳細(xì)設(shè)計(jì)日期類:class Data/日期類 public:double Year,Month,Day;Data() Year=0;Month=0;Day=0; ;學(xué)生類:class student /學(xué)生類public: char name10; /姓名char sex5; /性別char jiguan10; /籍貫int num,age;/學(xué)號,年齡char adr30;/住址Data year;friend class Data;/date作為student的友元 /定義一個(gè)日期類void operator=(student s); /=重載int operator = (student s);/=重載stu100;l 類行為的詳細(xì)設(shè)計(jì)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)/對=運(yùn)算符重載函數(shù)的實(shí)現(xiàn)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)/對=運(yùn)算符重載函數(shù)的實(shí)現(xiàn)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; (五)測試結(jié)果1.調(diào)試首界面 2.信息錄入界面3.查找界面4.刪除界面5.修改界面6.比較界面(六)調(diào)試分析實(shí)驗(yàn)過程中的問題出現(xiàn)了很多,開始是語法錯(cuò)誤,例如書寫標(biāo)識符時(shí),忽略了大小寫字母的區(qū)別,忘記加分號,用錯(cuò)運(yùn)算符的優(yōu)先級,循環(huán)條件語句后誤加分號,沒有聲明函數(shù)原型等。這個(gè)錯(cuò)誤不是很難解決,編輯器可以提示錯(cuò)誤的位置,雖然好多錯(cuò)誤不能找到真正出現(xiàn)錯(cuò)誤的地方,或是找到錯(cuò)誤卻沒辦法正確的解決,最后通過查資料,詢問其他同學(xué)終于可以改掉語法錯(cuò)誤。 程序函數(shù)無法調(diào)用的錯(cuò)誤就更難了。由于最初開始寫代碼是心中的思路并不是很成熟,第一次的代碼寫到一半發(fā)現(xiàn)不正確不得不從新開始寫。后來不得不先寫好流程圖然后寫好每部分小函數(shù)代碼。然后根據(jù)流圖將各部分的程序代碼逐步填入得出真確的代碼。 后期調(diào)試的過程總是的不出理想的結(jié)果,無法實(shí)現(xiàn)老師的要求。經(jīng)過反復(fù)的調(diào)試錯(cuò)誤查找和同學(xué)的幫助發(fā)現(xiàn)是函數(shù)調(diào)用的先后次序有問題。我的程序就是在不斷調(diào)試,不斷更改的過程中慢慢完成的。設(shè)計(jì)總結(jié) 本次課程設(shè)計(jì)以C+語言知識為基礎(chǔ),運(yùn)用C+語言面向?qū)ο笾泻侠淼乃惴?,結(jié)合了順序表相關(guān)的知識,根據(jù)不同的情況選擇出相對較好的方法。 在課程設(shè)計(jì)過程中,把握好自己的課題,找到相關(guān)的算法和實(shí)現(xiàn)函數(shù)并設(shè)計(jì)它非常重要。能準(zhǔn)確的抓住課題,設(shè)計(jì)高效的算法是必要的,這樣設(shè)計(jì)的系統(tǒng)才符合標(biāo)準(zhǔn)。要完成所有的工作僅靠我一個(gè)人是非常困難的,因我所掌握知識有限。所以,在老師和同學(xué)們的幫助下,通過查閱各種資料,解決了其中的問題,完成了此次課程設(shè)計(jì)。這次課程設(shè)計(jì)雖短暫,但其間的所學(xué)內(nèi)容是很充實(shí)的,在其中我學(xué)習(xí)到了很多平時(shí)書本中無法學(xué)到的東西,積累了經(jīng)驗(yàn),鍛煉了自己分析問題,解決問題的能力,并學(xué)會了如何將所學(xué)的各課知識融會,組織,來配合學(xué)習(xí),在這兩周中我的收獲很多,學(xué)到很多知識,我相信這在以后會對我有很大幫助。參考文獻(xiàn)1陳維興,林小茶.c+面向?qū)ο蟪绦蛟O(shè)計(jì)教程. 北京: 清華大學(xué)出版社,1996.2004.2張國峰. C+程序設(shè)計(jì)實(shí)用教程. 北京: 清華大學(xué)出版社,1996. 3張松梅. C+語言教程. 電子科技大學(xué)出版社,1993.4閻龍. C程序員的C+指南. 北京航空航天大學(xué)出版社,1992.5王博. 面向?qū)ο蟮慕?、設(shè)計(jì)技術(shù)與方法. 北京希望電腦公司,1990.6譚浩強(qiáng).c+程序設(shè)計(jì).北京: 清華大學(xué)出版社,2004.7傅明.c+與面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)教程.中南大學(xué)出版社.8陳清華,朱紅.Visual C+課程設(shè)計(jì)案例精選與編程指導(dǎo).東南大學(xué)出版社,2003.致謝在這次課程設(shè)計(jì)中,由于自身缺乏經(jīng)驗(yàn),知識和水平又很有限,難免有許多考慮不周全的地方,如果沒有老師的指導(dǎo)及同學(xué)們的支持和幫助,想要完成這個(gè)設(shè)計(jì)是難以想象的。在這里首先要感謝我的老師。是她在我做課程設(shè)計(jì)的每個(gè)階段都給予了我悉心的指導(dǎo)和耐心的幫助。其次,要感謝我的同學(xué),在完成編程的過程時(shí),他們給了我很多支持和幫助,如果沒有他們,我的的課程設(shè)計(jì)就不會這么順利的完成。最后感謝學(xué)校為我們提供這樣一個(gè)自我鍛煉的機(jī)會和好的課設(shè)環(huán)境,讓我有了很大提升。附件I 部分源程序代碼#include #include#include#include #include void back();/返回開始菜單void out();/輸出信息int w=1; /用于記錄學(xué)生人數(shù),全局變量class Data/日期類public:double Year,Month,Day;Data() Year=0;Month=0;Day=0; ;class student /學(xué)生類public: char name10; /姓名char sex5; /性別char jiguan10; /籍貫int num,age;/學(xué)號,年齡char adr30;/住址Data year;friend class Data;/date作為student的友元 /定義一個(gè)日期類void operator=(student s); /=重載int operator = (student s);/=重載stu100;void main() system(cls);/清屏 DOC調(diào)用system(color f4); /顏色 同樣是調(diào)用docint i;void comp(); void input(); void find();void alt() ;void del(); void exit();void show();coutsetw(53)歡迎進(jìn)入學(xué)生管理系統(tǒng)!endl; coutsetw(55)1 添加學(xué)生信息 2 查詢學(xué)生信息endlendl; coutsetw(55)3 刪除學(xué)生信息 4 修改學(xué)生信息endlendl; coutsetw(55)5 比較學(xué)生信息 6 顯示學(xué)生信息endlendl;coutsetw(45)0 退出系統(tǒng)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() /添加學(xué)生system(color 84); /顏色 同樣是調(diào)用docsystem(cls);/清屏int n; coutn;if(n=100|n=0) cout輸入有誤!0;w+,n-) cout請輸入姓名、性別、籍貫,年齡,學(xué)號,住址:stuw.sexstuw.jiguanstuw.age stuw.numstuw.adr ; cout請輸入該生生日(年 月 日)stuw.year.Year;cinstuw.year.Month;cinstuw.year.Day; out();cout添加完畢2秒后返回endl;Sleep(2000); /延時(shí)2秒 back();void find() /查找學(xué)生system(color f4); /顏色 同樣是調(diào)用docsystem(cls);int i,k,l,id,j=0;/j是用以記錄是否有信息被找到 char name110;coutsetw(55)1按姓名查找學(xué)生信息 2 按學(xué)號查詢學(xué)生信息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()/刪除指定學(xué)號學(xué)生信息 system(color f4); /顏色 同樣是調(diào)用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是否確認(rèn)刪除?(Y/N)x; if(x=Y|x=y)y+; for(;iw-1;i+) stui=stui+1;w-;/每刪除一個(gè)對總是減少一個(gè)if(y=0) cout該學(xué)生不存在!endl; back(); else cout刪除后的信息為:endl; out(); back(); void alt()/修改指定學(xué)號學(xué)生 system(color f4); /顏色 同樣是調(diào)用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是否確認(rèn)修改?(Y/N)x;if(x=Y|x=y) y+; cout請輸入姓名、性別、籍貫,年齡,學(xué)號,住址: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 該學(xué)生不存在!; back(); else cout修改后的信息為:endl; out(); back(); void student:operator =(student stu)/對=運(yùn)算符重載函數(shù)的實(shí)現(xiàn)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)/對=運(yùn)算符重載函數(shù)的實(shí)現(xiàn)if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論