版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《程序設計基礎課程設計》</p><p><b> 課程設計報告</b></p><p><b> 目的與要求</b></p><p> 通過本課程設計的實踐,全面總結C++課程學習中的的數(shù)據(jù)類型、程序結構、數(shù)組、函數(shù)、指針、結構體、鏈表等基本概念,掌握其使用方法。掌握面向對象程序設計中有關類、
2、對象、繼承、重載、多態(tài)性、輸入輸出流類體系、文件操作的基本概念,初步學會用類與對象這種面向對象的程序設計方法編寫應用程序。培養(yǎng)使用面向對象的程序設計方法編寫計算機程序的能力。</p><p> 通過設計一個《小學生成績統(tǒng)計管理》,進一步熟悉C++中類的概念、類的封裝、繼承的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需求分析、類層次設計、模塊分解、編碼測試、模塊組裝與整體調試的全過程,加深對C++的理解與Visual C++環(huán)境的
3、使用;逐步熟悉程序設計的方法,并養(yǎng)成良好的編程習慣。程序設計是一門實踐性很強的課程,必須十分重視實踐環(huán)節(jié)。許多實際的知識不是靠聽課和看書學到的,而是通過長時間的實踐積累的。</p><p><b> 設計內容</b></p><p><b> 學生成績管理系統(tǒng)</b></p><p><b> 1.基本功能
4、:</b></p><p> 成績的輸入(學號、姓名、語文、英語、數(shù)學);</p><p> 成績統(tǒng)計(各科平均成績、各科成績“優(yōu)秀”、“良好”、“中等”、“及格”、“不及格”的人數(shù)及其所占比例);</p><p> 總成績統(tǒng)計(學生的總成績、平均成績及成績排名)</p><p> 成績的統(tǒng)計結果顯示。</p>
5、<p><b> 擴展功能:</b></p><p> 學生數(shù)據(jù)的添加、修改、與刪除</p><p> 學生數(shù)據(jù)的讀取與存儲</p><p><b> 3.設計要求</b></p><p> a)采用面向對象的思想和方法完成設計,最好能夠基于windows圖形界面 。<
6、/p><p> b)至少設計四個類;學生類(描述學生基本信息);成績類:班級類;課程類(描述課程信息:課程編號,科目名稱(數(shù)學,英語等);學生成績及課程信息用文件保存,每個類一個文件,程序執(zhí)行時從文件讀入。</p><p><b> 過程與結果</b></p><p><b> 主要內容如下:</b></p>
7、<p> 關鍵類的設計,繼承層次關系,代碼:</p><p> 首先,創(chuàng)建了一個student類.在student類的共有部分聲明程序所需函數(shù);然后就是student類的函數(shù)實現(xiàn)部分,其中定義student類的帶參數(shù)及不帶參數(shù)構造函數(shù);再是常用函數(shù)的調用,并定義系統(tǒng)菜單函數(shù)及其界面;最后就是主函數(shù)文件。</p><p> Student類的聲明如下:</p>
8、<p> 主要功能函數(shù)的設計:</p><p> 1. 關于計算總成績和平均成績以及評定成績等級的函數(shù),而用于成績統(tǒng)計中優(yōu)秀、良好、中等、及格、不及格的計算,不過為便于表達,此程序采用字母A,B,C,D,E來分別表達上述</p><p><b> 等級;代碼如下:</b></p><p> 2.此函數(shù)為查找函數(shù)的實現(xiàn)過程,
9、通過while switch和if語句以及制表格和setw的使用將輸入的數(shù)據(jù)以表格的形式打印出來,等級一欄寬度略??;</p><p> 3.此函數(shù)為刪除函數(shù)的實現(xiàn)部分,巧妙運用字母i,定義i的值0為數(shù)據(jù)不存在,1為數(shù)據(jù)存在的情況,刪除時考慮數(shù)據(jù)存在與否的問題;</p><p> 4.排序函數(shù)中分四種情況排序,分別按學號,總分,平均分來排序,排序結果也能有升序或降序操作,通過while
10、else語句以及制表格和case的使用將輸入的數(shù)據(jù)排序出來;因函數(shù)體過于龐大,在后面代碼清單羅列出來時會標示出來。</p><p> 數(shù)據(jù)輸入設計:數(shù)據(jù)輸入以輸出方式打開文件,通過this指針和地址引用把寫入的數(shù)據(jù)加在文件末尾;</p><p><b> 程序測試結果:</b></p><p> 1運行程序.會出現(xiàn)如下畫面,按照提示進行選
11、擇.</p><p> 首先選擇1,然后按Enter鍵.按照提示對學生情況進行輸入.如圖:</p><p> 按任意鍵程序自動保存第一個同學的數(shù)據(jù),并返回菜單,按照剛才的步驟繼續(xù)輸入第二個、第三個同學等等的數(shù)據(jù);</p><p> 選擇4, 然后按Enter鍵.對數(shù)據(jù)進行進行有目的性的排序.如圖:</p><p> 5.譬如選擇2按總
12、分排序,按Enter鍵,再在接下來的提示框中選擇降序排序類型,再按一次Enter鍵,排序結果如圖:符合設計要求,但各科成績“優(yōu)秀”、“良好”、“中等”、“及格”、“不及格”的人數(shù)及其所占比例因個人能力有限未能設計出來;</p><p> 6.按任意鍵又返回菜單,繼續(xù)接下來的操作;</p><p><b> 設計總結</b></p><p>
13、 這次課程設計基本上涵蓋了大學一年級學習到的C++ 語言知識點,課程設計題目要求不僅要求對課本知識有較深刻的了解,同時要求程序設計者有較強的思維和動手能力。這次課設使我了解我編程思想和編程技巧,也認識了軟件生命周期的各個環(huán)境,包括構思、設計、編寫、調試、發(fā)布、文檔化、維護和修訂。</p><p> C++程序編譯是一種要求特別精細的工作,小到一個分號(或點)都能影響整個程序的運行,這就要求我們編寫程序時要特別
14、細心,即使是一個符號,還是一個字母都不能亂用。在這次的編寫過程中,我就因為錯把case序列語句里的變量中的p寫成q使整個程序癱瘓。它讓我記住了學習需要認真、仔細、負責的態(tài)度對待。</p><p> 這次課程設計雖說很辛苦,而且設計出來的程序不全具備課程所需的,不過擴展功能學生數(shù)據(jù)的添加、修改、與刪除的函數(shù)嵌進去,而且排序功能關聯(lián)升序和降序功能,正所謂魚與熊掌不可得兼。這次課程設計,在整個程序中,我們通過使用wh
15、ile循環(huán),switch語句,冒泡排序法,表格設計中的setw()以及類的定義及使用來完成程序設計,使我提高了對C++中語句的使用能力和組合能力,進一步加強了我對使用C++編程的能力。還讓我掌握了高級程序設計語言的基本思想、基本概念、基本方法和基本技能,while語句,this指針,case作為程序的入口,一般結合switch使用等等。</p><p> 一個星期以來的課程設計,感謝幫助我的同學和師長,通過和他
16、們的交流,互相交流經驗,我這次設計的程序中各大主函數(shù)體得以設計出來,感謝他們在我編程過程中為我做的提醒和指點,這真的很重要。</p><p> 這次課程設計不僅讓我修補了以前學習的漏洞,也讓我知道一個道理:編程需要興趣和實際動手。這應該可以借鑒在同學或者師長們的編程經驗上。創(chuàng)新思維至關重要,相對于我這略感冗余卻實現(xiàn)不了更多功能的程序來說,有必要寫出精簡的代碼,也有助于開發(fā)出高效的程序。雖說我編寫的程序離專業(yè)人員
17、設計的還有好大一段距離,但它已經是我目前的極限。我相信,通過我的努力,在不久的將來,我會編出一組真正實用的程序的。</p><p><b> 附件</b></p><p><b> 程序源代碼清單:</b></p><p> #include<iostream></p><p>
18、 #include<string></p><p> #include<fstream></p><p> #include<iomanip></p><p> using namespace std;</p><p> class student</p><p><b
19、> {</b></p><p><b> private:</b></p><p> string number;</p><p> string name;</p><p> double chinese;</p><p> double English;</
20、p><p> double math;</p><p> double sum;</p><p> double ave;</p><p> char grade;</p><p> student *head;</p><p> student *curnode;</p>
21、<p> student *next;</p><p><b> public:</b></p><p> student();//不帶參數(shù)的構造函數(shù)</p><p> student(string ,string ,double ,double ,double ,double =0.0,double =0.0,char =
22、NULL);//帶數(shù)據(jù)域參數(shù)的構造函數(shù),用來動態(tài)建立節(jié)點</p><p> void sum_score();//總分函數(shù)</p><p> void ave_score();//平均分函數(shù)</p><p> void grade_score();//成績等級</p><p> void cin_app();//修改用</p&
23、gt;<p> void app_score(string ,string ,double ,double ,double);//動態(tài)的建立節(jié)點</p><p> void del_score();//刪除全部節(jié)點</p><p> void displist();//輸出節(jié)點中的全部數(shù)據(jù)</p><p> void lookup(int
24、 ,string );//查找函數(shù)</p><p> void del_score(int ,string );//刪除函數(shù)</p><p> void compositor(int ,int );//排序函數(shù)</p><p> void rework(int ,string );//修改函數(shù)</p><p><b>
25、 };</b></p><p> /////////////////////////////////////////////////////////////////////////////////////////</p><p> ///////////////////////////////////////////////////////////////////////
26、//////////////////student類的實現(xiàn)</p><p> void err_char();//輸入錯誤字符檢測函數(shù)</p><p> void score_err();//成績范圍檢測函數(shù),當輸入成績不在0到100之間時提示重新輸入</p><p> student::student():next(NULL)//不帶參數(shù)的構造函數(shù)</
27、p><p><b> {</b></p><p> head=curnode=this;</p><p><b> }</b></p><p> //帶參數(shù)的構造函數(shù)</p><p> student::student(string Number,string Name
28、,double Chinese,double ENglish,double Math,double Sum,double Ave,char Grade):next(NULL)</p><p><b> {</b></p><p> number=Number;</p><p> name=Name;</p><p>
29、; chinese=Chinese;</p><p> English=ENglish;</p><p> math=Math;</p><p><b> sum=Sum;</b></p><p><b> ave=Ave;</b></p><p> grade=
30、Grade;</p><p><b> }</b></p><p> void student::sum_score()///////////////////////計算總成績</p><p> {sum=chinese+English+math;}</p><p> void student::ave_scor
31、e()/////////////////////計算平均成績</p><p> {ave=(chinese+English+math)/3.0;}</p><p> void student::grade_score()///////////////////計算成績等級</p><p><b> {</b></p><
32、p><b> int i;</b></p><p><b> i=ave;</b></p><p> switch(i/10)</p><p><b> {</b></p><p> case 10: grade='A'; break;</
33、p><p> case 9: grade='A'; break;</p><p> case 8: grade='B'; break;</p><p> case 7: grade='C'; break;</p><p> case 6: grade='D'; break;&
34、lt;/p><p> default: grade='E';</p><p><b> }</b></p><p><b> }</b></p><p> void student::app_score(string Number,string Name,double Chine
35、se,double ENglish,double Math)//動態(tài)建立節(jié)點</p><p><b> {</b></p><p> curnode->next=new student(Number,Name,Chinese,ENglish,Math);</p><p> curnode=curnode->next;</
36、p><p><b> }</b></p><p> void student::del_score()//////////////////////刪除表中的全部數(shù)據(jù)</p><p><b> {</b></p><p> student *p;</p><p> cur
37、node=head->next;</p><p> while(curnode!=NULL)</p><p><b> {</b></p><p> p=curnode->next;</p><p> delete curnode;</p><p> curnode=p;&l
38、t;/p><p><b> }</b></p><p> head->next=NULL;</p><p> curnode=head;</p><p> cout<<"┏━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p>
39、; cout<<"┃ !表中內容全部清空,現(xiàn)已是一個空表! ┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p> cout<<" ";system("pause");
40、</p><p><b> }</b></p><p> void student::displist()////////////////////////輸出表中的全部數(shù)據(jù)</p><p><b> {</b></p><p> if(head->next==NULL)</p&g
41、t;<p><b> {</b></p><p> cout<<"┏━━━━━━━━━┓"<<endl;</p><p> cout<<"┃ !這是一個空表! ┃"<<endl;</p><p> cout<<"
42、;┗━━━━━━━━━┛"<<endl;</p><p> cout<<" ";system("pause");</p><p><b> return;</b></p><p><b> }</b></p><p>
43、 student *pw=curnode;</p><p> curnode=head->next;</p><p> cout<<"┏━━━━━┳━━━━━┳━━━┳━━━┳━━━┳━━━━┳━━━━┳━━┓"<<endl;</p><p> cout<<"┃ 學號 ┃ 姓名
44、 ┃ 語文 ┃ 英語 ┃ 數(shù)學 ┃ 總分 ┃ 平均分 ┃等級┃"<<endl;</p><p> cout<<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;</p><p> while(curnode!=NULL)</p><p><
45、b> {</b></p><p> cout<<"┃"<<left<<setw(10)<<curnode->number;</p><p> cout<<"┃"<<left<<setw(10)<<curnode->nam
46、e;</p><p> cout<<"┃"<<left<<setw(6)<<curnode->chinese;</p><p> cout<<"┃"<<left<<setw(6)<<curnode->English;</p>
47、<p> cout<<"┃"<<left<<setw(6)<<curnode->math;</p><p> curnode->sum_score();</p><p> cout<<"┃"<<left<<setw(8)<<cu
48、rnode->sum;</p><p> curnode->ave_score();</p><p> cout<<"┃"<<left<<setw(8)<<curnode->ave;</p><p> curnode->grade_score();</p>
49、<p> cout<<"┃"<<left<<setw(4)<<curnode->grade<<"┃"<<endl;</p><p> if(curnode->next!=NULL)</p><p> cout<<"┣━━━━━╋
50、━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;</p><p><b> else</b></p><p> cout<<"┗━━━━━┻━━━━━┻━━━┻━━━┻━━━┻━━━━┻━━━━┻━━┛"<<endl;</p><p> cur
51、node=curnode->next;</p><p><b> }</b></p><p> curnode=pw;</p><p> cout<<"┏━━━━━━━━━┓"<<endl;</p><p> cout<<"┃!表中內容輸出完
52、畢!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━┛"<<endl;</p><p> cout<<" ";system("pause");</p><p><b> }</b></p>
53、;<p> ////////////////////////////////////////輸入數(shù)據(jù)</p><p> void student::cin_app()</p><p><b> {</b></p><p> student *p=curnode;</p><p><b>
54、 bool b=0;</b></p><p> string Number;</p><p> string Name;</p><p> double Chinese;</p><p> double ENglish;</p><p> double Math;</p><p
55、><b> while(1)</b></p><p><b> {</b></p><p> cout<<" 學 號:";</p><p> cin>>Number;</p><p> curnode=head->next;<
56、/p><p> while(curnode!=NULL)</p><p><b> {</b></p><p> b=(Number==curnode->number);</p><p> curnode=curnode->next;</p><p><b> }<
57、;/b></p><p><b> if(!b)</b></p><p><b> break;</b></p><p><b> else</b></p><p><b> {</b></p><p> cout&
58、lt;<"┏━━━━━━━━━━━━━━┓"<<endl;</p><p> cout<<"┃出現(xiàn)了相同的學號,請重新輸入┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━━━━┛"<<endl;</p><p>
59、;<b> }</b></p><p><b> }</b></p><p> curnode=p;</p><p> cout<<" 姓 名:";</p><p> cin>>Name;</p><p><b&g
60、t; while(1)</b></p><p><b> {</b></p><p> cout<<" 語 文:";</p><p> cin>>Chinese;</p><p> while(cin.fail())</p><p&g
61、t;<b> {</b></p><p> err_char();</p><p> cout<<" 語 文:";</p><p> cin>>Chinese;</p><p><b> }</b></p><p>
62、if(Chinese>=0&&Chinese<=100)</p><p><b> break;</b></p><p><b> else</b></p><p> score_err();</p><p><b> }</b></p
63、><p><b> while(1)</b></p><p><b> {</b></p><p> cout<<" 英 語:";</p><p> cin>>ENglish;</p><p> while(cin.fail
64、())</p><p><b> {</b></p><p> err_char();</p><p> cout<<" 英 語:";</p><p> cin>>ENglish;</p><p><b> }</b>&
65、lt;/p><p> if(ENglish>=0&&ENglish<=100)</p><p><b> break;</b></p><p><b> else</b></p><p> score_err();</p><p><b&
66、gt; }</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> cout<<" 數(shù) 學:";</p><p> cin>>Math;</p><p&
67、gt; while(cin.fail())</p><p><b> {</b></p><p> err_char();</p><p> cout<<" 數(shù) 學:";</p><p> cin>>Math;</p><p><b&g
68、t; }</b></p><p> if(Math>=0&&Math<=100)</p><p><b> break;</b></p><p><b> else</b></p><p> score_err();</p><p
69、><b> }</b></p><p> this->app_score(Number,Name,Chinese,ENglish,Math);</p><p> cout<<"┏━━━━━━━━┓"<<endl;</p><p> cout<<"┃!已添加一條
70、記錄!┃"<<endl;</p><p> cout<<"┗━━━━━━━━┛"<<endl;</p><p> cout<<" ";system("pause");</p><p><b> }</b></p>
71、;<p> //////////////////////////////////////////查找函數(shù)的實現(xiàn)</p><p> void student::lookup(int n,string str)</p><p><b> {</b></p><p> student *p=curnode;</p>
72、<p><b> bool b;</b></p><p> //定義i=1,當找到數(shù)據(jù)時把i置為0.用于輸出沒有找到數(shù)據(jù)</p><p><b> int i=1;</b></p><p> if(!(curnode=head->next))</p><p><b&g
73、t; {</b></p><p> cout<<"┏━━━━━━━┓"<<endl;</p><p> cout<<"┃!這是一個空表!┃"<<endl;</p><p> cout<<"┗━━━━━━━┛"<<en
74、dl;</p><p> curnode=p;</p><p> cout<<" ";system("pause");</p><p><b> return;</b></p><p><b> }</b></p><p
75、> cout<<"┏━━━━━┳━━━━━┳━━━┳━━━┳━━━┳━━━━┳━━━━┳━━┓"<<endl;</p><p> cout<<"┃ 學號 ┃ 姓名 ┃ 語文 ┃ 英語 ┃ 數(shù)學 ┃ 總分 ┃ 平均分 ┃等級┃"<<endl;</p><p> cout&l
76、t;<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;</p><p> while(curnode!=NULL)</p><p><b> {</b></p><p><b> switch(n)</b></p>&l
77、t;p><b> {</b></p><p> case 1: b=curnode->number==str;break;</p><p> case 2: b=curnode->name==str;break;</p><p> default: return;</p><p><b&g
78、t; }</b></p><p><b> if(b)</b></p><p><b> {</b></p><p><b> i=0;</b></p><p> cout<<"┃"<<left<<s
79、etw(10)<<curnode->number;</p><p> cout<<"┃"<<left<<setw(10)<<curnode->name;</p><p> cout<<"┃"<<left<<setw(6)<<cu
80、rnode->chinese;</p><p> cout<<"┃"<<left<<setw(6)<<curnode->English;</p><p> cout<<"┃"<<left<<setw(6)<<curnode->math
81、;</p><p> curnode->sum_score();</p><p> cout<<"┃"<<left<<setw(8)<<curnode->sum;</p><p> curnode->ave_score();</p><p> cou
82、t<<"┃"<<left<<setw(8)<<curnode->ave;</p><p> curnode->grade_score();</p><p> cout<<"┃"<<left<<setw(4)<<curnode->gra
83、de<<"┃"<<endl;</p><p> cout<<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;</p><p><b> }</b></p><p> curnode=curnode->
84、next;</p><p><b> }</b></p><p> //當i=1是代表沒有找到數(shù)據(jù)</p><p><b> if(i)</b></p><p><b> {</b></p><p> cout<<"┣━━
85、━━━┻━━━━━┻━━━┻━━━┻━━━┻━━━━┻━━━━┻━━┫"<<endl;</p><p> cout<<"┃沒有匹配的數(shù)據(jù) ┃"<<endl;</p><p> cout<<&quo
86、t;┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p><b> }</b></p><p><b> else</b></p><p> cout<<"┗━━━━━┻━━━━━┻━━━┻━━━┻━━━┻━━━━┻━
87、━━━┻━━┛"<<endl;</p><p> curnode=p;</p><p> cout<<" 以上是本次查找的結果!"<<endl;</p><p> cout<<" ";system("pause");</p>&l
88、t;p><b> }</b></p><p> //////////////////////////////////////////刪除函數(shù)的實現(xiàn)</p><p> void student::del_score(int n,string str)</p><p><b> {</b></p>
89、<p> student *p=curnode,*pw=head;</p><p><b> bool b;</b></p><p> //定義i=1,當找到數(shù)據(jù)時把i置為0.用于輸出沒有找到數(shù)據(jù)</p><p><b> int i=1;</b></p><p> if(!(c
90、urnode=head->next))</p><p><b> {</b></p><p> cout<<"┏━━━━━━━┓"<<endl;</p><p> cout<<"┃!這是一個空表!┃"<<endl;</p><
91、p> cout<<"┗━━━━━━━┛"<<endl;</p><p> curnode=p;</p><p> cout<<" ";system("pause");</p><p><b> return;</b></p>
92、<p><b> }</b></p><p> while(curnode!=NULL)</p><p><b> {</b></p><p><b> switch(n)</b></p><p><b> {</b></p&
93、gt;<p> case 1: b=curnode->number==str;break;</p><p> case 2: b=curnode->name==str;break;</p><p> default: return;</p><p><b> }</b></p><p>
94、<b> if(b)</b></p><p><b> {</b></p><p><b> i=0;</b></p><p> pw->next=curnode->next;</p><p> delete curnode;</p><
95、;p> curnode=pw->next;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> pw=curnode;</p><p> cur
96、node=curnode->next;</p><p><b> }</b></p><p><b> }</b></p><p> //當i=1是代表沒有找到數(shù)據(jù)</p><p><b> if(i)</b></p><p><b&
97、gt; {</b></p><p> cout<<"┏━━━━━━━┓"<<endl;</p><p> cout<<"┃沒有匹配的數(shù)據(jù)┃"<<endl;</p><p> cout<<"┗━━━━━━━┛"<<en
98、dl;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"┏━━━━━━━┓"<<endl;</p><
99、p> cout<<"┃ 數(shù)據(jù)刪除成功 ┃"<<endl;</p><p> cout<<"┗━━━━━━━┛"<<endl;</p><p><b> }</b></p><p> curnode=head;</p><p&
100、gt; while(curnode->next)</p><p><b> {</b></p><p> curnode=curnode->next;</p><p><b> }</b></p><p> cout<<" ";system(&q
101、uot;pause");</p><p><b> }</b></p><p> //////////////////////////////////////排序函數(shù)的實現(xiàn)</p><p> void student::compositor(int n,int m)</p><p><b>
102、{</b></p><p> if(head->next==NULL)</p><p><b> {</b></p><p> cout<<"┏━━━━━━━━━━━┓"<<endl;</p><p> cout<<"┃!這是一個
103、空表不能排序!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━┛"<<endl;</p><p> cout<<" ";system("pause");</p><p><b> return;</b
104、></p><p><b> }</b></p><p> if(head->next->next==NULL)</p><p><b> {</b></p><p> cout<<"┏━━━━━━━━━━━┓"<<endl;&l
105、t;/p><p> cout<<"┃!只有一條記錄不用排序!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━┛"<<endl;</p><p> cout<<" ";system("pause");
106、</p><p><b> return;</b></p><p><b> }</b></p><p> student *s,*p,*q,*r;</p><p><b> r=head; </b></p><p> s=head->n
107、ext; </p><p><b> q=s; </b></p><p> p=q->next; </p><p> while(s!=NULL) </p><p><b> { </b></p><p> while(p!=NULL) </p>
108、<p><b> {</b></p><p><b> switch(n)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p><b> {</b>&l
109、t;/p><p><b> if(m==1)</b></p><p><b> {</b></p><p> while(s->number<p->number)</p><p><b> { </b></p><p> q-&g
110、t;next=p->next; </p><p> r->next=p; </p><p> p->next=s; </p><p><b> s=p; </b></p><p> p=q->next; </p><p> if(p==NULL)</p>
111、;<p><b> break; </b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></
112、p><p> while(s->number>p->number)</p><p><b> { </b></p><p> q->next=p->next; </p><p> r->next=p; </p><p> p->next=s; <
113、;/p><p><b> s=p; </b></p><p> p=q->next; </p><p> if(p==NULL)</p><p><b> break; </b></p><p><b> }</b></p>&
114、lt;p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> case 2:</b></p><p><b> {</b></p&
115、gt;<p><b> if(m==1)</b></p><p><b> {</b></p><p> while(s->sum<p->sum)</p><p><b> { </b></p><p> q->next=p-&g
116、t;next; </p><p> r->next=p; </p><p> p->next=s; </p><p><b> s=p; </b></p><p> p=q->next; </p><p> if(p==NULL)</p><p>
117、;<b> break; </b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
118、p> while(s->sum>p->sum)</p><p><b> { </b></p><p> q->next=p->next; </p><p> r->next=p; </p><p> p->next=s; </p><p>
119、;<b> s=p; </b></p><p> p=q->next; </p><p> if(p==NULL)</p><p><b> break; </b></p><p><b> }</b></p><p><b>
120、 }</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> case 3:</b></p><p><b> {</b></p><p><
121、;b> if(m==1)</b></p><p><b> {</b></p><p> while(s->ave<p->ave)</p><p><b> { </b></p><p> q->next=p->next; </p>
122、;<p> r->next=p; </p><p> p->next=s; </p><p><b> s=p; </b></p><p> p=q->next; </p><p> if(p==NULL)</p><p><b> break
123、; </b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> while(s-&g
124、t;ave>p->ave)</p><p><b> { </b></p><p> q->next=p->next; </p><p> r->next=p; </p><p> p->next=s; </p><p><b> s=p;
125、</b></p><p> p=q->next; </p><p> if(p==NULL)</p><p><b> break; </b></p><p><b> }</b></p><p><b> }</b><
126、/p><p><b> break;</b></p><p><b> }</b></p><p> default: return;</p><p><b> } </b></p><p> if(p==NULL) </p>&l
127、t;p><b> {</b></p><p><b> break;</b></p><p><b> } </b></p><p><b> q=p; </b></p><p> p=p->next; </p><
128、;p><b> } </b></p><p><b> r=s; </b></p><p> s=s->next; </p><p><b> q=s; </b></p><p> p=q->next; </p><p>
129、if(p==NULL) </p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> cout<
130、<"┏━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p> cout<<"┃!成功完成排序操作,即將輸出排序結果!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━━━━━━━━┛"<<endl;</p>
131、<p> cout<<" ";system("pause");</p><p> displist();</p><p><b> }</b></p><p> ////////////////////////////////////////修改函數(shù)的實現(xiàn)</p&g
132、t;<p> void student::rework(int n,string str)</p><p><b> {</b></p><p> student *p=curnode;</p><p><b> bool b;</b></p><p><b> i
133、nt i=1;</b></p><p> if(!(curnode=head->next))</p><p><b> {</b></p><p> cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl;</p><p> cout<
134、<"┃!這是一個空表沒有需要修改的數(shù)據(jù)!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl;</p><p> curnode=p;</p><p> cout<<" ";system("
135、;pause");</p><p><b> return;</b></p><p><b> }</b></p><p> while(curnode!=NULL)</p><p><b> {</b></p><p><b&g
136、t; switch(n)</b></p><p><b> {</b></p><p> case 1: b=curnode->number==str;break;</p><p> case 2: b=curnode->name==str;break;</p><p> default
137、: return;</p><p><b> }</b></p><p><b> if(b)</b></p><p><b> {</b></p><p><b> i=0;</b></p><p> string Nu
138、mber;</p><p> string Name;</p><p> double Chinese;</p><p> double ENglish;</p><p> double Math;</p><p> cout<<"┏━━━━━━━━━━━━━━━━┓"<
139、<endl;</p><p> cout<<"┃!請在原數(shù)據(jù)后面輸入要修改的數(shù)據(jù)!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl;</p><p> cout<<" 學 號:"&
140、lt;<curnode->number<<" ";</p><p> cin>>Number;</p><p> curnode->number=Number;</p><p> cout<<" 姓 名:"<<curnode->name<&
141、lt;" ";</p><p> cin>>Name;</p><p> curnode->name=Name;</p><p><b> while(1)</b></p><p><b> {</b></p><p> co
142、ut<<" 語 文:"<<curnode->chinese<<" ";</p><p> cin>>Chinese;</p><p> while(cin.fail())</p><p><b> {</b></p><p
143、> err_char();</p><p> cout<<" 語 文:"<<curnode->chinese<<" ";</p><p> cin>>Chinese;</p><p><b> }</b></p><
144、;p> if(Chinese>=0&&Chinese<=100)</p><p><b> break;</b></p><p><b> else</b></p><p> score_err();</p><p><b> }</b&g
145、t;</p><p> curnode->chinese=chinese;</p><p><b> while(1)</b></p><p><b> {</b></p><p> cout<<" 英 語:"<<curnode->E
146、nglish<<" ";</p><p> cin>>ENglish;</p><p> while(cin.fail())</p><p><b> {</b></p><p> err_char();</p><p> cout<&
147、lt;" 英 語:"<<curnode->English<<" ";</p><p> cin>>ENglish;</p><p><b> }</b></p><p> if(ENglish>=0&&ENglish<=100
148、)</p><p><b> break;</b></p><p><b> else</b></p><p> score_err();</p><p><b> }</b></p><p> curnode->English=ENgl
149、ish;</p><p><b> while(1)</b></p><p><b> {</b></p><p> cout<<" 數(shù) 學:"<<curnode->math<<" ";</p><p>
150、cin>>Math;</p><p> while(cin.fail())</p><p><b> {</b></p><p> err_char();</p><p> cout<<" 數(shù) 學:"<<curnode->math<<&q
151、uot; ";</p><p> cin>>Math;</p><p><b> }</b></p><p> if(Math>=0&&Math<=100)</p><p><b> break;</b></p><p&
152、gt;<b> else</b></p><p> score_err();</p><p><b> }</b></p><p> curnode->math=Math;</p><p><b> }</b></p><p> cur
153、node=curnode->next;</p><p><b> }</b></p><p><b> if(i)</b></p><p><b> {</b></p><p> cout<<"┏━━━━━━━━━━━┓"<&
154、lt;endl;</p><p> cout<<"┃!找不到需要修改的數(shù)據(jù)!┃"<<endl;</p><p> cout<<"┗━━━━━━━━━━━┛"<<endl;</p><p><b> }</b></p><p>&
155、lt;b> else</b></p><p><b> {</b></p><p> cout<<"┏━━━━━━━━━┓"<<endl;</p><p> cout<<"┃!數(shù)據(jù)修改全部完成!┃"<<endl;</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生成績管理系統(tǒng)課程設計
- 課程設計——學生成績管理系統(tǒng)
- 課程設計---學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng) 課程設計
- 課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 小學生成績管理系統(tǒng)
- 課程設計-- 學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計
- 學生成績管理系統(tǒng)課程設計9
- 學生成績管理系統(tǒng)課程設計10
- vfp課程設計--- 學生成績管理系統(tǒng)
- java課程設計--學生成績管理系統(tǒng)
- vfp課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)課程設計報告
- vb課程設計---學生成績管理系統(tǒng)
評論
0/150
提交評論