实验报告实验目的:学生管理系统(顺序表)
实验要求:
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(" 第%睢学生:”,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;
}
char xh[40];
char xm[40];
int cj;
int i=0,u;
printf(" 1 printf(" 1 printf(" 1 printf(" 请选择: "); fflush(stdin);
scanf("%d",&u);
if (u==1)
{
printf (" 请输入要查找学生的学号:
");
scanf("%s",xh);
for(i=0;i
int cz(SqList *L) // {
查找信息
、按学号查询 、按姓名查询 、按成绩查询
\n"); \n"); \n");
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
{