数据结构顺序表-学生管理系统

#include<stdio.h>

#include<windows.h>

#include<stdlib.h>

#define INIT_SIZE 100 //线性表储存空间的初始分配量 

#define INCREMENT 10 //线性表储存空间的分配增量

typedef struct

{

 char sname[9];

 int score;

}student;

typedef student ElemType;

typedef struct

{

 ElemType*elem;

 int length;

 int listsize;

}SqList;

void menu();

int InitList_Sq(SqList *L)

{

 L->elem=(ElemType *)malloc(INIT_SIZE*sizeof(ElemType));

 if(!L->elem) return 0;

 L->length=0;

 L->listsize=INIT_SIZE;

 return 1;

}

//插入 

int ListInsert_Sq(SqList *L,int i,ElemType e)

{

 int j;

 ElemType *newbase;

 if(i<0 || i>L->length) return 0;

 if(L->length>=L->listsize)

 {

  newbase=(ElemType *)realloc(L->elem,(L->listsize+INCREMENT)*sizeof (ElemType));

  if(!newbase) return 0;

  L->listsize += INCREMENT;

 }

 for(j=L->length-1;j>=i;j--)

     L->elem[j+1] = L->elem[j];

     L->elem[i]=e;

     ++L->length;

     return 1;

}

//删除 

int LiseDelete_Sq(SqList *L,int i,ElemType *e)

{

 int j;

 if(i<0 || i>L->length-1) return 0;

 *e=L->elem[i];

 for(j=i+1;j<=L->length-1;j++)

     L->elem[j-1]=L->elem[j];

 --L->length ;

 return 0;

}

//浏览 

int TraverseList_Sq(SqList *L)

{

 if(L->length==0)

 {

  printf("当前为空表!\n");

  return 0;

 }

 printf("**显示所有学生信息**\n");

 printf("姓名\t\t语文成绩\t\t数学成绩\t\t英语成绩 \n\n");

 int i;

 for(i=0;i<L->length ;i++)

 {

  printf("%-16s%-16d%-16d%-16d\n",L->elem[i].sname,L->elem[i].score,L->elem[i].score,L->elem[i].score);

  printf("\n\n");

  } 

  return 1;

}

int main()

{

 SqList QL;

 system("cls");

    menu();

 int gamenumber;

 int a;

do{

 printf("\n请选择要运行的功能(0-5)\n"); 

 scanf("%d",&gamenumber);

switch(gamenumber)

    {

     case 0:printf("\n此功能可以退出学生信息管理系统\n");system("pause");break;

     case 1:printf("\n此功能可以浏览学生信息\n");system("pause");break;

     case 2:printf("\n此功能可以插入学生信息\n");system("pause");break;

    case 3:printf("\n此功能可以删除学生信息\n");system("pause");break;
        case 4:printf("\n此功能可以查找学生信息\n");system("pause");break;
        case 5:printf("\n此功能可以排序学生信息\n");system("pause");break;
        default:printf("\n输入有误");
    }
    printf("\n是否继续操作?\n(1/0)");
    scanf("%d",&a);
}while(a==1);
}
//主界面 
void menu()
{

    system("color 0B");
    printf("\n******学生信息管理系统******");
    printf("\n****************************");
    printf("\n*******1.浏览学生信息*******");
    printf("\n****************************");
    printf("\n*******2.插入学生信息*******");
    printf("\n****************************");
    printf("\n*******3.删除学生信息*******");
    printf("\n****************************");
    printf("\n*******4.查找学生信息*******");
    printf("\n****************************");
    printf("\n*******5.排序学生信息*******");
    printf("\n****************************");
    printf("\n***********0.退出***********");
    printf("\n****************************");
    printf("\n***********第04组***********");

}

bbdc957cbf4841f7a7ad36666839d47b.png

 


网盘资源

链接:https://pan.baidu.com/s/1DXOTLFaGxNp7lVk9XRDcgQ?pwd=rx5b 

提取码:rx5b


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值