Day 14 综合训练

今天练了一个综合训练,教务管理系统,可以对之前学习的有一个汇总

1. 综合训练

************欢迎进入海峰考务系统****************
1.添加学生成绩
2.查看所有学生成绩
3.根据学号查看成绩
4.查看成绩最高分和学号
5.查看成绩最低分和学号
6.查看成绩平均分
7.根据学号修改成绩
8.退出 
*************************************************
请选择:

我的思路是这样的

 

#include<stdio.h>

#define INCREASE_SCORE 1
#define SEARCH_ALL     2
#define SEARCH_SCORE   3
#define MAX_SCORE 4
#define MIN_SCORE 5
#define AVE_SCORE 6
#define MODIFY_SCORE 7
#define EXIT 8

int students[10][2] = {0};
int index = 0;//当前学生个数 

int menu();
void insertScore();
void searchAll(); 
void searchScore();
void maxScore();
void minScore();
void aveScore();
void modifyScore();

int main()
{
	int option = 1;
	while(option != 8)
	{
		option = menu();
		switch(option)
		{
			case INCREASE_SCORE:
				insertScore();
				break;
			case SEARCH_ALL:
				searchAll();
				break;
			case SEARCH_SCORE:
				searchScore();
				break;
			case MAX_SCORE:
				maxScore();
				break;
			case MIN_SCORE:
				minScore();
				break;
			case AVE_SCORE:
				aveScore();
				break;
			case MODIFY_SCORE:
				modifyScore();
				break;
			case EXIT:
				break;
			default:
				printf("您的输入有误请重新输入\n"); 
				
		}
		
		

	}
	
	printf("感谢使用!");

	
}

int menu()
{
	int option;
	printf("************欢迎进入海峰考务系统****************\n");
	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("*************************************************\n");
	printf("请选择:"); 
	scanf("%d",&option);
	return option;
}

void insertScore() //添加学生成绩
{
	int id, score;
	char option = 'y';
	while(option == 'y')
	{
	printf("请输入学号:\n");
	scanf("%d", &id);
	printf("请输入成绩:\n");
	scanf("%d", &score);
	if(index >= 10)
	{
		printf("信息录入已满\n");
	} 
	else
	{
		students[index][0] = id;
		students[index][1] = score;
		index++;
		printf("添加成功\n");
		printf("是否继续添加?(y/n)\n");
		getchar();
		scanf("%c", &option);
	}	
	}
	
}

void searchAll() //查看所有学生成绩
{
	printf("所有学生的成绩是:\n学号		成绩\n");
	for(int i = 0; i < index; i++)
	{
		printf("%d		%d\n", students[i][0], students[i][1]);
	}
}

void searchScore() //根据学号查看成绩
{
	int id;
	printf("请输入您想查找的学号:\n");
	scanf("%d", &id);
	for(int i = 0; i < index; i++)
	{
		if(students[i][0] == id)
		{
			printf("这位同学的成绩是:%d\n", students[i][1]);	
		} 
	}
}

void maxScore() //查看成绩最高分和学号
{
	int i;
	int max = students[0][1];
	for(i = 0; i < index; i++)
	{
		if(max < students[i][1])
		{
			max = students[i][1];
		}	
	}
	printf("这次考试的最高成绩是%d\n", max);
	printf("成绩最高的同学是:\n"); 
	for(i = 0; i < index; i++)
	{
		if(max == students[i][1])
		{
			printf("%d\n", students[i][0]);
		}
	}
}

void minScore() //查看成绩最低分和学号
{
	int i;
	int min = students[0][1];
	for(i = 0; i < index; i++)
	{
		if(min > students[i][1])
		{
			min = students[i][1];
		}	
	}
	printf("这次考试的最低成绩是%d\n", min);
	printf("成绩最低的同学是:\n"); 
	for(i = 0; i < index; i++)
	{
		if(min == students[i][1])
		{
			printf("%d\n", students[i][0]);
		}
	}
}

void aveScore() //查看成绩平均分
{
	int sum = 0;
	for(int i = 0; i < index; i++)
	{
		sum += students[i][1];
	}
	printf("这次考试的平均分是:%d\n", sum / index);
}

void modifyScore() //根据学号修改成绩
{
	int i;
	int id;
	int score;
	printf("请输入您想修改成绩的人的学号:\n");
	scanf("%d", &id);
	for(i = 0; i < index; i++)
	{
		if(students[i][0] == id)
		{
			break;
		}
	}
	printf("请输入您想修改的成绩:\n");
	scanf("%d", &score);
	students[i][1] = score;
	printf("修改成功\n");
		
}

总结:

这个综合训练,练到了全局变量、if...else判断、switch选择、while循环,for循环,以及自定义函数,函数的调用、以及宏定义,数组,虽然定义了二维数组,但是对其操作的训练其实还是一维数组的练习,这个练习题很好的巩固了以前的知识,希望以后可以多做一些这样的训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值