c++学生教务管理系统

#include <iostream>
#include<cstring>
#define MAX 1000
struct student {
    int ID;
    char name[20];
};
struct Person{
    struct student s[MAX];
    int size;
};
int isExit(struct Person *p){
    int ID;
    std::cin>>ID;
   for(int i=0;i<p->size;i++){
       if(ID==p->s[i].ID){
           return i;
           break;
       }
   }
   return -1;
}
void mune (){
    std::cout<<"***********************************"<<std::endl;
    std::cout<<"******欢迎进入学生信息管理系统*********"<<std::endl;
    std::cout<<"*******1.查询学生信息****************"<<std::endl;
    std::cout<<"*******2.删除学生信息****************"<<std::endl;
    std::cout<<"*******3.修改学生信息****************"<<std::endl;
    std::cout<<"*******4.添加学生信息****************"<<std::endl;
    std::cout<<"*******5.退出信息系统****************"<<std::endl;
    std::cout<<"***********************************"<<std::endl;
}
void Add(struct Person *p){
         std::cout<<"请输入ID"<<std::endl;
         std::cin>>p->s[p->size].ID;
         std::cout<<"请输入学生姓名"<<std::endl;
         std::cin>>p->s[p->size].name;
         std::cout<<"添加成功"<<std::endl;
         p->size++;
}
void showstudent(struct Person *p,int ret){
    std::cout<<"学生的ID为   "<<p->s[ret].ID<<std::endl;
    std::cout<<"学生的姓名为  "<<p->s[ret].name<<std::endl;

}
void delect (struct Person *p){
    std::cout<<"请输入您想要删除的学生的ID"<<std::endl;
    int ret=isExit(p);
    if(ret==-1){
        std::cout<<"很抱歉,查无此人"<<std::endl;
    }
    else{
        for(int i=ret;i<p->size;i++){
           p->s[i].ID=p->s[i+1].ID;
           strcpy(p->s[i].name,p->s[i+1].name);
        }
    }
    p->size--;
}
void exchange(struct Person *p,int ret){
    char change[20];
    int Id=0;
    std::cout<<"请输入修改后的学生的ID"<<std::endl;
    std::cin>>Id;
    p->s[ret].ID=Id;
    std::cout<<"请输入修改后的学生的姓名"<<std::endl;
    std::cin>>change;
    strcpy(p->s[ret].name,change);
}
int main() {
    int Id;
    struct Person p;
    p.size=0;
     bool flag=true;
     int n=0;
    do{
        mune();
        std::cout<<"请输入您的选择:>"<<std::endl;
        std::cin>>n;
        switch(n){
            case 1: {
                std::cout<<"欢迎使用,请输入您想要查询新生信息的学号"<<std::endl;

                if (p.size == 0) {
                    std::cout << "抱歉信息管理系统内暂无信息" << std::endl;
                } else {
                    int ret = isExit(&p);
                    if (ret == -1) {
                        std::cout << "抱歉查无此人" << std::endl;
                    } else {
                        showstudent(&p, ret);
                    }

                }
            }
                break;
            case 2: {
                if(p.size==0){
                    std::cout<<"很抱歉,信息管理系统信息为零"<<std::endl;
                }
                else{
                    delect(&p);
                }
            }
                break;
            case 3:{
                std::cout<<"请输入要修改学生的ID"<<std::endl;
                 int ret = isExit(&p);
                 if(ret==-1){
                     std::cout<<"查无此人"<<std::endl;
                 }
                 else{
                     exchange(&p,ret);
                 }
            }
                break;
            case 4:
                Add(&p);
                break;
            case 5:
            {
                std::cout<<"退出成功"<<std::endl;
                 flag=false;
            }
                         break;
        }

    }while(flag);
    return 0;
}

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熬到半夜敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值