|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<malloc.h>
#define Maxsize 50
typedef char ElemType;
typedef int status;
typedef struct {
ElemType Name[Maxsize];
int num[Maxsize];
int score[Maxsize];
int length;
}Sqstulist;
void InitList(Sqstulist *&L) //初始化
{
L=(Sqstulist *)malloc(sizeof(Sqstulist));
L->length=0;
}
bool CreateList(Sqstulist *L) //加入学生信息
{
int i;
printf("请输入表长:");
scanf("%d",&L->length);
if(L->length<1||L->length>Maxsize)
{
return false;
}
printf("请分别输入学号、姓名、分数:\n");
for(i=0;i<L->length;i++)
{
scanf("%d %c %d",&L->num[i],&L->Name[i],&L->score[i]);
}
return true;
}
bool InsertList(Sqstulist *L,int i) //插入学生信息
{
int j;
if(i<1||i>L->length+1)
{
return false;
}
for(j=L->length;j<i;j--)
{
L->num[j]=L->num[j-1];
L->Name[j]=L->Name[j-1];
L->score[j]=L->score[j-1];
}
printf("请输入要插入的信息");
scanf("%d %c %d",&L->num[i-1],&L->Name[i-1],&L->score[i]-1);
L->length++;
return true;
}
bool amendList(Sqstulist *L,int i) //修改学生信息
{
if(i<1||i>L->length)
{
return false;
}
printf("请输入修改的内容:");
scanf("%d %c %d",&L->num[i-1],&L->Name[i-1],&L->score[i-1]);
return true;
}
bool DeleteList(Sqstulist *L,int i) //删除学生信息
{
int j;
if(L->length==NULL)
{
return false;
}
if(i<1||i>L->length)
{
return false;
}
for(j=i;j<L->length;j++)
{
L->num[j-1]=L->num[j];
L->Name[j-1]=L->Name[j];
L->score[j-1]=L->score[j];
}
L->length--;
return true;
}
status OutList(Sqstulist *L) //输出学生信息
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d %c %d\n",L->num[i],L->Name[i],L->score[i]);
}
}
void Destroylist(Sqstulist *L) //销毁顺序表
{
free(L);
}
void meaun() //选择菜单
{
printf("2.插入学生信息\n");
printf("3.修改学生信息\n");
printf("4.删除学生信息\n");
printf("5.输出学生信息\n");
printf("6.输入0退出\n");
}
int main()
{
Sqstulist *L;
int a,j,k,n;
InitList(L);
CreateList(L);
while(1)
{
meaun();
printf("\n\n请输入要执行的序号:");
scanf("%d",&a);
switch(a)
{
case 2:
printf("请输入要插入学生信息的位置:");
scanf("%d",&j);
InsertList(L,j);
break;
case 3:
printf("请输入要修改的位置:");
scanf("%d",&k);
amendList(L,k);
break;
case 4:
printf("请输入要删除的位置:");
scanf("%d",&n);
DeleteList(L,n);
break;
case 5:
OutList(L);
break;
case 0:
break;
default:printf("你输入的编号不正确!\n");break;
}
if(a==0)
{
break;
}
}
Destroylist(L);
return 0;
}
|
|