Day 25 12站 渐入佳境

#include <iostream>

using namespace std;
using datatype =int;
struct stu
{
    datatype *data=NULL;
    int size=0;
    int len=0;
    void create(int a);
    bool empty();
    bool full();
    bool add(datatype e);
    bool bl();
    bool delet_pos(int a);
    datatype at(int index);
    bool insert_pos(int c,int inde);
};
void stu::create(int a)
{
    size = a;
    data=new int[a];
}
bool stu::empty()
{
   return len==0;
}
bool stu::full()
{
    return len==size;
}
bool stu::add(datatype e)
{
    if(full())
    {
        cout<<"添加失败";
        return false;
    }
    data[len]=e;
     cout<<data[len]<<endl;
    len++;
    cout<<"添加成功"<<endl;

    return true;
}
bool stu::bl()
{
    if(empty())
    {
        cout<<"遍历失败"<<endl;
        return false;
    }
    for(int i =0;i<len;i++)
    {
        cout<<data[i]<<"  ";
    }
    cout<<endl;
      cout<<"遍历成功"<<endl;
    return true;
}
bool stu::delet_pos(int a)
{
    if(empty())
    {
        cout<<"删除失败"<<endl;
        return false;
    }
    for(int i=a;i<len;i++)
    {
        data[i]=data[i+1];
    }
    data[len-1]=0;
    len--;
    cout<<"删除成功"<<endl;
    return true;
}
datatype stu:: at(int index)
{
    if(empty())
    {
        cout<<"失败"<<endl;
        return -1;

    }
    cout<<data[index-1]<<endl;
    return 0;
}
bool stu::insert_pos(int c,int inde)
{
    if(empty()||full()||c>len)
    {
        cout<<"插入失败"<<endl;
        return false;
    }
    len++;
    for(int i=len-1;i>=c-1;i--)
    {
        data[i]=data[i-1];
    }
    data[c-1]=inde;
    cout<<"插入成功"<<endl;
    return true;
}
void menu()
{
    cout<<"**********菜单*********"<<endl;
    cout<<"        1.添加         "<<endl;
    cout<<"        2.删除         "<<endl;
    cout<<"        3.查看         "<<endl;
    cout<<"        4.插入         "<<endl;
    cout<<"        5.遍历         "<<endl;
    cout<<"        6.退出         "<<endl;
    cout<<"***********************"<<endl;
}
int main()
{
   bool b2=0;
    stu p1;
    int a =0;
    int input=0;
    int exit=1;
    cout<<"请输入创建数据表的大小";
    cin>>a;
    p1.create(a);
    if(p1.data!=NULL)
    {
        cout<<"创建成功"<<endl;
    }
    do
    {
        input=0;
        menu();
        cout<<"请选择>>>";
        cin>>input;
    switch(input)
    {
        case 1:
        {
            datatype e =0;
            cout<<"请输入添加成绩";
            cin>>e;
          b2=p1.add(e);
         }break;
          case 2:
         {
            int q =0;
            cout<<"请输入删除位置>>>";
            cin>>q;
            p1.delet_pos(q);
          }break;
          case 3:
         {
            int index;
            cout<<"请输入查看的位置>>>";
            cin>>index;
           p1.at(index);
           }break;
           case 4:
           {
        int c;
        int inde;
        cout<<"请输入成绩";
        cin>>c;
        cout<<"请输入插入的位置>>>";
        cin>>inde;
       p1.insert_pos(inde,c);
           }break;
          case 5:
          {
           p1.bl();
          }break;
    case 6:
    {
        exit=0;
    }break;
    default:
    {
        cout<<"输入错误,重新输入";
    }
          }
    }while(exit);
     delete []p1.data;
    return 0;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值