| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 413 人关注过本帖
标题:学生成绩管理系统 指点
只看楼主 加入收藏
yansheng1003
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-25
结帖率:100%
收藏
 问题点数:0 回复次数:0 
学生成绩管理系统 指点
1.学生成绩管理系统
     要求:
      (1)由键盘输入每个学生的学号和四门课程的成绩;
(2)计算每个学生的平均分和总分;
(3)按总分从高到低排出名次,并按名次输出学生的基本信息,包括学号、各科成绩,平均分和总分;
(4)根据用户要求,输出某门课程(由键盘输入课程号且成绩在90分以上(含90分))且总分在前五名的学生情况,包括学号、各科成绩、平均分和总分;

这个是我自己写的:
程序代码:
#include<iostream>
#include<string>
using namespace std;
struct Course
{
    int num;float score;
};
class Student{
    public:
    string name,id;
    Course c[4];

    void set_data()
    {
        cin>>name>>id;
        for(int i=0;i<4;i++) cin>>c[i].score;
        cout<<endl;
    }
    void output()
    {
        cout<<name<<'\t'<<id<<'\t';
        for(int i=0;i<4;i++) cout<<c[i].score<<'\t';
        cout<<endl;
    }
    float total()
    {
        float tot=0;
        for(int i=0;i<4;i++) tot+=c[i].score;
        return(tot);
    }
};

int main()
{
    int i,j,m,n,p,q;
    Student stu[100],stu1;
    /* 定义 语文的课程号为1 数学的课程为2 英语的课程号为3 综合的课程号为4 */
    for(i=0;i<100;i++)
    for(j=1;j<=4;j++) stu[i].c[j].num=j;

    //键盘输入学生的信息
    cout<<"请输入学生的姓名  学号  语文 数学 外语 综合  成绩:"<<endl;
    for(i=0;i<100;i++)
    {
    
        stu[i].set_data();
        // stu[i].output();
        if(stu[i].name=="") break;
        stu[i].total();
        m=i;
        // cout<<m<<endl;
    }

    //总分从高到低依次排列输出
    cout<<"姓名"<<'\t'<<"学号"<<'\t'<<"语文"<<'\t'<<"数学"<<'\t'<<"外语"<<'\t'<<"综合"<<endl;
    for(i=0;i<=m;i++)
    {
        p=i;
        for(j=i+1;j<=m;j++)
        if(stu[j].total()>stu[p].total()) p=j;
            if(p!=i)
            {stu1=stu[i];stu[i]=stu[p];stu[p]=stu1;}
            // if(i=5) n=p;
    }
    
    for(i=0;i<=m;i++)
        stu[i].output();

    //输入一门课程的课程号,并查询输出90分以上且总分在前五名
    cout<<"请输入课程号:"; cin>>q;
    cout<<"姓名"<<'\t'<<"学号"<<'\t'<<"语文"<<'\t'<<"数学"<<'\t'<<"外语"<<'\t'<<"综合"<<endl;
    for(i=0;i<5;i++)
    {
        // if(stu[i].total()>stu[n].total())
            for(j=0;j<4;j++)
                if(stu[i].c[j].num==q&&stu[i].c[j].score>=90)
                    stu[i].output();
    }
    return 0;
}

我有几点疑问:
1.我这个成绩的录入 一开始没有指定应该录入多少人的成绩,应该用个什么方法更好呢
2.还有类里面的公有 与私有我现在是不知道哪些是哪类了
3.怎么设计这个程序结构能够 更模块化呢
4.其他一些你能看到所有问题请都指正
搜索更多相关主题的帖子: 管理系统 课程 用户 
2012-06-25 09:10
快速回复:学生成绩管理系统 指点
数据加载中...
 
   



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

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