#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
using namespace std;
const int NUM = 30;
const int CLASS_PRO = 5;
enum name_pro {chinese, matchs, english, physics, chemistry};//课程
//单个学生信息
class stq{
public:
stq(){}
stq(int num, string name, string name_class, double a, double b,
double c, double d, double e)
{
this->num = num;
this->name = name;
this->name_class = name_class;
sum[chinese] = a;
sum[matchs] = b;
sum[english] = c;
sum[physics] = d;
sum[chemistry] = e;
}
int getnum(){return num;}//返回学号
string getname(){return name;}//返回名字
string getname_class(){return name_class;}//返回班级
double getsum(int sn){return sum[sn];}//返回单课程成绩
int getgsum()//返回总成绩
{
double gsum = 0;
for (int i = 0; i < CLASS_PRO; ++i)
{
gsum += sum[i];
}
return gsum;
}
int getpsum()//返回平均成绩
{
return getgsum() / CLASS_PRO;
}
void output()//输出学生信息
{
cout << num << "\t" << name << "\t" << name_class << "\t";
for (int i = 0; i < CLASS_PRO; ++i)
{
cout << sum[i] << "\t";
}
}
private:
int num;//学号
string name;//姓名
string name_class;//班级
double sum[CLASS_PRO];//成绩
};
class str{
public:
str()//构造函数
{
}
void entry()//录入菜单
{
double sum[CLASS_PRO];
cout << "请输入学生信息以及成绩!\n";
cout << "学号:";
int a;
cin >> a;
cout <<"姓名:";
string b;
cin >> b;
cout << "成绩:\n";
cout << "语文:";
cin >> sum[0];
cout << "数学:";
cin >> sum[1];
cout << "英语:";
cin >> sum[2];
cout << "物理:";
cin >> sum[3];
cout << "化学:";
cin >> sum[4];
cout <<"班级:";
string d;
cin >> d;
stq student(a, b, d, sum[0], sum[1], sum[2], sum[3], sum[4]);
bum.push_back(student);
}
void check()//查询菜单
{
cout << "\n" << "--------------------\n"
<< "查询-菜单:\n" << "【1】.学号\t"
<< "\t【2】.课程\t" << "\t【0】.主菜单\n";
int o;
cin >> o;
switch (o)
{
case 0: win_main(); break;
case 1: check_num(); break;
case 2: check_pro(); break;
default:
cout << "无效指令!\n";
cin >> o;
break;
}
}
void check_num()//按学号查询
{
cout << "\n";
cout << "【1】.查询该学生成绩\t【2】.查询该学生平均成绩\n【0】.返回主菜单\n";
int a;
cin >> a;
switch (a)
{
case 0: win_main(); break;
case 1: check_student_sum(); break;
case 2: check_student_psum(); break;
}
}
void check_student_sum()//查询该学生全部成绩
{
cout << "请输入学号:\n";
int n;
cin >> n;
cout << "-------------------------学生信息------------------------\n";
cout << "学号\t" << "姓名\t" << "班级\t" << "语文\t" <<
"数学\t" << "英语\t" << "物理\t" << "化学\t" << endl;
bum[n - 1].output();
cout << "\n【1】.返回上一级\t【2】.主菜单\n";
int o;
cin >> o;
switch (o)
{
case 1: check_num(); break;
case 2: win_main(); break;
}
}
void check_student_psum()//查询平均成绩
{
cout << "请输入学号:\n";
int n;
cin >> n;
cout << "-------------------------学生信息------------------------\n";
cout << bum[n - 1].getname() << "学生的平均成绩:" << bum[n - 1].getpsum() << endl;
cout << "【1】.返回上一级\t【2】.主菜单\n";
int o;
cin >> o;
switch (o)
{
case 1: check_num(); break;
case 2: win_main(); break;
}
}
void check_pro()//按课程查询
{
cout << "\n";
cout << "【1】.查询该课程平均成绩\t【2】.查询该课程及格率\n";
cout << "【3】.查询该课程最低成绩\t【4】.查询该课程最高成绩\n【0】.返回主菜单\n";
int a;
cin >> a;
switch (a)
{
case 0: win_main(); break;
case 1: check_pro_psum(); break;
case 2: check_pro_gsum(); break;
case 3: check_pro_min(); break;
case 4: check_pro_max(); break;
}
}
void check_pro_psum()//该科目平均成绩
{
cout << "\n请输入查询科目:\n";
cout << "【0】.语文\t【1】.数学\t【2】.英语\t【3】.物理\t【4】.化学\n";
int n;
cin >> n;
double sum_all = 0;
for (int i = 0; i != bum.size(); ++i)
sum_all += bum[i].getsum(n);
double sum_p = sum_all / bum.size();
switch (n)
{
case 0:
{
cout << "语文平均分为:" << sum_p << endl;
}
break;
case 1:
{
cout << "数学平均分为:" << sum_p << endl;
}
break;
case 2:
{
cout << "英语平均分为:" << sum_p << endl;
}
break;
case 3:
{
cout << "物理平均分为:" << sum_p << endl;
}
break;
case 4:
{
cout << "化学平均分为:" << sum_p << endl;
}
break;
default:
cout << "无效指令!" << endl;
cin >> n;
break;
}
cout << "【1】.返回上一级\t【2】.主菜单\n";
int o;
cin >> o;
switch (o)
{
case 1: check_pro(); break;
case 2: win_main(); break;
}
}
void check_pro_gsum()//该课程及格率
{
cout << "\n请输入查询科目:\n";
cout << "【0】.语文\t【1】.数学\t【2】.英语\t【3】.物理\t【4】.化学\n";
int n;
cin >> n;
double sum_all = 0;
for (int i = 0; i != bum.size(); ++i)
{
if (bum[i].getsum(n) > 60)
++sum_all;
}
double sum_p = sum_all / bum.size();
cout << fixed << setprecision(4);
switch (n)
{
case 0:
{
cout << "语文及格率为:" << sum_p << endl;
}
break;
case 1:
{
cout << "数学及格率为:" << sum_p << endl;
}
break;
case 2:
{
cout << "英语及格率为:" << sum_p << endl;
}
break;
case 3:
{
cout << "物理及格率为:" << sum_p << endl;
}
break;
case 4:
{
cout << "化学及格率为:" << sum_p << endl;
}
break;
default:
cout << "无效指令!" << endl;
cin >> n;
break;
}
cout << "【1】.返回上一级\t【2】.主菜单\n";
int o;
cin >> o;
switch (o)
{
case 1: check_pro(); break;
case 2: win_main(); break;
}
}
void check_pro_min()//该课程最低成绩
{
cout << "\n请输入查询科目:\n";
cout << "【0】.语文\t【1】.数学\t【2】.英语\t【3】.物理\t【4】.化学\n";
int n;
cin >> n;
double min = bum[0].getsum(n);
for (int i = 0; i != bum.size(); ++i)
{
if (min > bum[i].getsum(n))
min = bum[i].getsum(n);
}
switch (n)
{
case 0:
{
cout << "语文最低成绩为:" << min << endl;
}
break;
case 1:
{
cout << "数学最低成绩为:" << min << endl;
}
break;
case 2:
{
cout << "英语最低成绩为:" << min << endl;
}
break;
case 3:
{
cout << "物理最低成绩为:" << min << endl;
}
break;
case 4:
{
cout << "化学最低成绩为:" << min << endl;
}
break;
default:
cout << "无效指令!" << endl;
cin >> n;
break;
}
}
void check_pro_max()//该课程最高成绩
{
cout << "\n请输入查询科目:\n";
cout << "【0】.语文\t【1】.数学\t【2】.英语\t【3】.物理\t【4】.化学\n";
int n;
cin >> n;
double max = bum[0].getsum(n);
for (int i = 0; i != bum.size(); ++i)
{
if (max < bum[i].getsum(n))
max = bum[i].getsum(n);
}
switch (n)
{
case 0:
{
cout << "语文最高成绩为:" << max << endl;
}
break;
case 1:
{
cout << "数学最高成绩为:" << max << endl;
}
break;
case 2:
{
cout << "英语最高成绩为:" << max << endl;
}
break;
case 3:
{
cout << "物理最高成绩为:" << max << endl;
}
break;
case 4:
{
cout << "化学最高成绩为:" << max << endl;
}
break;
default:
cout << "无效指令!" << endl;
cin >> n;
break;
}
cout << "【1】.返回上一级\t【2】.主菜单\n";
int o;
cin >> o;
switch (o)
{
case 1: check_pro(); break;
case 2: win_main(); break;
}
}
void win_main()//主菜单
{
cout << "\n" << "--------------------\n"
<< "******系统菜单******\n"
<< "【1】.录入\t【2】.查询\t【0】.退出" << endl;
int p;
cin >> p;
switch (p)
{
case 0: return;
case 1: entry(); break;
case 2: check(); break;
default:
cout << "无效指令!\n";
cin >> p;
break;
}
}
void win()//登陆界面
{
cout << "**学生成绩管理系统**\n"
<< "请输入密码:";
string pwd;
cin >> pwd;
while (pwd != "123")
{
cout << "输入指令错误!请重新输入!\n";
cin >> pwd;
}
while (1)
{
win_main();
}
}
private:
vector<stq> bum;
};
int main()
{
str s;
s.win();
return 0;
}
自写的学生信息管理系统
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.