学生学籍管理系统 C语言 结构体 文件(简单) 课程设计

#include	
#include	
#include	//头文件
 
#define LEN 20		//学号和姓名最大字符数,20
#define N 50		//最大的学生人数
 
int M = 0;//当前已经有的学生数量
 
//函数声明
 
void insert();  //录入学生信息
void modify();  //修改学生信息
void search();  //查询学生信息
void menu();    //主菜单函数
void save();    //保存学生信息
void jiguanbiao();  //输出学生籍贯信息
void xueji();   //查询学生学籍变化信息
 
//结构体保存学生信息
struct student{
    long int Id;  //学号
    char Name[LEN+1];    //姓名
    char Sex[LEN+1];    //性别
    int  Age;     //年龄
    char BirthPlace[LEN+1];    //籍贯
    char YuanXi[LEN+1];          //院系
    char ZhuanYe[LEN+1];        //专业
    int  BanJi;      //班级
    char xueji[LEN+1];//学籍变化信息
 
}stu[N];
 

 
 
void menu()//菜单函数
{
 
	
	printf("\n");
	
	printf("*************欢迎使用学生信息管理系统***************\n");
	printf("*                                                  *\n");
	printf("********************系统功能菜单********************\n");
	printf("*                                                  *\n");
	printf("*                 1.添加学生信息                   *\n");
	printf("*                 2.修改学生信息                   *\n");
	printf("*                 3.查找学生信息                   *\n");
	printf("*                 4.输出学生籍贯表                 *\n");
	printf("*                 5.保存信息到文件                 *\n");
	printf("*                 6.查看学生学籍变化               *\n");
	printf("*                 0.退出系统                       *\n");
	printf("****************************************************\n");
}
void insert()//添加学生信息
	{	int i;
		for(i=1;i<=M;i++)
		{
			printf("请输入第%d个学生的学号:",i);
			scanf("%ld",&stu[i].Id);
			printf("请输入第%d个学生的姓名:",i);
			scanf("%s",&stu[i].Name);
			printf("请输入第%d个学生的性别:",i);
			scanf("%s",&stu[i].Sex);
			printf("请输入第%d个学生的年龄:",i);
			scanf("%d",&stu[i].Age);
			printf("请输入第%d个学生的籍贯:",i);
			scanf("%s",&stu[i].BirthPlace);
			printf("请输入第%d个学生的学院:",i);
			scanf("%s",&stu[i].YuanXi);
			printf("请输入第%d个学生的专业:",i);
			scanf("%s",&stu[i].ZhuanYe);
			printf("请输入第%d个学生的班级:",i);
			scanf("%d",&stu[i].BanJi);
			printf("请输入第%d个学生的学籍(如入学、转专业、退学、降级、休学、毕业):",i);
			scanf("%s",&stu[i].xueji);
		}
		printf("学生信息添加完毕!请立即保存数据信息到文件!");
		
	}
void modify()//修改学生信息
	{
		
	int i, item;
	long int a;
	printf("请输入要修改学生的学号:\n");
	scanf("%ld",&a);
	for (i=1; i<=M; i++)
	{
		if (stu[i].Id==a)
		{
			printf("1.修改名字:\n");
			printf("2.修改性别:\n");
			printf("3.修改年龄:\n");
			printf("4.修改籍贯:\n");
			printf("5.修改学院:\n");
			printf("6.修改专业:\n");
			printf("7.修改班级:\n");
			printf("8.修改学籍\n");
			printf("0.End of program!\n");
			do
			{
				printf("请选择:");
				scanf("%d", &item);
				switch (item)
				{
				case 1:
					printf("请输入更新后的名字:\n");
					scanf("%s", &stu[i].Name);
					break;
				case 2:
					printf("请输入更新后的性别:\n ");
					scanf("%s", &stu[i].Sex);
					break;
				case 3:
					printf("请输入更新后的年龄:\n");
					scanf("%d", &stu[i].Age);
					break;
				case 4:
					printf("请输入更新后的籍贯:\n");
					scanf("%s", &stu[i].BirthPlace);
					break;
				case 5:
					printf("请输入更新后的学院:\n");
					scanf("%s", &stu[i].YuanXi);
					break;
				case 6:
					printf("请输入更新后的专业:\n");
					scanf("%s", &stu[i].ZhuanYe);
					break;
				case 7:
					printf("请输入更新后的班级:\n ");
					scanf("%d", &stu[i].BanJi);
					break;
				case 8:
					printf("请输入更新后的学籍:\n");
					scanf("%s", &stu[i].xueji);
					break;
				case 0:
					break;
				default: printf("输入错误!请重新输入\n");
				}
				
			}while(item);
		}
	}
 
} 
void search()  //查找已知学号的学生信息
{
	long int b,term=-1;
	int i;
    printf("请输入要查找学生的学号:");
	scanf("%ld",&b);
	for (i=1; i<=M; i++)
	{
		if (stu[i].Id==b)
		{
			
			printf("学号:%ld  姓名:%s  性别:%s  年龄:%d  籍贯:%s  学院:%s  专业:%s  班级:%d  学籍:%s  \n",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);
			term=-2;
		}
	}
	if(term!=-2)
	{
		printf("Not found!\n");
	}
	
}
void jiguanbiao()//按学号和专业输出学生籍贯表
	{
	int i;
 
	FILE *fp;
	fp=fopen("student.txt","r");
	printf("********************学生籍贯表*********************\n");
	printf("学号      姓名       籍贯\n");
	for(i=1;i<=M;i++)
	{  
		printf("%ld        %s         %s\n",stu[i].Id,stu[i].Name,stu[i].BirthPlace);
	}
	fclose(fp);
	}
void save()//保存学生信息到文件
	{
		int i;
	
		FILE *fp;
		fp=fopen("student.txt","w");//在工程路径下创建名为“student.txt”的记事本
 
	    for(i=1;i<=M;i++)
		{
			fprintf(fp,"%ld         %s         %s         %d        %s         %s         %s         %d       %s  \n",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);
 
		}
		fclose(fp);
		printf("学生信息保存成功!");
	}
void xueji()   //查询学生学籍变化信息
 
	{
		long int c,t=-1;
		int i;
		printf("请输入要查询学生的学号:");
		scanf("%ld",&c);
		for (i=1; i<=M; i++)
		{
			if (c==stu[i].Id)
			{
			printf("学号:%ld  姓名:%s   学籍:%s  \n",stu[i].Id,stu[i].Name,stu[i].xueji);		
			t=-2;
			}	
		}
		
		if(t!=-2)	
		printf("Not found!\n");
	}
	
int main()
{
	int num=0;
	do
	{
		menu();
		printf("请选择菜单编号:");
		scanf("%d", &num);
		switch (num)
		{
        
        	case 1:
        		printf("请输入要添加的学生人数(不超过50):\n");
				scanf("%d", &M);
				insert();
         	    break;
        	case 2:
        	    modify();
        	    break;
        	case 3:
        	    search();
        	    break;
        	case 4:
        	    jiguanbiao();
        	    break;
        	case 5:
        	    save();
         	   break;
        	case 6:
        	    xueji();
        	    break;
        	case 0:
         	   printf("退出程序成功!\n");
        	    exit(0);
        	default:
        	    printf("请在1-8之间选择\n");
        	    system("pause");//提示完成之后显示按任意键继续
		}
	}while(num);
	
 
}

学生学籍管理系统 C语言 结构体 文件(简单) 课程设计_第1张图片

 学生学籍管理系统 C语言 结构体 文件(简单) 课程设计_第2张图片

 

你可能感兴趣的:(课程设计,c语言,c++,开发语言)