一个C语言程序设计题,急求解答~~
有n个学生,要求录入基本信息(姓名、性别、学号、成绩等)。可以输出学生排名,平均成绩,学生名单,成绩单,计算学分。...
有n个学生,要求录入基本信息(姓名、性别、学号、成绩等)。
可以输出学生排名,平均成绩,学生名单,成绩单,计算学分。 展开
可以输出学生排名,平均成绩,学生名单,成绩单,计算学分。 展开
2个回答
展开全部
我这里有个曾经写过的学籍管理,希望可以给你灵感
#include <iostream>
#include <iomanip>
using namespace std;
const int q=3,w=6;
int a[q][w];
void input(int k); //输入数组
void max_chengji(int k,int a[][6],int b); //求个人成绩的最大值
int max_danke(int k,int a[][6]); //求单科成绩的最大值
int max_all(int a[][6]); //求所有成绩的最大值
void main()
{ int m,n,d;
int b,c,z=0;
float average,num=0;
int i;
for(i=0;i<q;i++)
input(i);
cout<<endl;
cout<<setw(12)<<"学号"<<setw(12)<<"语文(1)"<<setw(12)<<"数学(2)"<<setw(12)<<"外语(3)"<<setw(12)<<"c++(4)"<<setw(12)<<"物理(5)"<<endl;
for(m=0;m<3;m++)
{
for(n=0;n<6;n++)
{
cout<<setw(12)<<a[m][n];
}
cout<<endl; //?解决输入时学号与数组序列的对应问题?
}
cout<<"请输入你的学号:"<<endl;
cin>>b;
while((b<1)||(b>3))
{ cout<<"没有此学号.";
cout<<"请重新输入你的学号:"<<endl;
cin>>b;
}
cout<<"学号为"<<b<<",总成绩为:"<<endl;
c=b-1;
for(n=1;n<6;n++)
{
num=num+a[c][n];
}
cout<<num<<endl;
cout<<"你的平均分为:"<<endl;
average=num/5;
cout<<average<<endl;
max_chengji(c,a,b);
cout<<endl;
cout<<"请输入你要查寻的科目号:"<<endl;
cin>>d;
cout<<"单科成绩的最大值为:"<<max_danke(d,a)<<endl;
cout<<"所有成绩的最大值为:"<<max_all(a)<<endl; //?分别输出时可运行,同时输出时不可运行?
}
void input(int k)
{
cout<<"student "<<k+1<<" num:";
cin>>a[k][0];
cout<<"student "<<k+1<<" subject 语文(1) score:";
cin>>a[k][1];
cout<<"student "<<k+1<<" subject 数学(2) score:";
cin>>a[k][2];
cout<<"student "<<k+1<<" subject 外语(3) score:";
cin>>a[k][3];
cout<<"student "<<k+1<<" subject c++(4) score:";
cin>>a[k][4];
cout<<"student "<<k+1<<" subject 物理(5) score:";
cin>>a[k][5];
}
void max_chengji(int c,int a[][6],int b)
{
int n,j,q;
for(n=1;n<2;n++)
{q=n;
for(j=n+1;j<6;j++)
if(a[c][j]>a[c][q])
q=j;
}
cout<<"学号为"<<b<<"的同学最高成绩是:"<<a[c][q]<<endl;
}
int max_danke(int k,int a[][6])
{
int i,max=a[0][k],t;
for(i=1;i<3;i++)
{
if(max<a[i][k])
{
max=a[i][k];
t=i;
}
}
return a[t][k];
}
int max_all(int a[][6])
{ int i,max;
max=max_danke(1,a);
for(i=2;i<6;i++)
{
if(max<max_danke(i, a))
{
max=max_danke(i,a);
}
}
return max;
}
#include <iostream>
#include <iomanip>
using namespace std;
const int q=3,w=6;
int a[q][w];
void input(int k); //输入数组
void max_chengji(int k,int a[][6],int b); //求个人成绩的最大值
int max_danke(int k,int a[][6]); //求单科成绩的最大值
int max_all(int a[][6]); //求所有成绩的最大值
void main()
{ int m,n,d;
int b,c,z=0;
float average,num=0;
int i;
for(i=0;i<q;i++)
input(i);
cout<<endl;
cout<<setw(12)<<"学号"<<setw(12)<<"语文(1)"<<setw(12)<<"数学(2)"<<setw(12)<<"外语(3)"<<setw(12)<<"c++(4)"<<setw(12)<<"物理(5)"<<endl;
for(m=0;m<3;m++)
{
for(n=0;n<6;n++)
{
cout<<setw(12)<<a[m][n];
}
cout<<endl; //?解决输入时学号与数组序列的对应问题?
}
cout<<"请输入你的学号:"<<endl;
cin>>b;
while((b<1)||(b>3))
{ cout<<"没有此学号.";
cout<<"请重新输入你的学号:"<<endl;
cin>>b;
}
cout<<"学号为"<<b<<",总成绩为:"<<endl;
c=b-1;
for(n=1;n<6;n++)
{
num=num+a[c][n];
}
cout<<num<<endl;
cout<<"你的平均分为:"<<endl;
average=num/5;
cout<<average<<endl;
max_chengji(c,a,b);
cout<<endl;
cout<<"请输入你要查寻的科目号:"<<endl;
cin>>d;
cout<<"单科成绩的最大值为:"<<max_danke(d,a)<<endl;
cout<<"所有成绩的最大值为:"<<max_all(a)<<endl; //?分别输出时可运行,同时输出时不可运行?
}
void input(int k)
{
cout<<"student "<<k+1<<" num:";
cin>>a[k][0];
cout<<"student "<<k+1<<" subject 语文(1) score:";
cin>>a[k][1];
cout<<"student "<<k+1<<" subject 数学(2) score:";
cin>>a[k][2];
cout<<"student "<<k+1<<" subject 外语(3) score:";
cin>>a[k][3];
cout<<"student "<<k+1<<" subject c++(4) score:";
cin>>a[k][4];
cout<<"student "<<k+1<<" subject 物理(5) score:";
cin>>a[k][5];
}
void max_chengji(int c,int a[][6],int b)
{
int n,j,q;
for(n=1;n<2;n++)
{q=n;
for(j=n+1;j<6;j++)
if(a[c][j]>a[c][q])
q=j;
}
cout<<"学号为"<<b<<"的同学最高成绩是:"<<a[c][q]<<endl;
}
int max_danke(int k,int a[][6])
{
int i,max=a[0][k],t;
for(i=1;i<3;i++)
{
if(max<a[i][k])
{
max=a[i][k];
t=i;
}
}
return a[t][k];
}
int max_all(int a[][6])
{ int i,max;
max=max_danke(1,a);
for(i=2;i<6;i++)
{
if(max<max_danke(i, a))
{
max=max_danke(i,a);
}
}
return max;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询