回 帖 发 新 帖 刷新版面

主题:求救!!!

数据结构——学生数据结构成绩管理系统
基本要求:1)学生信息及成绩的录入
    要求包括的学生信息有:学号,姓名,性别,出生日期,民族 及数据结构成绩(具体内容可自行假设,至少录入10名以上学生).
    所录入的学生按学号散列存储(散列函数为 学号%5 取整,如 1002%5 =2),采用拉链法解决冲突.
(2)学生成绩的查询
    要求根据提供的学号完成学生成绩的查询(必须采用散列查找).
(3)学生成绩的分段统计和排序输出
    统计出各分数段学生人数(60分以下,60~70,71~80,...)
    采用堆排序,将学生成绩从高到低排序输出.

注:基本功能最好以菜单形式提供,可反复使用各项功能
希望有人请教一下!!![em32]

回复列表 (共1个回复)

沙发


//泥潭里的金鱼
//QQ:826070468
#include <iostream>
#include <string.h>
using namespace std;
/*
数据结构——学生数据结构成绩管理系统
基本要求:1)学生信息及成绩的录入
要求包括的学生信息有:学号,姓名,性别,出生日期,民族 及数据结构成绩(具体内容可自行假设,至少录入10名以上学生).
所录入的学生按学号散列存储(散列函数为 学号%5 取整,如 1002%5 =2),采用拉链法解决冲突.
(2)学生成绩的查询
要求根据提供的学号完成学生成绩的查询(必须采用散列查找).
(3)学生成绩的分段统计和排序输出
统计出各分数段学生人数(60分以下,60~70,71~80,...)
采用堆排序,将学生成绩从高到低排序输出.

  注:基本功能最好以菜单形式提供,可反复使用各项功能
  希望有人请教一下 
*/

class student
{
public:
    int student_Num;//学号
    string name;    //姓名
    string sex;        //性别
    int bornData;    //出生日期
    string nation;    //民族
    int    Data_achievement;    //数据结构成绩
};

int swap(int *a,int *b)
{
    int temp;
    temp=*a;
    *a=*b; 
    *b = temp; 
    return 0;
}


void fun()
{
    int p;
    cin >>p;

    if (p==1)
    {
        cout <<"成绩为65"<<endl;
    }
    else if ( p ==2)
    {
            cout <<"成绩为15"<<endl;
    }
    else if ( p ==3)
    {
        cout <<"成绩为85"<<endl;
    }
    else if ( p ==4)
    {
        cout <<"成绩为75"<<endl;
    }
    else
    {
        cout <<"input angin!"<<endl;
        fun(  );
    }
}

int main()
{        
    
    student a,b,c,d;
    a.student_Num = 1;
    b.student_Num = 2;
    c.student_Num = 3;
    d.student_Num = 4;
    
    a.Data_achievement = 65;
    b.Data_achievement = 15;
    c.Data_achievement = 85;
    d.Data_achievement = 75;

    int Num    [4] = {a.student_Num ,b.student_Num ,c.student_Num ,d.student_Num};
    int achi[4] = {
        a.Data_achievement,
            b.Data_achievement,
            c.Data_achievement,
            d.Data_achievement};
    
        int m = 4;
        for(int k = 4; k >0;k--)
        {
            for (int i = 0;i<m;i++)
            {
                if(achi[i]>achi[i+1])
                {
                    swap(achi[i],achi[i+1]);
                }
            }
            m--;
        }
        cout <<"-----分数排列------"<<endl;
        for (int L = 0;L<4;L++ )
        {
            cout <<achi[L+1]<<endl;
        }
        cout <<"输入学号:"<<endl;
        fun();
        return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册