linux编写学生管理系统
2021/11/3 7:13:15
本文主要是介绍linux编写学生管理系统,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
头文件与宏定义
#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
这篇关于linux编写学生管理系统的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法