#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组***********");
}
网盘资源
链接:https://pan.baidu.com/s/1DXOTLFaGxNp7lVk9XRDcgQ?pwd=rx5b
提取码:rx5b