顺序表-链表实验报告.总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验目的:学生管理系统(顺序表)实验要求:
1.建表
2.求表长
3.插入
4.查找
5.删除
6.列表
7.退出
源程序:
#include
#include
#include
#define MaxSize 1000
typedef struct
{
char xh[40];
char xm[40];
int cj;
}DataType; //学生的结构
typedef struct {
DataType data[MaxSize]; //定义表的数据类型
int length; //数据元素分别放置在data[0]到data[length-1]当中
} SqList; //表的结构
void liebiao(SqList *L) //建立表格
{
int k,n;
char q;
printf("请输入,输入学生的个数:\n");
fflush(stdin);
scanf("%d",&n);
for(k=0;k<=n-1;k++)
{
printf("请输入学生学号\n");
scanf("%s",L->data[k].xh);
printf("请输入学生名字\n");
scanf("%s",L->data[k].xm);
printf("请输入学生成绩\n");
scanf("%d",&L->data[k].cj);
}
L->length=n;
}
void qb(SqList *L) //全部输出
{
int k,w;
for(k=0;k
{
w=k+1;
printf("第%d位学生:",w);
printf("%s %s %d\n",L->data[k].xh,L->data[k].xm,L->da ta[k].cj);
}
}
int cr(SqList *L,DataType *xs,int i) //插入信息
{
int j;
if(L->length==MaxSize)
{
printf("没有!");
return 0;
}
else if((i<0)||(i>L->length))
{
printf("程序溢出,不符合");
return 0;
}
else
{
for(j=L->length-1;j>=i;j--)
{
strcpy(L->data[j+1].xh,L->data[j].xh);
strcpy(L->data[j+1].xm,L->data[j].xm);
L->data[j+1].cj=L->data[j].cj;
}
strcpy(L->data[i].xh,xs->xh);
strcpy(L->data[i].xm,xs->xm);
L->data[i].cj=xs->cj;
L->length=L->length+1;
}
return 0;
}
int cz(SqList *L) //查找信息
{
char xh[40];
char xm[40];
int cj;
int i=0,u;
printf(" 1、按学号查询 \n");
printf(" 1、按姓名查询 \n");
printf(" 1、按成绩查询 \n");
printf("请选择:");
fflush(stdin);
scanf("%d",&u);
if (u==1)
{
printf("请输入要查找学生的学号:");
scanf("%s",xh);
for(i=0;i
{
if(strcmp(L->data[i].xh,xh)==0)
return i;
}
}
if (u==2)
{
printf("请输入要查找学生的姓名:");
scanf("%s",xm);
for(i=0;i
{
if(strcmp(L->data[i].xm,xm)==0)
return i;
}
}
if (u==3)
{
printf("请输入要查找学生的成绩:");
scanf("%s",cj);
for(i=0;i
{
if(L->data[i].cj,&cj)
return i;
}
}
return -1;//*如果没找到,返回-1
}
int cz2(SqList *L) //删除查找的函数
{
char xh[40];
char xm[40];
int i=0,h;
printf(" 1、按学号删除 \n");
printf(" 2、按姓名删除 \n");
printf("请选择:");
fflush(stdin);
scanf("%d",&h);
if (h==1)
{
printf("请输入要删除学生的学号:");
scanf("%s",xh);
for(i=0;i
{