C++學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告-示例_第1頁(yè)
C++學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告-示例_第2頁(yè)
C++學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告-示例_第3頁(yè)
C++學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告-示例_第4頁(yè)
C++學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告-示例_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

./課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)學(xué)生__X鵬專業(yè):軟件工程〔嵌入式〕班級(jí):1621806指導(dǎo)高永平2017年6目錄一、需求分析:2二、總體設(shè)計(jì):2三、詳細(xì)設(shè)計(jì)。3四、測(cè)試結(jié)果。12五、軟件操作使用說(shuō)明書(shū)。17六、總結(jié)。17七、代碼:17一、需求分析:根據(jù)對(duì)學(xué)生信息管理的需要,建立一個(gè)"學(xué)生信息管理系統(tǒng)",以方便對(duì)學(xué)生信息數(shù)據(jù)的錄入、修改、刪除和查詢功能。、要求完:1.有菜單界面可以對(duì)功能進(jìn)行選擇;2.能錄入XX、性別、學(xué)號(hào)、班級(jí)和等學(xué)生信息并保存到文件中;3.能根據(jù)學(xué)生的學(xué)號(hào)進(jìn)行排序;4.能根據(jù)學(xué)生的學(xué)號(hào)對(duì)學(xué)生的信息進(jìn)行修改;5.能根據(jù)學(xué)生的學(xué)號(hào)對(duì)學(xué)生的信息進(jìn)行刪除;6.能根據(jù)學(xué)生的學(xué)號(hào)、XX和班級(jí)等對(duì)學(xué)生信息進(jìn)行查詢;7.能根據(jù)班級(jí)對(duì)學(xué)生人數(shù)進(jìn)統(tǒng)計(jì)。二、總體設(shè)計(jì):根據(jù)以上分析,本系統(tǒng)主要包括:1.從鍵盤(pán)錄入學(xué)生個(gè)人信息,并保存到文件中;2.按學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行排序3.按學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行修改;4.按學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行刪除;5.按學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行查詢;6.按XX對(duì)學(xué)生信息進(jìn)行查詢;7.按班級(jí)對(duì)學(xué)生信息進(jìn)行查詢;8.結(jié)束當(dāng)前程序;等8大功能,系統(tǒng)主要定義了1個(gè)類和16個(gè)函數(shù)以實(shí)現(xiàn)各個(gè)功能:〔1〕主函數(shù)main<>:調(diào)用錄入、查找、修改、排序、統(tǒng)計(jì)、刪除等函數(shù)對(duì)學(xué)生成員信息進(jìn)行處理?!?〕定義類classstudent:用于定義成員結(jié)構(gòu)體數(shù)組?!?〕類中構(gòu)造函數(shù)student<>:對(duì)類中各項(xiàng)私有成員進(jìn)行傳值?!?〕類中輸入運(yùn)算符重載函數(shù)operator>><>:方便對(duì)類的對(duì)象輸入?!?〕類中輸出運(yùn)算符重載函數(shù)operator<<<>:方便對(duì)類的對(duì)象輸出?!?〕獲取函數(shù)getnum<>:方便在類外對(duì)類中的私有成員num的數(shù)據(jù)進(jìn)行調(diào)用?!?〕獲取函數(shù)getname<>:方便在類外對(duì)類中的私有成員name的數(shù)據(jù)進(jìn)行調(diào)用?!?〕獲取函數(shù)getban<>:方便在類外對(duì)類中的私有成員ban的數(shù)據(jù)進(jìn)行調(diào)用。〔9〕錄入函數(shù)enter<>:從鍵盤(pán)輸入學(xué)生個(gè)人信息,并保存到文件中?!?0〕查找函數(shù)search_num<>:按學(xué)號(hào)查找學(xué)生個(gè)人信息?!?1〕查找函數(shù)search_name<>:按XX查找學(xué)生個(gè)人信息?!?2〕查找函數(shù)search_ban<>:按班級(jí)查找學(xué)生個(gè)人信息?!?3〕修改函數(shù)changr<>:按學(xué)號(hào)修改學(xué)生個(gè)人信息,保存的文件中?!?4〕刪除函數(shù)del<>:按學(xué)號(hào)刪除學(xué)生個(gè)人信息,保存到文件中?!?5〕排序函數(shù)sort<>:按學(xué)號(hào)對(duì)學(xué)生個(gè)人信息進(jìn)行排序?!?6〕統(tǒng)計(jì)函數(shù)count<>:按班級(jí)對(duì)學(xué)生人數(shù)進(jìn)行統(tǒng)計(jì)。程序功能結(jié)構(gòu)圖如圖1所示:學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)鍵盤(pán)輸入保存數(shù)據(jù)學(xué)號(hào)排序信息修改信息刪除學(xué)號(hào)查詢班級(jí)查詢?nèi)藬?shù)統(tǒng)計(jì)姓名查詢圖1程序功能結(jié)構(gòu)圖如圖三、詳細(xì)設(shè)計(jì)。本系統(tǒng)有一個(gè)主函數(shù),8個(gè)功能模塊,每個(gè)功能模塊函數(shù)都是由主函數(shù)調(diào)用,分別說(shuō)明如下:〔1〕主函數(shù)main<>:調(diào)用錄入、查找、修改、排序、統(tǒng)計(jì)、刪除等函數(shù)對(duì)學(xué)生成員信息進(jìn)行處理。主函數(shù)流程圖如圖2所示:開(kāi)開(kāi)始輸出菜單輸入操作選擇cc=0c=8c=7c=6c=5c=3c=2c=1退出系統(tǒng)保存數(shù)據(jù)輸入數(shù)據(jù)學(xué)號(hào)排序信息修改信息刪除學(xué)號(hào)查詢XX查詢統(tǒng)計(jì)人數(shù)班級(jí)查詢c=4繼續(xù)操作否YN結(jié)束圖2主函數(shù)流程圖〔2〕鍵盤(pán)輸入函數(shù)流程圖:從鍵盤(pán)輸入學(xué)生個(gè)人信息,并保存到文件中。流程圖如圖3所示:開(kāi)開(kāi)始輸入學(xué)生個(gè)人信息是否繼續(xù)結(jié)束輸入學(xué)生人數(shù)保存數(shù)據(jù)到文件中YN圖3鍵盤(pán)輸入函數(shù)流程圖〔3〕排序函數(shù)流程圖:按學(xué)號(hào)對(duì)學(xué)生個(gè)人信息進(jìn)行排序。流程圖如圖4所示:開(kāi)開(kāi)始是否繼續(xù)結(jié)束按學(xué)號(hào)進(jìn)行學(xué)排序輸出排序完成后的信息NY圖4排序函數(shù)流程圖〔4〕信息修改函數(shù)流程圖:由用戶輸入需要修改的成員的學(xué)號(hào),在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒(méi)查到則輸出"學(xué)號(hào)為XX的學(xué)生不存在!"信息。流程圖如圖5所示:開(kāi)開(kāi)始輸出不存在成員信息信息打開(kāi)文件輸入成員學(xué)號(hào)查詢到否輸出查到成員信息信息輸入修改成員信息信息關(guān)閉文件結(jié)束圖5信息修改函數(shù)流程圖〔5〕信息刪除函數(shù)流程圖:由用戶輸入需要?jiǎng)h除的成員的學(xué)號(hào),在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到刪除該學(xué)生的全部信息,沒(méi)查到則輸出"學(xué)號(hào)為XX的學(xué)生不存在!"信息。流程圖如圖6所示:開(kāi)開(kāi)始打開(kāi)文件查詢到否關(guān)閉文件結(jié)束Y刪除此學(xué)生信息N輸入不存在信息讀入學(xué)生信息輸入刪除學(xué)號(hào)圖6信息刪除函數(shù)流程圖〔6〕學(xué)號(hào)查詢函數(shù)流程圖:由用戶輸入需要查詢的成員的學(xué)號(hào),在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒(méi)查到則輸出"學(xué)號(hào)為XX的學(xué)生不存在!"信息。流程圖如圖7所示:開(kāi)開(kāi)始打開(kāi)文件輸出不存在學(xué)生信息結(jié)束關(guān)閉文件查詢到否輸入學(xué)生學(xué)號(hào)N輸出查到學(xué)生信息信息Y圖7學(xué)號(hào)查詢函數(shù)流程圖〔7〕XX查詢函數(shù)流程圖:由用戶輸入需要查詢的成員的XX,在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒(méi)查到則輸出"XX為XX的學(xué)生不存在!"信息。流程圖如圖8所示:開(kāi)開(kāi)始打開(kāi)文件輸出不存在學(xué)生信息結(jié)束關(guān)閉文件查詢到否輸入學(xué)生XXN輸出查到學(xué)生信息信息Y圖8XX查詢函數(shù)流程圖〔8〕班級(jí)查詢函數(shù)流程圖:由用戶輸入需要查詢的成員的班級(jí),在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到輸出該學(xué)生的全部信息,沒(méi)查到則輸出"班級(jí)為XX的學(xué)生不存在!"信息。流程圖如圖9所示:開(kāi)開(kāi)始打開(kāi)文件輸出不存在該班級(jí)學(xué)生結(jié)束關(guān)閉文件查詢到否輸入學(xué)生班級(jí)N輸出查到學(xué)生信息信息Y圖9班級(jí)查詢函數(shù)流程圖〔9〕按班級(jí)統(tǒng)計(jì)函數(shù)流程圖:由用戶輸入需要查詢的成員的班級(jí),在現(xiàn)有的學(xué)生信息中查詢是否有此學(xué)生信息的存在,查到即對(duì)該班級(jí)人數(shù)進(jìn)行統(tǒng)計(jì),沒(méi)查到則輸出"班級(jí)為XX的學(xué)生不存在!"信息。流程圖如圖10所示:開(kāi)開(kāi)始打開(kāi)文件輸出不存在該班級(jí)學(xué)生結(jié)束關(guān)閉文件查詢到否輸入學(xué)生班級(jí)N輸出該班級(jí)的人數(shù)Y圖10按班級(jí)統(tǒng)計(jì)函數(shù)流程圖四、測(cè)試結(jié)果?!?〕程序運(yùn)行主菜單如圖11所示:圖11〔2〕從鍵盤(pán)上輸入學(xué)生人數(shù)和學(xué)生信息如圖12所示:圖12〔3〕按學(xué)號(hào)修改如圖13所示:圖13〔4〕按學(xué)號(hào)刪除如圖14:圖14〔5〕按學(xué)號(hào)查找如圖15:圖15〔6〕按XX查找如圖16:圖16〔7〕按班級(jí)查找如圖17:圖17〔8〕按班級(jí)統(tǒng)計(jì)人數(shù)如圖18:圖18〔9〕按學(xué)號(hào)進(jìn)行排序如圖19:如圖19五、軟件操作使用說(shuō)明書(shū)。本軟件采用命令行對(duì)話方式進(jìn)行操作,運(yùn)行后出現(xiàn)主界面如上圖所示,然后按菜單提示操作即可。六、總結(jié)。經(jīng)過(guò)一個(gè)星期的不斷上機(jī)實(shí)踐練習(xí),我對(duì)c++有了更進(jìn)一步的認(rèn)識(shí)和了解,學(xué)好它重在實(shí)踐,要通過(guò)不斷的上機(jī)操作不斷的進(jìn)行操作和試運(yùn)行才能更好地掌握它,通過(guò)這次實(shí)踐,我發(fā)現(xiàn)了自己的許多不足:我對(duì)各種循環(huán)的理解深度還不夠,對(duì)字符成員調(diào)用還不是很熟練,對(duì)指針的理解還是不透徹,以與對(duì)解決問(wèn)題的想法不夠全面。這些不足,在這次實(shí)踐中都有所提高,并且對(duì)這些不足我都會(huì)在后續(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é)號(hào)查詢|\n"<<endl; cout<<"|3.根據(jù)XX查詢|\n"<<endl; cout<<"|4.根據(jù)班級(jí)查詢|\n"<<endl; cout<<"|5.根據(jù)學(xué)號(hào)排序|\n"<<endl; cout<<"|6.按班級(jí)計(jì)人數(shù)|\n"<<endl; cout<<"|7.根據(jù)學(xué)號(hào)刪除|\n"<<endl; cout<<"|8.根據(jù)學(xué)號(hào)修改|\n"<<endl; cout<<""<<endl; cout<<"輸入您的菜單選項(xiàng)編號(hào)<0-8>:"<<endl; cout<<"DesignedbyPeng"<<endl; for<;;> { gets<s>; c=atoi<s>; if<c>8> cout<<"輸入錯(cuò)誤,請(qǐng)重新輸入!:"; else break; } returnc;}intenter<studentt[]>{ inti,n; system<"cls">; cout<<"請(qǐng)輸入學(xué)生信息條數(shù)"<<endl; cin>>n; cout<<"請(qǐng)輸入學(xué)生信息\n"<<endl; cout<<"XX性別學(xué)號(hào)班級(jí)"<<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<<"請(qǐng)輸入查找學(xué)生的__"<<endl; cin>>nu; for<i=0;i<n;i++> { if<nu==t[i].getnum<>> { cout<<"該學(xué)生信息為:"<<endl<<"XX性別學(xué)號(hào)班級(jí)"<<endl; cout<<t[i]; temp=i; } } if<temp==-1000> cout<<endl<<endl<<"學(xué)號(hào)為"<<nu<<"的學(xué)生不存在!"<<endl; getchar<>;}voidsearch_ban<studentt[],intn>{ inti,ba,temp=-1000; system<"cls">; cout<<"請(qǐng)輸入查找學(xué)生的班級(jí)號(hào):"<<endl; cin>>ba; cout<<"該學(xué)生信息為:"<<endl<<"XX性別學(xué)號(hào)班級(jí)"<<endl; for<i=0;i<n;i++> { if<ba==t[i].getban<>> cout<<t[i]; temp=i; } if<temp==-1000> cout<<endl<<endl<<"班級(jí)為"<<ba<<"的學(xué)生不存在!"<<endl; getchar<>;}voidsearch_name<studentt[],intn>{ inti,temp=-1000; charna[20]; system<"cls">;cout<<"請(qǐng)輸入查找學(xué)生的__"<<endl; cin>>na; for<i=0;i<n;i++> { if<strcmp<na,t[i].getname<>>==0> { cout<<"該學(xué)生信息為:"<<endl<<"XX性別學(xué)號(hào)班級(jí)"<<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<<"請(qǐng)選擇升序或降序<1或2>:"<<endl; cin>>s; if<s==1> {cout<<"按學(xué)號(hào)排序〔升序〕完成如下:"<<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é)號(hào)班級(jí)"<<endl; for<inta=0;a<n;a++> { cout<<t[a]; } } if<s==2> {cout<<"按學(xué)號(hào)排序〔降序〕完成如下:"<<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é)號(hào)班級(jí)"<<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<<"請(qǐng)輸入想統(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<<"該班級(jí)人數(shù)為:"<<s<<endl; fs.close<>; if<temp==-1000> cout<<endl<<endl<<"班級(jí)為"<<c<<"的學(xué)生不存在!"<<endl; getchar<>;}voidchange<studentt[],intn>{ intid,i,temp=-1000,run=0; system<"cls">; cout<<"請(qǐng)輸入要修改的學(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é)號(hào)班級(jí)"<<endl; cout<<t[i]; temp=i; run=2000;} } fs.close<>; if<run==2000> {fs.open<"c:\\item.txt",ios::in|ios::out>; cout<<"請(qǐng)輸入你修改該學(xué)生的信息為:"<<endl<<"XX性別學(xué)號(hào)班級(jí)"<<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<<"請(qǐng)輸入要?jiǎng)h除的學(xué)生的__"<<endl; cin>>ber; for<i=0;i<n;i+

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論