版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《程序設(shè)計基礎(chǔ)課程設(shè)計》</p><p><b> 課程設(shè)計報告</b></p><p><b> 目的與要求</b></p><p> 通過本課程設(shè)計的實踐,全面總結(jié)C++課程學(xué)習(xí)中的的數(shù)據(jù)類型、程序結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、鏈表等基本概念,掌握其使用方法。掌握面向?qū)ο蟪绦蛟O(shè)計中有關(guān)類、
2、對象、繼承、重載、多態(tài)性、輸入輸出流類體系、文件操作的基本概念,初步學(xué)會用類與對象這種面向?qū)ο蟮某绦蛟O(shè)計方法編寫應(yīng)用程序。培養(yǎng)使用面向?qū)ο蟮某绦蛟O(shè)計方法編寫計算機程序的能力。</p><p> 通過設(shè)計一個《小學(xué)生成績統(tǒng)計管理》,進(jìn)一步熟悉C++中類的概念、類的封裝、繼承的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需求分析、類層次設(shè)計、模塊分解、編碼測試、模塊組裝與整體調(diào)試的全過程,加深對C++的理解與Visual C++環(huán)境的
3、使用;逐步熟悉程序設(shè)計的方法,并養(yǎng)成良好的編程習(xí)慣。程序設(shè)計是一門實踐性很強的課程,必須十分重視實踐環(huán)節(jié)。許多實際的知識不是靠聽課和看書學(xué)到的,而是通過長時間的實踐積累的。</p><p><b> 設(shè)計內(nèi)容</b></p><p><b> 學(xué)生成績管理系統(tǒng)</b></p><p><b> 1.基本功能
4、:</b></p><p> 成績的輸入(學(xué)號、姓名、語文、英語、數(shù)學(xué));</p><p> 成績統(tǒng)計(各科平均成績、各科成績“優(yōu)秀”、“良好”、“中等”、“及格”、“不及格”的人數(shù)及其所占比例);</p><p> 總成績統(tǒng)計(學(xué)生的總成績、平均成績及成績排名)</p><p> 成績的統(tǒng)計結(jié)果顯示。</p>
5、<p><b> 擴展功能:</b></p><p> 學(xué)生數(shù)據(jù)的添加、修改、與刪除</p><p> 學(xué)生數(shù)據(jù)的讀取與存儲</p><p><b> 3.設(shè)計要求</b></p><p> a)采用面向?qū)ο蟮乃枷牒头椒ㄍ瓿稍O(shè)計,最好能夠基于windows圖形界面 。<
6、/p><p> b)至少設(shè)計四個類;學(xué)生類(描述學(xué)生基本信息);成績類:班級類;課程類(描述課程信息:課程編號,科目名稱(數(shù)學(xué),英語等);學(xué)生成績及課程信息用文件保存,每個類一個文件,程序執(zhí)行時從文件讀入。</p><p><b> 過程與結(jié)果</b></p><p><b> 主要內(nèi)容如下:</b></p>
7、<p> 關(guān)鍵類的設(shè)計,繼承層次關(guān)系,代碼:</p><p> 首先,創(chuàng)建了一個student類.在student類的共有部分聲明程序所需函數(shù);然后就是student類的函數(shù)實現(xiàn)部分,其中定義student類的帶參數(shù)及不帶參數(shù)構(gòu)造函數(shù);再是常用函數(shù)的調(diào)用,并定義系統(tǒng)菜單函數(shù)及其界面;最后就是主函數(shù)文件。</p><p> Student類的聲明如下:</p>
8、<p> 主要功能函數(shù)的設(shè)計:</p><p> 1. 關(guān)于計算總成績和平均成績以及評定成績等級的函數(shù),而用于成績統(tǒng)計中優(yōu)秀、良好、中等、及格、不及格的計算,不過為便于表達(dá),此程序采用字母A,B,C,D,E來分別表達(dá)上述</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ù)中分四種情況排序,分別按學(xué)號,總分,平均分來排序,排序結(jié)果也能有升序或降序操作,通過while
10、else語句以及制表格和case的使用將輸入的數(shù)據(jù)排序出來;因函數(shù)體過于龐大,在后面代碼清單羅列出來時會標(biāo)示出來。</p><p> 數(shù)據(jù)輸入設(shè)計:數(shù)據(jù)輸入以輸出方式打開文件,通過this指針和地址引用把寫入的數(shù)據(jù)加在文件末尾;</p><p><b> 程序測試結(jié)果:</b></p><p> 1運行程序.會出現(xiàn)如下畫面,按照提示進(jìn)行選
11、擇.</p><p> 首先選擇1,然后按Enter鍵.按照提示對學(xué)生情況進(jìn)行輸入.如圖:</p><p> 按任意鍵程序自動保存第一個同學(xué)的數(shù)據(jù),并返回菜單,按照剛才的步驟繼續(xù)輸入第二個、第三個同學(xué)等等的數(shù)據(jù);</p><p> 選擇4, 然后按Enter鍵.對數(shù)據(jù)進(jìn)行進(jìn)行有目的性的排序.如圖:</p><p> 5.譬如選擇2按總
12、分排序,按Enter鍵,再在接下來的提示框中選擇降序排序類型,再按一次Enter鍵,排序結(jié)果如圖:符合設(shè)計要求,但各科成績“優(yōu)秀”、“良好”、“中等”、“及格”、“不及格”的人數(shù)及其所占比例因個人能力有限未能設(shè)計出來;</p><p> 6.按任意鍵又返回菜單,繼續(xù)接下來的操作;</p><p><b> 設(shè)計總結(jié)</b></p><p>
13、 這次課程設(shè)計基本上涵蓋了大學(xué)一年級學(xué)習(xí)到的C++ 語言知識點,課程設(shè)計題目要求不僅要求對課本知識有較深刻的了解,同時要求程序設(shè)計者有較強的思維和動手能力。這次課設(shè)使我了解我編程思想和編程技巧,也認(rèn)識了軟件生命周期的各個環(huán)境,包括構(gòu)思、設(shè)計、編寫、調(diào)試、發(fā)布、文檔化、維護和修訂。</p><p> C++程序編譯是一種要求特別精細(xì)的工作,小到一個分號(或點)都能影響整個程序的運行,這就要求我們編寫程序時要特別
14、細(xì)心,即使是一個符號,還是一個字母都不能亂用。在這次的編寫過程中,我就因為錯把case序列語句里的變量中的p寫成q使整個程序癱瘓。它讓我記住了學(xué)習(xí)需要認(rèn)真、仔細(xì)、負(fù)責(zé)的態(tài)度對待。</p><p> 這次課程設(shè)計雖說很辛苦,而且設(shè)計出來的程序不全具備課程所需的,不過擴展功能學(xué)生數(shù)據(jù)的添加、修改、與刪除的函數(shù)嵌進(jìn)去,而且排序功能關(guān)聯(lián)升序和降序功能,正所謂魚與熊掌不可得兼。這次課程設(shè)計,在整個程序中,我們通過使用wh
15、ile循環(huán),switch語句,冒泡排序法,表格設(shè)計中的setw()以及類的定義及使用來完成程序設(shè)計,使我提高了對C++中語句的使用能力和組合能力,進(jìn)一步加強了我對使用C++編程的能力。還讓我掌握了高級程序設(shè)計語言的基本思想、基本概念、基本方法和基本技能,while語句,this指針,case作為程序的入口,一般結(jié)合switch使用等等。</p><p> 一個星期以來的課程設(shè)計,感謝幫助我的同學(xué)和師長,通過和他
16、們的交流,互相交流經(jīng)驗,我這次設(shè)計的程序中各大主函數(shù)體得以設(shè)計出來,感謝他們在我編程過程中為我做的提醒和指點,這真的很重要。</p><p> 這次課程設(shè)計不僅讓我修補了以前學(xué)習(xí)的漏洞,也讓我知道一個道理:編程需要興趣和實際動手。這應(yīng)該可以借鑒在同學(xué)或者師長們的編程經(jīng)驗上。創(chuàng)新思維至關(guān)重要,相對于我這略感冗余卻實現(xiàn)不了更多功能的程序來說,有必要寫出精簡的代碼,也有助于開發(fā)出高效的程序。雖說我編寫的程序離專業(yè)人員
17、設(shè)計的還有好大一段距離,但它已經(jīng)是我目前的極限。我相信,通過我的努力,在不久的將來,我會編出一組真正實用的程序的。</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ù)的構(gòu)造函數(shù)</p><p> student(string ,string ,double ,double ,double ,double =0.0,double =0.0,char =
22、NULL);//帶數(shù)據(jù)域參數(shù)的構(gòu)造函數(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ù),當(dāng)輸入成績不在0到100之間時提示重新輸入</p><p> student::student():next(NULL)//不帶參數(shù)的構(gòu)造函數(shù)</
27、p><p><b> {</b></p><p> head=curnode=this;</p><p><b> }</b></p><p> //帶參數(shù)的構(gòu)造函數(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<<"┃ !表中內(nèi)容全部清空,現(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<<"┃ 學(xué)號 ┃ 姓名
44、 ┃ 語文 ┃ 英語 ┃ 數(shù)學(xué) ┃ 總分 ┃ 平均分 ┃等級┃"<<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<<"┃!表中內(nèi)容輸出完
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<<" 學(xué) 號:";</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)了相同的學(xué)號,請重新輸入┃"<<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ù) 學(xué):";</p><p> cin>>Math;</p><p&
67、gt; while(cin.fail())</p><p><b> {</b></p><p> err_char();</p><p> cout<<" 數(shù) 學(xué):";</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,當(dāng)找到數(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<<"┃ 學(xué)號 ┃ 姓名 ┃ 語文 ┃ 英語 ┃ 數(shù)學(xué) ┃ 總分 ┃ 平均分 ┃等級┃"<<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> //當(dāng)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<<" 以上是本次查找的結(jié)果!"<<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,當(dāng)找到數(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> //當(dāng)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<<"┃!成功完成排序操作,即將輸出排序結(jié)果!┃"<<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<<" 學(xué) 號:"&
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ù) 學(xué):"<<curnode->math<<" ";</p><p>
150、cin>>Math;</p><p> while(cin.fail())</p><p><b> {</b></p><p> err_char();</p><p> cout<<" 數(shù) 學(xué):"<<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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 課程設(shè)計——學(xué)生成績管理系統(tǒng)
- 課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng) 課程設(shè)計
- 課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 小學(xué)生成績管理系統(tǒng)
- 課程設(shè)計-- 學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計9
- 學(xué)生成績管理系統(tǒng)課程設(shè)計10
- vfp課程設(shè)計--- 學(xué)生成績管理系統(tǒng)
- java課程設(shè)計--學(xué)生成績管理系統(tǒng)
- vfp課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- vb課程設(shè)計---學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論