




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
./課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)學(xué)生__X鵬專業(yè):軟件工程〔嵌入式〕班級:1621806指導(dǎo)高永平2017年6目錄一、需求分析:2二、總體設(shè)計(jì):2三、詳細(xì)設(shè)計(jì)。3四、測試結(jié)果。12五、軟件操作使用說明書。17六、總結(jié)。17七、代碼:17一、需求分析:根據(jù)對學(xué)生信息管理的需要,建立一個"學(xué)生信息管理系統(tǒng)",以方便對學(xué)生信息數(shù)據(jù)的錄入、修改、刪除和查詢功能。、要求完:1.有菜單界面可以對功能進(jìn)行選擇;2.能錄入XX、性別、學(xué)號、班級和等學(xué)生信息并保存到文件中;3.能根據(jù)學(xué)生的學(xué)號進(jìn)行排序;4.能根據(jù)學(xué)生的學(xué)號對學(xué)生的信息進(jìn)行修改;5.能根據(jù)學(xué)生的學(xué)號對學(xué)生的信息進(jìn)行刪除;6.能根據(jù)學(xué)生的學(xué)號、XX和班級等對學(xué)生信息進(jìn)行查詢;7.能根據(jù)班級對學(xué)生人數(shù)進(jìn)統(tǒng)計(jì)。二、總體設(shè)計(jì):根據(jù)以上分析,本系統(tǒng)主要包括:1.從鍵盤錄入學(xué)生個人信息,并保存到文件中;2.按學(xué)號對學(xué)生信息進(jìn)行排序3.按學(xué)號對學(xué)生信息進(jìn)行修改;4.按學(xué)號對學(xué)生信息進(jìn)行刪除;5.按學(xué)號對學(xué)生信息進(jìn)行查詢;6.按XX對學(xué)生信息進(jìn)行查詢;7.按班級對學(xué)生信息進(jìn)行查詢;8.結(jié)束當(dāng)前程序;等8大功能,系統(tǒng)主要定義了1個類和16個函數(shù)以實(shí)現(xiàn)各個功能:〔1〕主函數(shù)main<>:調(diào)用錄入、查找、修改、排序、統(tǒng)計(jì)、刪除等函數(shù)對學(xué)生成員信息進(jìn)行處理?!?〕定義類classstudent:用于定義成員結(jié)構(gòu)體數(shù)組。〔3〕類中構(gòu)造函數(shù)student<>:對類中各項(xiàng)私有成員進(jìn)行傳值。〔4〕類中輸入運(yùn)算符重載函數(shù)operator>><>:方便對類的對象輸入?!?〕類中輸出運(yùn)算符重載函數(shù)operator<<<>:方便對類的對象輸出?!?〕獲取函數(shù)getnum<>:方便在類外對類中的私有成員num的數(shù)據(jù)進(jìn)行調(diào)用?!?〕獲取函數(shù)getname<>:方便在類外對類中的私有成員name的數(shù)據(jù)進(jìn)行調(diào)用?!?〕獲取函數(shù)getban<>:方便在類外對類中的私有成員ban的數(shù)據(jù)進(jìn)行調(diào)用。〔9〕錄入函數(shù)enter<>:從鍵盤輸入學(xué)生個人信息,并保存到文件中。〔10〕查找函數(shù)search_num<>:按學(xué)號查找學(xué)生個人信息?!?1〕查找函數(shù)search_name<>:按XX查找學(xué)生個人信息?!?2〕查找函數(shù)search_ban<>:按班級查找學(xué)生個人信息?!?3〕修改函數(shù)changr<>:按學(xué)號修改學(xué)生個人信息,保存的文件中?!?4〕刪除函數(shù)del<>:按學(xué)號刪除學(xué)生個人信息,保存到文件中?!?5〕排序函數(shù)sort<>:按學(xué)號對學(xué)生個人信息進(jìn)行排序?!?6〕統(tǒng)計(jì)函數(shù)count<>:按班級對學(xué)生人數(shù)進(jìn)行統(tǒng)計(jì)。程序功能結(jié)構(gòu)圖如圖1所示:學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)鍵盤輸入保存數(shù)據(jù)學(xué)號排序信息修改信息刪除學(xué)號查詢班級查詢?nèi)藬?shù)統(tǒng)計(jì)姓名查詢圖1程序功能結(jié)構(gòu)圖如圖三、詳細(xì)設(shè)計(jì)。本系統(tǒng)有一個主函數(shù),8個功能模塊,每個功能模塊函數(shù)都是由主函數(shù)調(diào)用,分別說明如下:〔1〕主函數(shù)main<>:調(diào)用錄入、查找、修改、排序、統(tǒng)計(jì)、刪除等函數(shù)對學(xué)生成員信息進(jìn)行處理。主函數(shù)流程圖如圖2所示:開開始輸出菜單輸入操作選擇cc=0c=8c=7c=6c=5c=3c=2c=1退出系統(tǒng)保存數(shù)據(jù)輸入數(shù)據(jù)學(xué)號排序信息修改信息刪除學(xué)號查詢XX查詢統(tǒng)計(jì)人數(shù)班級查詢c=4繼續(xù)操作否YN結(jié)束圖2主函數(shù)流程圖〔2〕鍵盤輸入函數(shù)流程圖:從鍵盤輸入學(xué)生個人信息,并保存到文件中。流程圖如圖3所示:開開始輸入學(xué)生個人信息是否繼續(xù)結(jié)束輸入學(xué)生人數(shù)保存數(shù)據(jù)到文件中YN圖3鍵盤輸入函數(shù)流程圖〔3〕排序函數(shù)流程圖:按學(xué)號對學(xué)生個人信息進(jìn)行排序。流程圖如圖4所示:開開始是否繼續(xù)結(jié)束按學(xué)號進(jìn)行學(xué)排序輸出排序完成后的信息NY圖4排序函數(shù)流程圖〔4〕信息修改函數(shù)流程圖:由用戶輸入需要修改的成員的學(xué)號,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒查到則輸出"學(xué)號為XX的學(xué)生不存在!"信息。流程圖如圖5所示:開開始輸出不存在成員信息信息打開文件輸入成員學(xué)號查詢到否輸出查到成員信息信息輸入修改成員信息信息關(guān)閉文件結(jié)束圖5信息修改函數(shù)流程圖〔5〕信息刪除函數(shù)流程圖:由用戶輸入需要刪除的成員的學(xué)號,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到刪除該學(xué)生的全部信息,沒查到則輸出"學(xué)號為XX的學(xué)生不存在!"信息。流程圖如圖6所示:開開始打開文件查詢到否關(guān)閉文件結(jié)束Y刪除此學(xué)生信息N輸入不存在信息讀入學(xué)生信息輸入刪除學(xué)號圖6信息刪除函數(shù)流程圖〔6〕學(xué)號查詢函數(shù)流程圖:由用戶輸入需要查詢的成員的學(xué)號,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒查到則輸出"學(xué)號為XX的學(xué)生不存在!"信息。流程圖如圖7所示:開開始打開文件輸出不存在學(xué)生信息結(jié)束關(guān)閉文件查詢到否輸入學(xué)生學(xué)號N輸出查到學(xué)生信息信息Y圖7學(xué)號查詢函數(shù)流程圖〔7〕XX查詢函數(shù)流程圖:由用戶輸入需要查詢的成員的XX,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒查到則輸出"XX為XX的學(xué)生不存在!"信息。流程圖如圖8所示:開開始打開文件輸出不存在學(xué)生信息結(jié)束關(guān)閉文件查詢到否輸入學(xué)生XXN輸出查到學(xué)生信息信息Y圖8XX查詢函數(shù)流程圖〔8〕班級查詢函數(shù)流程圖:由用戶輸入需要查詢的成員的班級,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒查到則輸出"班級為XX的學(xué)生不存在!"信息。流程圖如圖9所示:開開始打開文件輸出不存在該班級學(xué)生結(jié)束關(guān)閉文件查詢到否輸入學(xué)生班級N輸出查到學(xué)生信息信息Y圖9班級查詢函數(shù)流程圖〔9〕按班級統(tǒng)計(jì)函數(shù)流程圖:由用戶輸入需要查詢的成員的班級,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到即對該班級人數(shù)進(jìn)行統(tǒng)計(jì),沒查到則輸出"班級為XX的學(xué)生不存在!"信息。流程圖如圖10所示:開開始打開文件輸出不存在該班級學(xué)生結(jié)束關(guān)閉文件查詢到否輸入學(xué)生班級N輸出該班級的人數(shù)Y圖10按班級統(tǒng)計(jì)函數(shù)流程圖四、測試結(jié)果?!?〕程序運(yùn)行主菜單如圖11所示:圖11〔2〕從鍵盤上輸入學(xué)生人數(shù)和學(xué)生信息如圖12所示:圖12〔3〕按學(xué)號修改如圖13所示:圖13〔4〕按學(xué)號刪除如圖14:圖14〔5〕按學(xué)號查找如圖15:圖15〔6〕按XX查找如圖16:圖16〔7〕按班級查找如圖17:圖17〔8〕按班級統(tǒng)計(jì)人數(shù)如圖18:圖18〔9〕按學(xué)號進(jìn)行排序如圖19:如圖19五、軟件操作使用說明書。本軟件采用命令行對話方式進(jìn)行操作,運(yùn)行后出現(xiàn)主界面如上圖所示,然后按菜單提示操作即可。六、總結(jié)。經(jīng)過一個星期的不斷上機(jī)實(shí)踐練習(xí),我對c++有了更進(jìn)一步的認(rèn)識和了解,學(xué)好它重在實(shí)踐,要通過不斷的上機(jī)操作不斷的進(jìn)行操作和試運(yùn)行才能更好地掌握它,通過這次實(shí)踐,我發(fā)現(xiàn)了自己的許多不足:我對各種循環(huán)的理解深度還不夠,對字符成員調(diào)用還不是很熟練,對指針的理解還是不透徹,以與對解決問題的想法不夠全面。這些不足,在這次實(shí)踐中都有所提高,并且對這些不足我都會在后續(xù)的學(xué)習(xí)中努力補(bǔ)足。七、代碼:#include<iostream>#include<fstream>#include<cstring>#defineM5000usingnamespacestd;classstudent{public: student<>{} student<charna[10],charse[10],intn,intb,chart[12]>:num<n>,ban<b> { strcpy<sex,se>; strcpy<name,na>; strcpy<tel,t>; } friendistream&operator>><istream&is,student&s> { is>>>>s.sex>>s.num>>s.ban>>s.tel; returnis; } friendostream&operator<<<ostream&os,student&s> { os<<<<""<<s.sex<<""<<s.num<<""<<s.ban<<""<<s.tel<<endl; returnos; } intgetnum<> { returnnum; } intgetban<> { returnban; } char*getsex<> { char*s=newchar[strlen<sex>]; s=sex; returns; } char*getname<> { char*p=newchar[strlen<name>]; p=name; returnp; } char*gettel<> { char*t=newchar[strlen<tel>]; t=tel; returnt; }private: charname[10]; charsex[10]; intnum,ban; chartel[12];};intmenu<>{ chars[80]; intc; cout<<"**************************主菜單***************************"<<endl<<endl; cout<<"|0.退出當(dāng)前程序|\n"<<endl; cout<<"|1.輸入學(xué)生信息|\n"<<endl; cout<<"|2.根據(jù)學(xué)號查詢|\n"<<endl; cout<<"|3.根據(jù)XX查詢|\n"<<endl; cout<<"|4.根據(jù)班級查詢|\n"<<endl; cout<<"|5.根據(jù)學(xué)號排序|\n"<<endl; cout<<"|6.按班級計(jì)人數(shù)|\n"<<endl; cout<<"|7.根據(jù)學(xué)號刪除|\n"<<endl; cout<<"|8.根據(jù)學(xué)號修改|\n"<<endl; cout<<""<<endl; cout<<"輸入您的菜單選項(xiàng)編號<0-8>:"<<endl; cout<<"DesignedbyPeng"<<endl; for<;;> { gets<s>; c=atoi<s>; if<c>8> cout<<"輸入錯誤,請重新輸入!:"; else break; } returnc;}intenter<studentt[]>{ inti,n; system<"cls">; cout<<"請輸入學(xué)生信息條數(shù)"<<endl; cin>>n; cout<<"請輸入學(xué)生信息\n"<<endl; cout<<"XX性別學(xué)號班級"<<endl; fstreamfs; fs.open<"c:\\item.txt",ios::out>; for<i=0;i<n;i++> { cin>>t[i]; fs<<t[i]; } fs.close<>; getchar<>; returnn;}voidsearch_num<studentt[],intn>{ inti,nu,temp=-1000; system<"cls">; cout<<"請輸入查找學(xué)生的__"<<endl; cin>>nu; for<i=0;i<n;i++> { if<nu==t[i].getnum<>> { cout<<"該學(xué)生信息為:"<<endl<<"XX性別學(xué)號班級"<<endl; cout<<t[i]; temp=i; } } if<temp==-1000> cout<<endl<<endl<<"學(xué)號為"<<nu<<"的學(xué)生不存在!"<<endl; getchar<>;}voidsearch_ban<studentt[],intn>{ inti,ba,temp=-1000; system<"cls">; cout<<"請輸入查找學(xué)生的班級號:"<<endl; cin>>ba; cout<<"該學(xué)生信息為:"<<endl<<"XX性別學(xué)號班級"<<endl; for<i=0;i<n;i++> { if<ba==t[i].getban<>> cout<<t[i]; temp=i; } if<temp==-1000> cout<<endl<<endl<<"班級為"<<ba<<"的學(xué)生不存在!"<<endl; getchar<>;}voidsearch_name<studentt[],intn>{ inti,temp=-1000; charna[20]; system<"cls">;cout<<"請輸入查找學(xué)生的__"<<endl; cin>>na; for<i=0;i<n;i++> { if<strcmp<na,t[i].getname<>>==0> { cout<<"該學(xué)生信息為:"<<endl<<"XX性別學(xué)號班級"<<endl; cout<<t[i]; temp=i;} } if<temp==-1000> cout<<endl<<endl<<"XX為"<<na<<"的學(xué)生不存在!"<<endl; getchar<>;}voidsort<studentt[],intn>{ studentp;ints; system<"cls">; cout<<"請選擇升序或降序<1或2>:"<<endl; cin>>s; if<s==1> {cout<<"按學(xué)號排序〔升序〕完成如下:"<<endl; for<inti=0;i<n-1;i++> {for<intj=0;j<n-1-i;j++> { if<t[j].getnum<>>t[j+1].getnum<>> { p=t[j]; t[j]=t[j+1]; t[j+1]=p; } } } cout<<"XX性別學(xué)號班級"<<endl; for<inta=0;a<n;a++> { cout<<t[a]; } } if<s==2> {cout<<"按學(xué)號排序〔降序〕完成如下:"<<endl; for<inti=0;i<n-1;i++> {for<intj=0;j<n-1-i;j++> { if<t[j].getnum<><t[j+1].getnum<>> { p=t[j]; t[j]=t[j+1]; t[j+1]=p; } } } cout<<"XX性別學(xué)號班級"<<endl; for<inta=0;a<n;a++> { cout<<t[a]; } } getchar<>;}voidcount<studentt[],intn>{ inti,c,temp=-1000; system<"cls">; fstreamfs; fs.open<"c:\\item.txt",ios::in>; cout<<"請輸入想統(tǒng)計(jì)人數(shù)的__"<<endl; cin>>c; ints=0; for<i=0;i<n;i++> { fs>>t[i]; if<c==t[i].getban<>> { s++; temp=i; } } cout<<"該班級人數(shù)為:"<<s<<endl; fs.close<>; if<temp==-1000> cout<<endl<<endl<<"班級為"<<c<<"的學(xué)生不存在!"<<endl; getchar<>;}voidchange<studentt[],intn>{ intid,i,temp=-1000,run=0; system<"cls">; cout<<"請輸入要修改的學(xué)生的__"<<endl; cin>>id; fstreamfs; fs.open<"c:\\item.txt",ios::in|ios::out>; for<i=0;i<n;i++> { if<id==t[i].getnum<>> { cout<<"修改前該學(xué)生信息為:"<<endl<<"XX性別學(xué)號班級"<<endl; cout<<t[i]; temp=i; run=2000;} } fs.close<>; if<run==2000> {fs.open<"c:\\item.txt",ios::in|ios::out>; cout<<"請輸入你修改該學(xué)生的信息為:"<<endl<<"XX性別學(xué)號班級"<<endl; cin>>t[i]; fs<<t[i]; fs.close<>; cout<<"修改成功!"<<endl;} if<temp==-1000> cout<<endl<<endl<<"XX為"<<id<<"的學(xué)生不存在!"<<endl; getchar<>;}intdel<studentt[],intn>{ intber,temp=-1000,run=0; inti,j,nu; system<"cls">; cout<<"請輸入要刪除的學(xué)生的__"<<endl; cin>>ber; for<i=0;i<n;i+
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加盟連鎖項(xiàng)目服務(wù)合同范本
- 農(nóng)村小區(qū)搬遷合同范本
- 中學(xué)食堂承包團(tuán)隊(duì)合同范本
- 人力股分紅合同范例
- 個人技術(shù)投資合同范本
- 制造模具合同范本
- 中建施工員合同范本
- 中藥原料采購合同范本
- 不需交社保員工合同范本
- 傳媒公司培訓(xùn)合同范例
- GB/T 44122-2024工業(yè)互聯(lián)網(wǎng)平臺工業(yè)機(jī)理模型開發(fā)指南
- DL-T-5759-2017配電系統(tǒng)電氣裝置安裝工程施工及驗(yàn)收規(guī)范
- 城市更新模式探討
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 現(xiàn)代通信技術(shù)導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年北京科技大學(xué)
- SY∕T 7087-2016 石油天然氣工業(yè) 鉆井和采油設(shè)備 液氮泵送設(shè)備
- 1.1時代為我搭舞臺(課件)-【中職專用】中職思想政治《心理健康與職業(yè)生涯》(高教版2023·基礎(chǔ)模塊)
- 下肢靜脈曲張危險因素
- 小學(xué)思政課活動實(shí)施方案
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 幾何公差詳解
評論
0/150
提交評論