zoukankan      html  css  js  c++  java
  • 简单的学生管理系统

    /*本文件要先建一个file3.dat文件,呵呵,我已经很满意了*/
    #include<iostream>
    #include<fstream>
    #include"string"
    #include"conio.h"
    using namespace std;
    struct Score
    {
        int num;
        char name[30];
        char sex;
        float score;
    };
    class Class:public Score
    {
    private:
        void AddData();
        void UpdateData();
        void SearchData();
        void DeleteData();
        void AllData();
    public:
        Score myth;
        fstream file;
        void Run();
    };
    void Class::AddData()
    {
        file.open("file3.dat",ios::out|ios::binary|ios::in);
        char tag;
        do
        {
            file.seekg(0,ios::end);
            cout<<"请输入学号:"<<endl;
            cin>>myth.num;
            cout<<"请输入姓名:"<<endl;
            cin>>myth.name;
            cout<<"请输入性别:"<<endl;
            cin>>myth.sex;
            cout<<"请输入成绩:"<<endl;
            cin>>myth.score;
            file.write((char*)&myth,sizeof(myth));
            cout<<"继续添加吗(Y/N):"<<endl;
            cin>>tag;
            //tag=tolower(tag);//将大写字母转换为小写字母
            while(tag!='Y'&&tag!='N')
            {
            cout<<"输入非法,重新输入(Y/N):";
            cin>>tag;
            }
        }while(tag=='Y');
        file.close();
    }
    void Class::UpdateData()
    {
        cout<<"请输入要修改的学号:"<<endl;
        cin>>num;
       fstream file("file3.dat",ios::out|ios::binary|ios::in);
       file.seekg(0,ios::beg);
       while(!file.eof())
       {  
           file.read((char*)&myth,sizeof(myth));
           if(num==myth.num)break;
        }
        if(!file.eof())
        {
            cout<<"输出原来的学号:"<<myth.num<<endl;
            cout<<"输出原来的姓名:"<<myth.name<<endl;
            cout<<"输出原来的性别:"<<myth.sex<<endl;
            cout<<"输出原来的成绩:"<<myth.score<<endl;
            cout<<"输入要修改的学号:"<<endl;
            cin>>num;
            myth.num=num;
            cout<<"输入要修改的姓名:"<<endl;
            cin>>name;
            strcpy(myth.name,name);
            cout<<"输入要修改的性别:"<<endl;
            cin>>sex;
            myth.sex=sex;
            cout<<"输入要修改的成绩:"<<endl;
            cin>>score;
            myth.score=score;
            cout<<"输出修改后的学号:"<<myth.num<<endl;
            cout<<"输出修改后的姓名:"<<myth.name<<endl;
            cout<<"输出修改后的性别:"<<myth.sex<<endl;
            cout<<"输出修改后的成绩:"<<myth.score<<endl;
            file.seekg(-sizeof(myth),ios::cur);
            file.write((char*)&myth,sizeof(myth));
        }
        else
        {
        cout<<"对不起,无学号可以修改:"<<endl;
        file.clear();//清除文件标志
        }
        file.close();
    }    
    void Class::SearchData()
    {
        cout<<"请输入要查找的学号:"<<endl;
        cin>>num;
       file.open("file3.dat",ios::out|ios::binary|ios::in);
       file.seekg(0,ios::beg);
       while(!file.eof())
       {  
           file.read((char*)&myth,sizeof(myth));
           if(num==myth.num)break;
        }
        if(!file.eof())
        {
            cout<<"输出学号:"<<myth.num<<endl;
            cout<<"输出姓名:"<<myth.name<<endl;
            cout<<"输出性别:"<<myth.sex<<endl;
            cout<<"输出成绩:"<<myth.score<<endl;
        }
        else
        {
        cout<<"对不起,无此学号:"<<endl;
        file.clear();
        }
        //file.clear();
        file.close();
    }
    void Class::DeleteData()
    {
        cout<<"请输入要删除的学号:"<<endl;
        cin>>num;
       fstream file("file3.dat",ios::out|ios::binary|ios::in);
       file.seekg(0,ios::beg);
       while(!file.eof())
       {  
           file.read((char*)&myth,sizeof(myth));
           if(num==myth.num)break;
       }
       if(!file.eof())
       {
            ofstream outfile("tem.dat",ios::app|ios::binary);
            cout<<"输出要删除的学号:"<<myth.num<<endl;
            cout<<"输出要删除的姓名:"<<myth.name<<endl;
            cout<<"输出要删除的性别:"<<myth.sex<<endl;
            cout<<"输出要删除的成绩:"<<myth.score<<endl;
            file.seekg(0,ios::beg);
            file.read((char*)&myth,sizeof(myth));
            while(!file.eof())
            {
                if(num!=myth.num)
                {
                outfile.write((char*)&myth,sizeof(myth));
                }
                file.read((char*)&myth,sizeof(myth));
            }
            file.close();
            outfile.close();
            remove("file3.dat");//删除文件
            rename("tem.dat","file3.dat");//更改文件名
            file.open("file3.dat",ios::in|ios::out|ios::binary);//重新打开
       }
       else
       {
           cout<<"删除失败!"<<endl;
           file.clear();
       }
       file.clear();
       file.close();
    }
    void Class::AllData()
    {
        file.open("file3.dat",ios::out|ios::binary|ios::in);
        file.seekg(0,ios::beg);
        while(!file.eof())
        {
            if(file.peek()==EOF)//保证无数据时不会输出乱码
                break;
            file.read((char*)&myth,sizeof(myth));
            cout<<"输出学号:"<<myth.num<<endl;
            cout<<"输出姓名:"<<myth.name<<endl;
            cout<<"输出性别:"<<myth.sex<<endl;
            cout<<"输出成绩:"<<myth.score<<endl;
            if(file.peek()==EOF)
                break;
        }
        file.clear();
        file.close();
    }
    void Class::Run()
    {
        int select;
        do
        {
            cout<<"请选择:"<<endl;
            cout<<"1.增加数据"<<endl;
            cout<<"2.修改数据"<<endl;
            cout<<"3.查找数据"<<endl;
            cout<<"4.删除数据"<<endl;
            cout<<"5.全部数据"<<endl;
            cout<<"6.退出:"<<endl;
            cin>>select;
            while(cin.get()!='\n');
            switch(select)
            {
            case 1:
                AddData();
                break;
            case 2:
                UpdateData();
                break;
            case 3:
                SearchData();
                break;
            case 4:
                DeleteData();
                break;
            case 5:
                AllData();
                break;
            }
        }while(select!=6);
    }
    
    
    int main()
    {
           int i; 
    
            printf("                        --------------------------------------------                                \n");
            printf("                        |                                          |                                \n");
            printf("                        |           Welcome to MIS of Student      |                                \n");
            printf("                        |                何青辉          |                                \n");
            printf("                        --------------------------------------------                                \n");
    
            printf("                         Please input a number(0..9) to continue!");
            scanf("%d",&i);
        system("title 简单学生管理系统-何青辉");
        system("color 84");
        system("cls");
       // system("mode con cols=80 lines=30");
        Class sco;
        sco.Run();
        getch(); 
        printf("谢谢使用,祝您好运,再见!\n");
        return 0;
    }
    /*不要建file3.dat文件,加强版*/
    #include<iostream>
    #include<fstream>
    #include"string"
    #include"conio.h"
    using namespace std;
    struct Score
    {
        int num;
        char name[30];
        char sex;
        float score;
    };
    class Class:public Score
    {
    private:
        void AddData();//增加数据
        void UpdateData();//更新数据
        void SearchData();//查找数据
        void DeleteData();//删除数据
        void AllData();//所有数据
    public:
        Score myth;
        fstream file;
        void Run();
        Class();
    };
    Class::Class()
    {   
        ifstream infile("file3.dat",ios::in);
        if(!infile)
        {
            ofstream outfile("file3.dat",ios::out);
            outfile.close();        
        }
        else
            infile.close();
        file.open("file3.dat",ios::out|ios::binary|ios::in);
    }
    void Class::AddData()
    {
        char tag;
        do
        {
            file.seekg(0,ios::end);
            cout<<"请输入学号:"<<endl;
            cin>>myth.num;
            cout<<"请输入姓名:"<<endl;
            cin>>myth.name;
            cout<<"请输入性别:"<<endl;
            cin>>myth.sex;
            cout<<"请输入成绩:"<<endl;
            cin>>myth.score;
            file.write((char*)&myth,sizeof(myth));
            cout<<"继续添加吗(Y/N):"<<endl;
            cin>>tag;
            //tag=tolower(tag);//将大写字母转换为小写字母
            while(tag!='Y'&&tag!='N')
            {
            cout<<"输入非法,重新输入(Y/N):";
            cin>>tag;
            }
        }while(tag=='Y');
    }
    void Class::UpdateData()
    {
        cout<<"请输入要修改的学号:"<<endl;
        cin>>num;
       file.seekg(0,ios::beg);
       while(!file.eof())
       {  
           file.read((char*)&myth,sizeof(myth));
           if(num==myth.num)break;
        }
        if(!file.eof())
        {
            cout<<"输出原来的学号:"<<myth.num<<endl;
            cout<<"输出原来的姓名:"<<myth.name<<endl;
            cout<<"输出原来的性别:"<<myth.sex<<endl;
            cout<<"输出原来的成绩:"<<myth.score<<endl;
            cout<<"输入要修改的学号:"<<endl;
            cin>>num;
            myth.num=num;
            cout<<"输入要修改的姓名:"<<endl;
            cin>>name;
            strcpy(myth.name,name);
            cout<<"输入要修改的性别:"<<endl;
            cin>>sex;
            myth.sex=sex;
            cout<<"输入要修改的成绩:"<<endl;
            cin>>score;
            myth.score=score;
            cout<<"输出修改后的学号:"<<myth.num<<endl;
            cout<<"输出修改后的姓名:"<<myth.name<<endl;
            cout<<"输出修改后的性别:"<<myth.sex<<endl;
            cout<<"输出修改后的成绩:"<<myth.score<<endl;
            file.seekg(-sizeof(myth),ios::cur);
            file.write((char*)&myth,sizeof(myth));
        }
        else
        {
        cout<<"对不起,无学号可以修改:"<<endl;
        file.clear();//清除文件标志
        }
    }    
    void Class::SearchData()
    {
        cout<<"请输入要查找的学号:"<<endl;
        cin>>num;
       file.seekg(0,ios::beg);
       while(!file.eof())
       {  
           file.read((char*)&myth,sizeof(myth));
           if(num==myth.num)break;
        }
        if(!file.eof())
        {
            cout<<"输出学号:"<<myth.num<<endl;
            cout<<"输出姓名:"<<myth.name<<endl;
            cout<<"输出性别:"<<myth.sex<<endl;
            cout<<"输出成绩:"<<myth.score<<endl;
        }
        else
        {
        cout<<"对不起,无此学号:"<<endl;
        file.clear();
        }
    }
    void Class::DeleteData()
    {
        cout<<"请输入要删除的学号:"<<endl;
        cin>>num;
       file.seekg(0,ios::beg);
       while(!file.eof())
       {  
           file.read((char*)&myth,sizeof(myth));
           if(num==myth.num)break;
       }
       if(!file.eof())
       {
            ofstream outfile("tem.dat",ios::app|ios::binary);
            cout<<"输出要删除的学号:"<<myth.num<<endl;
            cout<<"输出要删除的姓名:"<<myth.name<<endl;
            cout<<"输出要删除的性别:"<<myth.sex<<endl;
            cout<<"输出要删除的成绩:"<<myth.score<<endl;
            file.seekg(0,ios::beg);
            file.read((char*)&myth,sizeof(myth));
            while(!file.eof())
            {
                if(num!=myth.num)
                {
                outfile.write((char*)&myth,sizeof(myth));
                }
                file.read((char*)&myth,sizeof(myth));
            }
            file.close();
            outfile.close();
            remove("file3.dat");//删除文件
            rename("tem.dat","file3.dat");//更改文件名
            file.open("file3.dat",ios::in|ios::out|ios::binary);//重新打开
       }
       else
       {
           cout<<"删除失败!"<<endl;
           file.clear();
       }
       file.clear();
    }
    void Class::AllData()
    {
        file.seekg(0,ios::beg);
        while(!file.eof())
        {
            if(file.peek()==EOF)//保证无数据时不会输出乱码
                break;
            file.read((char*)&myth,sizeof(myth));
            cout<<"输出学号:"<<myth.num<<endl;
            cout<<"输出姓名:"<<myth.name<<endl;
            cout<<"输出性别:"<<myth.sex<<endl;
            cout<<"输出成绩:"<<myth.score<<endl;
            if(file.peek()==EOF)
                break;
        }
        file.clear();
    }
    void Class::Run()
    {
        int select;
        do
        {
            cout<<"请选择:"<<endl;
            cout<<"1.增加数据"<<endl;
            cout<<"2.修改数据"<<endl;
            cout<<"3.查找数据"<<endl;
            cout<<"4.删除数据"<<endl;
            cout<<"5.全部数据"<<endl;
            cout<<"6.退出:"<<endl;
            cin>>select;
            while(cin.get()!='\n');
            switch(select)
            {
            case 1:
                AddData();
                break;
            case 2:
                UpdateData();
                break;
            case 3:
                SearchData();
                break;
            case 4:
                DeleteData();
                break;
            case 5:
                AllData();
                break;
            }
        }while(select!=6);
    }
    int main()
    {
           int i;
            printf("                        --------------------------------------------                                \n");
            printf("                        |                                          |                                \n");
            printf("                        |           Welcome to MIS of Student      |                                \n");
            printf("                        |                       myth               |                                \n");
            printf("                        --------------------------------------------                                \n");
    
            printf("                         Please input a number(0..9) to continue!");
            scanf("%d",&i);
        system("title 简单学生管理系统-myth");
        system("color 84");
        system("cls");
        //system("mode con cols=80 lines=30&color 9f");
        Class sco;
        sco.Run();
        getch(); 
        printf("谢谢使用,祝您好运,再见!\n");
        return 0;
    }
  • 相关阅读:
    ASP.NET AJAX Beta 1 发布 (转载)
    ASP.NET里常用的JS (转贴)
    让您的Ajax应用加载数据时界面友好 (转贴)
    模态窗口 javascript html
    最亲密接触Dhtml&JScript开发细节 (转贴)
    Hashtable的使用
    2009年全国年节及纪念日放假办法
    详解.NET中的动态编译
    CSS2.0样式手册_说明_SDK下载chm
    [转]DISTINCT 和 ORDER BY 使用第三个字段进行排序
  • 原文地址:https://www.cnblogs.com/heqinghui/p/2687798.html
Copyright © 2011-2022 走看看