c課程設(shè)計(jì)--C程序設(shè)計(jì)語(yǔ)言_第1頁(yè)
c課程設(shè)計(jì)--C程序設(shè)計(jì)語(yǔ)言_第2頁(yè)
c課程設(shè)計(jì)--C程序設(shè)計(jì)語(yǔ)言_第3頁(yè)
c課程設(shè)計(jì)--C程序設(shè)計(jì)語(yǔ)言_第4頁(yè)
c課程設(shè)計(jì)--C程序設(shè)計(jì)語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩47頁(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)介

1、中南大學(xué)二一二二一三學(xué)年第二學(xué)期信息科學(xué)與工程學(xué)院C+程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)報(bào)告課程名稱:C+程序設(shè)計(jì)語(yǔ)言班 級(jí):電氣信息類 班 學(xué) 號(hào):姓 名: 指導(dǎo)教師: 二0二一年零七月目錄:1. 課程設(shè)計(jì)目的2. 系統(tǒng)描述(需求分析)3. 功能模塊結(jié)構(gòu)(設(shè)計(jì)思路)4. 主要模塊的算法說(shuō)明5. 程序運(yùn)行結(jié)果(主要截圖及說(shuō)明)6. 課程設(shè)計(jì)總結(jié)7. 參考文獻(xiàn)8. 附錄(程序源代碼)一.課程設(shè)計(jì)目的1、使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒ǎ?、使學(xué)生掌握軟件設(shè)計(jì)的基本內(nèi)容和設(shè)計(jì)方法,并培養(yǎng)學(xué)生進(jìn)行規(guī)范化軟件設(shè)計(jì)的能力;3、使學(xué)生掌握

2、使用各種計(jì)算機(jī)資料和有關(guān)參考資料,提高學(xué)生進(jìn)行程序設(shè)計(jì)的基本能力。二.系統(tǒng)描述(需求分析)小型學(xué)生成績(jī)管理系統(tǒng)1、需要處理的基礎(chǔ)數(shù)據(jù)² 學(xué)生基本信息:如班級(jí)、學(xué)號(hào)、姓名、性別、年齡、宿舍號(hào)碼、 號(hào)碼等。² 學(xué)生選修課程的基本信息:課程編號(hào)、課程名稱、考試成績(jī)、平時(shí)成績(jī)、綜合成績(jī)、學(xué)分、重修否等。2、系統(tǒng)的基本功能² 數(shù)據(jù)的錄入:如錄入學(xué)生的基本信息,以及該學(xué)生選修課程的基本信息;² 數(shù)據(jù)的修改:如修改指定學(xué)號(hào)、或者指定姓名的學(xué)生信息,或者修改其選修課程信息;² 數(shù)據(jù)的插入:插入某個(gè)學(xué)生信息² 數(shù)據(jù)的查詢:如按學(xué)號(hào)查詢、按姓名查詢等;&

3、#178; 數(shù)據(jù)的刪除:如刪除指定學(xué)號(hào)、或者指定姓名的學(xué)生及其選修課程信息;² 平均成績(jī)的計(jì)算:計(jì)算每個(gè)學(xué)生各門功課的平均成績(jī),并按平均成績(jī)從高到低的次序輸出學(xué)生信息;² 列出不及格學(xué)生清單(學(xué)號(hào)、姓名、不及格的課程和成績(jī))。² 考慮用文件把數(shù)據(jù)保存起來(lái)(可選)。分析如下:(1)如上所示,該系統(tǒng)要求處理一些學(xué)生成績(jī)的基本數(shù)據(jù),包括兩個(gè)方面:學(xué)生身份信息和學(xué)生成績(jī)信息。(2)該系統(tǒng)不僅要求能錄入一些基本數(shù)據(jù)外,還要能對(duì)這些數(shù)據(jù)進(jìn)行處理,比如修改,刪除,插入,查詢等。另外,因?yàn)閷?duì)數(shù)據(jù)庫(kù)了解不多,可以考慮用文件保存的形式將數(shù)據(jù)保存起來(lái)。三.功能模塊分析(設(shè)計(jì)思路) 考慮

4、到每個(gè)學(xué)生都是一個(gè)對(duì)象,而且他們都有一些共性:各種身份信息和成績(jī)信息,于是可以定義一個(gè)類:里面包含各種成員信息(為了信息的隱蔽性,可以定義成私有數(shù)據(jù))。而對(duì)這些數(shù)據(jù)進(jìn)行處理的選項(xiàng),可以用一些函數(shù)來(lái)實(shí)現(xiàn),每一個(gè)函數(shù)對(duì)應(yīng)一個(gè)功能。在這里,既可以定義成類的成員函數(shù),也可以定義類的友元函數(shù),為方便,本程序采用后者:友元函數(shù)。具體結(jié)構(gòu)如下:1.Stu類的結(jié)構(gòu):2.數(shù)據(jù)成員:數(shù)據(jù)classnumnamemathc_programenglishaverageorder含義班級(jí)學(xué)號(hào)姓名高數(shù)C+課程大學(xué)英語(yǔ)平均分排名3.功能函數(shù):Input( Stu stud )輸入學(xué)生信息Statistic( Stu stu

5、d )學(xué)生信息輸出Lookup( Stu stud )查找學(xué)生信息Modify( Stu stud )修改學(xué)生信息Delete( Stu stud ) 刪除學(xué)生信息Output( Stu stud )輸出全部信息Sort( Stu stud )對(duì)學(xué)生進(jìn)行排序Insert( Stu stud ) 插入學(xué)生信息Showfail( Stu stud ) 查找不及格學(xué)生Write( Stu stud )文件寫(xiě)入函數(shù)Read( Stu stud ) 文件讀取函數(shù)void menu()菜單函數(shù),以供選擇 以上每一個(gè)函數(shù)的形參都是一個(gè)類對(duì)象,因?yàn)槭怯言瘮?shù),故可以訪問(wèn)類的數(shù)據(jù)成員。四.主要模塊的算法說(shuō)明1學(xué)

6、生信息的保存:由于沒(méi)有學(xué)習(xí)數(shù)據(jù)庫(kù)的有關(guān)知識(shí),故在本程序設(shè)計(jì)中要用到文件保存和讀?。憾x一個(gè)函數(shù)void Write(Stu stud,int n) /文件寫(xiě)入函數(shù) fstream myFile; /定義一個(gè)文件輸入輸出類 myFile.open("D:student.dat",ios:out|ios:binary);/目標(biāo)文件位置 if(!myFile) cout<<"D:student.dat can't open!"<<endl; /abort();異常終止一個(gè)進(jìn)程,和的exit()函數(shù)功能相似 exit(1); in

7、t count=n; myFile<<count<<endl<<endl; for(int i=0; i<=count; i+) myFile<<studi.class_0<<"<<studi.num<<""<<<<" "<<studi.math<<" "<<studi.c_program<<""<<studi.e

8、nglish<<" "<<studi.average<<endl; myFile.close();學(xué)生信息的讀取,和保存很相像,這里不再介紹。2.對(duì)學(xué)生信息的處理: 遵循一個(gè)大的原則,首先要將文件里的信息讀取出來(lái),然后再按照過(guò)程化的語(yǔ)句結(jié)構(gòu)對(duì)各種信息進(jìn)行處理,比如刪除,修改,插入,查找等,其中修改,插入,查找這三種的算法都比較簡(jiǎn)單,只需設(shè)置if條件語(yǔ)句或while循環(huán)語(yǔ)句既可解決,下面著重講一下刪除功能的實(shí)現(xiàn)。在本程序中,采用一種替代的方法,將需要?jiǎng)h除的學(xué)生信息處理掉。即先找到需要?jiǎng)h除的學(xué)生的學(xué)號(hào),然后將其所有的信息全部替換成后面一位同學(xué)

9、的信息,也就是說(shuō)該同學(xué)的信息全部被覆蓋掉,這樣在查詢的時(shí)候,此學(xué)生已經(jīng)不再存在。void Delete(Stu stud) /刪除學(xué)生信息函數(shù) system("cls");/調(diào)用系統(tǒng)函數(shù)cls,清除屏幕 int s; int n=Read(stud);/讀取學(xué)生數(shù)據(jù) int i=0,j; char sign; cout<<endl<<"=>> 刪除學(xué)生成績(jī) <<="<<endl; while(sign!='n'&&sign!='N') cout&l

10、t;<"請(qǐng)輸入需要?jiǎng)h除學(xué)生的學(xué)號(hào):"<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+;/這種結(jié)構(gòu)形式?jīng)Q定一次只能刪除一個(gè)學(xué)生 if(i=n) cout<<"=>提示:對(duì)不起,無(wú)法找到該學(xué)生"<<endl; else for(j=i; j<n-1; j+) strcpy(studj.class_0,studj+1.class_0);/用后面一個(gè)學(xué)生的信息取代要?jiǎng)h除的學(xué)生信息,這樣原學(xué)生就已經(jīng)消失 studj.num=studj

11、+1.num; strcpy(,studj+1.name); studj.math=studj+1.math; studj.c_program=studj+1.c_program; studj.english=studj+1.english; studj.average=studj+1.average; cout<<"=>提示:已成功刪除!"<<endl; n-; cout<<"=>提示:是否繼續(xù)刪除學(xué)生信息?(Y/N)" cin>>sign; Write(stud,n);/

12、將未刪除的學(xué)生數(shù)據(jù)保存3.排序的實(shí)現(xiàn): 在本程序中,采用冒泡法對(duì)學(xué)生平均成績(jī)進(jìn)行排序,即首先將相鄰的兩個(gè)學(xué)生的成績(jī)進(jìn)行比較,若前者小于后者,則將兩者的信息全部交換,最后再依次按平均分由高到低輸出學(xué)生所有信息。具體實(shí)現(xiàn)過(guò)程如下:void Sort(Stu stud) /學(xué)生成績(jī)排序函數(shù) system("cls");/調(diào)用系統(tǒng)函數(shù),清除屏幕 int i,j,k; float s; char t20; cout<<endl<<"=>> 降序排序成績(jī) <<="<<endl; int n=Read(stu

13、d); for(i=0; i<n-1; i+) for(j=0; j<n-1-i; j+) if(studj.average<studj+1.average)/采用冒泡法比較大小,即相鄰兩個(gè)數(shù)比較,把大的放在前面 strcpy(t,studj+1.class_0); /交換班級(jí)序號(hào) strcpy(studj+1.class_0,studj.class_0); strcpy(studj.class_0,t); k=studj+1.num;/交換學(xué)號(hào) studj+1.num=studj.num; studj.num=k; strcpy(t,studj+1.name);/交換姓名

14、strcpy(studj+1.name,); strcpy(,t); s=studj+1.math;/交換數(shù)學(xué)成績(jī) studj+1.math=studj.math; studj.math=s; s=studj+1.c_program;/交換C+成績(jī) studj+1.c_program=studj.c_program; studj.c_program=s; s=studj+1.english;/交換英語(yǔ)成績(jī) studj+1.english=studj.english; studj.english=s; s=studj+1.average;/交換平均成績(jī) s

15、tudj+1.average=studj.average; studj.average=s; cout<<"-"<<endl; cout<<"班級(jí)"<<"t"<<"學(xué)號(hào)"<<"t"<<"姓名"<<"t"<<"高數(shù)"<<"t"<<"C+"<<"t&

16、quot;<<"英語(yǔ)"<<"t"<<"平均分"<<"t"<<"名次"<<endl; cout<<"-"<<endl; for(i=0; i<n; i+) studi.order=i+1; cout<<studi.class_0<<"t"<<studi.num<<"t"<<stu

17、<<"t"<<studi.math<<"t"<<studi.c_program<<"t "<<studi.english<<"t"<<studi.average<<"t"<<studi.order<<endl; Write(stud,n);五.程序運(yùn)行結(jié)果 經(jīng)過(guò)上面的介紹,該系統(tǒng)的基本功能已經(jīng)具備,下面我們來(lái)介紹一下其實(shí)際使用效果:首先點(diǎn)擊運(yùn)行,會(huì)出現(xiàn)

18、一個(gè)功能菜單供你選擇:1.信息的錄入:現(xiàn)在,我們首先選擇1,輸入學(xué)生信息:需要多輸入幾次以供后來(lái)使用,還可以使用6插入學(xué)生信息。2.信息的顯示:選擇2顯示統(tǒng)計(jì)數(shù)據(jù):選擇8顯示全部學(xué)生具體信息:3.查找學(xué)生信息: 首先出現(xiàn)一個(gè)界面需要你輸入學(xué)號(hào):再點(diǎn)擊回車,會(huì)出現(xiàn)該學(xué)生的信息:4.修改學(xué)生成績(jī): 輸入需要修改的學(xué)生學(xué)號(hào),會(huì)首先出現(xiàn)該學(xué)生的原本信息,接著在下面重新填寫(xiě)該學(xué)生信息,保存即可5.刪除學(xué)生數(shù)據(jù): 輸入需要?jiǎng)h除的學(xué)生的學(xué)號(hào),點(diǎn)擊回車即可刪除,再查看時(shí),該成員已經(jīng)消失再次查看全部成員:如上所示,已經(jīng)沒(méi)有學(xué)號(hào)為1005的學(xué)生信息了6.按平均分降序排列:如上所示,在選擇功能7并點(diǎn)擊回車時(shí),會(huì)以平

19、均得分降序的形式排列出所有信息,并包含該學(xué)生的名次。7.顯示不及格學(xué)生的信息:選擇功能9,會(huì)顯示不及格學(xué)生的身份信息和其不及格科目:如圖所示,這批學(xué)生里面有兩個(gè)學(xué)生的成績(jī)存在不及格現(xiàn)象,其中1002號(hào)學(xué)生有一門不及格科目,1004號(hào)學(xué)生有兩門不及格科目。全部都已經(jīng)顯示出來(lái)。8.安全退出系統(tǒng):六.課程設(shè)計(jì)總結(jié)(1)回顧此次課程設(shè)計(jì),感慨良多,從剛拿到題目時(shí)的一臉茫然,到最后能成功解決,覺(jué)得此次課程設(shè)計(jì)我又學(xué)到了好多知識(shí)。首先在這里要感謝一下王磊指導(dǎo)老師,經(jīng)過(guò)他的細(xì)心講解,我才有了一個(gè)完整的設(shè)計(jì)思路。(2)在這次課程設(shè)計(jì)的過(guò)程中,最大的感覺(jué)就是對(duì)知識(shí)的不熟悉,一些C+基礎(chǔ)知識(shí)似懂非懂,結(jié)果總要去查

20、書(shū)才能寫(xiě)出不出錯(cuò)誤的代碼,結(jié)構(gòu)就是耗費(fèi)了大量的時(shí)間,事倍功半。經(jīng)歷這次教訓(xùn),我想會(huì)對(duì)我以后的計(jì)算機(jī)語(yǔ)言學(xué)習(xí)起到一定的幫助。(3)在這次的課程設(shè)計(jì)過(guò)程中,通過(guò)查書(shū)的學(xué)習(xí),對(duì)C+的了解又加深了不少,包括類的結(jié)構(gòu),以及怎樣在類外訪問(wèn)類類的私有成員等,我想下次再寫(xiě)基于對(duì)象的程序時(shí),一定會(huì)得心應(yīng)手。(4) 總的來(lái)說(shuō),這次程序設(shè)計(jì)讓我獲益匪淺,對(duì)C+語(yǔ)言也有了進(jìn)一步的認(rèn)識(shí):語(yǔ)言功能高、表達(dá)能力強(qiáng)、使用靈活方便、目標(biāo)程序效率高等等。C+語(yǔ)言是在國(guó)內(nèi)外廣泛使用的一種計(jì)算機(jī)語(yǔ)言,相信除了以上優(yōu)點(diǎn),還有許多我們還未發(fā)現(xiàn),希望能在以后的學(xué)習(xí)中有更深入的認(rèn)識(shí)七.參考文獻(xiàn)(1)C+程序設(shè)計(jì)(第二版) 譚浩強(qiáng)

21、編著(2)visual C+從入門到精通 明日科技 編著(3)C+編程思想 (美)埃克爾 編著 劉宗田 譯八.附錄(完整源代碼)#include <iostream>#include <fstream>#include <stdlib.h>#include <string.h>#include <stdio.h>using namespace std;class Stu /把對(duì)類的私有成員的處理函數(shù)全部定義為友元函數(shù)public: friend void Input(Stu stud) ; /學(xué)生成績(jī)錄入函數(shù) friend void

22、Statistic(Stu stud);/學(xué)生信息輸出函數(shù) friend void Lookup(Stu stud) ; /學(xué)生成績(jī)查找函數(shù) friend void Modify(Stu stud) ; /學(xué)生成績(jī)修改函數(shù) friend void Delete(Stu stud) ; /學(xué)生信息刪除函數(shù) friend void Output(Stu stud) ; /學(xué)生全部信息輸出函數(shù) friend void Sort(Stu stud) ; /學(xué)生成績(jī)排序函數(shù) friend void Insert(Stu stud) ; /學(xué)生成績(jī)插入函數(shù) friend void Write(Stu st

23、ud,int n);/學(xué)生成績(jī)寫(xiě)入檔案函數(shù) friend int Read(Stu stud); /學(xué)生成績(jī)信息讀取函數(shù) friend void Showfail(Stu stud); /查找不及格學(xué)生的函數(shù)private: char class_020; int num; char name8; float math; float c_program; float english; float average; int order;void Write(Stu stud,int n) /文件寫(xiě)入函數(shù) fstream myFile; /定義一個(gè)文件輸入輸出類 myFile.open("

24、;D:student.dat",ios:out|ios:binary); if(!myFile) cout<<"D:student.dat can't open!"<<endl; /abort(); exit(1); int count=n; myFile<<count<<endl<<endl; for(int i=0; i<=count; i+) myFile<<studi.class_0<<" "<<studi.num<<

25、;" "<<<<" "<<studi.math<<" " <<studi.c_program<<" "<<studi.english<<" "<<studi.average<<endl; myFile.close();int Read(Stu stud) /文件讀取函數(shù) fstream myFile; myFile.open("D:student.

26、dat",ios:in|ios:binary); if(!myFile) cout<<"D:student.dat can't open!"<<endl; /abort(); /異常終止一個(gè)進(jìn)程,和下面的exit()函數(shù)功能相似 exit(1); int count; myFile.seekg(0); myFile>>count; for(int i=0; i<=count; i+) myFile>>studi.class_0>>studi.num>>>

27、>studi.math>>studi.c_program>>studi.english>>studi.average; myFile.close(); return count ; /函數(shù)返回一個(gè)查詢出來(lái)的數(shù)值void Input(Stu stud) /學(xué)生成績(jī)錄入函授 system("cls"); /調(diào)用系統(tǒng)命令cls,清除屏幕 int i=0; int flag; char sign; cout<<endl<<"=>> 請(qǐng)輸入學(xué)生成績(jī) <<="<<e

28、ndl; while(sign!='n'&&sign!='N') cout<<" 班級(jí):" cin>>studi.class_0; loop: cout<<" 學(xué)號(hào):" cin>>studi.num; int c=0; while(c<i) c+; if(studi.num=studi-c.num) cout<<" 你輸入的學(xué)號(hào)已經(jīng)存在!請(qǐng)重新輸入。"<<endl; goto loop; cout<<

29、;" 姓名: " cin>>; do /學(xué)生信息錄入循環(huán) flag=0; cout<<" 高等數(shù)學(xué):" cin>>studi.math; if(studi.math>100 |studi.math<1) cout<<"對(duì)不起,請(qǐng)輸入1-100之間的數(shù)字!n" else flag=1; while(flag=0); do flag=0; cout<<" C+程序設(shè)計(jì):" cin>>studi.c_program;

30、if(studi.c_program>100 |studi.c_program<1) cout<<"對(duì)不起,請(qǐng)輸入1-100之間的數(shù)字!n" else flag=1; while(flag=0); do flag=0; cout<<" 大學(xué)英語(yǔ):" cin>>studi.english; if(studi.english>100 |studi.english<1) cout<<"對(duì)不起,請(qǐng)輸入1-100之間的數(shù)字!n" else flag=1; while(fla

31、g=0); studi.average=(studi.math+studi.c_program+studi.english)/3; cout<<" 平均分為:"<<studi.average<<endl; cout<<"=>提示:是否繼續(xù)寫(xiě)入學(xué)生成績(jī)?(Y/N)" cin>>sign; i+; Write(stud,i); /調(diào)用文件寫(xiě)入函數(shù),把信息寫(xiě)入文件void Statistic(Stu stud) /學(xué)生成績(jī)數(shù)據(jù)輸出函數(shù) system("cls"); int n

32、=Read(stud); cout<<endl<<"=>> 輸出學(xué)生統(tǒng)計(jì)數(shù)據(jù) <<="<<endl; cout<<"班級(jí)"<<"t"<<"學(xué)號(hào)"<<"t"<<" 姓名"<<"tt"<<" 平均分"<<endl; for(int i=0; i<n; i+) cout<<

33、;studi.class_0<<"t"<<studi.num<<"t"<<<<"tt"<<studi.average<<endl; system("pause");void Lookup(Stu stud) /學(xué)生成績(jī)查找函數(shù) system("cls"); int n=Read(stud); int s; int i=0; cout<<endl<<"=>

34、> 查找學(xué)生成績(jī) <<="<<endl; cout<<"請(qǐng)輸入需要查找學(xué)生的學(xué)號(hào):"<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+; if(i=n) cout<<"=>提示:對(duì)不起,無(wú)法找到該學(xué)生的信息!"<<endl; else cout<<"-"<<endl; cout<<"班級(jí):"<<stu

35、di.class_0<<endl; cout<<"學(xué)號(hào):"<<studi.num<<endl; cout<<"姓名:"<<<<endl; cout<<"高等數(shù)學(xué):"<<studi.math<<endl; cout<<"C+程序設(shè)計(jì):"<<studi.c_program<<endl; cout<<"大學(xué)英語(yǔ):"&

36、lt;<studi.english<<endl; cout<<"平均分:"<<studi.average<<endl; void Modify(Stu stud) /學(xué)生成績(jī)修改函數(shù) system("cls"); int n=Read(stud); int s; int i=0; cout<<endl<<"=>> 修改學(xué)生成績(jī) <<="<<endl; cout<<"請(qǐng)輸入需要修改成績(jī)學(xué)生的學(xué)號(hào):&qu

37、ot;<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+; if(i=n) cout<<"=>提示:對(duì)不起,無(wú)該學(xué)生的成績(jī)"<<endl; else cout<<"-該學(xué)生的信息-"<<endl; cout<<"班級(jí)"<<"t"<<"學(xué)號(hào)"<<"t"<<"姓名&quo

38、t;<<"t"<<"高數(shù)"<<"t"<<"c+"<<"t"<<"英語(yǔ)"<<"t"<<"平均分"<<endl; cout<<"-"<<endl; cout<<studi.class_0<<"t"<<studi.num<<&

39、quot;t"<<<<"t"<<studi.math<<"t"<<studi.c_program<<"t"<<studi.english<<"t"<<studi.average<<endl; cout<<"請(qǐng)重新輸入該學(xué)生的信息"<<endl; cout<<"班級(jí):"<<endl;

40、 cin>>studi.class_0; cout<<"學(xué)號(hào):"<<endl; cin>>studi.num; cout<<"姓名:"<<endl; cin>>; cout<<"高等數(shù)學(xué):"<<endl; cin>>studi.math; cout<<"C+程序設(shè)計(jì):"<<endl; cin>>studi.c_program; cout<

41、;<"大學(xué)英語(yǔ):"<<endl; cin>>studi.english; studi.average=(studi.math+studi.c_program+studi.english)/3; cout<<"平均分為:"<<studi.average<<endl; char c; cout<<"是否保存數(shù)據(jù)?(y/n)"<<endl; cin>>c; if(c!='n'&&c!='N')

42、 Write(stud,n); void Delete(Stu stud) /刪除學(xué)生信息函數(shù) system("cls"); int s; int n=Read(stud); int i=0,j; char sign; cout<<endl<<"=>> 刪除學(xué)生成績(jī) <<="<<endl; while(sign!='n'&&sign!='N') cout<<"請(qǐng)輸入需要?jiǎng)h除學(xué)生的學(xué)號(hào):"<<endl; c

43、in>>s; while(studi.num-s)!=0&&i<n) i+;/這種結(jié)構(gòu)形式?jīng)Q定一次只能刪除一個(gè)學(xué)生 if(i=n) cout<<"=>提示:對(duì)不起,無(wú)法找到該學(xué)生"<<endl; else for(j=i; j<n-1; j+) strcpy(studj.class_0,studj+1.class_0);/用后面一個(gè)學(xué)生的信息取代要?jiǎng)h除的學(xué)生信息,這樣原學(xué)生就已經(jīng)消失 studj.num=studj+1.num; strcpy(,studj+1.name); studj

44、.math=studj+1.math; studj.c_program=studj+1.c_program; studj.english=studj+1.english; studj.average=studj+1.average; cout<<"=>提示:已成功刪除!"<<endl; n-; cout<<"=>提示:是否繼續(xù)刪除學(xué)生信息?(Y/N)" cin>>sign; Write(stud,n);void Insert(Stu stud) /學(xué)生信息插入函數(shù) system("cl

45、s"); int n=Read(stud); char s; cout<<endl<<"=>> 增加學(xué)生成績(jī)<<="<<endl; while(s!='n'&&s!='N') cout<<"班級(jí):"<<endl; cin>>studn.class_0; cout<<"學(xué)號(hào):" cin>>studn.num; cout<<"姓名:"

46、; cin>>; cout<<"高等數(shù)學(xué):" cin>>studn.math; cout<<"C+程序設(shè)計(jì):" cin>>studn.c_program; cout<<"大學(xué)英語(yǔ):" cin>>studn.english; studn.average=(studn.math+studn.c_program+studn.english)/3; cout<<"平均分"<<studn.avera

47、ge; n+; cout<<"=>提示:插入成功!"<<endl; cout<<"是否繼續(xù)輸入(y/n)"<<endl; cin>>s; Write(stud,n);void Sort(Stu stud) /學(xué)生成績(jī)排序函數(shù) system("cls"); int i,j,k; float s; char t20; cout<<endl<<"=>> 降序排序成績(jī) <<="<<endl; int

48、 n=Read(stud); for(i=0; i<n-1; i+) for(j=0; j<n-1-i; j+) if(studj.average<studj+1.average)/采用冒泡法比較大小,即相鄰兩個(gè)數(shù)比較,把大的放在前面 strcpy(t,studj+1.class_0); /交換班級(jí)序號(hào) strcpy(studj+1.class_0,studj.class_0); strcpy(studj.class_0,t); k=studj+1.num;/交換學(xué)號(hào) studj+1.num=studj.num; studj.num=k; strcpy(t,studj+1.n

49、ame);/交換姓名 strcpy(studj+1.name,); strcpy(,t); s=studj+1.math;/交換數(shù)學(xué)成績(jī) studj+1.math=studj.math; studj.math=s; s=studj+1.c_program;/交換C+成績(jī) studj+1.c_program=studj.c_program; studj.c_program=s; s=studj+1.english;/交換英語(yǔ)成績(jī) studj+1.english=studj.english; studj.english=s; s=studj+1.averag

50、e;/交換平均成績(jī) studj+1.average=studj.average; studj.average=s; cout<<"-"<<endl; cout<<"班級(jí)"<<"t"<<"學(xué)號(hào)"<<"t"<<"姓名"<<"t"<<"高數(shù)"<<"t"<<"C+"<&

51、lt;"t"<<"英語(yǔ)"<<"t"<<"平均分"<<"t"<<"名次"<<endl; cout<<"-"<<endl; for(i=0; i<n; i+) studi.order=i+1; cout<<studi.class_0<<"t"<<studi.num<<"t"

52、<<<<"t"<<studi.math<<"t"<<studi.c_program<<"t "<<studi.english<<"t"<<studi.average<<"t"<<studi.order<<endl; Write(stud,n);void Output(Stu stud) /輸出全部學(xué)生成績(jī) system("c

53、ls"); int n=Read(stud); cout<<endl<<"=>> 顯示全部學(xué)生成績(jī) <<="<<endl; if(!stud) cout<<"沒(méi)有記錄" else cout<<"-"<<endl; cout<<"班級(jí)"<<"t"<<"學(xué)號(hào)"<<"t"<<"姓名&quo

54、t;<<"t"<<"高數(shù)"<<"t"<<"c+"<<"t"<<"英語(yǔ)"<<"t"<<"平均分"<<endl; cout<<"-"<<endl; for(int i=0; i<n; i+) cout<<studi.class_0<<"t "<<studi.num<<"t "<<

溫馨提示

  • 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)論