學生信息管理系統

大一時候的作業。。。

#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;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章