| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1360 人关注过本帖
标题:求一用C++语言编制的学生成绩管理程序
只看楼主 加入收藏
lingyu3362
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
求一用C++语言编制的学生成绩管理程序
要求如下:
一班有10名学生,一学期有5门课程,编写程序实现如下功能
(1)录入每名学生的各科成绩
(2)求出每名学生的平均成绩和总分
(3)求每门课程的平均分、及格率、最高成绩和最低成绩
(4)输出总成绩前5名的学生学号、各科成绩和总分
(5)输出各科补考学生的学号和成绩
要求:

(1)编制一主函数来实现功能菜单的显示和各功能函数的调用
调用:
(2)程序设计各步骤的相关文档齐全、清晰。
(3)在所有数据输入处理之前提供必要的提示


条件就这么多,哪位高手给做一下,要源码,能在VC++直接运行就行,拜托了 ,大大门,要不实训成绩就没了

[ 本帖最后由 lingyu3362 于 2010-11-29 17:53 编辑 ]
搜索更多相关主题的帖子: 管理程序 语言 学生 编制 
2010-11-29 17:51
sport456
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2010-12-3
收藏
得分:5 
回复 楼主 lingyu3362
你们也实训也做这个?
我们也是,我也在求救
2010-12-03 11:27
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
我这有个链表类    拿回去自己改  你要的功能我都有
链表类.rar (1.59 KB)

                                         
===========深入<----------------->浅出============
2010-12-03 18:53
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:5 
以下程序大体上符合你们的要求,如有不足之处,请指出,我们共同进行交流
#include"iostream"
#include"string"
using namespace std;
const int N=10;
const int M=5;
struct student
{
    int num;
    string name;
    double score[M],average[N];
}stu[N];
void input()
{
    int i,j;
    for(i=0;i<N;i++)
    {
        cout<<"输入学生的姓名、学号、课程1的成绩、课程2的成绩、课程3的成绩:"<<endl;
        cin>>stu[i].name>>stu[i].num;
        for(j=0;j<M;j++)
            cin>>stu[i].score[j];
    }
}
void output()
{
    int i,j,k;
    double t,x[N],rate[M];
    for(i=0;i<N;i++)
    {
        t=0;
        for(j=0;j<M;j++)t+=stu[i].score[j];
        stu[i].average[i]=t/3;x[i]=t;
    }
    cout<<"输出每名学生的平均成绩和总分:"<<endl;
    for(i=0;i<N;i++)
        cout<<"学生"<<stu[i].name<<"的平均成绩和总分分别为:"<<stu[i].average[i]<<"和"<<x[i]<<endl;
    cout<<"输出每门课程的平均分、及格率、最高成绩和最低成绩:"<<endl;
    for(j=0;j<M;j++)
    {
        double max=stu[0].score[0],min=stu[0].score[0];
        t=0;
        for(i=0;i<N;i++)
        {
            t+=stu[i].score[j];
            if(stu[i].score[j]>max)max=stu[i].score[j];
            if(stu[i].score[j]<min)min=stu[i].score[j];
        }
        for(k=0;k<M;k++)
        {
            int count=0;
            for(i=0;i<N;i++)
                if(stu[i].score[k]>60)count++;
            rate[k]=double(count)/N;
        }
        cout<<"课程"<<j+1<<"的平均成绩为:"<<t/5<<endl;
        cout<<"课程"<<j+1<<"的及格率为:"<<rate[j]<<endl;
        cout<<"课程"<<j+1<<"的最高成绩为:"<<max<<endl;
        cout<<"课程"<<j+1<<"的最低成绩为:"<<min<<endl;
    }
}
void rank()
{
    int i,j,k,m;
    string n;
    double t,a;
    for(j=0;j<N;j++)
        for(i=0;i<N-1-j;i++)
            if(stu[i].average[i]<stu[i+1].average[i+1])
            {
                t=stu[i].average[i];
                stu[i].average[i]=stu[i+1].average[i+1];
                stu[i+1].average[i+1]=t;
                m=stu[i].num;
                stu[i].num=stu[i+1].num;
                stu[i+1].num=m;
                n=stu[i].name;
                stu[i].name=stu[i+1].name;
                stu[i+1].name=n;
                for(k=0;k<M;k++)
                {
                    a=stu[i].score[k];
                    stu[i].score[k]=stu[i+1].score[k];
                    stu[i+1].score[k]=a;
                }
            }
    cout<<"输出成绩在前五名学生的姓名、学号、各科成绩和总分:"<<endl;
    for(i=0;i<5;i++)
    {
        cout<<"姓名:"<<stu[i].name<<";学号:"<<stu[i].num<<";三门课程的成绩:";
        for(j=0;j<M;j++)cout<<stu[i].score[j]<<" ";cout<<endl;
    }
    for(j=0;j<M;j++)
    {
        t=0;
        for(i=0;i<N;i++)
            t+=stu[i].score[j];
        cout<<"课程"<<j+1<<"的总分为:"<<t<<endl;
    }
}
void make_up()
{
    int i,j;
    cout<<"输出各科补考学生的学号、课程和成绩:"<<endl;
    for(j=0;j<M;j++)
        for(i=0;i<N;i++)
        {
            if(stu[i].score[j]<60)
               cout<<"学号:"<<stu[i].num<<"补考课程:课程"<<j+1<<";该课程的成绩:"<<stu[i].score[j]<<endl;
        }
}
int main()
{
    input();//问题(1)
    output();//问题(2、3)
    rank();//问题(4)
    make_up();//问题(5)
    return 0;
}








2010-12-03 20:24
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
不足之处?  呵呵  我要是有100个 1000个  10000个学生 .....
你也这样编吗?  你最大长度怎么办?
以后少用  数组写  尽量用链表

                                         
===========深入<----------------->浅出============
2010-12-04 09:54
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:0 
只需修改M,N的之就行了难道你没有看到吗
2010-12-04 10:32
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:0 
我数据结构没学很好,所以只有这样子了写了。不足之处,多多包涵。
2010-12-04 10:36
骑士vs招魂
Rank: 2
等 级:论坛游民
帖 子:10
专家分:15
注 册:2010-9-10
收藏
得分:5 
能不能用类做呢?
2010-12-04 20:14
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:0 
当然可以用类来做了,我这基本上是用c语言编的,你自己用类改一下就行了,不可能全都我写了啊。
2010-12-05 20:43
风还在
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-12-12
收藏
得分:0 
菜鸟路过
2010-12-12 22:32
快速回复:求一用C++语言编制的学生成绩管理程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031983 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved