fun.h文件
#ifndef __FUN_H__
#define __FUN_H__
#include <myhead.h>
#define SX 30//
#define AZ 30
#define MAX 30
typedef char ch[SX];
typedef struct
{
ch name;
ch classm;
int age;
int score;
}stu;
typedef struct
{
stu student[MAX];
int len;
}rty,*prty;
prty fun0();//申请空间
void fun1(prty M);
void fun2(prty M);
void fun3(prty M);//按位插入
void fun4(prty M);
void my_free(prty M);
void look(prty M,int a,int b);//查看一定区域内的信息
#endif
fun.c文件
#include "fun.h"
prty fun0()//申请空间
{
prty M=malloc(sizeof(rty));
if(M==NULL)
{
printf("申请失败\n");
return NULL;
}
else
{
M->len=0;//计数器初始化
memset(M->student,0,sizeof(M->student));
return M;
}
}
void fun1(prty M)//输入信息
{
printf("请输入学生信息:\n按照以下格式书写:\n姓名 班级 年龄 分数\n");
scanf("%s%s%d%d",M->student[M->len].name,
M->student[M->len].classm,&M->student[M->len].age,
&M->student[M->len].score);
M->len++;
printf("len= %d\n",M->len);
}
void look(prty M,int a,int b)//查看一定区域内的信息
{
int i;
if(a>0||a<=MAX||b>0||b<=MAX)
{
if(a<b)
{
a^=b;
b^=a;
a^=b;
}
for(i=a-1;i<b;i++)
{
printf("姓名:%s\t班级:%s\t年龄:%d\t成绩:%d\n",
M->student[i].name,
M->student[i].classm,
M->student[i].age,
M->student[i].score);
}
}
}
void fun2(prty M)//全部查看
{
int i;
for(i=0;i<M->len;i++)
{
printf("姓名:%s\t班级:%s\t年龄:%d\t成绩:%d\n",
M->student[i].name,
M->student[i].classm,
M->student[i].age,
M->student[i].score);
}
}
void fun3(prty M)//按位插入
{
printf("请输入要插入的位置:\n");
int key,i;
stu key1;
scanf("%d",&key);
if(key<0||key>M->len+1||key>MAX)
{
printf("你的输入有误\n");
}
else
{
printf("请输入要插入的内容:\n");
printf("姓名:\t班级:\t年龄:\t成绩:\n");
scanf("%s%s%d%d",key1.name,key1.classm,
&key1.age,&key1.score);
for(i=M->len;i>=key-1;i--)
{
M->student[i+1]=M->student[i];
}
M->student[key-1]=key1;
}
M->len++;
}
void fun4(prty M)
{
int key ,i;
printf("请输入要删除的位置:\n");
scanf("%d",&key);
if(key<0||key>M->len+1||key>MAX)
{
printf("你的输入有误\n");
}
else
{
for(i=key;i<M->len+1;i++)
{
M->student[i]=M->student[i+1];
}
}
M->len--;
}
void my_free(prty M)
{
free(M);
M==NULL;
}
main.c文件
#include "fun.h"
int main(int argc, const char *argv[])
{
int a;
prty M=fun0();
while(1)
{
printf("输入业务序号:\n");
scanf("%d",&a);
switch (a)
{
case 1:fun1(M);
break;
case 2:fun2(M);
break;
case 3:fun3(M);
break;
case 4:fun4(M);
break;
case 5:void my_free(M);
break;
default :printf("序号有误\n");
break;
}
}
return 0;
}