Akairyou

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

高校教师在线答疑辅导系统

1    系统环境

1.1 软件环境

操作系统Windows 10,工具软件Dev C++, Visual Studio 2019

1.2 硬件环境

个人电脑(配置不低于:CPU为P4,主频1.6G,内存256M,硬盘40GB)

2    原项目基本内容

2.1 功能模块说明

主界面:选择1:输入姓名和密码,进入学生二级界面

 

1选课功能,可以选择当前有的课程;

2删课功能,可以删除已选的课;

3查看自己的所有选课;

4查看课程是否有老师留言;

5退出登录;

 

主界面:选择2:输入姓名和密码,进入老师二级界面

1开课;

2删课;

3查看自己所有课;

4添加留言;

5退出登录;

 

主界面:选择3:可以创建学生账号,教师账号

 

2.2 系统流程

 

3    扩充设计内容

3.1 功能模块及详细说明

功能说明:

 创建老师账号时增加识别码验证功能

对于老师账号的创建,增加了验证系统,教师需要输入识别码:teacher_12138才能创建,增加安全性。

 增加管理员账号功能

主界面:输入3838438进入管理员页面:

 

可以删除老师,学生的信息

 

详细说明:

类:

Course 类

    变量:

        long int id, string coursename, struct info message, int grossnum, int oddnum

    函数:

        Course( getid, getcoursename, getgrossnum)//创建课程

        void set_oddnum(int newoddnum)//设置新的课余量,用于从文件读取时重新确定课余量

        virtual void show_course()=0//显示课程

        virtual void set_courseinfo()=0//课程信息写入文件

        void add_message()//添加课程答疑辅导信息

        virtual int get_type()=0//给选修还是必修

        long int get_id()//获取id0

        string get_coursename()//获取名称

        int get_grossnum()//获取总人数

        int get_oddnum()//获取剩余人数

 

BCourse 类//实现Course基类的纯虚函数

XCourse 类//实现Course基类的纯虚函数

 

Teacher 类

    变量:

        string name, string password, Course* courseadd[5], int addnow=0

    函数:

        Teacher( getname, getpassword)//录入账号密码

friend istream & operator >> ( istream &in, Teacher &teachernow)//重载输入运算符

        void add_course( gettype, getid, getcoursename, getgrossnum)//添加课程

        int delete_course( getid)//删除老师的courseadd中的课程指针

        void search_course()//显示老师所有的课

        string get_name()//获取名字

        friend Void set_teacherinfo(Teacher *teachernow)//写入文件

 

Student 类//与Teacher类类似

 

Deal 类

    变量:

        Teacher **te, Student **st, Course **co

    函数:

        Void mt()//刷新并输出管理员系统标题

        Void t()//刷新并输出课程系统标题

        Void dot(int i)//退出过程中输出点来达到“加载中”的效果,i表示输出点的个数

        Void rolling(string a)//登录成功后出现的加载进度条,a是进度条上方显示内容

 

函数:

Course *search_courseplus(long int getid)//通过ID检索课程并返回检索到的Course类对象的地址

void  quicksort_array(Course **ccourselist,int low,int high)//快速排序

void show_allcourse()//显示所有课程

int read_courseinfo()//从文件读取课程信息

int read_teacherinfo()//从文件读取教师信息

int read_studentinfo()//从文件读取学生信息

int sortlist(Course *sortnow)//删除课程信息

int sortlist(Teacher *sortnow) //删除教师信息

int sortlist(Student *sortnow) //删除学生信息

void beforeover()//程序结束前保存各个信息到文件

 

全局变量:

Course *courselist[50]={NULL}//存所有课程类对象的地址

int courselistnow=0//表示当前程序内有多少门课

Teacher *teacherlist[50]={NULL}//存所有教师类对象的地址

int teacherlistnow=0//表示当前程序内有多少教师

Student *studentlist[50]={NULL}//存所有学生类对象的地址

int studentlistnow=0//表示当前程序内有多少学生

bool isreadcourse=false//确定课程文件是否读取

bool isreadteacher=false//确定教师文件是否读取

bool isreadstudent=false//确定学生文件是否读取

3.2 系统流程

  

4    参考文献

CSDN:C++ 获取当前时间,并转换成string类型

网址:https://blog.csdn.net/g_66_hero/article/details/97487543

CSDN: 图解快速排序(C++实现)

网址:https://blog.csdn.net/qq_28584889/article/details/88136498

 

 

5    测试用文件下载

 https://files.cnblogs.com/files/blogs/669017/Week1%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6.zip

6    源代码

#include <iostream> 
#include <cstring>
#include <ctime>
#include <windows.h>
#include<vector>
#include<map>
#include <fstream> 
using namespace std;

/*
所有类名请首字母大写
所有函数名请小写,函数名结构 动词_名词()
所有变量名请小写 
coursetype=1 为必修  coursetype=2 为选修 
如果信息显示乱码,请将文件的编码方式改为ANSI 
*/ 


typedef struct info
{
    string timenow;
    string inform;
} info;

//Course类 
class Course{
    protected:
        long int id;//课程ID 
        string coursename;//课程名称 
        info message;//课程辅导信息 
        int grossnum;//课程总容量 
        int oddnum;//课程剩余容量
        int coursetype;
    public:
        Course();//容错构造 
        Course(long int,string,int);//创建课程 
        void set_oddnum(int); 
        void add_message();//添加课程消息 
        long int get_id();//获取课程ID 
        string get_coursename();//获取课程名称 
        int get_grossnum();//获取总容量 
        int get_oddnum();//获取剩余容量 
        virtual int get_type()=0;//获取课程为选修还是必修 
        virtual void show_course()=0;//显示课程信息 
        void show_message(); //显示教师留言 
        virtual void set_courseinfo()=0;//将课程信息写入文件 
};

//BCourse类
class BCourse:public Course{
    protected:
        int coursetype;
    public:
        BCourse();
        BCourse(long int,string,int);
        friend istream & operator >> ( istream &in, BCourse &coursenow);
        void show_course();
        void set_courseinfo();
        int get_type();
}; 
//XCourse类
class XCourse:public Course{
    protected:
        int coursetype;
    public:
        XCourse();
        XCourse(long int,string,int);
        friend istream & operator >> ( istream &in, XCourse &coursenow);
        void show_course();
        void set_courseinfo();
        int get_type();
}; 
//Teacher类
class Teacher{
    protected:
        string name;
        string password;
    public:
        Course *courseadd[5];
        int addnow;
        Teacher();
        Teacher( string getname,string getpassword);
        friend istream & operator >> ( istream &in, Teacher &teachernow);
        void add_course( int gettype,long int getid,string getcoursename,int getgrossnum);
        int delete_course(long int getid);//返回1为成功,0为失败 
        void search_course();
        string get_name();
        string get_password();
        friend void set_teacherinfo(Teacher *); 
}; 
//Student类
class Student{
    protected:
        string name;
        string password;
    public:
        Course *courseadd[23];
        int addnow;
        Student();
        Student(string getname,string getpassword);
        friend istream & operator >> ( istream &in, Student &studentnow);
        void select_course(Course *select);
        int unselect_course(long int courseid);
        int unselect_course();
        void search_course();
        string get_name(); 
        string get_password();
        friend void set_studentinfo(Student *studentnow);
}; 

//全局变量
Course *courselist[50]={NULL};
int courselistnow=0;
Teacher *teacherlist[50]={NULL};
int teacherlistnow=0;
Student *studentlist[50]={NULL};
int studentlistnow=0;
bool isreadcourse=false;
bool isreadteacher=false;
bool isreadstudent=false;
void t();
void rolling(string);

//函数实现
Course *search_courseplus(long int getid)//通过ID检索课程 
{
    int i;
    long int nowid=getid;
    for(i=0;i<courselistnow;i++)
    {
        if(courselist[i]->get_id()==nowid)
            return courselist[i];
    }
    return NULL; 
}
void  quicksort_array(Course **ccourselist,int low,int high)//快速排序 
{
    if(low<high)
    {
    int i=low,j=high;
    Course **p=ccourselist;
    long int key=p[i]->get_id();
    Course *keyaddress=p[i];
    int still;
    for(;i<j;)
    {
        while(j>low&&i<j&&p[j]->get_id()>=key)
        {j--;}
        if(i<j)
            p[i]=p[j];
        while(i<high&&i<j&&p[i]->get_id()<=key)
        {i++;}
        if(i<j)
            p[j]=p[i];
    }
    p[i]=keyaddress;
    still=i;
    quicksort_array(ccourselist,low,still-1);
    quicksort_array(ccourselist,still+1,high);
    }
}
void show_allcourse()//显示所有课程 
{
    int i;
    if(courselistnow==0)
        cout<<"\n\t\t\t\t      当前尚没有老师添加课程……\n";
    else
    {
        quicksort_array(courselist,0,courselistnow-1);    
        for(i=0;i<courselistnow;i++)
        {
            if(courselist[i]->get_type()==1)
                cout<<"\n\t\t  课程ID:"<<courselist[i]->get_id()<<"  课程名称:"<<courselist[i]->get_coursename()<<"  课程类型:必修"<<"  课余量:"<<courselist[i]->get_oddnum()<<"\n";
            else
                cout<<"\n\t\t  课程ID:"<<courselist[i]->get_id()<<"  课程名称:"<<courselist[i]->get_coursename()<<"  课程类型:选修"<<"  课余量:"<<courselist[i]->get_oddnum()<<"\n";
        }
    }
}
int read_courseinfo()//从文件读取
{
    ifstream fin("courseinfo.dat", ios::in);
    if (!fin)
        return 0;
    isreadcourse = true;            //写入模式
    int gettype;
    long int getid;
    string getcoursename;
    int getgrossnum;
    int getoddnum;
    for (; fin.eof() == 0;)
    {
        fin >> gettype;
        switch (gettype)
        {
            case 1:
                fin>> getid>>getcoursename>>getgrossnum>>getoddnum;
                courselist[courselistnow++]=new BCourse(getid,getcoursename,getoddnum);
                courselist[courselistnow-1]->set_oddnum(getoddnum);
                break;
            case 2:
                fin>> getid>>getcoursename>>getgrossnum>>getoddnum;
                courselist[courselistnow++]=new XCourse(getid,getcoursename,getoddnum);
                courselist[courselistnow-1]->set_oddnum(getoddnum);
                break;
            default:
                cout<<"\n\t\t\t\t   读取courseinfo.dat文件时出错……\n";
                system("pause");
                exit(1);
        }
    }
    fin.close();
    isreadcourse = false;
    return 1;
}
int read_teacherinfo()
{
    int i;
    ifstream fin("teacherinfo.dat", ios::in);
    if (!fin)
        return 0;
    isreadteacher = true;            //写入模式
    string getname;
    string getpassword;
    long int getid[5];
    for (; fin.eof() == 0;)
    {
        fin>>getname>>getpassword;
        for(i=0;i<5;i++)
            fin>>getid[i];
        teacherlist[teacherlistnow++]=new Teacher(getname,getpassword);
        for(i=0;i<5;i++)
        {
            if(getid[i]!=0)
                teacherlist[teacherlistnow-1]->courseadd[teacherlist[teacherlistnow-1]->addnow++]=search_courseplus(getid[i]);
            else
                break;
        }
    }
    fin.close();
    isreadteacher = false;
    return 1;
}
int read_studentinfo()
{
    int i;
    ifstream fin("studentinfo.dat", ios::in);
    if (!fin)
        return 0;
    isreadstudent = true;            //写入模式
    string getname;
    string getpassword;
    long int getid[23];
    for (; fin.eof() == 0;)
    {
        fin>>getname>>getpassword;
        for(i=0;i<23;i++)
            fin>>getid[i];
        studentlist[studentlistnow++]=new Student(getname,getpassword);
        for(i=0;i<23;i++)
        {
            if(getid[i]!=0)
                studentlist[studentlistnow-1]->courseadd[studentlist[studentlistnow-1]->addnow++]=search_courseplus(getid[i]);
            else
                break;
        }
    }
    fin.close();
    isreadstudent = false;
    return 1;    
}
int sortlist(Course *sortnow)//删除并排序,记得对int进行操作,传入的值是当前要删除的地址 
{
    Course *delnow=sortnow;
    int i,k,j;
    long int delid;
    for(i=0;courselist[i]!=NULL&&i<50;i++)
    {
        if(courselist[i]==delnow)
        {
            delid=courselist[i]->get_id();
            for(j=0;j<studentlistnow;j++)
                studentlist[j]->unselect_course(delid);
            if(i==49)
            {
                courselist[i]=NULL;
                courselistnow-=1;
            }
            else
            {
                for(j=i+1;j<50;j++) 
                    courselist[j-1]=courselist[j];
                courselistnow-=1;
                courselist[49]=NULL;
            }
            return 1;
        }
    }
    return 0;
}
int sortlist(Teacher *sortnow)//可能没有用到的地方,用来删除老师的信息 
{
    Teacher *delnow=sortnow;
    int i,j;
    for(i=0;teacherlist[i]!=NULL&&i<50;i++)
    {
        if(teacherlist[i]==delnow)
        {
            for(j=0;j<5;j++)
                sortlist(teacherlist[i]->courseadd[j]);
            if(i==49)
            {
                teacherlist[i]=NULL;
                teacherlistnow-=1;
            }
            else
            {
                for(j=i+1;j<50;j++) 
                    teacherlist[j-1]=teacherlist[j];
                teacherlistnow-=1;
                teacherlist[49]=NULL;
            }
            return 1;
        }
    }
    return 0;
}
int sortlist(Student *sortnow)//同上 
{
    Student *delnow=sortnow;
    int i,j;
    for(i=0;studentlist[i]!=NULL&&i<50;i++)
    {
        if(studentlist[i]==delnow)
        {
            for(j=0;j<studentlist[i]->addnow;j++)
            {
                studentlist[i]->unselect_course();
            }
            if(i==49)
            {
                studentlist[i]=NULL;
                studentlistnow-=1;
            }
            else
            {
                for(j=i+1;j<50;j++) 
                    studentlist[j-1]=studentlist[j];
                studentlistnow-=1;
                studentlist[49]=NULL;
            }
            return 1;
        }
    }
    return 0;
}
void beforeover()
{
    int i;
    ofstream fout("courseinfo.dat", ios::trunc | ios::out);
    if (!fout)
    {
        cout << "\n\t\t\t\t    Cannot open courseinfo.dat !\n";
        system("pause");
        exit(1);
    }
    fout.close();
    ofstream ffout("teacherinfo.dat", ios::trunc | ios::out);
    if (!ffout)
    {
        cout << "\n\t\t\t\t    Cannot open teacherinfo.dat !\n";
        system("pause");
        exit(1);
    }
    ffout.close();
    ofstream fffout("studentinfo.dat", ios::trunc | ios::out);
    if (!fffout)
    {
        cout << "\n\t\t\t\t    Cannot open studentinfo.dat !\n";
        system("pause");
        exit(1);
    }
    fffout.close();
    for(i=0;i<courselistnow;i++)
        courselist[i]->set_courseinfo();
    for(i=0;i<teacherlistnow;i++)
        set_teacherinfo(teacherlist[i]);
    for(i=0;i<studentlistnow;i++)
        set_studentinfo(studentlist[i]);
}

//Course类实现 
Course::Course()
{
    id=0;
    coursename="";
    message.inform="";
    message.timenow="";
    grossnum=0;
    oddnum=0;
}
Course::Course(long int getid,string getcoursename,int getgrossnum)
{
    id=getid;
    coursename=getcoursename;
    message.inform="";
    message.timenow="";
    grossnum=getgrossnum;
    oddnum=getgrossnum;
} 
void Course::set_oddnum(int newoddnum)
{
    oddnum=newoddnum;
}
void Course::add_message()
{
    t(); 
    message.inform="";
    cout<<"\n\t\t\t\t请输入您要发送的留言(不要输入空格):";
    cin>>message.inform;
    if(message.inform.empty())
    { 
        cout<<"\n\t\t\t\t\t     发送失败……";
        Sleep(600);
    }
    else
    { 
        cout<<"\n\t\t\t\t\t     发送成功!!";
        Sleep(600);
    } 
    time_t t;//时间 
    time(&t);//获取时间 
    struct tm*now = localtime(&t);//换算当前时区 
    message.timenow=asctime(now);//转换成string 
} 
void Course::show_message()
{
    if(message.timenow=="")
        cout<<"\n\t\t  课程ID:"<<get_id()<<"  课程名称:"<<get_coursename()<<"  教师未留言……\n";
    else
        cout<<"\n\t\t  课程ID:"<<get_id()<<"  课程名称:"<<get_coursename()<<"  教师留言时间:"<<message.timenow<<"\t\t  消息:"<<message.inform<<"\n\n"; 
}
long int Course::get_id()
{
    return id;
}
string Course::get_coursename()
{
    return coursename;
} 
int Course::get_grossnum()
{
    return grossnum;
}
int Course::get_oddnum()
{
    return oddnum;
}


//BCourse类实现 
BCourse::BCourse(long int getid,string getcoursename,int getgrossnum):Course(getid,getcoursename,getgrossnum)
{
    coursetype=1;
    if(!isreadcourse)
        set_courseinfo();
}
BCourse::BCourse():Course() 
{
    coursetype=1;
}
istream&operator>>(istream &in,BCourse &coursenow)
{
    coursenow.coursetype=1;
    in>>coursenow.id>>coursenow.coursename>>coursenow.grossnum;
    coursenow.message.inform="";
    coursenow.message.timenow="";
    coursenow.oddnum=coursenow.grossnum;
    courselist[courselistnow++]=&coursenow;
    if(!isreadcourse)
        coursenow.set_courseinfo();
    return in;
}
void BCourse::show_course()
{
    cout<<"\t\t  课程ID:"<<get_id()<<"  课程名称:"<<get_coursename()<<"  课程类型:必修"<<"  课余量:"<<get_oddnum()<<"\n"; 
}
void BCourse::set_courseinfo()
{
    ofstream fout("courseinfo.dat", ios::app | ios::out);
    if (!fout)
    {
        cout << "\n\t\t\t\t    Cannot open courseinfo.dat !\n";
        system("pause");
        exit(1);
    }
    fout << '\n' << 1 << ' ' << id << ' ' << coursename << ' ' << grossnum << ' ' << oddnum;
    fout.close();
}
int BCourse::get_type()
{
    return coursetype;
}

//XCourse类实现 
XCourse::XCourse(long int getid,string getcoursename,int getgrossnum):Course(getid,getcoursename,getgrossnum)
{
    coursetype=2;
    if(!isreadcourse)
        set_courseinfo();
}
XCourse::XCourse():Course() 
{
    coursetype=2;
}
istream&operator>>(istream &in,XCourse &coursenow)
{
    coursenow.coursetype=2;
    in>>coursenow.id>>coursenow.coursename>>coursenow.grossnum;
    coursenow.message.inform="";
    coursenow.message.timenow="";
    coursenow.oddnum=coursenow.grossnum;
    courselist[courselistnow++]=&coursenow;
    if(!isreadcourse)
        coursenow.set_courseinfo();
    return in;
}
void XCourse::show_course()
{
    cout<<"\t\t  课程ID:"<<get_id()<<"  课程名称:"<<get_coursename()<<"  课程类型:选修"<<"  课余量:"<<get_oddnum()<<"\n"; 
}
void XCourse::set_courseinfo()
{
    ofstream fout("courseinfo.dat", ios::app | ios::out);
    if (!fout)
    {
        cout << "\n\t\t\t\t    Cannot open courseinfo.dat !\n";
        system("pause");
        exit(1);
    }
    fout << '\n' << 2 << ' ' << id << ' ' << coursename << ' ' << grossnum << ' ' << oddnum;
    fout.close();
}
int XCourse::get_type()
{
    return coursetype;
}

//Teacher类实现 
Teacher::Teacher( string getname,string getpassword)
{
    int i;
    for(i=0;i<5;i++)
        courseadd[i]=NULL;
    addnow=0;
    name=getname;
    password=getpassword;
}
Teacher::Teacher()
{
    int i;
    for(i=0;i<5;i++)
        courseadd[i]=NULL;
    addnow=0;
    name="";
    password="";    
}
istream & operator >> ( istream &in, Teacher &teachernow)
{
    int i;
    for(i=0;i<5;i++)
        teachernow.courseadd[i]=NULL;
    teachernow.addnow=0;
    in>>teachernow.name>>teachernow.password;
    teacherlist[teacherlistnow++]=&teachernow;
    return in;
}
void Teacher::add_course( int gettype,long int getid,string getcoursename,int getgrossnum)
{
    int i=gettype;
    if(addnow>=5)
    {    
        cout<<"\n\t\t\t   您可添加的课程数量已达上限!无法继续添加课程!\n";
        Sleep(600);
    } 
    else
    {
        switch (i)
        {
            case 1:
                courselist[courselistnow++]=new BCourse(getid,getcoursename,getgrossnum);
                courseadd[addnow++]=courselist[courselistnow-1];
                break;
            case 2:
                courselist[courselistnow++]=new XCourse(getid,getcoursename,getgrossnum);
                courseadd[addnow++]=courselist[courselistnow-1];
                break;
            default:
                cout<<"\n\t\t\t\t 添加课程时出现错误,课程添加失败!\n";
                Sleep(600);
                system("pause");
                break;
        }
    }
}
int Teacher::delete_course(long int getid)
{
    int i,j;
    long int delid=getid;
    for(i=0;courseadd[i]!=NULL&&i<5;i++)
    {
        if(courseadd[i]->get_id()==delid)
        {
            sortlist(courseadd[i]);
            if(i==4)
            {
                courseadd[i]=NULL;
                addnow-=1;
            }
            else
            {
                for(j=i+1;j<5;j++) 
                    courseadd[j-1]=courseadd[j];
                addnow-=1;
                courseadd[4]=NULL;
            }
            return 1;
        }
    }
    return 0;
}
void Teacher::search_course()
{
    int i;
    if(addnow==0)
        cout<<"\n\t\t\t\t\t 您还未开设任何课程!\n";
    else
    {
        quicksort_array(courseadd,0,addnow-1);
        cout<<"\t\t\t\t\t      您的课程信息:\n\n";
        for(i=0;i<addnow;i++)
        { 
            courseadd[i]->show_course();
            cout<<"\n";
        } 
    }
}
string Teacher::get_password()
{
    return password;
}
string Teacher::get_name()
{
    return name;
}
void set_teacherinfo(Teacher *teachernow)
{
    int i;
    ofstream fout("teacherinfo.dat", ios::app | ios::out);
    if (!fout)
    {
        cout << "\n\t\t\t\t    Cannot open teacherinfo.dat !\n";
        system("pause");
        exit(1);
    }
    fout << '\n' << teachernow->get_name() << ' ' << teachernow->password ;
    for(i=0;i<5;i++)
    {
        if(teachernow->courseadd[i]!=NULL)
            fout<<' '<<teachernow->courseadd[i]->get_id();
        else
            fout<<' '<<0;
    }
    fout.close();
}

//Student类实现
Student::Student(string getname,string getpassword)
{
    int i;
    for(i=0;i<23;i++)
        courseadd[i]=NULL;
    addnow=0;
    name=getname;
    password=getpassword;
}
Student::Student()
{
    int i;
    for(i=0;i<23;i++)
        courseadd[i]=NULL;
    addnow=0;
    name="";
    password="";    
}
istream & operator >> ( istream &in, Student &studentnow)
{
    int i;
    for(i=0;i<23;i++)
        studentnow.courseadd[i]=NULL;
    studentnow.addnow=0;
    in>>studentnow.name>>studentnow.password;
    studentlist[studentlistnow++]=&studentnow;
    return in;
}
void Student::select_course(Course *select)
{
    int i,k=0;
    Course *p=select;
    for(i=0;i<addnow;i++)
    {
        if(p==courseadd[i])
        {
            k=1;
            break;
        }
    }
    if(p->get_oddnum()==0)
        cout<<"\n\t\t\t\t\t选择失败,课余量不足!";
    else if(addnow>=23)
        cout<<"\n\t\t\t      您的选课数已达上限,无法继续选择!";
    else if(k)
        cout<<"\n\t\t\t\t您已经选择了此门课程,请不要重复选择!";
    else
    {
        courseadd[addnow++]=p;
        p->set_oddnum(p->get_oddnum()-1);
        cout<<"\n\t\t\t\t\t     选择成功!!";
    }
    Sleep(600); 
}
int Student::unselect_course(long int courseid)
{
    int i,j;
    long int delid=courseid;
    for(i=0;courseadd[i]!=NULL&&i<23;i++)
    {
        if(courseadd[i]->get_id()==delid)
        {
            courseadd[i]->set_oddnum(courseadd[i]->get_oddnum()+1);
            if(i==22)
            {
                courseadd[i]=NULL;
                addnow-=1;
            }
            else
            {
                for(j=i+1;j<23;j++) 
                    courseadd[j-1]=courseadd[j];
                addnow-=1;
                courseadd[22]=NULL;
            }
            return 1;
        }
    }
    return 0;
}
int Student::unselect_course()
{
    int i;
    for(i=0;i<addnow;i++)
    {
        courseadd[i]->set_oddnum(courseadd[i]->get_oddnum()+1);
        courseadd[i]=NULL;
    }
    return 1;
}
void Student::search_course()
{
    t(); 
    int i;
    if(addnow==0)
        cout<<"\n\t\t\t\t\t 您还未选择任何课程!\n";
    else
    {
        quicksort_array(courseadd,0,addnow-1);
        cout<<"\t\t\t\t\t    您选择的课程信息:\n\n";
        for(i=0;i<addnow;i++)
        { 
            courseadd[i]->show_course();
            cout<<"\n";
        } 
    }
}
string Student::get_name()
{
    return name;
}
string Student::get_password()
{
    return password;
}
void set_studentinfo(Student *studentnow)
{
    int i;
    ofstream fout("studentinfo.dat", ios::app | ios::out);
    if (!fout)
    {
        cout << "\n\t\t\t\t    Cannot open studentinfo.dat !\n";
        system("pause");
        exit(1);
    }
    fout << '\n' << studentnow->get_name() << ' ' << studentnow->password ;
    for(i=0;i<23;i++)
    {
        if(studentnow->courseadd[i]!=NULL)
            fout<<' '<<studentnow->courseadd[i]->get_id();
        else
            fout<<' '<<0;
    }
    fout.close();
}
void t()//title func 
{
    system("CLS");
    cout<<"-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-\n"<<endl; 
    cout<<"\t\t\t\t  欢迎进入高校教师在线答疑辅导系统 \n"<<endl;
    cout<<"-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-\n"<<endl;     
}
void mt()//title func 
{
    system("CLS");
    cout<<"-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-\n"<<endl; 
    cout<<"\t\t\t\t  高校教师在线答疑辅导系统管理模式 \n"<<endl;
    cout<<"-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-\n"<<endl;     
}

void dot(int i)//点型加载 
{
    int dot;
    for(dot=0;dot<i;dot++)
    {
        cout<<".";
        Sleep(260);
    }
}

void rolling(string a)//进度条式加载 
{
    int dot,i,j;
    for(dot=0;dot<101;dot+=4)
    {
        t();
        cout<<a<<endl;
        i=dot/2.5;
        cout<<"\t\t\t "<<dot<<"%    |";
        for(j=0;j<i;j++)cout<<"-";
        cout<<">";
        for(j=0;j<39-i;j++)cout<<"-";
        cout<<"|";
    }
}
         
/*
记得做老师创建课程的ID查重
老师,学生 的信息在老师退出登录那一步写入文件 
课程信息在创建时写入 
*/ 


/*
te=teacher st=student co=course
判断用flag命名使用fxxxxx方式命名
技术用i,j命名使用xxxxxi,xxxxxj方式命名,xxxxx为所属功能区英文缩写
una=user name  nps=user password
为避免编译器对变量作用域的差异,switch的case都加上括号
*/ 

class deal
{
    private:
        Teacher **te;
        Student **st;
        Course **co;
                
    public:
        deal(Teacher **teacherlist,Student **studentlist,Course **courselist)
        {
            te=teacherlist;st=studentlist;co=courselist;            
        }    
        void startsystem()
        {
            string una,ups;
            bool steven=true;
            int flag=0,flagee=0;
            do
            {
                system("color 71");
                t();
                cout<<"\t\t\t\t\t     请选择用户\n"<<endl;
                cout<<"\t\t\t\t\t   1  我是学生\n"<<endl;
                cout<<"\t\t\t\t\t   2  我是老师\n"<<endl;
                cout<<"\t\t\t\t\t   3  注册新账号\n"<<endl;
                cout<<"\t\t\t\t\t   4  直接退出系统\n"<<endl;
                cout<<"\t\t\t\t\t     请输入:";
                cin>>flag; 
                switch(flag)
                {
                case 1://学生系统 
                {
                    int sti; 
                    t();
                    cout<<"\n\t\t\t\t\t   学生姓名:";
                    cin>>una;
                    cout<<"\n\t\t\t\t\t   密码:";
                    cin>>ups;
                    for(sti=0;sti<studentlistnow;sti++)
                    {
                        if(una==(*(st+sti))->get_name()&&ups==(*(st+sti))->get_password())
                            break;
                        else if(una==(*(st+sti))->get_name())
                        {flagee=1;continue;}
                        else continue;
                    }
                    if(sti==studentlistnow)
                    {
                        if(flagee)
                        {
                            t();
                            cout<<"\t\t\t\t       密码错误,请重新输入...";
                            Sleep(1000); 
                            flagee=0;
                        }
                        else 
                        { 
                            t();
                            cout<<"\t\t\t\t   未查找到该用户,请重新输入...";
                            Sleep(1000);
                        } 
                            break; 
                    }
                    else
                    {
                        t();
                        rolling("\t\t\t\t\t   登录成功,加载中...\n");
                        bool steve=true;
                        do
                        {
                            t();
                            cout<<"\t\t\t\t\t你好,"<<una<<"同学,请选择\n"<<endl;
                            cout<<"\t\t\t\t\t   1  添加选课\n"<<endl;
                            cout<<"\t\t\t\t\t   2  删除选课\n"<<endl;
                            cout<<"\t\t\t\t\t   3  查看已有课程\n"<<endl;
                            cout<<"\t\t\t\t\t   4  查看课程答疑信息\n"<<endl;
                            cout<<"\t\t\t\t\t   5  重新登录\n"<<endl;
                            cout<<"\t\t\t\t\t   6  直接退出系统\n"<<endl;
                            cout<<"\t\t\t\t\t     请输入:";
                            cin>>flag;
                            switch(flag)
                            {
                            case 1://学生添加课程 
                            {    
                                bool sac=true;
                                do
                                {
                                    t();
                                    cout<<"\t\t\t\t\t 当前所有课程信息:"<<endl;
                                    show_allcourse();
                                    Course *select=NULL;
                                    cout<<"\n\t\t\t\t请输入你要添加的课程ID,或输入1返回"<<endl;
                                    cout<<"\n\t\t\t\t\t     课程ID:";
                                    long int fsac;
                                    cin>>fsac; 
                                    if(fsac==1)sac=false;
                                    else
                                    {
                                        select=search_courseplus(fsac);
                                        if(select==NULL)
                                        { 
                                            cout<<"\n\t\t\t\t\t     没有此课程!";
                                            Sleep(1000);
                                        } 
                                        else
                                        { 
                                            (*(st+sti))->select_course(select);
                                        } 
                                            
                                    }        
                                }while(sac);
                            }
                            break;
                            
                            case 2://学生删除课程 
                            {
                                bool sdc=true;
                                do
                                {
                                    (*(st+sti))->search_course();
                                    cout<<"\n\t\t\t\t请输入你要删除的课程ID,或输入1返回"<<endl;
                                    cout<<"\n\t\t\t\t\t     课程ID:";
                                    int fsdc;
                                    cin>>fsdc; 
                                    if(fsdc==1)sdc=false;
                                    else
                                    {
                                        if((*(st+sti))->unselect_course(fsdc)==1)
                                        {
                                            cout<<"\n\t\t\t\t\t     删除成功!!";
                                        }
                                        else
                                        {
                                            cout<<"\n\t\t\t\t\t   删除失败,请重试!";
                                        }
                                        Sleep(600); 
                                    }
                                }while(sdc);
                            }
                            break;
                            
                            case 3://学生查看已有课程 
                            {    
                                bool ssc=true;
                                do
                                {
                                    (*(st+sti))->search_course();
                                    cout<<"\n\t\t\t\t\t      输入1返回\n"<<endl;
                                    cout<<"\t\t\t\t\t     请输入:";
                                    int fssc=0;
                                    cin>>fssc;
                                    if(fssc==1)ssc=false;
                                    else 
                                    { 
                                    cout<<"\n\t\t\t\t\t      输入有误!";
                                    Sleep(600); 
                                    } 
                                }while(ssc); 
                            }
                            break;
                            
                            case 4://学生查看辅导信息 
                            {
                                bool sscm=true;
                                do
                                {
                                    t();
                                    int sscmi;
                                    if((*(st+sti))->addnow==0)
                                        cout<<"\n\t\t\t\t\t 您还未选择任何课程!\n";
                                    else
                                    {
                                        cout<<"\t\t\t\t\t    您选择的课程信息:\n\n";
                                        for(sscmi=0;sscmi<(*(st+sti))->addnow;sscmi++)(*(st+sti))->courseadd[sscmi]->show_message();
                                    }
                                    cout<<"\n\t\t\t\t\t      输入1返回\n";
                                    cout<<"\n\t\t\t\t\t     请输入:";
                                    int fsscm=0;
                                    cin>>fsscm;
                                    if(fsscm==1)sscm=false;
                                    else cout<<"\n\t\t\t\t\t      输入有误!"<<endl;
                                    Sleep(600);
                                }while(sscm);
                                 
                            }
                            break;
                            
                            case 5://返回主界面 
                            { 
                                t();
                                cout<<"\t\t\t\t      退出中,请稍后.";
                                dot(5);
                                steve=false;
                            } 
                            break;
                             
                            case 6://直接退出系统 
                            {
                                t();
                                cout<<"\t\t\t\t        正在保存.";
                                dot(5);
                                t();
                                cout<<"\t\t\t\t            保存成功";
                                Sleep(300);
                                t(); 
                                steve=false;
                                steven=false;
                            } 
                            break;
                            
                            default:
                                cout<<"\n\t\t\t\t\t      输入有误!";
                                Sleep(600);
                                break;
                            }                        
                            
                        }while(steve);    
                    }
                }
                break;
                
                case 2://老师系统 
                {
                    int tei;
                    t();
                    cout<<"\n\t\t\t\t\t   教师姓名:";
                    cin>>una;
                    cout<<"\n\t\t\t\t\t   密码:";
                    cin>>ups;
                    for(tei=0;tei<teacherlistnow;tei++)
                    {
                        if(una==(*(te+tei))->get_name()&&ups==(*(te+tei))->get_password())
                            break;
                        else if(una==(*(te+tei))->get_name())
                        {flagee=1;continue;}
                        else continue;
                    }
                    if(tei==teacherlistnow)
                    {
                        if(flagee)
                        {
                            t();
                            cout<<"\t\t\t\t       密码错误,请重新输入...";
                            Sleep(1000); 
                            flagee=0;
                        }
                        else 
                        { 
                            t();
                            cout<<"\t\t\t\t   未查找到该用户,请重新输入...";
                            Sleep(1000);
                        } 
                        break; 
                    }
                    else
                    {
                        t();
                        rolling("\t\t\t\t\t   登录成功,加载中...\n");
                        bool steve=true;
                        do
                        {
                            t();
                            cout<<"\t\t\t\t\t您好,"<<una<<"老师,请选择\n"<<endl;
                            cout<<"\t\t\t\t\t   1  开设新课程\n"<<endl;
                            cout<<"\t\t\t\t\t   2  关闭课程\n"<<endl;
                            cout<<"\t\t\t\t\t   3  查看已开课程\n"<<endl;
                            cout<<"\t\t\t\t\t   4  添加/修改课程答疑信息\n"<<endl;
                            cout<<"\t\t\t\t\t   5  重新登录\n"<<endl;
                            cout<<"\t\t\t\t\t   6  直接退出系统\n"<<endl;
                            cout<<"\t\t\t\t\t     请输入:";
                            cin>>flag;
                            switch(flag)
                            {
                            case 1://老师加课 
                            {
                                int gettype;
                                long int getid;
                                string getcoursename;
                                int getgrossnum;
                                bool tac=true;
                                do
                                {
                                    bool tact=true;
                                    do
                                    {
                                        t(); 
                                        cout<<"\t\t\t\t\t     请选择类型\n"<<endl;
                                        cout<<"\t\t\t\t\t   1  必修\n"<<endl;
                                        cout<<"\t\t\t\t\t   2  选修\n"<<endl;
                                        cout<<"\t\t\t\t\t     请输入:";
                                        cin>>gettype;
                                        if(gettype==1||gettype==2)
                                        {
                                            tact=false;
                                        }
                                        else
                                        {
                                            cout<<"\t\t\t\t       选择错误,请重新输入...";
                                            Sleep(600);
                                        }
                                    }while(tact);
                                    
                                    bool tacid=true;
                                    do
                                    {
                                        t();
                                        cout<<"\t\t\t\t\t    课程类型:";
                                        if(gettype==1)cout<<"必修"<<endl;
                                        else cout<<"选修"<<endl;
                                        cout<<"\n\t\t\t\t\t   课程ID:";
                                        cin>>getid;
                                        int coi;
                                        for(coi=0;coi<courselistnow;coi++)
                                        {
                                            if(getid==(*(co+coi))->get_id())break;
                                            
                                        }
                                        if(coi!=courselistnow)
                                        {
                                            cout<<"\n\t\t\t\t\t    ID已被使用";
                                            Sleep(600);
                                        }
                                        else
                                        {
                                            tacid=false;
                                        } 
                                        
                                    }while(tacid);
                                    t();
                                    cout<<"\t\t\t\t\t    课程类型:";
                                    if(gettype==1)cout<<"必修"<<endl;
                                    else cout<<"选修"<<endl;
                                    cout<<"\n\t\t\t\t\t   课程ID:"<<getid<<endl;    
                                    cout<<"\n\t\t\t\t\t   课程名:";
                                    cin>>getcoursename;
                                    t();
                                    cout<<"\t\t\t\t\t    课程类型:";
                                    if(gettype==1)cout<<"必修"<<endl;
                                    else cout<<"选修"<<endl;
                                    cout<<"\n\t\t\t\t\t   课程ID:"<<getid<<endl;    
                                    cout<<"\n\t\t\t\t\t   课程名:"<<getcoursename<<endl;
                                    cout<<"\n\t\t\t\t\t   总课余量:";
                                    cin>>getgrossnum;
                                    
                                    bool tacc=true; 
                                    do
                                    {
                                        t();
                                        cout<<"\t\t\t\t\t    课程类型:";
                                        if(gettype==1)cout<<"必修"<<endl;
                                        else cout<<"选修"<<endl;
                                        cout<<"\n\t\t\t\t\t   课程ID:"<<getid<<endl;    
                                        cout<<"\n\t\t\t\t\t   课程名:"<<getcoursename<<endl;
                                        cout<<"\n\t\t\t\t\t   总课余量:"<<getgrossnum<<endl;
                                        cout<<"\n\t\t\t  请选择: 1 确认  2 重新输入  3 不添加直接退出"<<endl;
                                        cout<<"\t\t\t\t\t     请输入:";
                                        int ftacc=0;
                                        cin>>ftacc;
                                        switch(ftacc)
                                        {
                                            case 1:
                                                (*(te+tei))->add_course(gettype,getid,getcoursename,getgrossnum);
                                                tacc=false;
                                                tac=false;
                                                break;
                                            case 2:
                                                tacc=false;
                                                break;
                                            case 3:
                                                tacc=false;
                                                tac=false;
                                                break;
                                            default:
                                                cout<<"\n\t\t\t\t\t      输入有误!";
                                                break;
                                        }
                                    }while(tacc);
                                    
                                }while(tac);
                            }
                            break;
                            
                            case 2://老师删课 
                            {
                                t();
                                bool tdc=true;
                                do
                                {
                                    (*(te+tei))->search_course();
                                    cout<<"\n\t\t\t\t请输入你要删除的课程ID,或输入1返回"<<endl;
                                    cout<<"\n\t\t\t\t\t     课程ID:";
                                    int ftdc;
                                    cin>>ftdc; 
                                    if(ftdc==1)tdc=false;
                                    else
                                    {
                                        if((*(te+tei))->delete_course(ftdc)==1)
                                        {
                                            cout<<"\n\t\t\t\t\t     删除成功!!";
                                            tdc=false;
                                        }
                                        else
                                        {
                                            cout<<"\n\t\t\t\t\t   删除失败,请重试!";
                                        }
                                        Sleep(600);
                                    }
                                }while(tdc);
                            }
                            break;
                            
                            case 3://老师查看已有课程 
                            {
                                bool tsc=true;
                                do
                                {
                                    t();
                                    (*(te+tei))->search_course();
                                    cout<<"\n\t\t\t\t\t      输入1返回\n"<<endl;
                                    cout<<"\t\t\t\t\t     请输入:";
                                    int ftsc=0;
                                    cin>>ftsc;
                                    if(ftsc==1)tsc=false;
                                    else cout<<"\n\t\t\t\t\t      输入有误!";
                                }while(tsc); 
                            }
                            break;
                            
                            case 4://老师添加/修改课程答疑信息 
                            {
                                
                                bool tscm=true;
                                do
                                {
                                    t();
                                    int tscmi;
                                    if((*(te+tei))->addnow==0)
                                        cout<<"\n\t\t\t\t\t 您还未开设任何课程!\n";
                                    else
                                    {
                                        cout<<"\t\t\t\t\t    您选择的课程信息:\n\n";
                                        for(tscmi=0;tscmi<(*(te+tei))->addnow;tscmi++)(*(te+tei))->courseadd[tscmi]->show_message();
                                    }
                                    cout<<"\n\t\t\t    请输入你要修改答疑信息的课程ID,或输入1返回"<<endl;
                                    cout<<"\n\t\t\t\t\t     课程ID:";
                                    int ftscm=0;
                                    cin>>ftscm;
                                    int tcoi;
                                    for(tcoi=0;tcoi<(*(te+tei))->addnow;tcoi++)
                                    {
                                        if(ftscm==(*(te+tei))->courseadd[tcoi]->get_id())
                                        {
                                            (*(te+tei))->courseadd[tcoi]->add_message();
                                            break;
                                        }
                                    }
                                    if(tcoi=(*(te+tei))->addnow&&ftscm==1)tscm=false;
                                    
                                }while(tscm);
                                         
                            }    
                            break;
                            
                            case 5://返回主界面
                            {
                                t();
                                cout<<"\t\t\t\t      退出中,请稍后.";
                                dot(5);
                                steve=false;
                            } 
                            break;
                             
                            case 6://直接退出系统
                            {
                                t();
                                cout<<"\t\t\t\t        正在保存.";
                                dot(5);
                                t();
                                cout<<"\t\t\t\t            保存成功";
                                Sleep(300);
                                t();
                                steve=false;
                                steven=false;
                            } 
                            break;
                            
                            default:
                                cout<<"\n\t\t\t\t\t      输入有误!";
                                Sleep(600);
                                break;
                            }                        
                            
                        }while(steve);    
                    }
                }
                break;
                    
                case 3://注册新用户 
                {
                    bool steve=true;
                    do
                    {
                        int regtype;
                        string reguna,regups,regups1;
                        t();
                        cout<<"\t\t\t\t\t    您好,请选择\n"<<endl;
                        cout<<"\t\t\t\t\t   1  创建学生账号\n"<<endl;
                        cout<<"\t\t\t\t\t   2  创建老师账号\n"<<endl;
                        cout<<"\t\t\t\t\t   3  返回\n"<<endl;
                        cout<<"\t\t\t\t\t     请输入:";
                        cin>>regtype;
                        switch(regtype)
                        {
                        case 1://学生注册
                        {
                            bool comfirm=true;
                            do
                            {
                                int fregst;
                                t();
                                cout<<"\n\t\t\t\t\t   学生姓名:";
                                cin>>reguna;
                                cout<<"\n\t\t\t\t\t   密码:";
                                cin>>regups;
                                t();
                                cout<<"\n\t\t\t\t\t   学生姓名:"<<reguna<<endl;
                                cout<<"\n\t\t\t\t\t   确认密码:";
                                cin>>regups1;
                                if(regups==regups1)
                                {
                                    comfirm=false;
                                    bool regst=true;
                                    do
                                    {
                                        t();
                                        cout<<"\n\t\t\t\t\t   学生姓名:"<<reguna<<endl;
                                        cout<<"\n\t\t\t\t\t   确认密码:"<<regups<<endl;
                                        cout<<"\n\t\t\t    请选择:  1 确认并创建  2 不创建,返回主菜单"<<endl;
                                        cout<<"\n\t\t\t\t\t     请输入:";
                                        cin>>fregst;
                                            if(fregst==1) 
                                        {
                                            studentlist[studentlistnow++]=new Student(reguna,regups);
                                            cout<<"\n\t\t\t\t\t      创建成功!";
                                            Sleep(600);
                                            steve=false;
                                            regst=false;
                                        }
                                        else if(fregst==2) 
                                        {
                                            steve=false;
                                            regst=false;
                                        }
                                        else
                                        {
                                            cout<<"\n\t\t\t\t\t      输入有误!";
                                            Sleep(600);
                                        }
                                    }while(regst);
                                }
                                else
                                {
                                    cout<<"\n\t\t\t\t\t    两次密码不同!";
                                    Sleep(600);
                                }
                            }while(comfirm);
                        }
                        break;
                        
                        
                        case 2://教师注册 
                            {
                                t();
                                cout<<"\n\t\t\t\t\t   请输入教师识别码:";
                                string regte,trregte="teacher_12138";
                                cin>>regte;
                                if(regte==trregte)
                                {
                                    bool comfirm=true;
                                    do
                                    {
                                        int fregte;
                                        t();
                                        cout<<"\n\t\t\t\t\t   教师姓名:";
                                        cin>>reguna;
                                        cout<<"\n\t\t\t\t\t   密码:";
                                        cin>>regups;
                                        t();
                                        cout<<"\n\t\t\t\t\t   教师姓名:"<<reguna<<endl;
                                        cout<<"\n\t\t\t\t\t   确认密码:";
                                        cin>>regups1;
                                        if(regups==regups1)
                                        {
                                            comfirm=false;
                                            bool regte=true;
                                            do
                                            {
                                                t();
                                                cout<<"\n\t\t\t\t\t   教师姓名:"<<reguna<<endl;
                                                cout<<"\n\t\t\t\t\t   确认密码:"<<regups<<endl;
                                                cout<<"\n\t\t\t    请选择:  1 确认并创建  2 不创建,返回主菜单"<<endl;
                                                cout<<"\n\t\t\t\t\t     请输入:";
                                                cin>>fregte;
                                                if(fregte==1) 
                                                {
                                                    teacherlist[teacherlistnow++]=new Teacher(reguna,regups);
                                                    cout<<"\n\t\t\t\t\t      创建成功!";
                                                    Sleep(600);
                                                    steve=false;
                                                    regte=false;
                                                }
                                                else if(fregte==2) 
                                                {
                                                    steve=false;
                                                    regte=false;
                                                }
                                                else
                                                {
                                                    cout<<"\n\t\t\t\t\t      输入有误!";
                                                    Sleep(600);
                                                }
                                            }while(regte);
                                        }
                                        else
                                        {
                                            cout<<"\n\t\t\t\t\t    两次密码不同!";
                                            Sleep(600);
                                        }
                                    }while(comfirm); 
                                    steve=false;    
                                }
                                else
                                {
                                    cout<<"\n\t\t\t\t      教师识别码错误,正在返回...";
                                    Sleep(600);
                                }
                            }
                        break;
                        
                        case 3:
                            steve=false;
                        break;
                        
                        default:
                            cout<<"\n\t\t\t\t\t      输入有误!";
                            Sleep(600); 
                        break;
                         } 
                    }while(steve);
                    
                }
                break;
                
                case 4://退出 
                    steven=false;
                break;
                
                case 3838438://管理员账号 
                    {
                        system("color 8B");
                        string superna,supernat="xxxyh",superps,superpst="stevenxyh";
                        mt();
                        cout<<"\n\t\t\t\t\t   账号:";
                        cin>>superna;
                        cout<<"\n\t\t\t\t\t   密码:";
                        cin>>superps;
                        if(superna==supernat&&superps==superpst)
                        {
                            bool secrect=true;
                            do
                            {
                                int ffsup;
                                mt();
                                cout<<"\t\t\t\t\t亲爱的管理员xyh,您好\n"<<endl;
                                cout<<"\t\t\t\t\t   1  删除老师账号\n"<<endl;
                                cout<<"\t\t\t\t\t   2  删除学生账号\n"<<endl;
                                cout<<"\t\t\t\t\t   3  返回主界面\n"<<endl;
                                cout<<"\t\t\t\t\t     请输入:";
                                cin>>ffsup;
                                switch(ffsup)
                                {
                                    case 1://删除老师账号
                                    {
                                        string deltena; 
                                        int deltei,fdelte=1;
                                        mt();
                                        cout<<"\n\t\t\t\t\t   教师姓名:";
                                        cin>>deltena;
                                        for(deltei=0;deltei<teacherlistnow;deltei++)
                                        {
                                            if(deltena==teacherlist[deltei]->get_name())
                                            { 
                                                if(sortlist(teacherlist[deltei]));
                                                { 
                                                    cout<<"\n\t\t\t\t\t     删除成功!!";
                                                    Sleep(600);
                                                } 
                                                fdelte=0;
                                            }
                                        }
                                        if(deltei==teacherlistnow&&fdelte)
                                        {
                                            cout<<"\n\t\t\t\t\t   无此老师!";
                                            Sleep(600); 
                                        }
                                    }
                                    break;
                                    
                                    case 2://删除学生账号
                                    {
                                        string delstna; 
                                        int delsti,fdelst=1;
                                        mt();
                                        cout<<"\n\t\t\t\t\t   学生姓名:";
                                        cin>>delstna;
                                        for(delsti=0;delsti<studentlistnow;delsti++)
                                        {
                                            if(delstna==studentlist[delsti]->get_name())
                                            { 
                                                if(sortlist(studentlist[delsti]));
                                                { 
                                                    cout<<"\n\t\t\t\t\t     删除成功!!";
                                                    Sleep(600);
                                                }
                                                fdelst=0;
                                            }
                                        }
                                        if(delsti==studentlistnow&&fdelst)
                                        {
                                            cout<<"\n\t\t\t\t\t   无此学生!";
                                            Sleep(600); 
                                        }
                                    }
                                    break;
                                    
                                    case 3:
                                        mt();
                                        cout<<"\t\t\t\t      退出中,请稍后.";
                                        dot(4);
                                        secrect=false;
                                    break; 
                                    
                                    default:
                                        cout<<"\n\t\t\t\t\t      输入错误!";
                                    break; 
                                }
                            }while(secrect);
                        }
                        else
                        cout<<"\n\t\t\t\t\t   错误,正在返回.";
                        dot(3); 
                    }
                    break;
                    
                default:
                    cout<<"\n\t\t\t\t\t      输入有误!";
                    Sleep(600);
                break;                    
                }
            }while(steven);
        }
};





int main()
{
    read_courseinfo();
    read_teacherinfo();
    read_studentinfo();
    
    deal start(teacherlist,studentlist,courselist);
    start.startsystem();
    beforeover();    
    return 0;
} 

 

https://blog.csdn.net/qq_28584889/article/details/88136498

 

posted on 2021-03-10 01:06  Akairyou  阅读(548)  评论(0)    收藏  举报