资源描述
成绩
评阅人
评阅日期
广东石油化工学院
C++程序设计训练
专 业
班 级
学 号
姓 名
指导教师
完成时间
一、上机内容
用C++语言设计一个简单的学生成绩管理系统,主要功能包括:
1. 输入学生的各科成绩;
2. 计算总分;
3. 计算平均分;
4. 计算名次(按平均分);
5. 可查询任一学生的成绩情况;
6. 计算可科目的优秀率和合格率。
二、程序源代码
解:可输入n个学生,m个科目
程序如下:
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
int main()
{
int n,m,i,j,k,t;
int stu3[10],stu4[10],stu1[100];
string str[10];
double max, stu5[100],stu2[100][10],sum[100];
cout<<"请分别输入学生总人数和总科目:"<<endl;
cin>>n>>m;
cout<<"输入各科目的名字用空格隔开:"<<endl;
for(i=1;i<=m;i++)
cin>>str[i];
memset(stu3,0,sizeof(stu3)); memset(stu4,0,sizeof(stu4));
memset(stu1,0,sizeof(stu1));
cout<<"请按学号和科目名称输入学生的成绩:"<<endl;
for(i=1;i<=n;i++)
{ cin>>stu5[i];
sum[i]=0;
for(j=1;j<=m;j++)
{
cin>>stu2[i][j];
sum[i]+=stu2[i][j];
if(stu2[i][j]>=60) stu3[j]++;
if(stu2[i][j]>=90)stu4[j]++;
}
}
k=0;int k1;
for(i=1;i<=n;i++)
{
max=0;
for(j=1;j<=n;j++)
{
if(stu1[j]==0)
{
if(sum[j]>max)
{
max=sum[j];
k1=j;
}
}
}
stu1[k1]=++k;
}
cout<<"学号 总分 平均分 排名"<<endl;
for(i=1;i<=n;i++)
{
cout<<i<<" "<<setiosflags(ios::fixed)<<sum[i]<<" "<<setiosflags(ios::fixed)<<sum[i]/m<<" "<<stu1[i]<<endl;
}
cout<<" "<<"优秀率 "<<"合格率"<<endl;
for(i=1;i<=m;i++)
{
cout<<str[i]<<" "<<100.0*stu4[i]/n<<"% "<<100.0*stu3[i]/n<<"%"<<endl;
}
cout<<"如果你要查成绩请输入1,否则输入0:"<<endl;
cin>>t;
if(t)
{
cout<<"输入你要查询成绩的学生学号:"<<endl;
cout<<"输入0退出"<<endl;
while(1)
{
cin>>t;
if(t==0)break;
for(i=1;i<=m;i++)
{
cout<<str[i]<<":"<<stu2[t][i]<<endl;
}
cout<<"总分:"<<sum[t]<<endl;
cout<<"平均分:"<<sum[t]/n<<endl;
}
}
return 0;
}
//1. 输入学生的各科成绩;
//2. 计算总分;
//3. 计算平均分;
//4. 计算名次(按平均分);
//5. 可查询任一学生的成绩情况;
//6. 计算各科目的优秀率和合格率。
三、程序运行
解:运行结果截图如下图:
1、输入学号、科目分数、总分、平均分、排名以及优秀、及格率:
2、查询任一学生的成绩情况
四、分析与总结
总结:通过这次五天的编程训练,经过一天天的把一个个函数编译出来,懂得程序的严谨性,在编程过程中虽然一再遇到问题,但只要通过提示认真仔细的修改,就能够把错误修改。也提高了自己对这门课程的兴趣,所以在这门课程结束后,还应该定期对这方面的知识进行巩固。针对老师没讲过的知识通过自己的自学,搞懂这些,为以后走这一方面的路做好准备。
展开阅读全文