• /  27
  • 下載費用: 9.90積分  

鍵盤輸入一班 2.doc

'鍵盤輸入一班 2.doc'
?鍵盤輸入一個班(全班30人)學生的學號、姓名、三門課(語文、數學、英語)的成績,分別統計下列內容: (1)統計每個學生的總分和平均分; (2)按總分由大到小排出名次; (3)打印出成績在全班平均分以上的學生名單和數據信息。 (4)任意輸入一個學號,能夠查找出該學生在班級中的排名及其考試成績。 (5)各個功能要求分別用獨立的函數來實現,在主函數中通過簡單的菜單選擇來實現各個功能。要求使用結構體數組來存儲和處理學生信息,結構體主要包括:學號、姓名、班級、三門課成績、總分、平均分、名次等成員。在Windows XP + VC++ 6.0中正常運行#include#includeusing namespace std;const int Max=30;//字符串最大長度struct Student;//類聲明void setData(Student &s);//設置對象s的數據void count(Student &s);//計算對象s的總分,平均分void sort(Student S[],int N);//把長度為N的對象數組S,按平均分排序double getAverage(Student S[],int N);//計算全班的平均分void print(Student &s);//打印信息int search(Student S[],int N,char *n);//從長度為M的對象數組中,查找學號n的位置struct Student{ char number[Max]; char name[Max]; double chinese; double math; double english; double total; double average; int rank;//只有比較才不為了0};void setData(Student &s){ cout<>s.number>>s.name>>s.chinese>>s.math>>s.english; s.total=0;//初始化 s.average=0; s.rank=0;}void count(Student &s){ s.total=s.chinese+s.math+s.english; s.average=s.total/3;}void sort(Student S[],int N)//插入法排序{ int index; Student inserter; for(int i=1;i=0&&inserter.average>S[index].average) { S[index+1]=S[index]; index--; } S[index+1]=inserter; } for(int j=0;j<N;j++) S[j].rank=j+1;//設置排名}double getAverage(Student S[],int N){ double Average=0; for(int i=0;i<N;i++) Average+=(S[i].chinese+S[i].math+S[i].english); Average/=(N*3); return Average;}void print(Student &s){ cout<<"排名"<<"\t"<<"學號"<<"\t"<<"姓名"<<"\t"<<"語文:"<<"\t" <<"數學:"<<"\t"<<"英語:"<<"\t"<<"總分"<<"\t"<<"平均分"<<endl; cout<<s.rank<<"\t"<<s.number<<"\t"<<s.name<<"\t"<<s.chinese<<"\t" <<s.math<<"\t"<<s.english<<"\t"<<s.total<<"\t"<<s.average<<endl;}int search(Student S[],int N,char *n){ for(int i=0;i<N;i++) { if(strcmp(S[i].number,n)==0) return i; } return -1;}int main(){ const int M=3; Student S[M]; for(int i=0;i<M;i++) { cout<<"下面輸入第"<<i+1<<"位同學的數據:"<<endl; setData(S[i]); count(S[i]); cout<<endl; } sort(S,M); int order=1; while(order!=4) { cout<<"以下是命令菜單:"<<endl; cout<<"1.打印所有排名"<<endl; cout<<"2.打印出成績在全班平均分以上的學生名單和數據信息"<<endl; cout<<"3.任意輸入一個學號,查找出該學生在班級中的排名及其考試成績"<<endl; cout<<"4.退出系統"<<endl; cout<>order; switch(order) { case 1: { for(int j=0;j<M;j++) print(S[j]); } break; case 2: { double compare=getAverage(S,M); for(int k=0;kcompare) print(S[k]); } break; case 3: { char code[Max]; cout<>code; int result=search(S,M,code); if(result==-1) cout<<"您輸入的學號不存在!!!"<<endl; else print(S[result]); } break; case 4:break; default:cout<<"輸入的命令不存在!!!"<=60) {count4++; a4=((double)count4/(double)n)*100; } if(stu[i].PJF>=60) {count5++; a5=((double)count5/(double)n)*100; } } cout<<"數學及格率:"<<a1<<"%"<<endl; cout<<"英語及格率:"<<a2<<"%"<<endl; cout<<"C語言及格率:"<<a3<<"%"<<endl; cout<<"體育及格率:"<<a4<<"%"<<endl; cout<<"學生平均分及格率:"<<a5<<"%"<<endl;}void SYSTEM::MAX()//最高分{double max1,max2,max3,max4,max5,max6; max1=stu[0].shuxue; max2=stu[0].yingyu; max3=stu[0].Cyuyan; max4=stu[0].tiyu; max5=stu[0].ZF; max6=stu[0].PJF; for(int i=0;imax1) max1=stu[i].shuxue; if(stu[i].yingyu>max2) max2=stu[i].yingyu; if(stu[i].Cyuyan>max3) max3=stu[i].Cyuyan; if(stu[i].tiyu>max4) max4=stu[i].tiyu; if(stu[i].ZF>max5) max5=stu[i].ZF; if(stu[i].PJF>max6) max6=stu[i].PJF; } cout<<"數學最高 英語最高 C語言最高 體育最高 總分最高 平均分最高"<<endl; cout<<" "<<max1<<" "<<max2<<" "<<max3<<" "<<max4<<" "<<max5<<" "<<max6<<endl; } void SYSTEM::MIN()//最低分{double min1,min2,min3,min4,min5,min6; min1=stu[0].shuxue; min2=stu[0].yingyu; min3=stu[0].Cyuyan; min4=stu[0].tiyu; min5=stu[0].ZF; min6=stu[0].PJF; for(int i=0;i<n;i++) { if(stu[i].shuxue<min1) min1=stu[i].shuxue; if(stu[i].yingyu<min2) min2=stu[i].yingyu; if(stu[i].Cyuyan<min3) min3=stu[i].Cyuyan; if(stu[i].tiyu<min4) min4=stu[i].tiyu; if(stu[i].ZF<min5) min5=stu[i].ZF; if(stu[i].PJF<min6) min6=stu[i].PJF; } cout<<"數學最低 英語最低 C語言最低 體育最低 總分最低 平均分最低"<<endl; cout<<" "<<min1<<" "<<min2<<" "<<min3<<" "<<min4<<" "<<min5<<" "<<min6<<endl; } void main(){ SYSTEM person; int b; do//do-while循環語句是先執行循環體里的語句,再進行判斷,如果不符合while條件(即b<10)時要執行一次循環體,直到b的值大于或等于10是才退出循環。 { cout<<"***************************************************************************"<<endl; cout<<" 1.添加 6.排 序"<<endl; cout<<" 2.查詢 7.及格率"<<endl; cout<<" 3.顯示 8.最高分"<<endl; cout<<" 4.修改 9.最低分"<<endl; cout<<" 5.刪除 10.退 出"<<endl; cout<<"***************************************************************************"<<endl; cout<>b; switch(b) { case 1: cout<<"請依次輸入該學生的相關信息:"<<endl; person.add(); break; case 2: person.search(); break; case 3: person.show(); break; case 4: person.change(); break; case 5: person.del(); break; case 6: person.PX(); break; case 7: person.rate(); break; case 8: person.MAX(); break; case 9: person.MIN(); break; case 10: cout<<"謝謝使用本系統!!!"<<endl; } }while(b<10);}
關 鍵 詞:
輸入 一班 鍵盤
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:鍵盤輸入一班 2.doc
鏈接地址: http://www.094347.live/p-55627162.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.094347.live 網站版權所有

粵ICP備19057495號 

收起
展開
有没有苹果软件赚钱的 pk10开奖视频 全天pk10第十位计划 好运彩彩票网官方端口 一分赛车6码诀窍 上证指数每日行情 吉林省今天快三开奖图 炒股网上开户 北京快乐8基本走势图带连线 电竞时时乐必输 新疆11选5开奖视频