#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.
相关
在以下作业中: