程序中的顺序表数据元素类型为学生信息结构类型

2025-09-30 00:44:39

1、#include "stdafx.h"

#include<iostream>

using namespace std;

#define LISTSIZE  100

#define LISTINCREMENT 100

struct Student{

char ID[100];

char name[100];

char grade[100];

int age;

char sex[100];

};//确定数据类型

struct Sqlist{

int *elem;

int length;

int listsize;

Student student[100];

};//建立链表

int InitSqlist (Sqlist&L){

L.elem =(int *)malloc(LISTSIZE*sizeof(int));

L.length =0;

L.listsize =LISTSIZE;

return 1;

}

 int display(Sqlist&sqlist,int N)

{

cout<<"学号\t"<<"姓名\t"<<"性别\t"<<"年龄\t"<<"班级\t"<<endl;

for(int i=1;i<=N;++i)

cout<<sqlist.student[i].ID<<"\t"<<sqlist.student[i].name<<"\t"<<sqlist.student[i].sex <<"\t"<<sqlist.student[i].age <<"\t"<<sqlist.student[i].grade <<endl;

   return 1;

}

Sqlist input(Sqlist&sqlist,int N)

{

cout<<"请输入学生的学号,姓名,性别,年龄,班级"<<endl;

for(int i=1;i<=N;++i)

{

sqlist.length++;

cin>>sqlist.student[i].ID>>sqlist.student[i].name>>sqlist.student [i].sex >>sqlist.student [i].age >>sqlist.student [i].grade ;

}

return sqlist;

}

Sqlist SqlistInsert(Sqlist&L,int i)

{

if(L.length<=LISTSIZE)

{

int* newspace=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));

L.elem =newspace;

L.listsize+=1;

}

L.length++;

Student* p=(&L.student[i]);

Student* m=(&L.student[L.length]);

for(;p<=m;m--)

{

*(m+1)=*m;

}

cout<<"请输入学号,姓名,性别,年龄,班级"<<endl;

cin>>L.student[i].ID>>L.student[i].name>>L.student [i].sex >>L.student [i].age >>L.student [i].grade ;

return L;

}

Sqlist SqlistDelete(Sqlist&L,int i)

{

L.length --;

Student *p=(&L.student[i]);

Student *m=(&L.student[L.length] );

for(;p<=m;p++)

{

*p=*(p+1);

}

return L;

}

int compare(Sqlist&sqlist,char *q,int i)

{

if (strcmp(q,sqlist.student [i].ID)==0 )

return 1;

else return 0;

}

int _tmain(int argc, _TCHAR* argv[])

{

Sqlist sqlist;//成员声明

InitSqlist(sqlist);//顺序表初始化

int N;

cout<<"请输入学生的数量N"<<endl;

cin>>N;

input(sqlist,N);

    display(sqlist,N);

int i;

cout<<"请输入插入学生的位序i"<<endl;

cin>>i;

sqlist=SqlistInsert(sqlist,i);

int n=N+1;

display(sqlist,n);

cout<<"请输入删除学生的位序i"<<endl;

cin>>i;

sqlist=SqlistDelete(sqlist,i);

n=N;

display(sqlist,n);

char q[10];

cout<<"请输入欲搜索的学生的学号"<<endl;

cin>>q;

for(int i=0;i<=n;i++)

     {

if(compare(sqlist,q,i))

{

cout<<i<<endl;

}

}

return 0 ;

}

2、调试一,输入n名学生的信息,设n=3

程序中的顺序表数据元素类型为学生信息结构类型

3、输出学生的信息

程序中的顺序表数据元素类型为学生信息结构类型

4、调试三,插入

程序中的顺序表数据元素类型为学生信息结构类型

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢