学生管理系统--CCAT

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

#define MAXACCOUNTNUMBER 500

using namespace std;

//欢迎界面
void welcome();
//主界面
void mainFrame();
//查询学生信息
void bid();
//显示学生信息
void show();
//创建账户
void openAccount();
//删除学生
void deletestu();
//修改学生
void altre();
//对学生按照学号排序
void sortstu();
//读取文件
void Read() ;
//写入文件
void Save();

struct Account
{
    long stuNumber;   //学号
    char stuName[20]; //姓名
    char stuPwd[10];  //性别
    int  ages;       //年龄
    double grade ;   //成绩
};

//所有学生信息
Account array[MAXACCOUNTNUMBER];
//人员的数量
int size=0;

int main()
{
     Read();
    int i;
    char loginName[20];
    char loginPwd[20];
    welcome();
    for(i=0;i<3;i++)
    {
        cout<<endl<<"请输入用户名:";
        cin>>loginName;
        cout<<endl<<"请输入六位登陆密码:";
        cin>>loginPwd;
        if(strcmp(loginName,"admin")==0&&strcmp(loginPwd,"123456")==0)
        {
            mainFrame();
            break;
        }
        else
        {
            cout<<endl<<"用户名或密码输入错误"<<endl;
            cout<<endl<<"您还有"<<2-i<<"次机会"<<endl<<endl;
            if(2-i==0){
                cout<<"请办理密码业务后再来!"<<endl;
            }
        }
    }
    return 0;
}

void welcome()
{

    cout<<"                            欢迎登录学生信息管理系统"<<endl;

}

void mainFrame()
{
    int order=0;
    cout<<endl<<endl<<"                            欢迎登录学生信息管理系统"<<endl;
    cout<<endl;
    cout<<"                               1.增加学生"<<endl;
    cout<<"                               2.删除学生"<<endl;
    cout<<"                               3.修改信息"<<endl;
    cout<<"                               4.所有学生"<<endl;
    cout<<"                               5.学生排序"<<endl;
    cout<<"                               6.查找学生"<<endl;
    cout<<"                               7.退出系统"<<endl;

    cout<<endl<<"请输入操作指令: ";
    cin>>order;
    switch(order)
    {
    case 1:
        openAccount();
        break;
    case 2:
        deletestu();
        break;
    case 3:
        altre();
        break;
    case 4:
        show();
        break;
    case 5:
        sortstu();
        break;
    case 6:
        bid();
        break;
    case 7:
          Save();
          exit(1);
          break;

    default:
        cout<<endl;
        cout<<"您输入的指令有误!  系统退出!!!"<<endl;
        cout<<endl;
        Save();
        exit(1);
        break;
    }
}

void show()
{
    cout<<endl<<"                   学生信息总览"<<endl;
    cout<<endl;
    cout<<"学号   姓名   性别    年龄    成绩     "<<endl;
    cout<<"----------------------------------------------------------------"<<endl;
    for(int i=0;i<size;i++)
    {
        if(array[i].stuNumber!=-1)
        {
            cout<<array[i].stuNumber<<'\t'<<array[i].stuName<<'\t'<<array[i].stuPwd<<'\t'<<array[i].ages<<'\t'<<array[i].grade<<endl;

        }
    }
     mainFrame();

}

//创建账户
void openAccount()
{
    char s;
    cout<<"请输入学生的学号,姓名,性别,年龄,成绩:"<<endl;
    cin>>array[size].stuNumber>>array[size].stuName>>array[size].stuPwd>>array[size].ages>>array[size].grade;
    size++;
    cout<<endl<<"学生信息创建成功"<<endl;
      cout<<"是否继续添加学生:y  or  n"<<endl;
      cin>>s;
      if(s=='y'||s=='Y'){
            openAccount();

      }else{
          fflush(stdin);
         mainFrame();
      }

}

//删除学生
void deletestu()
{
    int a;
    char b;
    cout<<"请输入删除学生的下标:"<<endl;
    cin>>a;
    array[a-1].stuNumber=-1;
    cout<<"删除成功,是否继续 y  or   n"<<endl;
    cin>>b;
    if(b=='y'||b=='Y'){
            deletestu();

      }else{
          fflush(stdin);
         mainFrame();
      }


}

//修改学生
void altre()
{
    long a;
    char b;
    cout<<"请输入要修改学生的学号:"<<endl;
    cin>>a;
    for(int i=0;i<size;i++)
    {
        //cout<<"*******"<<endl;
        if(array[i].stuNumber==a)
        {
            cout<<"请输入学生的姓名,性别,年龄,成绩:"<<endl;
            cin>>array[i].stuName>>array[i].stuPwd>>array[i].ages>>array[i].grade;
            fflush(stdin);
            cout<<"修改成功。修改后的信息为:"<<endl;
            cout<<array[i].stuNumber<<'\t'<<array[i].stuName<<'\t'<<array[i].stuPwd<<'\t'<<array[i].ages<<'\t'<<array[i].grade<<endl;
            break;
            cout<<"是否继续 y  or  n"<<endl;
             cin>>b;
                if(b=='y'||b=='Y'){
                altre();

            }
        }
    }
     cout<<"没有录入该信息!"<<endl;
    mainFrame();
}

//对学生按照学号排序
void sortstu()
{
    int i,j,t,m;
    double n;
    char stu[20];
    char sex[20];
    for(j=0;j<size;j++)
        for(i=0;i<size-j-1;i++)
            if(array[i].stuNumber>array[i+1].stuNumber)
            {
                t=array[i].stuNumber;
                array[i].stuNumber=array[i+1].stuNumber;
                array[i+1].stuNumber=t;
                strcpy(stu,array[i].stuName);
                strcpy(array[i].stuName,array[i+1].stuName);
                strcpy(array[i+1].stuName,stu);
                strcpy(sex,array[i].stuPwd);
                strcpy(array[i].stuPwd,array[i+1].stuPwd);
                strcpy(array[i+1].stuPwd,sex);
                m=array[i].ages;
                array[i].ages=array[i+1].ages;
                array[i+1].ages=m;
                n=array[i].grade;
                array[i].grade=array[i+1].grade;
                array[i+1].grade=n;

            }
            cout<<"排序后的结果是:"<<endl;
            show();
}

//查询学生信息
void  bid()
{
    long num;
    char b;
    cout<<"请输入您要查询的学生学号:"<<endl;
    cin>>num;
    for(int i=0;i<size;i++){
        if(array[i].stuNumber==num){
            cout<<array[i].stuNumber<<'\t'<<array[i].stuName<<'\t'<<array[i].stuPwd<<'\t'<<array[i].ages<<'\t'<<array[i].grade<<endl;
             cout<<"是否继续 y  or  n"<<endl;
             cin>>b;
                if(b=='y'||b=='Y'){
                bid();

            }
        }
    }
    cout<<"没有录入该信息!"<<endl;
    mainFrame();
}

//读取文件
void Read()
{
    ifstream infile("学生数据.txt",ios::in);        //文件目标
    if(!infile)
    {
        cerr<<endl<<"学生数据文件不存在!!!"<<endl<<endl;
        exit(1);
    }
    while(!infile.eof())                //依次检索文件
    {

        infile>>array[size].stuNumber>>array[size].stuName>>array[size].stuPwd>>array[size].ages>>array[size].grade;
        size++;
    }
    size-=1;
    infile.close();

}

//保存文件
void Save()
{
    ofstream outfile("学生数据.txt",ios::out);
    if(!outfile)
    {
        cerr<<endl<<"文件不存在!"<<endl;
        exit(1);
    }
    for(int i=0;i<size;i++)                    //依次写入文件
    {
        outfile<<array[i].stuNumber<<"  "<<array[i].stuName<<"  "<<array[i].stuPwd<<"  "<<array[i].ages<<"  "<<array[i].grade<<endl;
    }
    outfile.close();
    cout<<endl<<"祝您心情愉快!"<<endl;
    cout<<endl<<"欢迎您下次使用!"<<endl;
    cout<<endl;
    exit(1);
}


输出结果:

学生管理系统--CCAT_第1张图片

学生管理系统--CCAT_第2张图片


心得体会:

可能不是很完善,考试仓促。

你可能感兴趣的:(学生管理系统--CCAT)