#1061. 学生成绩管理系统

学生成绩管理系统

当前没有测试数据。

题目描述

编写一个程序,管理学生成绩,学生信息包含姓名,学号,语文,数学,英语和总成绩.

主要功能

1.录入成绩

2.修改成绩.通过学号修改指定学科的成绩.

3.查询成绩

  • 通过学号或姓名查询指定学生成绩
  • 查询所有学生成绩,按照学号,姓名等升序或降序输出

基础代码

#include<bits/stdc++.h>
using namespace std;
struct student{
	int id;//学号 
	string name;//姓名 
	int cn,ma,en,total;//语文、数学、英语、总成绩 
}stu[1000];
int n=0;//总人数 

void showMenu(); //主菜单 
void addStu();//录入成绩 
void revStu();//修改成绩 
void seaStu();//查询 
void seaOne();//查询指定人 
void seaAll();//查询所有人 
int main()
{
	showMenu();
	return 0;
}
//主菜单 
void showMenu()
{
	system("cls");//清空窗口 
	cout<<"欢迎使用学生成绩管理系统\n";
	cout<<"--------主菜单--------\n";
	cout<<"1:录入成绩\n";
	cout<<"2:修改成绩\n";
	cout<<"3:查询成绩\n";
	cout<<"4:退出系统\n";
	int t;
	while(1)
	{
		cout<<"请输入您要执行的操作:";
		cin>>t;
		if(t==1) {
			addStu();//录入 
			break;
		}
		else if(t==2) {
			revStu();//修改 
			break;
		}
		else if(t==3){
			seaStu();//查询 
			break;
		}
		else if(t==4){
			return;
		}
		else
		{
			cout<<"输入错误,请重新输入!\n"; 
		}
	}
}

//录入成绩 
void addStu()
{
	system("cls");
	cout<<"--------录入成绩--------\n";
	n++;//人数增加 
	cout<<"请输入姓名:";
	cin>>stu[n].name;
	cout<<"请输入学号:";
	cin>>stu[n].id;
	cout<<"请输入语文成绩:";
	cin>>stu[n].cn;
	cout<<"请输入数学成绩:";
	cin>>stu[n].ma;
	cout<<"请输入英语成绩:";
	cin>>stu[n].en;
	stu[n].total=stu[n].cn+stu[n].ma+stu[n].en;//计算总分 
	getchar();//读取上一次输入的回车符 
	cout<<"录入成功!请按任意键返回主菜单"; 
	getchar(); //读取一个字符,用于暂停录入界面 
	showMenu(); //返回主菜单 
}
//修改成绩 
void revStu()
{
	system("cls");//清屏 
	cout<<"--------修改成绩--------\n";
	int tid,tsub,tsc;//需要修改的学号、科目和成绩 
	cout<<"请输入学号:";
	cin>>tid;
	cout<<"1:语文\n";
	cout<<"2:数学\n";
	cout<<"3:英语\n"; 
	cout<<"请输入需要修改的科目:";
	cin>>tsub;
	cout<<"请输入修改后的成绩:";
	cin>>tsc;
	for(int i=1;i<=n;i++)
	{
		if(stu[i].id==tid)//找到需要修改的学号 
		{
			//修改成绩 
			
			
			
			
			 
			getchar();
			cout<<"修改成功!请按任意键返回主菜单"; 
			getchar(); 
			showMenu();//返回主菜单 
			return;//结束修改 
		}	
	} 
	//没有找到输入的学号 
	getchar();
	cout<<"修改失败!请按任意键返回主菜单"; 
	getchar(); 
	showMenu();//返回主菜单 
}

//查询成绩 
void seaStu()
{
	system("cls");
	cout<<"--------查询成绩--------\n";
	cout<<"1:查询指定学生\n"; 
	cout<<"2:查询所有学生\n";
	cout<<"请输入您要执行的操作:";
	int t;
	cin>>t;
	if(t==1) seaOne();//查一个 
	else  seaAll();//查所有人 
	getchar();
	cout<<"请按任意键返回主菜单"; 
	getchar(); 
	showMenu();//查询结束,返回主菜单 
}

//查询一个人 
void seaOne()
{
	cout<<"--------查询条件--------\n";
	cout<<"1:学号\n";
	cout<<"2:姓名\n";
	cout<<"请输入您要查询的条件:";
	int t,i=1;//i为要差的人的下标 
	cin>>t;
	if(t==1)
	{
		//按照学号查 
		cout<<"请输入学号:";
		int tid;
		cin>>tid; 
		for(;i<=n;i++)//i已经有初始化为1了,不用再初始化 
		{
			if(tid==stu[i].id)
			{
				break;
			}
		} 
	}
	else
	{
		//按照姓名查询
		
		
		
		
		
		 
	}
	//输出所查学生信息 
	printf("学号\t姓名\t语文\t数学\t英语\t总分\n"); 
	printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[i].id,stu[i].name.c_str(),stu[i].cn,stu[i].ma,stu[i].en,stu[i].total);		
}
bool cmpid1(student x,student y)//按照学号排序升序 
{
	return x.id<y.id;
}
bool cmpid2(student x,student y)//按照学号排序降序 
{
	return x.id>y.id;
}
//查询所有学生信息 
void seaAll()
{
	cout<<"--------排序条件--------\n";
	cout<<"1:学号\n";
	cout<<"2:姓名\n";
	cout<<"3:语文\n";
	cout<<"4:数学\n";
	cout<<"5:英语\n";
	cout<<"6:总分\n";
	cout<<"请输入您要按照什么排序:";
	int t,f;
	cin>>t;
	cout<<"请输入排序方式(1:升序 2:降序):";
	cin>>f;
	if(t==1) //按照学号排序 
	{
		if(f==1) sort(stu+1,stu+1+n,cmpid1);
		else sort(stu+1,stu+1+n,cmpid2);
	}
	else if(t==2) //按照姓名排序 
	{
		
		
	}
	
	
	
	//输出所有学生信息 
	printf("学号\t姓名\t语文\t数学\t英语\t总分\n");
	for(int i=1;i<=n;i++)
	{
		printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[i].id,stu[i].name.c_str(),stu[i].cn,stu[i].ma,stu[i].en,stu[i].total);
	}
	
}


Limitation

1s, 1024KiB for each test case.