目录
1、管理系统
1、头文件
2、源文件
3、主函数
2、思维导图
#ifndef _WORK_H_
#define _WORK_H_
typedef struct
{
char name[20]; //姓名
char sex; //性别
int score; //成绩
int high; //身高
}S, *SPtr; //定义一个学生类型 作为一个数据元素
typedef struct
{
S data[50];
int len;
}C , *CPtr; // 定义了一个班级顺序表和一个顺序表指针
//创建顺序表
CPtr create();
//判满
int full(CPtr H);
//判空
int empty(CPtr H);
//输入函数1
int insert1(CPtr H,S n);
//输入函数
int insert(CPtr H,char name[20],char sex,int score,int high);
//输出顺序表内容
void show(CPtr H);
//查找函数
int search(CPtr H,int pos);
//删除函数
int del(CPtr H,int pos);
//更新函数
int updata(CPtr H,int pos,S e);
//释放顺序表
void cf(CPtr H);
#endif
#include "work.h"
#include
#include
#include
//创建顺序表
CPtr create()
{
CPtr H=(CPtr)malloc(sizeof(C));
if(NULL==H)
{
printf("创建失败\n");
return NULL;
}
H->len=0;
memset(H->data,0,sizeof(H->len));
printf("创建成功\n");
return H;
}
int full(CPtr H)
{
if(NULL==H)
{
printf("表格不合法\n");
return 0;
}
return H->len==50;
}
int empty(CPtr H)
{
if(NULL==H)
{
printf("表格不合法\n");
return 0;
}
return H->len==0;
}
int insert1(CPtr H,S n)
{
if(NULL==H||full(H))
{
printf("添加学生失败\n");
return 0;
}
H->data[H->len]=n;
H->len++;
printf("添加成功\n");
return 1;
}
int insert(CPtr H,char name[20],char sex,int score,int high)
{
if(NULL==H||full(H))
{
printf("添加学生失败\n");
return 0;
}
strcpy(H->data[H->len].name,name);
H->data[H->len].sex=sex;
H->data[H->len].score=score;
H->data[H->len].high=high;
H->len++;
printf("添加成功\n");
return 1;
}
void show(CPtr H)
{
if(NULL==H||empty(H))
{
printf("输出失败\n");
return ;
}
printf("序号\t姓名\t性别\t成绩\t身高\t\n");
for(int i=0;ilen;i++)
{
printf("%d\t%s\t%c\t%d\t%d\n",i,H->data[i].name,H->data[i].sex,H->data[i].score,H->data[i].high);
}
return ;
}
int search(CPtr H,int pos)
{
if(NULL==H||empty(H))
{
printf("查找失败\n");
return 0;
}
printf("序号\t姓名\t性别\t成绩\t身高\t\n");
{
printf("%d\t%s\t%c\t%d\t%d\n",pos,H->data[pos].name,H->data[pos].sex,H->data[pos].score,H->data[pos].high);
}
printf("查找结束\n");
return 1;
}
int del(CPtr H,int pos)
{
if(NULL==H||empty(H)||pos<1||pos>H->len)
{
printf("删除失败\n");
return -1;
}
for(int i=pos-1;ilen-1;i++)
{
H->data[i]=H->data[i+1];
}
H->len--;
printf("删除成功\n");
return 1;
}
int updata(CPtr H,int pos,S e)
{
if(NULL==H||empty(H))
{
printf("更新失败\n");
return 0;
}
H->data[pos-1]=e;
printf("更新成功\n");
return 1;
}
void cf(CPtr H)
{
if(NULL!=H)
{
free(H);
H=NULL;
}
printf("释放成功\n");
return;
}
#include "work.h"
#include
int main()
{
CPtr H=create();
if(NULL==H)
{
return -1;
}
while(1)
{
system("clear");
break;
}
S n = {"小胖",'M',90,180};
insert1(H,n);
insert(H,"小胖",'M',90,180);
insert(H,"小米",'W',80,185);
show(H);
search(H,1);
del(H,2);
show(H);
insert(H,"小陶",'M',88,178);
printf("序号\t姓名\t性别\t成绩\t身高\t\n");
for(int i=0;ilen;i++)
{
printf("%d\t%s\t%c\t%d\t%d\n",i,H->data[i].name,H->data[i].sex,H->data[i].score,H->data[i].high);
}
S e={"小胖",'W',95,180};
updata(H,1,e);
show(H);
cf(H);
}