C语言学生成绩管理系统

钱包空了 2021-11-27 21:10:19
#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
#include<conio.h>
struct MyStruct
{
int stunum;  //学号
int great[3]; //成绩 
char name[10]; //姓名 
float ave;	//平均成绩 
int flag;   //标志	
}stu[1000];
int many=0;  //获取录入学生的个数 
//函数声明
void initial();  //初始界面
void Administrator();  //登录界面 
void pubpil();   //介绍 
void AdminInter();  // 登录界面 
void pupInter();   //介绍界面
void scanfstu();  //输入学生信息
void printstu();   //输出学生信息
void sort();    //成绩排序
void find();  //查找学生信息
void amend();  //修改信息
void space();   //删除信息 
 
 
 
void initial()
{
	printf("*欢迎进入学生成绩管理系统*\n\n");
 
	printf("   *请选择模式*\n\n");
	printf("    1.登录界面\n");
	printf("    2.介绍界面\n");
	 
}
//登录界面 
void AdminInter()
{
	printf("*欢迎进入登录界面*\n\n");
	printf("  *请选择具体服务*\n\n");
	printf("    1.输入学生信息\n");
	printf("    2.输出学生信息\n");
	printf("    3.学生成绩排序\n");
	printf("    4.查找学生信息\n");
	printf("    5.修改学生信息\n");
	printf("    6.删除学生信息\n");
	printf("    7.退出系统\n");
}

//输入学生信息
void scanfstu()
{
	printf("*欢迎进入学生信息输入功能*\n\n");
	printf("请输入学生的学号:");
	scanf("%d",&stu[0].stunum);
	printf("请输入学生的姓名:");
	scanf("%s",stu[0].name);
	printf("请输入学生的第一门成绩:");
	int great;
	float num=0;
	while(1)
	{   scanf("%d",&great);
		if(great>100||great<0)
		printf("请重新输入!!"); 
		else
		 break;
	}
	num=num+great;
	stu[many].great[0]=great;
	printf("请输入学生的第二门成绩:");
	
	while(1)
	{   scanf("%d",&great);
		if( great>100||great<0)
		printf("请重新输入!!"); 
		else
		 break;
	}
	num=num+great;
	stu[many].great[1]=great;
	printf("请输入学生的第三门成绩:");
	
	while(1)
	{   scanf("%d",&great);
		if(great>100||great<0)
		printf("请重新输入!!"); 
		else
		break;
	}
	num=num+great;
	stu[many].great[2]=great;
	stu[many].flag=1;    //正常数据的标志 
	num=num/3;
	stu[many].ave=num;
	many++;
	printf("\n该学生成绩已经录入,是否录入其他学生成绩?\n");
	printf("\n1.继续\n");
	printf("\n2.退出\n");
	printf("\n请选择:");
	int temp;
	scanf("%d",&temp);
	while(1)
	{
		if(temp==1)
		{
			system("cls");
			scanfstu();
			break;
		}
		else if(temp==2)
		{
			system("cls");
			Administrator();
			break;
		}
		else
		{
			printf("非法输入,重新选择");
		}
	}
	
}
//输出学生信息
void printstu()
{
	printf("         *欢迎进入学生信息输出功能*\n\n");
	printf("学号    姓名    第一门   第二门   第三门  平均分\n");
	for(int i=0;i<many;i++)
	{
		printf("%6d",stu[i].stunum);
		printf("%10s",stu[i].name);
		printf("%8d",stu[i].great[0]);
		printf("%8d",stu[i].great[1]);
		printf("%8d",stu[i].great[2]);
		printf("%9.2f",stu[i].ave);
		printf("\n");
	}
	printf("请按任意键返回管理操作界面:");
	getch();
	system("cls");
	Administrator(); 
}  
 //成绩排序
void sort()
{
	int k;	
	printf("         *欢迎进入学生成绩排序功能*\n\n");
	printf("学号    姓名    第一门   第二门   第三门  平均分\n");
	for(int i=0;i<many;i++)
	{
		for(int j=0;j<many;j++)  //min 
		{
			
			if(stu[j].flag==1)   //判断成绩是否输出 
			{  k=j;
			   if(stu[k].ave>stu[j].ave)
			   {
			   	  k=j;
			   }	
			}
		}
		stu[k].flag=2;
		printf("%6d",stu[k].stunum);
		printf("%10s",stu[k].name);
		printf("%8d",stu[k].great[0]);
		printf("%8d",stu[k].great[1]);
		printf("%8d",stu[k].great[2]);
		printf("%10.2f",stu[k].ave);
		printf("\n");
	}
	for(int i=0;i<many;i++)
	if(stu[i].flag==2)
		stu[i].flag=1;
	printf("请按任意键返回管理操作界面:");
	getch();
	system("cls");
	Administrator(); 
	
}   
//查找学生信息
void find()
{
   	printf("         *欢迎进入查找功能*\n\n");
   	printf("请输入要查找学生的姓名:");
	char temp[10];

	while(1)
	{
	scanf("%s",temp);
	int i;
	for(i=0;i<many;i++)
	{
		if(stu[i].flag==1)
		{
			if(strcmp(temp,stu[i].name)==0)
		      {
			       printf("%6d",stu[i].stunum);
		           printf("%10s",stu[i].name);
		           printf("%8d",stu[i].great[0]);
		           printf("%8d",stu[i].great[1]);
		           printf("%8d",stu[i].great[2]);
		           printf("%9.2f",stu[i].ave);
		           printf("\n");
				   break;	
		     }
		      
		}
		
	} 
	if(i==many)
	printf("该学生不存在");
	else
	break;
   	
	}
	printf("请按任意键返回管理操作界面:");
	getch();
	system("cls");
	Administrator(); 
	
	
}
//修改信息
void amend()
{
		printf("         *欢迎进入进入修改学生信息功能功能*\n\n");
		printf("请输入你要修改的学生的学号:");
		int temp,i;
		
		while(1)
	{
	
	for(i=0;i<many;i++)
	{
	    scanf("%d",&temp);
		if(stu[i].flag==1)
		{
			if( temp==stu[i].stunum)
		      {
		      	   printf("*请选择要修改的数据");
		      	   printf("  1.修改名字\n");
		      	   printf("  2.修改学号\n");
			       printf("  3.修改第一门成绩\n");
			       printf("  4.修改第二门成绩\n");
			       printf("  5.修改第三门成绩\n");
			       printf("请选择:");
			       int p;
			       scanf("%d",&p);
			       switch(p)
			       {
			       	case 1:
			       		{
			       			printf("请输入新名字:");
			       			scanf("%s",stu[i].name);
			       			printf("名字修改完成");
			       			break;
			       		}
			       	case 2:
					   {
					   	printf("请输入新学号:");
					   	scanf("%d",&stu[i].stunum);
					   	printf("学号修改完成");
					   	break;
					   }	
					case 3:
						{
							printf("请输入新的第一门成绩:");
							scanf("%d",&stu[i].great[0]);
							printf("第一门成绩修改完成");
							break;
						}
					case 4:
						{
							printf("请输入新的第二门成绩:");
							scanf("%d",&stu[i].great[1]);
							printf("第二门成绩修改完成");
							break;
						}
			       		
			       	case 5:
			       		{
							printf("请输入新的第三门成绩:");
							scanf("%d",&stu[i].great[2]);
							printf("第三门成绩修改完成");
							break;
						}
			       		
			      
				  			
			       }
			       stu[i].ave=(stu[i].great[0]+ stu[i].great[1]+stu[i].great[2])/3;
				   break;
				   	
		     }
		     
		      
		}
		
	} 
	if(i==many)
	printf("该学生不存在,请重新输入:");
	else
	 break;
	}
	printf("请按任意键返回管理操作界面:");
	getch();
	system("cls");
	Administrator(); 
} 
 
//删除信息 
void space()
{
		printf("         *欢迎进入学生信息删除功能*\n\n");
		printf("请输入你需要删除的学生的学号:");
		int temp;
		scanf("%d",&temp);
		while(1)
		{
			int i;
			for(i=0;i<many;i++)
			{
				if(stu[i].flag==1)  //判断该数据是否被删除
				{
					if(temp==stu[i].stunum)
					{
						stu[i].flag=0;  //表示该数据已被删除
						 
						
						break;
					}
				} 
			}
			if(i==many)
			printf("该学生不存在,请重新输入:"); 
			else
			break;
		} 
		printf("该学生信息已删除!!");
		printf("请按任意键返回管理操作界面:");
	    getch();
        system("cls");
	    Administrator(); 
} 
 
//登录界面 
void Administrator()
{
    AdminInter();
	while(1)
	{
		printf("请输入你需要进行的操作序号:");
		int temp;
		scanf("%d",&temp);
		switch(temp)
		{
			case 1:
				{
					system("cls");
					scanfstu(); 
					break;
				}
			case 2:
				{
					system("cls");
					printstu();
					break;
				}
			case 3:
				{
					system("cls");
					sort();  
					break;
				}
			case 4:
				{
				    system("cls");
				    find();  
				    break;
				}
			case 5:
				{ 
				    system("cls");
				    amend(); 
				    break;
				}
			 
			case 6:
				{
					system("cls");
					 space();   
					break;
				}
			case 7:
				{
				   exit(0);
				}
		}
	}
} 
//介绍 
void pubpil()
{
	printf("本程序由学生鬲宇航耗时半天完成");
	getch(); 
} 
int main()
{
	initial(); 
	while(1)
	{
		printf("请输入你需要进入的模式:");
	    int temp;
	    scanf("%d",&temp);
		if(temp==1)
		{   system("cls");
			Administrator();
			
			break;
		}
		else if(temp==2)
		{   system("cls");
			pubpil();
			break;
		}
		else
		{
			printf("没有该选项,请重新输入!!"); 
		}
	}
	return 0;
}

 

...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
0M01M1 2021-11-28
  • 打赏
  • 举报
回复 1

膜拜大佬

WeiComp 新手村气氛调节师 2021-11-27
  • 打赏
  • 举报
回复 1

这是课设麽👍👍👍

钱包空了 2021-11-27
  • 举报
回复 1
@WeiComp 是的
WeiComp 新手村气氛调节师 2021-11-27
  • 打赏
  • 举报
回复 1

666!!!

提桶跑 2021-11-27
  • 打赏
  • 举报
回复 1

太强了吧

钱包空了 2021-11-27
  • 举报
回复
@提桶跑 之前上大一做的

67,732

社区成员

发帖
与我相关
我的任务
社区描述
灌水发信息每周送书 灌水发干货每周送惊喜 谁最水过年送大礼 谁最硬核过年送大礼 谁最贡献过年送大礼
社区管理员
  • 1_bit
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

我们“新手村”社区就是大家的孵化器

你们学习,我来评分

每周最高分送一本书

每月第四周送一份机械键盘

咱们新手村使用一切狂暴手段让优秀的人得到奖励

 

试试用AI创作助手写篇文章吧