头文件与宏定义
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 30 //宏定义最大学生人数
//定义全局变量
int num=0; //定义学生编号
int x=0; //定义浏览学生信息的个数
定义学生信息结构体与声明函数
//定义学生信息结构体
typedef struct student
{
char name[30]; //学生姓名
char sex[10]; //学生性别
int age; //学生年龄
long int number; //学生学号
int record; //学生成绩
}th_note;
//声明函数
void add(th_note *a);
void delete(th_note *a);
void inquire(th_note *a);
void amend(th_note *a);
void look(th_note *a);
功能函数块
/*-------------------------------------------------
增加学生数据
-------------------------------------------------*/
void add(th_note *a)
{
printf("============================\n");
printf("请输入你要增加的学生的编号1~%d\n",MAX);
scanf("%d",&num);
if(num>0 && num<=MAX) //判断是否超出学生的最大人数
{
printf("请输入你要增加的学生的姓名\n");
scanf("%s",(a+num)->name);
printf("请输入你要增加的学生的性别\n");
scanf("%s",(a+num)->sex);
printf("请输入你要增加的学生的年龄\n");
scanf("%d",&(a+num)->age);
printf("请输入你要增加的学生的学号\n");
scanf("%ld",&(a+num)->number);
printf("请输入你要增加的学生的成绩\n");
scanf("%d",&(a+num)->record);
printf("增加的学生数据:\n编号:%d \t名字:%s \t性别:%s \t年龄:%d \t学号:%ld \t成绩:%d \n",
num,
(a+num)->name,
(a+num)->sex,
(a+num)->age,
(a+num)->number,
(a+num)->record
);
x++;
printf("增加成功\n");
}
else
printf("增加失败\n");
printf("\n");
}
/*-------------------------------------------------
删除学生数据
-------------------------------------------------*/
void delete(th_note *a)
{
printf("============================\n");
printf("请输入你要删除的学生的编号1~%d\n",MAX);
scanf("%d",&num);
if(0<num && num<=MAX)
{
strcpy((a+num)->name,"0");
strcpy((a+num)->sex,"0");
(a+num)->age='\0';
(a+num)->number='\0';
(a+num)->record='\0';
printf("删除成功!\n");
}
else
printf("删除失败!\n");
printf("\n");
}
/*-------------------------------------------------
查询学生数据
-------------------------------------------------*/
void inquire(th_note *a)
{
printf("============================\n");
printf("请输入你要查询的学生的编号1~%d\n",MAX);
scanf("%d",&num);
if(0<num && num<=MAX)
{
printf("编号:%d \t名字:%s \t性别:%s \t年龄:%d \t学号:%ld \t成绩:%d \n",
num,
(a+num)->name,
(a+num)->sex,
(a+num)->age,
(a+num)->number,
(a+num)->record
);
}
else
printf("暂无学生信息!\n");
printf("\n");
}
/*-------------------------------------------------
修改学生数据
-------------------------------------------------*/
void amend(th_note *a)
{
printf("============================\n");
printf("请输入你要修改的学生的编号1~%d\n",MAX);
scanf("%d",&num);
if(0<num && num<=MAX)
{
printf("修改学生数据前的学生数据为:\n");
printf("编号:%d \t名字:%s \t性别:%s \t年龄:%d \t学号:%ld \t成绩:%d \n",
num,
(a+num)->name,
(a+num)->sex,
(a+num)->age,
(a+num)->number,
(a+num)->record
);
printf("请输入你要修改的学生的姓名\n");
scanf("%s",(a+num)->name);
printf("请输入你要修改的学生的性别\n");
scanf("%s",(a+num)->sex);
printf("请输入你要修改的学生的年龄\n");
scanf("%d",&(a+num)->age);
printf("请输入你要修改的学生的学号\n");
scanf("%ld",&(a+num)->number);
printf("请输入你要修改的学生的成绩\n");
scanf("%d",&(a+num)->record);
printf("修改学生数据后的学生数据为:\n");
printf("编号:%d \t名字:%s \t性别:%s \t年龄:%d \t学号:%ld \t成绩:%d \n",
num,
(a+num)->name,
(a+num)->sex,
(a+num)->age,
(a+num)->number,
(a+num)->record
);
}
else
printf("暂无学生信息,无法修改!\n");
printf("\n");
}
/*-------------------------------------------------
浏览学生信息
-------------------------------------------------*/
void look(th_note *a)
{
printf("=============================学生信息==============================\n");
if(x!=0)
{
for(num=1;num<=x;num++)
{
printf("编号:%d \t名字:%s \t性别:%s \t年龄:%d \t学号:%ld \t成绩:%d \n",
num,
(a+num)->name,
(a+num)->sex,
(a+num)->age,
(a+num)->number,
(a+num)->record
);
}
}
else
printf("无学生信息\n");
printf("\n");
}
主函数
int main(int argc, char const *argv[])
{
th_note *a =(struct student*)malloc(sizeof(struct student)*100);
//主页面
printf("========学生管理系统========\n");
labe:
printf("============================\n");
printf("1.增加学生数据\n2.删除学生数据\n3.查询学生数据\n4.修改学生数据\n5.浏览学生信息\n6.退出\n");
printf("============================\n");
int n;
do
{
printf("请输入你想要的操作\n");
scanf("%d",&n);
if (n<=0||n>6)
{
printf("你输入的数据有误,请重新输入数据!!\n");
goto labe;
}
switch(n)
{
case 1:
printf("请输入你要增加的学生数据\n");
add(a);
break;
case 2:
printf("请输入你要删除的学生数据\n");
delete(a);
break;
case 3:
printf("请输入你要查询的学生数据\n");
inquire(a);
break;
case 4:
printf("请输入你要修改的学生数据\n");
amend(a);
break;
case 5:
look(a);
break;
default:
printf("你已退出系统\n");
}
}while(n<6);
free(a);
return 0;
}
文章转载于https://blog.csdn.net/qq_46422460/article/details/108305441
类似文章推荐https://blog.csdn.net/weixin_40949133/article/details/78628752
https://blog.csdn.net/aiwangtingyun/article/details/79665330
https://blog.csdn.net/qq_21792169/article/details/53366940