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

上一篇:[2017CCPC哈尔滨]B. K-th Number


下一篇:springboot