c語言,二維陣列求期評成績用二維陣列設計程式,實現計算一門課程的期評成績
程式碼如下 ,二維陣列考察
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
using namespace std;
const MAX_R=100;
const MAX_C=10;
float scores[MAX_R][MAX_C];
float sum[MAX_R],aver[MAX_R];
long id[MAX_R];
char name[MAX_R][15];
int m; //存放課程數
int input()
{
int i,n=0;
float t;
do{
cout <<"輸入課程數(<=" <<MAX_C <<"):";
cin >>m;
}while(m<1 || m>10);
cout <<"輸入第 " <<n+1 <<" 個學生的學號(0 表示輸入結束):";
cin >>id[n];
while(id[n] && n<MAX_R){
cout <<"輸入第 " <<n+1 <<" 個學生的姓名:";
cin >>name[n];
t=0;
for(i=0; i<m; i++){
cout <<"輸入第 " <<n+1 <<" 個學生的第 " <<i+1 <<" 門課的成績:";
cin >>scores[n][i];
t+=scores[n][i];
}
sum[n]=t;
aver[n]=t/m;
n++;
return n;
void compute(int n)
int i,j;
cout <<setw(10) <<"學號" <<setw(10) <<"姓名" <<setw(8) <<"總分" <<setw(8) <<"平均分\n";
for(i=0; i<n; i++){
for(j=0; j<m; j++)
t+=scores[i][j];
sum[i]=t;
aver[i]=t/m;
cout <<setw(10) <<id[i] <<setw(10) <<name[i] <<setw(8) <<sum[i] <<setw(8) <<aver[i] <<endl;
void displayFirst(int n)
int i,k;
float t=-1;
for(i=0; i<n; i++)
if(sum[i]>t)
t=sum[i], k=i;
cout <<"總分第一名:\n";
cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
void displayLast(int n)
float t=100000;
if(sum[i]<t)
cout <<"總分最後一名:\n";
void search(int n)
long xh=0;
char nm[15]={0};
int i;
cout<<"輸入要查詢學生的學號或姓名:";
cin >>nm;
xh=atol(nm);
if(id[i]==xh || strcmp(name[i],nm)==0)
break;
if(i<n){
cout <<"學號:"<<id[i] <<" 姓名:" <<name[i]
<<" 總分:" <<sum[i] <<" 平均分:" <<aver[i] <<endl;
}else
cout <<"沒有你要找的學生資訊\n";
void main()
int menu_id=5;
int n=0;
char ch;
while(1)
cout<<"*********我的成績管理系統*********"<<endl;
cout<<"1. 輸入成績"<<endl;
cout<<"2. 彙總成績"<<endl;
cout<<"3. 最高分和最低分"<<endl;
cout<<"4. 查詢個人成績資訊"<<endl;
cout<<"5. 退出系統"<<endl;
cout<<"請選擇(輸入以上數字編號)";
cin>>menu_id;
switch(menu_id)
case 1:
n = input();
cout <<n <<endl;
case 2:
compute(n);
cout<<"已經完成彙總!\n";
case 3:
displayFirst(n);
displayLast(n);
case 4:
search(n);
default:
if(menu_id==5) break;
cout <<"打一鍵繼續……\n";
cin.ignore();
cin.get(ch);
c語言,二維陣列求期評成績用二維陣列設計程式,實現計算一門課程的期評成績
程式碼如下 ,二維陣列考察
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
using namespace std;
const MAX_R=100;
const MAX_C=10;
float scores[MAX_R][MAX_C];
float sum[MAX_R],aver[MAX_R];
long id[MAX_R];
char name[MAX_R][15];
int m; //存放課程數
int input()
{
int i,n=0;
float t;
do{
cout <<"輸入課程數(<=" <<MAX_C <<"):";
cin >>m;
}while(m<1 || m>10);
cout <<"輸入第 " <<n+1 <<" 個學生的學號(0 表示輸入結束):";
cin >>id[n];
while(id[n] && n<MAX_R){
cout <<"輸入第 " <<n+1 <<" 個學生的姓名:";
cin >>name[n];
t=0;
for(i=0; i<m; i++){
cout <<"輸入第 " <<n+1 <<" 個學生的第 " <<i+1 <<" 門課的成績:";
cin >>scores[n][i];
t+=scores[n][i];
}
sum[n]=t;
aver[n]=t/m;
n++;
cout <<"輸入第 " <<n+1 <<" 個學生的學號(0 表示輸入結束):";
cin >>id[n];
}
return n;
}
void compute(int n)
{
int i,j;
float t;
cout <<setw(10) <<"學號" <<setw(10) <<"姓名" <<setw(8) <<"總分" <<setw(8) <<"平均分\n";
for(i=0; i<n; i++){
t=0;
for(j=0; j<m; j++)
t+=scores[i][j];
sum[i]=t;
aver[i]=t/m;
cout <<setw(10) <<id[i] <<setw(10) <<name[i] <<setw(8) <<sum[i] <<setw(8) <<aver[i] <<endl;
}
}
void displayFirst(int n)
{
int i,k;
float t=-1;
for(i=0; i<n; i++)
if(sum[i]>t)
t=sum[i], k=i;
cout <<"總分第一名:\n";
cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
}
void displayLast(int n)
{
int i,k;
float t=100000;
for(i=0; i<n; i++)
if(sum[i]<t)
t=sum[i], k=i;
cout <<"總分最後一名:\n";
cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
}
void search(int n)
{
long xh=0;
char nm[15]={0};
int i;
cout<<"輸入要查詢學生的學號或姓名:";
cin >>nm;
xh=atol(nm);
for(i=0; i<n; i++)
if(id[i]==xh || strcmp(name[i],nm)==0)
break;
if(i<n){
cout <<"學號:"<<id[i] <<" 姓名:" <<name[i]
<<" 總分:" <<sum[i] <<" 平均分:" <<aver[i] <<endl;
}else
cout <<"沒有你要找的學生資訊\n";
}
void main()
{
int menu_id=5;
int n=0;
char ch;
while(1)
{
cout<<"*********我的成績管理系統*********"<<endl;
cout<<"1. 輸入成績"<<endl;
cout<<"2. 彙總成績"<<endl;
cout<<"3. 最高分和最低分"<<endl;
cout<<"4. 查詢個人成績資訊"<<endl;
cout<<"5. 退出系統"<<endl;
cout<<"請選擇(輸入以上數字編號)";
cin>>menu_id;
switch(menu_id)
{
case 1:
n = input();
cout <<n <<endl;
break;
case 2:
compute(n);
cout<<"已經完成彙總!\n";
break;
case 3:
displayFirst(n);
displayLast(n);
break;
case 4:
search(n);
break;
default:
break;
}
if(menu_id==5) break;
cout <<"打一鍵繼續……\n";
cin.ignore();
cin.get(ch);
}
}