版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C++課程設(shè)計(jì)作業(yè)</b></p><p> 題目:學(xué) 生 成 績 管 理</p><p><b> 班級:xxxx</b></p><p><b> 學(xué)號:xxxxxx</b></p><p><b> 姓名:xxx</b
2、></p><p> 設(shè)計(jì)題目:學(xué)生成績管理</p><p> 設(shè)計(jì)內(nèi)容:完成學(xué)生信息(學(xué)號,姓名,性別,年齡,高數(shù)成績,英語成績,C++程序設(shè)計(jì)成績)的初始化、統(tǒng)計(jì)及結(jié)果輸出。</p><p> ?、俪跏蓟簭逆I盤輸入基本信息,或者從磁盤文件中讀取。</p><p> ②查詢及統(tǒng)計(jì)信息如下:</p><p&g
3、t; ·按學(xué)號查詢某學(xué)生信息,并將結(jié)果輸出顯示。</p><p> ·統(tǒng)計(jì)平均分不及格的學(xué)生,并輸出其學(xué)號、姓名、平均成績。</p><p> ·按平均分由高到低排序輸出學(xué)生的所有信息(但不能破壞原有的存儲(chǔ)信息)。</p><p> ·在完成排序輸出的同時(shí),在“平均成績”后面列出每個(gè)同學(xué)的名次,若分?jǐn)?shù)相同,則名次相同(
4、選做)。</p><p> ?、鄞鎯?chǔ):將排序結(jié)果存儲(chǔ)到磁盤文件中去,</p><p><b> 系統(tǒng)大致流程圖如下</b></p><p><b> 實(shí)現(xiàn)代碼:</b></p><p> #include<iostream.h></p><p> #inc
5、lude<string.h></p><p> #include <fstream.h></p><p> class Student{ //學(xué)生類</p><p> protected:</p><p> int no; //學(xué)號</p><p> int
6、age,sex; //性別,年齡</p><p> char name[10]; //姓名</p><p> float math,cpp,en; //數(shù)學(xué)成績、C++成績</p><p> static int count; //累計(jì)總?cè)藬?shù)</p><p> Student* next;<
7、;/p><p> float aver;</p><p><b> int l;</b></p><p><b> public:</b></p><p> Student( ){ }</p><p> Student(int,char*,int,int,float,
8、float,float,Student* =NULL);</p><p> void show1( ) const //輸出每位學(xué)生的基本信息</p><p> { cout<<no<<'\t'<<name<<'\t'<<sex<<'\t'<<age
9、<<'\t'</p><p> <<math<<'\t'<<cpp<<'\t'<<en<<endl;</p><p><b> }</b></p><p> void show2() //輸出平均分不及格的
10、學(xué)生</p><p> {aver=(math+cpp+en)/3;</p><p> if (aver<60) cout<<no<<'\t'<<name<<'\t'<<aver<<endl;</p><p><b> }</b>
11、</p><p> float outa()</p><p><b> {</b></p><p> return (math+cpp+en)/3;</p><p><b> }</b></p><p> void show3( ) //輸出每位學(xué)生的基本信息&
12、lt;/p><p> { cout<<no<<'\t'<<name<<'\t'<<sex<<'\t'<<age<<'\t'</p><p> <<math<<'\t'<<cpp&
13、lt;<'\t'<<en<<'\t'<<l<<endl;</p><p><b> }</b></p><p> friend class StuList; //友元類</p><p><b> };</b></p>
14、<p> Student::Student(int no,char*name,int age,int sex,float math,</p><p> float cpp,float en,Student*next)</p><p> { Student::no=no; strcpy(Student::name,name);</p><p> t
15、his->math=math; this->cpp=cpp; this->next=next;</p><p> this->age=age;this->sex=sex;this->en=en;</p><p> count++; }</p><p> class StuList{</p><p>
16、 Student*head;</p><p><b> public:</b></p><p> StuList( )</p><p> { head=NULL; }</p><p> ~StuList( );</p><p> void create( );
17、 //創(chuàng)建鏈表</p><p> void print( ) const; //輸出鏈表</p><p> void find(); //根據(jù)學(xué)號查詢</p><p> void nopass(); //輸出不不及格</p><p>
18、; void paixu();</p><p> void save();</p><p><b> };</b></p><p> StuList::~StuList( ){</p><p> Student*p;</p><p> while(head)</p>&l
19、t;p> { p=head; head=head->next; delete p; }</p><p><b> }</b></p><p> void StuList::create( ){ //尾結(jié)點(diǎn)插入法創(chuàng)建單向鏈表</p><p> Student*p1,*p2;</p><p>
20、int no,age,sex;</p><p> char name[10];</p><p> float math,cpp,en;</p><p> cout<<"輸入學(xué)號,-1表示結(jié)束:";</p><p><b> cin>>no;</b></p>
21、<p> while(no!=-1){</p><p> cout<<"輸入姓名、年齡、性別(0代表男性,1代表女性)及數(shù)學(xué)、C++語言成績、英語成績:";</p><p> cin>>name>>age>>sex>>math>>cpp>>en;</p>
22、<p> p1=new Student(no,name,age,sex,math,cpp,en);</p><p> if(!head) head=p1,p2=p1;else p2->next=p1,p2=p1;</p><p> cout<<"輸入學(xué)號,-1表示結(jié)束:";</p><p><b>
23、cin>>no;</b></p><p><b> }</b></p><p><b> }</b></p><p> void StuList::print( ) const</p><p> { Student* p=head;</p><
24、p> cout<<"學(xué)號\t姓名\t性別\t年齡\t數(shù)學(xué)\tC++\t英語\n";</p><p> while( p ){ p->show1( ); p=p->next; }</p><p><b> }</b></p><p> void StuList::save( ) <
25、;/p><p><b> { </b></p><p> ofstream outfile("data.txt");</p><p> Student* p=head;</p><p> outfile<<"學(xué)號\t姓名\t性別\t年齡\t數(shù)學(xué)\tC++\t英語\n&qu
26、ot;;</p><p> while( p ){outfile<<p->no<<'\t'<<p->name<<'\t'<<p->sex<<'\t'<<p->age<<'\t'<<p->math<<&
27、#39;\t'<<p->cpp<<'\t'<<p->en<<'\t'<<endl;</p><p> ; p=p->next; }</p><p> cout<<"保存完畢"<<endl; </p><
28、;p><b> }</b></p><p> int Student::count; //定義靜態(tài)數(shù)據(jù)成員并初始化</p><p> void StuList::find() //查找函數(shù)</p><p><b> { int t;</b></p><p> int
29、flag=0; //標(biāo)志是否查到數(shù)據(jù),查到為1,否則為0</p><p> cout<<"請輸入學(xué)號:";</p><p><b> cin>>t;</b></p><p> Student* p=head;</p><p> while( p )</p&g
30、t;<p> {if (t==p->no){cout<<"學(xué)號\t姓名\t性別\t年齡\t數(shù)學(xué)\tC++\t英語\n"; p->show1();flag=1;};</p><p> p=p->next; }</p><p> if (flag==0){cout<<"很抱歉,沒有此記錄存在!&quo
31、t;<<endl;}</p><p><b> }</b></p><p> void StuList::nopass()</p><p> { Student* p=head;</p><p> cout<<"學(xué)號\t姓名\t平均分\n";</p>&l
32、t;p> while( p ){ p->show2( ); p=p->next; }</p><p><b> }</b></p><p> void StuList::paixu()</p><p><b> {int n=0;</b></p><p> Stude
33、nt* p=head;</p><p> while( p ){p->l=0;Student* q=head; </p><p> while( q ){if (p->outa()<q->outa()&&p!=q) (p->l)++; </p><p> //cout<<"p:"
34、;<<p->outa()<<"q:"<<q->outa()<<"排名1:"<<p->l<<endl;</p><p> q=q->next; </p><p><b> }</b></p><p><
35、b> (p->l)++;</b></p><p> p=p->next; </p><p><b> }</b></p><p> Student* s=head;</p><p> while( s ){ n++; s=s->next; } //得到鏈表的數(shù)目<
36、;/p><p> cout<<"學(xué)號\t姓名\t性別\t年齡\t數(shù)學(xué)\tC++\t英語\t排名\n";</p><p> for (int i=1;i<=n;i++)</p><p><b> {</b></p><p> Student* r=head;</p>
37、<p> while( r ){if(r->l==i) r->show3(); r=r->next; }</p><p><b> }</b></p><p><b> }</b></p><p> int main( )</p><p><b>
38、{int n;</b></p><p> cout<<"**********學(xué)生成績管理**********"<<endl;</p><p> cout<<"--------------------------------"<<endl;</p><p> co
39、ut<<"----------初始化數(shù)據(jù)------------"<<endl;</p><p> StuList li;</p><p> li.create( );</p><p> li.print( );</p><p> menu:cout<<"\n\n
40、 ☆☆☆☆主菜單☆☆☆☆"<<endl</p><p> <<" * * * * * * * * * * * * * * * * * * * * * * * *"<<endl</p><p> <<" 1: 按學(xué)號查詢學(xué)生 "<<e
41、ndl</p><p> <<" 2: 輸出平均分不及格的學(xué)生 "<<endl</p><p> <<" 3: 按平均分從高到低輸出學(xué)生信息 "<<endl</p><p> <<" 4:
42、 保存數(shù)據(jù) "<<endl</p><p> <<" 0: 退出系統(tǒng) "<<endl</p><p> <<" * * * * * * * * * * * * * * * * * * * * * * * *"<<end
43、l</p><p> <<" 請選擇:";</p><p><b> cin>>n;</b></p><p> switch (n)</p><p> {case 1: li.find();break;</p><p&
44、gt; case 2: li.nopass();break;</p><p> case 3:li.paixu();break;</p><p> case 4:li.save();break;</p><p> case 0:;return 0;</p><p> default:cout<<"輸入錯(cuò)誤&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績管理
- c++課程設(shè)計(jì)--學(xué)生成績管理
- c++課程設(shè)計(jì)--- 學(xué)生成績管理系統(tǒng)設(shè)計(jì)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--學(xué)生成績管理系統(tǒng)
- c++學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)設(shè)計(jì)與管理
- c&c++課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c++程序課程設(shè)計(jì)報(bào)告—學(xué)生成績管理系統(tǒng)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論