写出一个功能:
1、输入学生和老师的信息;
2、遍历信息
3、删除信息
3、退出输入程序
头文件01fun.h
#ifndef _01FUN_H_
#define _01FUN_H_
#include <stdio.h>
union msg
{
float score;
float jixiao;
};
typedef struct
{
int id;
char name[10];
int age;
union msg t;
char str; //标志为 s为学生 t为老师
} Stu;
void get_s(Stu *arr,int index);
void get_t(Stu *arr,int index);
void del_stu();
void del_t();
void show(Stu *arr,int index);
#endif
主函数main.c
#include <stdio.h>
#include "./01fun.h"
int main(int argc, const char *argv[])
{
int count;
int index=0;
Stu arr[10];
while(1)
{
printf("1.录入学生\n\n");
printf("2.录入老师\n\n");
printf("3.删除学生\n\n");
printf("4.遍历\n\n");
printf("5.退出\n\n");
printf("请输入编号>>>");
scanf("%d",&count);
switch (count)
{
case 1: // 录入学生
get_s(arr,index);
index++;
break;
case 2: //录入老师
break;
case 3:
del_stu(arr,index); //删除学生
break;
case 4: //遍历
show(arr,index);
break;
case 5:
goto FUN;
break;
}
}
功能函数
#include <string.h>
#include "./01fun.h"
//插入学生信息
void get_s (Stu *arr,int index)
{
//获取学生学号
printf("请输入学生学号>>>");
int id;
scanf("%d",&id);
//获取学生姓名
printf("请输入学生姓名>>>");
char name[20];
scanf("%s",name);
//获取年龄
printf("请输入学生年龄>>>");
int age;
scanf("%d",&age);
//获取成绩
printf("请输入学生成绩>>>");
float score;
scanf("%f",&score);
strcpy((arr+index)->name,name);
(arr+index)->id=id;
(arr+index)->age=age;
(arr+index)->t.score=score;
(arr+index)->str='s';
}
//插入教师信息
void get_t(Stu *arr,int index)
{
//获取教师姓名
printf("请输入姓名>>>");
char name[20];
scanf("%s",name);
//获取年龄
printf("请输入年龄>>>");
int age;
scanf("%d",&age);
//获取绩效
printf("请输入绩效>>>");
float score;
scanf("%f",&score);
strcpy((arr+index)->name,name);
(arr+index)->age=age;
(arr+index)->t.jixiao=score;
(arr+index)->str='t';
}
//删除学生信息
void del_stu(Stu *arr,int index)
{
printf("请输入要删除学生的学号>>>");
int id;
scanf("%d",&id);
for(int i=0,j=0;i<index;i++)
{
if((arr+i)->id!=id)
{
(arr+j)->id=(arr+i)->id;
strcpy((arr+j)->name,(arr+i)->name);
(arr+j)->age=(arr+i)->age;
if((arr+i)->str=='s')
{
(arr+j)->t.score=(arr+i)->t.score;
}
else
{
(arr+j)->t.jixiao=(arr+i)->t.jixiao;
}
j++;
}
else
{
continue;
}
}
printf("删除成功\n");
}
//遍历
void show(Stu *arr,int index)
{
for(int i=0;i<index;i++)
{
printf("学号:%d\t 姓名:%s\t 年龄:%d\t 成绩:%lf\n",(arr+i)->id,(arr+i)->name,(arr+i)->age,(arr+i)->t.score);
}
}