版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 需求分析說明</b></p><p> 本題對學生的某門課程成績管理做一個簡單的模擬,為了實現(xiàn)學生成績的管理與分析,設計一個學生成績管理系統(tǒng)。</p><p> 學生信息包括:學號、姓名、性別,要確保其信息的準確性。</p><p> 課程的成績信息有平時成績、實驗成績、期未成績、總評成績,總評成績=平時成績
2、*0.4+實驗成績*0.3+期末成績*0.3,</p><p> 用菜單選擇方式完成下列功能:</p><p> ?。?)登記學生成績;(2)插入學生成績;(3)修改學生成績;(4)刪除學生成績;</p><p> (5)查詢學生成績;(6)對學生成績進行排序;(7)輸出學生成績。</p><p> 在完成上述基本要求的操作后,要應用功
3、能(6)進行測試。</p><p><b> 總體設計</b></p><p> 設計功能表如下:(附:功能解釋)</p><p><b> 詳細設計</b></p><p><b> 系統(tǒng)功能分析:</b></p><p> 學生信息包括:學
4、號、姓名、性別,要確保其信息的準確性。</p><p> 課程的成績信息有平時成績、實驗成績、期未成績、總評成績,總評成績=平時成績*0.4+實驗成績*0.3+期末成績*0.3,以及功能上述功能。在完成上術基本要求的操作后,要應用功能(6)進行測試。得出該題目以創(chuàng)建兩個類,一個類保存成績信息:平時成績、實驗成績、期未成績、總評成績,一個類保存學生信息:學號姓名、性別。從功能分析可知該存儲方式適合用鏈表存儲結構:
5、此類功能中在未排序前應該以學號為主鍵,排序后應該以總評成績?yōu)橹麈I。</p><p> (1) 定義一個成績類:</p><p> class score</p><p> {public:(訪問控制屬性),平時成績(float peacetime),實驗成績(float experiment),期末成績(float final),總評成績(float tot
6、al)}</p><p> ?。?)定義一個 學生類:</p><p> Class student public:(訪問控制屬性),int sno(學號),string name(姓名) string sex(性別)score course(課程)student *next(下一個學生地址指針) </p><p> student *registed();//
7、登記學生成績</p><p> void insert(student *s,int i);//插入學生成績</p><p> void alter(student *s,int i);//修改學生成績</p><p> void deleted(student *s,int i);//刪除學生成績</p><p> void see
8、k(student *s,int i);//查詢學生成績</p><p> student *sort(student *s);//成績排序</p><p> void print(student *s);//輸出學生成績</p><p> void sortprint(student *s);//排序后的成績輸出;</p><p>&
9、lt;b> 存儲結構設計分析</b></p><p> 學生的信息:學生的信息和成績信息都儲存在一個鏈表里,每個節(jié)點表示一個學生的信息,包括學號,姓名及平時成績(float peacetime),實驗成績(float experiment),期末成績(float final),總評成績(float total)等數(shù)據(jù)項。</p><p><b> 程序流程
10、圖</b></p><p><b> 代碼</b></p><p> #include<iostream></p><p> #include<iomanip></p><p> #include<string></p><p> usin
11、g namespace std;</p><p> class score</p><p><b> {</b></p><p><b> public:</b></p><p> float peacetime;//平時成績</p><p> float expe
12、riment;//實驗成績</p><p> float final;//期末成績</p><p> float total;//總評成績</p><p><b> };</b></p><p> class student</p><p><b> {</b>&l
13、t;/p><p><b> public:</b></p><p> int sno;//學號</p><p> string name;//姓名</p><p> string sex;//性別</p><p> score course;//課程</p><p>
14、 student *next;</p><p> student *registed();//登記學生成績</p><p> void insert(student *s,int i);//插入學生成績</p><p> void alter(student *s,int i);//修改學生成績</p><p> void dele
15、ted(student *s,int i);//刪除學生成績</p><p> void seek(student *s,int i);//查詢學生成績</p><p> student *sort(student *s);//成績排序</p><p> void print(student *s);//輸出學生成績</p><p>
16、 void sortprint(student *s);//排序后的成績輸出</p><p><b> };</b></p><p> student *student::registed()</p><p><b> {</b></p><p><b> int e;</b
17、></p><p> student *hm2,*p,*r;</p><p> r=hm2=new student;</p><p> hm2->next=NULL;</p><p> cout<<"輸入需要登記的學生的個數(shù):";</p><p><b>
18、 cin>>e;</b></p><p> for(int i=1;i<=e;i++)</p><p><b> {</b></p><p> p=new student;</p><p> cout<<"輸入學生的學號:";</p>&
19、lt;p> cin>>p->sno;</p><p> cout<<"輸入學生姓名:";cin>>p->name;</p><p> cout<<"輸入學生性別:";cin>>p->sex;</p><p> cout<<&
20、quot;輸入平時成績";</p><p> cin>>p->course.peacetime;</p><p> cout<<"輸入實驗成績";</p><p> cin>>p->course.experiment;</p><p> cout<&l
21、t;"輸入期末成績";</p><p> cin>>p->course.final;</p><p> p->course.total=static_cast<float>(p->course.peacetime*0.4+p->course.experiment*0.3+p->course.final*0.3);
22、</p><p> cout<<"課程的總評成績:"<<p->course.total<<endl;</p><p> hm2->next=p;</p><p><b> hm2=p;</b></p><p><b> }</b&
23、gt;</p><p> hm2->next=NULL;</p><p><b> return r;</b></p><p><b> }</b></p><p> void student::insert(student *s,int i)</p><p>
24、<b> {</b></p><p> student *p,*q;</p><p><b> p=s;</b></p><p> while((p->next!=NULL)&&(p->next->sno<i))</p><p> p=p->n
25、ext;</p><p> q=new student;</p><p><b> q->sno=i;</b></p><p> cout<<"輸入學生姓名:";cin>>q->name;</p><p> cout<<"輸入學生性別:
26、";cin>>q->sex;</p><p> cout<<"輸入平時成績";</p><p> cin>>q->course.peacetime;</p><p> cout<<"輸入的實驗成績";</p><p> cin
27、>>q->course.experiment;</p><p> cout<<"輸入期末成績";</p><p> cin>>q->course.final;</p><p> q->course.total=static_cast<float>(q->course.p
28、eacetime*0.4+q->course.experiment*0.3+q->course.final*0.3);</p><p> cout<<endl;</p><p> cout<<"課程的總評成績:"<<q->course.total<<endl;</p><p>
29、 q->next=p->next;</p><p> p->next=q;</p><p><b> }</b></p><p> void student::alter(student *s,int i)</p><p><b> {</b></p>&l
30、t;p> student *p;</p><p><b> p=s;</b></p><p> while((p->next!=NULL)&&(p->next->sno!=i))</p><p> p=p->next;</p><p> if(p->next=
31、=NULL)</p><p><b> {</b></p><p> cout<<"未找到學號,修改失敗。"<<endl;</p><p><b> return;</b></p><p><b> }</b></p&g
32、t;<p><b> else</b></p><p><b> {</b></p><p> cout<<"學生學號:"<<p->next->sno<<endl;</p><p> cout<<"學生姓名:&q
33、uot;<<p->next->name<<endl;</p><p> cout<<"學生性別:"<<p->next->sex<<endl;</p><p> cout<<"輸入平時成績";</p><p> cin>&
34、gt;p->next->course.peacetime;</p><p> cout<<"輸入實驗成績";</p><p> cin>>p->next->course.experiment;</p><p> cout<<"輸入期末成績";</p>
35、<p> cin>>p->next->course.final;</p><p> p->next->course.total=static_cast<float>(p->next->course.peacetime*0.4+p->next->course.experiment*0.3+p->next->cour
36、se.final*0.3);</p><p> cout<<endl;</p><p> cout<<"課程的總評成績:"<<p->next->course.total<<endl;</p><p><b> }</b></p><p>
37、;<b> }</b></p><p> void student::deleted(student *s,int i)</p><p><b> {</b></p><p> student *p;</p><p><b> p=s;</b></p>
38、<p> while((p->next!=NULL)&&(p->next->sno!=i))</p><p><b> {</b></p><p> p=p->next;</p><p><b> }</b></p><p> if(p-&
39、gt;next==NULL)</p><p><b> {</b></p><p> cout<<"沒有該學號。"<<endl;return;</p><p><b> }</b></p><p> p->next=p->next-&g
40、t;next;</p><p><b> }</b></p><p> void student::seek(student *s,int i)</p><p><b> {</b></p><p> student *p;</p><p><b> p=
41、s;</b></p><p> while((p->next!=NULL)&&(p->next->sno!=i))</p><p> p=p->next;</p><p> if(p->next==NULL)</p><p><b> {</b></
42、p><p> cout<<"未找到該學生信息"<<endl;</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p&g
43、t;<b> {</b></p><p> cout<<"學生學號:"<<p->next->sno<<endl;</p><p> cout<<"學生姓名:"<<p->next->name<<endl;</p>&
44、lt;p> cout<<"學生性別:"<<p->next->sex<<endl;</p><p> cout<<"平時成績"<<p->next->course.peacetime<<endl;</p><p> cout<<&quo
45、t;實驗成績"<<p->next->course.experiment<<endl;</p><p> cout<<"期末成績"<<p->next->course.final<<endl;</p><p> cout<<"總評成績:"<
46、<p->next->course.total<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> void student::print(student *s)</p><p><b> {<
47、;/b></p><p> student *p;</p><p> p=s->next;</p><p> if(p==NULL)</p><p> cout<<"當前沒有學生信息。"<<endl;</p><p><b> else<
48、/b></p><p><b> do</b></p><p><b> {</b></p><p> cout<<"學生學號:"<<p->sno<<endl;</p><p> cout<<"學生姓名
49、:"<<p->name<<endl;</p><p> cout<<"學生性別:"<<p->sex<<endl;</p><p> cout<<"平時成績"<<p->course.peacetime<<endl;</p
50、><p> cout<<"實驗成績"<<p->course.experiment<<endl;</p><p> cout<<"期末成績"<<p->course.final<<endl;</p><p> cout<<"
51、總評成績:"<<p->course.total<<endl;</p><p> cout<<endl;</p><p> p=p->next;</p><p> }while(p!=NULL); </p><p><b> }</b></p>
52、<p> student *student::sort(student *s)</p><p><b> {</b></p><p> student *t,*m,*s1,*q;</p><p><b> char y;</b></p><p> t=new student;&
53、lt;/p><p> t->next=NULL;</p><p> q=s->next;</p><p> if(q==NULL)</p><p> cout<<"還沒有學生信息!"<<endl;</p><p><b> else</b&g
54、t;</p><p><b> do</b></p><p><b> {</b></p><p><b> m=t;</b></p><p> s1=new student;</p><p> s1->name=q->name;&
55、lt;/p><p> s1->sex=q->sex;</p><p> s1->sno=q->sno;</p><p> s1->course.peacetime=q->course.peacetime;</p><p> s1->course.experiment=q->course.ex
56、periment;</p><p> s1->course.final=q->course.final;</p><p> s1->course.total=q->course.total;</p><p> while((m->next!=NULL)&&(m->next->course.total&g
57、t;s1->course.total))</p><p> m=m->next;</p><p> s1->next=m->next;</p><p> m->next=s1;</p><p> q=q->next;</p><p> }while(q!=NULL);<
58、;/p><p> cout<<"是否輸出學生成績排名?(y/n)";</p><p><b> cin>>y;</b></p><p> if(y=='y')</p><p> sortprint(t);</p><p><b&
59、gt; return t;</b></p><p><b> }</b></p><p> void student::sortprint(student *s)//輸出排名后的成績</p><p><b> {</b></p><p> student *t;</p&g
60、t;<p> t=s->next;</p><p> while(t!=NULL)</p><p><b> {</b></p><p> cout<<"學號:"<<t->sno<<" 姓名:"<<t->name&l
61、t;<" 性別:"<<t->sex<<" 總評:"<<t->course.total<<endl;</p><p> t=t->next;</p><p><b> }</b></p><p><b> }</b
62、></p><p> int main()</p><p><b> {</b></p><p><b> int i,j;</b></p><p><b> char y;</b></p><p> student t;</p&g
63、t;<p> student *hm1;</p><p> student *hm;</p><p><b> hm=NULL;</b></p><p><b> hm1=NULL;</b></p><p><b> loop:</b></p>
64、;<p> cout<<"+++++++++++++學生成績管理+++++++++++++++ "<<endl;</p><p> cout<<endl;</p><p> cout<<" 1、輸入學生成績"<<endl;</p><p>
65、 cout<<" 2、插入學生成績"<<endl;</p><p> cout<<" 3、修改學生成績"<<endl;</p><p> cout<<" 4、刪除個人信息"<<endl;</p><p> cou
66、t<<" 5、查詢個人成績"<<endl;</p><p> cout<<" 6、學生成績排名"<<endl;</p><p> cout<<" 7、查詢?nèi)w信息"<<endl;</p><p> cout<
67、;<" 8、查看成績排名"<<endl;</p><p> cout<<endl;</p><p> cout<<"輸入需要進行操作的前面的序號:";</p><p><b> cin>>i;</b></p><p>
68、;<b> switch(i)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> cout<<" 登記學生成績"<<endl;</p><p> hm=t
69、.registed();</p><p><b> break;</b></p><p><b> case 2:</b></p><p> cout<<" 插入學生成績"<<endl;</p><p> loop4: cout<&
70、lt;"輸入插入成績的學生的學號:";</p><p><b> cin>>j;</b></p><p> t.insert(hm,j);</p><p> cout<<"是否繼續(xù)插入學生成績?(y/n)";</p><p><b> ci
71、n>>y;</b></p><p> if(y=='y')</p><p> goto loop4;</p><p><b> break;</b></p><p><b> case 3:</b></p><p> cout
72、<<" 修改學生成績"<<endl;</p><p> loop1: cout<<"輸入修改成績的學生的學號:";</p><p><b> cin>>j;</b></p><p> t.alter(hm,j);</p><
73、;p> cout<<"是否繼續(xù)修改?(y/n)";</p><p><b> cin>>y;</b></p><p> if(y=='y')</p><p> goto loop1;</p><p><b> break;</b&
74、gt;</p><p><b> case 4:</b></p><p> cout<<" 刪除個人成績"<<endl;</p><p> loop2: cout<<"輸入刪除成績的學生的學號:";</p><p><b&
75、gt; cin>>j;</b></p><p> t.deleted(hm,j);</p><p> cout<<"是否繼續(xù)刪除?(y/n)";</p><p><b> cin>>y;</b></p><p> if(y=='y
76、9;)</p><p> goto loop2;</p><p><b> break;</b></p><p><b> case 5:</b></p><p> cout<<" 查詢個人成績"<<endl;</p><
77、p> loop3: cout<<"輸入查詢成績的學生的學號:";</p><p><b> cin>>j;</b></p><p> t.seek(hm,j);</p><p> cout<<"是否繼續(xù)查詢學生成績?(y/n)";</p>
78、<p><b> cin>>y;</b></p><p> if(y=='y')</p><p> goto loop3;</p><p><b> break;</b></p><p><b> case 6:</b><
79、;/p><p> cout<<" 學生成績排名"<<endl;</p><p> hm1=t.sort(hm);</p><p><b> break;</b></p><p><b> case 7:</b></p><p&
80、gt; cout<<" 查詢?nèi)w信息"<<endl;</p><p> t.print(hm);</p><p><b> break;</b></p><p><b> case 8:</b></p><p> if(hm1!=NULL)
81、</p><p><b> {</b></p><p> cout<<" 查看成績排名"<<endl;</p><p> t.sortprint(hm1);</p><p><b> }</b></p><p><
82、;b> else</b></p><p> cout<<"還未進行排名";</p><p><b> break;</b></p><p><b> default:</b></p><p> cout<<"輸入有誤&
83、quot;;</p><p><b> }</b></p><p> cout<<endl<<"是否返回主頁面繼續(xù)管理操作?"<<endl;</p><p> cout<<"yes or no (y/n)?"<<endl;</p&g
84、t;<p><b> cin>>y;</b></p><p> if(y=='y')</p><p><b> {</b></p><p> system("cls");</p><p> goto loop;}</p&g
85、t;<p><b> else</b></p><p><b> {</b></p><p> system("cls");</p><p> cout<<endl<<endl<<endl<<endl<<endl<&
86、lt;endl;</p><p> cout<<endl<<setw(6)<<"****************歡迎下次光臨!**************"<<endl;</p><p> system("pause");</p><p><b> return
87、0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 程序測試</b></p><p><b> 程序界面</b></p><p><b>
88、 輸入學生成績</b></p><p> 插入學生成績(插入學號為05的學生的學生信息及成績信息)</p><p><b> 查看結果:</b></p><p><b> 修改學生成績</b></p><p><b> 修改后的</b></p>
89、<p><b> 刪除個人信息</b></p><p> 已刪除學號為1的學生信息</p><p><b> 查詢個人成績</b></p><p><b> 學生成績排名</b></p><p><b> 查詢?nèi)w信息</b><
90、;/p><p><b> 查看成績排名</b></p><p><b> 總結</b></p><p> 通過這次的課程設計,知道做一個程序設計,真的不容易。很多都不懂得怎么去做,雖然最后做完了這個課程設計,但是有些并不能滿足老師的要求,而且因為有很多不懂的地方,所以花了很多時間去看書及請教同學。雖然不能說這個程序是完全
91、自己做的,但是我也有很認真的去尋找錯誤并修改。我覺得這次自己也有一點點進步的,當自己發(fā)現(xiàn)了錯誤,會修改了也是一種進步吧。,至少努力沒白費,還是學到了一點知識的。</p><p> 開始的時候本來是想要用數(shù)組儲存學生信息及成績信息,可是做了很久,又問同學,還是不會做,最后還是采用同學的意見,用鏈表儲存信息。雖然有些知識懂得,卻不會用。看來還是自己平時的基本功不扎實,課本知識沒有吃透。做程序的過程中,還要翻閱之前學
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結構課程設計--成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計---成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計--學生成績管理
- 數(shù)據(jù)結構課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計-學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計---學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計---學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計----學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計——學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計---學生成績管理問題
- 數(shù)據(jù)結構課程設計--- 學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計報告--學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計報告---學生成績管理系統(tǒng)
- 數(shù)據(jù)結構課程設計---學生成績管理系統(tǒng)(部分)
- 數(shù)據(jù)結構課程設計--數(shù)據(jù)結構課程設計----huffman編碼
- 數(shù)據(jù)結構學生成績管理課程設計報告
- 數(shù)據(jù)結構課程設計--庫存管理
- 數(shù)據(jù)結構課程設計宿舍管理
評論
0/150
提交評論