学生管理系统 C++课设

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
using namespace std;

//////////////////////////////课程类/////////////////////////////////////////////
class course
{
private:
    int num;
    char name[10];
    char teachername[10];
    int time;
public:
    friend class grade;
    course()
    {
        num=1;
        strcpy(name,"c++");
        strcpy(teachername,"утеТ");
        time=100;
    }
    course(int nu,char na[],char tn[],int ti)
    {
        num=nu;
        strcpy(name,na);
        strcpy(teachername,tn);
        time=ti;
    }
    void Set()
    {
        cout<<"Please input number,course name,teachername and study time:"<<endl;
        cin>>num>>name>>teachername>>time;
    }
    void show()
    {
        cout<<"number="<<num<<endl
        <<"course name="<<name<<endl
        <<"teachername="<<teachername<<endl
        <<"study time="<<time<<endl;
    }
    int num1(){return num;}
};
//////////////////////////////成绩类/////////////////////////////////////////////
class grade
{
private:
    int score,cid;
    char id[9];
public:
    grade()
    {
        strcpy(id,"");
        cid=0;
        score=0;
    }
    grade(int a,char b[],int c)
    {
       strcpy(id,b);
       cid=c;
       score=a;
    }
    void in()
    {
        cout<<"按“课程名称”“课程编号”“学生成绩”的顺序输入)"<<endl;
        cin>>id>>cid>>score;
    }
    void out()
    {
        cout<<"课程名称 "<<id<<" 课程编号 "<<cid<<" 学生成绩 "<<score<<endl;
    }
    int Cid()
    {
        return cid;
    }
    void C(course a)
    {
        cid=a.num;
        //strcpy()
    }
};
//////////////////////////////////学生类///////////////////////////////////////////////////////
class student
{
private:
    int num;
    char name[30];
    int Class;
    char id[20];
    grade c[10];
    course d[10];
public:

    student()
    {
        num=20180000;
        strcpy(name,"xxx");
        Class=1;
        strcpy(id,"123456789123456789");
    }
/*    student(int a,char b[],int c,char d)
    {
        num=a;
        Class=c;
        strcpy(name,b);
        strcpy(id,d);
        count++;
    }*/
    void setsubject(course &p,int a)
    {
        d[a]=p;
        c[a].C(p);
    }
    void set()
    {
        cout<<"按“学号”“姓名”“班级”“身份证号”的顺序输入"<<endl;
        cin>>num>>name>>Class>>id;
        int i;
        for(i=0;i<10;i++)
        {
            if(c[i].Cid()!=0)c[i].in();
        }
    }
    void dis()//学生全部信息输出
    {
        cout<<"学号 "<<num<<" 姓名 "<<name<<" 班级 "<<Class<<" 身份证号 "<<id<<endl;
        int i;
        for(i=0;i<10;i++)
        {
            if(c[i].Cid()!=0)
            {
                c[i].out();
                d[i].show();
            }

        }
    }
    void out()
    {
        int i;
        for(i=0;i<10;i++)
            //if(c[i].Cid()!=0)
                c[i].out();
    }
    int Cid()//返回课程编号
    {
        int i;
        for(i=0;i<10;i++)
        {
            if(c[i].Cid()!=0)
            {
                return c[i].Cid();
            }

        }
    }
    int Num()//返回学号
    {
        return num;
    }
    course Sub(int a)//返回课程数据
    {
        return d[a];
    }
    void in()//修改学生成绩
    {
        int i;
        for(i=0;i<10;i++)
        {
            if(c[i].Cid()!=0)
            {
                c[i].in();
            }

        }
    }
};
int main()
{
    int x,y,i=0,j=0;
    student a[10];
    course c[10];
                                                               index:
    cout<<"                                    *********欢迎使用学生管理系统*********"<<endl;
    cout<<"                                              您是教师还是学生?          "<<endl;
    cout<<"                                                1.教师 2.学生          "<<endl;
    cin>>x;
    while(1)
    {
////////////////////////////教师部分///////////////////////////////////////
        if(x==1)
        {
            xx:
            cout<<"1.处理学生数据 2.处理课程数据 3.返回上一级"<<endl;
            cin>>y;
            if(y==3)goto index;
////////////////////////教师处理课程部分/////////////////////////////////////
            if(y==2)
            {
                cout<<"1.录入课程信息 2.显示当前课程信息 3.返回上一级 4.返回主菜单 5.退出系统"<<endl;
                int z;
                cin>>z;
/////////////////////////教师录入课程信息////////////////////////////////////////
                if(z==1)
                {

                    c[j].Set();
                    while(1)
                    {
                        char b;
                        cout<<"是否需要继续录入课程数据(y/n)";
                        cin>>b;
                        if(b=='y')
                        {
                            j++;
                            c[j].Set();
                        }
                        else break;
                    }

                }
/////////////////////////教师查看所有课程信息////////////////////////////////////
                if(z==2&&i==0)cout<<"暂无"<<endl;
                if(z==4)goto index;
                if(z==3)goto index;
                if(z==5)
                {
                    cout<<"谢谢使用"<<endl;
                    exit(0);
                }
            }
/////////////////////////教师处理学生信息部分///////////////////////////////////
            if(y==1)
            {
                while(1)
                {
                    cout<<"1、录入学生数据 2、显示学生数据 3、返回上一级 4、返回主菜单 5、退出系统 "<<endl;
                    int c;
                    cin>>c;
                    if(c==2&&i==0)cout<<"暂无"<<endl;
                    if(c==4)goto index;
                    if(c==3)goto xx;
                    if(c==5)
                    {
                        cout<<"谢谢使用"<<endl;
                        exit(0);
                    }
/////////////////////教师录入学数据////////////////////////////////////////
                    while(1)
                    {
                        if(c==1)
                        {
                            cout<<"1.录入学生基本信息 2.录入学生成绩"<<endl;
                            int b;
                            cin>>b;
                            if(b==1)
                            {
                                a[i].set();
                            /////////////////////////////////////////////////////////////////////////
                                i++;
                                while(1)
                                {
                                    char b;
                                    cout<<"是否需要继续录入学生数据(y/n)";
                                    cin>>b;
                                    if(b=='y')
                                    {
                                        a[i].set();
                                        i++;
                                    }
                                    else break;
                                }
                                break;
                            }
                            if(b==2)
                            {
                                int j;
                                for(j=0;j<10;j++)
                                {
                                    a[j].out();
                                    cout<<"请输入需要修改成绩的科目的编号"<<endl;
                                    int s;
                                    cin>>s;
                                    int k;
                                    for(k=0;k<10;k++)
                                    {
                                        if(s==a[j].Cid())a[j].in();
                                    }
                                }
                            }
                        }
///////////////////////////教师查看学生数据///////////////////////////////
                        if(c==2)
                        {
                            int j;
                            for(j=0;j<i;j++)
                                if(a[j].Num()!=20180000)a[j].dis();
                            break;
                        }
                    }//while的循环后括号
                }//while的循环后括号
            }//if的后括号
        }//if的后括号
        ////////////////////////////学生部分///////////////////////////////////////
        if(x==2)
        {
            cout<<"请输入您的学号"<<endl;
            long b;
            cin>>b;
            int j;
            for(j=0;j<10;j++)
            {
                if(a[j].Num()==b)
                {
                    cout<<"1.选课 2.查看成绩 3.返回上一级 4.退出系统"<<endl;
                    int s;
                    cin>>s;
                    if(s==4)
                    {
                        cout<<"谢谢使用"<<endl;
                        exit(0);
                    }
                    if(s==3)goto index;
/////////////////////////学生选课部分///////////////////////////////////////
                    if(s==1)
                    {
                        int l;
                        for(l=0;l<10;l++)
                            //if(c[l].Bh()!=0)c[l].Show();
                        cout<<"请输入您想要选的课的课程编号"<<endl;
                        int q;
                        cin>>q;
                        while(1)
                        {
                            for(int k=0;k<10;k++)
                            {
                                    a[j].setsubject(c[q-1],k);
                                    cout<<"是否需要继续选课(y/n)"<<endl;
                                    char w;
                                    cin>>w;
                                    if(w=='y')
                                    {
                                        int m;
                                        for(m=0;m<10;m++)
                                            if(c[m].num1()!=0)c[m].show();
                                        cout<<"请输入您想要选的课的课程编号"<<endl;
                                        cin>>q;
                                    }
                                    if(w!='y')goto index;
                            }
                        }
                    }
//////////////////////////学生查看成绩部分///////////////////////////////////
                    if(s==2)
                    {
                        a[j].out();
                    }
                }//确认学生信息后操作的后括号
            }//for的后括号
        }//if的后括号,学生部分的后括号
    }//while的后括号
}//main的后括号

 

posted @ 2022-03-31 16:09  王回甘  阅读(96)  评论(0编辑  收藏  举报