头文件与宏定义
#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