學(xué)生管理系統(tǒng)_第1頁
學(xué)生管理系統(tǒng)_第2頁
學(xué)生管理系統(tǒng)_第3頁
學(xué)生管理系統(tǒng)_第4頁
學(xué)生管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

學(xué)生管理系統(tǒng)第一頁,共19頁。C#程序設(shè)計學(xué)生管理系統(tǒng)第二頁,共19頁。1設(shè)計一個windows應(yīng)用程序,在該課程中定義一個(class學(xué)生類)和(class班級類),以處理每個學(xué)生(int學(xué)號),(string姓名),(double語文,數(shù)學(xué)和英語)三門課程的期末考試成績,要求:1、能根據(jù)姓名查詢指定學(xué)生的總成績(學(xué)生類中double數(shù)學(xué)+語文+英語newclassstudentstudent.sum方法1sum=+++)2、能統(tǒng)計單科最高分(該科班級最高分)3、能統(tǒng)計班級總分前三名的名單4、能統(tǒng)計指定課程在不同分數(shù)段的學(xué)生人數(shù)百分比提示:1、定義一個Student類,包含字段(學(xué)號,姓名,語文成績,數(shù)學(xué)成績,英語成績)和屬性(總成績)2、定義一個Grade班級類,包含一個Student類型的數(shù)組(用于保存全班學(xué)生的信息)以及實現(xiàn)上述要求的方法3、設(shè)計用戶界面,首先能輸入一個學(xué)生的信息(輸入成績),但點擊“添加”按鈕時,將信息加入到班級對象的學(xué)生數(shù)組中。當(dāng)點擊“完成”按鈕時調(diào)用班級類的方法來顯示各種統(tǒng)計結(jié)果。當(dāng)用戶輸入學(xué)生姓名點擊“查詢”按鈕顯示該生的總成績。第三頁,共19頁。新建student類。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceWindowsFormsApplication1{classStudent{//定義學(xué)號,姓名,語文成績,數(shù)學(xué)成績,英語成績,總成績

publicstringstuNo;publicstringname;publicdoublechinese;publicdoublemath;publicdoubleenglish;publicdoublesumScore{get{returnchinese+math+english;}}}}第四頁,共19頁。新建Grade類namespaceWindowsFormsApplication1{classGrade:Student{intsnums;publicStudent[]stu=newStudent[50];//定義構(gòu)造函數(shù)

publicGrade(){snums=0;}publicvoidaddstu(Students)//添加數(shù)據(jù)

{stu[snums]=s;snums++;}publicintsearchstu(stringname)//查詢數(shù)據(jù)

{inti;for(i=0;i<snums;i++){if(stu[i].name==name)break;}if(i==snums)return-1;elsereturni;}第五頁,共19頁。新建Grade類publicvoidProThree(){//給所有成績排序,用后面實現(xiàn)前三名的排名(主要利用排序?qū)崿F(xiàn)對成績的排名)

for(inti=0;i<snums;i++){intk=i;for(intj=i+1;j<snums;j++)if(stu[j].sumScore>stu[k].sumScore)k=j;if(k!=i){Studenttemp;temp=stu[k];stu[k]=stu[i];stu[i]=temp;}}}第六頁,共19頁。新建Grade類

//顯示單科成績的最高分

publicintHighScore(intk)//構(gòu)造一個函數(shù)實現(xiàn)對分數(shù)的比較

{intp=0;if(k==0){for(inti=1;i<snums;i++)if(stu[i].math>stu[p].math)p=i;}elseif(k==1){for(inti=1;i<snums;i++)if(stu[i].chinese>stu[p].chinese)p=i;}else{for(inti=1;i<snums;i++)if(stu[i].english>stu[p].english)p=i;}returnp;}第七頁,共19頁。新建Grade類

publicstringgetHL(){//調(diào)用HighScore函數(shù)

stringMaxer="";Maxer+="單科語文最高分:"+stu[HighScore(1)].name+"\n";Maxer+="單科數(shù)學(xué)最高分:"+stu[HighScore(0)].name+"\n";Maxer+="單科英語最高分:"+stu[HighScore(2)].name+"\n";returnMaxer+"\n";}//全班的平均成績

publicstringSumScore(){doublesum=0;doubleavg=0;for(inti=0;i<snums;i++){sum=sum+stu[i].sumScore;}avg=sum/snums;return"班級總分平均分:"+avg;}第八頁,共19頁。新建Grade類

//語文成績各分數(shù)段百分比

publicstringPerC(){doubleper1,per2,per3,per4,per5;doublesumC1=0,sumC2=0,sumC3=0,sumC4=0,sumC5=0;for(inti=0;i<snums;i++){//此算法也可以用switch...case:

if((stu[i].chinese>90)&&(stu[i].chinese<=100)){sumC1++;}elseif((80<=stu[i].chinese)&&(stu[i].chinese<90)){sumC2++;}elseif((70<=stu[i].chinese)&&(stu[i].chinese<80)){sumC3++;}elseif((60<=stu[i].chinese)&&(stu[i].chinese<70)){sumC4++;}else{sumC5++;}}per1=sumC1/snums;per2=sumC2/snums;per3=sumC3/snums;per4=sumC4/snums;per5=sumC5/snums;return"語文成績百分比:"+"\n"+"90~100:"+per1+"80~90:"+per2+"80~70:"+per3+"70~60:"+per4+"60以下的:"+per5;}第九頁,共19頁。新建Grade類

//數(shù)學(xué)成績各分數(shù)段百分比

publicstringPerM(){doubleper1,per2,per3,per4,per5;doublesumC1=0,sumC2=0,sumC3=0,sumC4=0,sumC5=0;for(inti=0;i<snums;i++){//此算法也可以用switch...case:

if((stu[i].math>90)&&(stu[i].math<=100)){sumC1++;}elseif((80<=stu[i].math)&&(stu[i].math<90)){sumC2++;}elseif((70<=stu[i].math)&&(stu[i].math<80)){sumC3++;}elseif((60<=stu[i].math)&&(stu[i].math<70)){sumC4++;}else{sumC5++;}}per1=sumC1/snums;per2=sumC2/snums;per3=sumC3/snums;per4=sumC4/snums;per5=sumC5/snums;returnstring.Format("數(shù)學(xué)成績百分比:"+"\n"+"90~100:"+per1+"80~90:"+per2+"80~70:"+per3+"70~60:"+per4+"60以下的:"+per5);}第十頁,共19頁。新建Grade類publicstringPerE(){//英語成績各分數(shù)段百分比doubleper1,per2,per3,per4,per5;doublesumC1=0,sumC2=0,sumC3=0,sumC4=0,sumC5=0;for(inti=0;i<snums;i++){if((stu[i].english>90)&&(stu[i].english<=100)){sumC1++;}elseif((80<=stu[i].english)&&(stu[i].english<90)){sumC2++;}elseif((70<=stu[i].english)&&(stu[i].english<80)){sumC3++;}elseif((60<=stu[i].english)&&(stu[i].english<70)){sumC4++;}else{sumC5++;}}per1=sumC1/snums;per2=sumC2/snums;per3=sumC3/snums;per4=sumC4/snums;per5=sumC5/snums;returnstring.Format("數(shù)學(xué)成績百分比:"+"\n"+"90~100:"+per1+"80~90:"+per2+"80~70:"+per3+"70~60:"+per4+"60以下的:"+per5);}}}第十一頁,共19頁。Form1.cspublicpartialclassForm1:Form{Gradeg1=newGrade();publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){//實現(xiàn)添加數(shù)據(jù)按鈕

Students=newStudent();s.stuNo=textBox1.Text;=textBox2.Text;s.chinese=Convert.ToDouble(textBox3.Text);s.math=Convert.ToDouble(textBox4.Text);s.english=Convert.ToDouble(textBox5.Text);g1.addstu(s);MessageBox.Show("添加成功");}第十二頁,共19頁。新建Grade類privatevoidbutton2_Click(objectsender,EventArgse){ClearInfo();//調(diào)用實現(xiàn)清屏函數(shù)從而實現(xiàn)清屏。

}privatevoidClearInfo(){//構(gòu)造實現(xiàn)清屏函數(shù)。

textBox1.Clear();textBox2.Clear();textBox3.Clear();textBox4.Clear();textBox5.Clear();textBox6.Clear();}privatevoidbutton4_Click(objectsender,EventArgse){//實現(xiàn)查詢按鈕,在TextBox6上顯示

intpos=g1.searchstu(this.textBox6.Text);if(pos!=-1){label6.Text=this.textBox6.Text+"的總成績:"+g1.stu[pos].sumScore;}else{MessageBox.Show("不存在這個人!");}}第十三頁,共19頁。新建Grade類privatevoidbutton3_Click(objectsender,EventArgse){//實現(xiàn)完成按鈕

label6.Text="班級總分前三名的名單:"+"\n";for(inti=0;i<3;i++){g1.ProThree();label6.Text+=g1.stu[i].name+"\n";}label6.Text+=

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論