学生信息管理系统

大一时候的作业。。。

#include <iostream>
#include <conio.h>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
#include <string>

using namespace std;

void menu()
{
    system("color 5f");
    cout<<"学生成绩综合管理系统"<<endl<<endl;
    cout<<"1.新增学生信息"<<endl<<endl;
    cout<<"2.输出学生信息"<<endl<<endl;
    cout<<"3.修改学生信息"<<endl<<endl;
    cout<<"4.查找学生信息"<<endl<<endl;
    cout<<"5.按成绩升序排序"<<endl<<endl;
    cout<<"6.按成绩降序排序"<<endl<<endl;
    cout<<"7.按学号排序"<<endl<<endl;
    cout<<"w  保存文件"<<endl<<endl;
    cout<<"r  读取文件"<<endl<<endl;
    cout<<"e  退出系统"<<endl;
}


class student
{
public:
    student();
    ~student();
    void tianjia();
    void shuchu();
    void xiugai();
    void chazhao();
    void shengxu();
    void jiangxu();
    void anxuehaopai();
    void savefile();
    void readfile();
    void tuichu()const;

    void display()const;
    void getdate();

    int number;
    string name;
    int score;

private:

};


student *list[99999]={0};
int position=0;

void student::display ()const
{
    cout<<"学号  "<<"姓名      "<<"分数    "<<endl;
    cout<<left<<setw(6)<<number<<setw(10)<<name<<setw(6)<<score<<endl;
}
void student::getdate()
{
    cin>>number;
    cin>>name;
    cin>>score;
}

student::student()
{
}

student::~student()
{
}

//1添加信息
void student::tianjia()
{
    int n;
    cout<<"请输入要添加的人数: "<<endl;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"请输入要添加的数据:(学号 姓名 分数) "<<endl;
        list[position++]=new student;
        cin>>list[position-1]->number>>list[position-1]->name>>list[position-1]->score;
    }

}

//2输出内容
void student::shuchu()
{
    system("cls");
    for(int i=0;i<position;i++)
    {
        list[i]->display();
    }
    cout<<"按任意键返回主菜单"<<endl;
    getch();
}

//3修改学生信息
void student::xiugai()
{
    int num;
    cout<<"请输入要修改学生的学号: "<<endl;
    cin>>num;
    int i;
    int a,c;
    string b;
    for(i=0;i<position;i++)
    {
        if(list[i]->number==num)
        {
            cout<<"找到该学生\n请输入修改后的学号 姓名 成绩"<<endl;
            cin>>a>>b>>c;
            list[i]->number=a;
            list[i]->name=b;
            list[i]->score=c;
        }
    }
    if(i==position)
    cout<<"没有找到要改的人"<<endl;
}
//4查找学生
void student::chazhao()
{
    int num;
    cout<<"请输入要搜的学号: "<<endl;
    cin>>num;

    int i;
    for(i=0;i<position;i++)
    {
        if(list[i]->number==num)
        break;
    }
    if(i==position)
    cout<<"没有找到"<<endl;
    else
    {
        cout<<"匹配的结果:  "<<endl;
        list[i]->display();
    }
}
//5升序排列
void student::shengxu()
{
    for(int i=0; i<position-1; i++)
    {
        for(int j=i+1; j<position; j++)
        if(list[j]->score<list[i]->score)
        {
            student *tem=list[i];
            list[i]=list[j];
            list[j]=tem;
        }
    }
}
//6降序排列
void student::jiangxu()
{
    for(int i=0; i<position-1; i++)
    {
        for(int j=i+1; j<position; j++)
        if(list[j]->score>list[i]->score)
        {
            student *tem=list[i];
            list[i]=list[j];
            list[j]=tem;
        }
    }
}

//7按学号排列
void student::anxuehaopai()
{
    for(int i=0; i<position-1; i++)
    {
        for(int j=i+1; j<position; j++)
        if(list[j]->number<list[i]->number)
        {
            student *tem=list[i];
            list[i]=list[j];
            list[j]=tem;
        }
    }
}

//w保存文件
void student::savefile()
{
    system("cls");
    cout<<"请输出要存的位置:  "<<endl;
    char weizhi[200];
    cin.getline(weizhi,200);
    fstream output(weizhi,ios::out);
    for(int i=0;i<position;i++)
    {
        output<<list[i]->number<<' '<<list[i]->name<<' '<<list[i]->score<<'\n';
    }
    output.close();
}

//r读取文件
void student::readfile()
{
    cout<<"请输入完整的路径名文件名:"<<endl;
    char wenjianming[200];
    cin.getline(wenjianming,200);
    fstream input(wenjianming, ios::in);

    while(1)
    {
        int number;
        input>>number;
        if(input.eof())
        break;
        list[position++]=new student;
        list[position-1]->number=number;
        input>>list[position-1]->name>>list[position-1]->score;

    }
    input.close();
}


//e退出系统


int main()
{
    student hehe;
    while(1)
    {
        system("cls");
        menu();
        char a=getch();
        switch(a)
        {
            case '1':
            {
                system("cls");
                hehe.tianjia();
                hehe.shuchu();
                break;
            }
            case '2':
                system("cls");
                hehe.shuchu();
                break;
            case '3':
                hehe.xiugai();
                break;
            case '4':
                system("cls");
                hehe.chazhao();
                getch();
                break;
            case '5':
                system("cls");
                hehe.shengxu();
                hehe.shuchu();
                break;
            case '6':
                system("cls");
                hehe.jiangxu();
                hehe.shuchu();
                break;
            case '7':
                system("cls");
                hehe.anxuehaopai();
                hehe.shuchu();
                break;
            case 'w':
                system("cls");
                hehe.savefile();
                break;
            case 'r':
                system("cls");
                hehe.readfile();
                break;
            case 'e':
                goto jieshu;
        }
    }
    jieshu:cout<<"谢谢使用!O(∩_∩)O"<<endl;
    cout<<"按任意键退出"<<endl;
    getch();
    return 0;
}


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值