- 编写一个高校学生成绩查询系统,具备课程、学生信息管理与查询功能,可以修改,增加,删除某一门课程的成绩,或修改,增加,删除某一学生的成绩。
- 学生类别包括研究生和本科生2类,要求用继承的方法构造两个类,学生信息主要包括姓名,学号,专业,校园卡号等,要求通过输入姓名、学号或校园卡号可以查询到相关学生的简单信息。
- 课程类至少包含3门本科课程、3门研究生课程,每门课程的选课人数不少于3人,包括:课程名称、课程编号、所属专业、学分、课程分数、绩点等信息;
要求学生类与课程类之间通过文本文件进行信息交互。该系统具备以下功能:
- 输入学生姓名、学号或校园卡号,显示该生所有课程信息、单科分数、单科绩点、平均绩点(要求用虚函数实现);
- 输入课程名称或编号,显示该课程所有同学基本信息与成绩。
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class course{
private:
string course_name; //课程名称
int course_number; //课程编号
string course_specialty; //所属专业
float credit; //学分
float mark; //课程分数
float GPA; //绩点
public:
void set_GPA_(){
GPA = mark/100*5;//本科生和研究生的单科成绩绩点计算方法一样,但是平均绩点计算方法不一样
};
float get_GPA(){ return GPA; };
void set_course_name(string str){ course_name = str; };
string get_course_name(){ return course_name; };
void set_course_number(int number){ course_number = number; };
int get_coure_number(){ return course_number; };
void set_course_specialty(string str){ course_specialty = str; };
string get_course_specialty(){ return course_specialty; };
void set_credit(float cre){ credit = cre; };
float get_credit(){ return credit; };
void set_mark(float mar){ mark = mar; };
int get_mark(){ return mark; };
};
class student{
private:
string name;
string student_num;
string school_num;
string specialty;
public:
void set_name(string str){ name = str; };
string get_name(){ return name; };
void set_student_num(string num){ student_num = num; };
string get_student_num(){ return student_num; };
void set_school_num(string num){ school_num = num; };
string get_school_num(){ return school_num; };
void set_specialty(string str){ specialty = str; };
string get_specialty(){return specialty;};
virtual void calculate(){ //虚函数定义
};
};
class graduate_student:public student{
private:
float credit[3]; //假定一名学生最多选择3门课,可以不选或者多选
float GPA[3]; //course media,electron,politics;
float average_GPA;
string student_lable;
public:
void calculate(){
int i=0;
float a=0,b=0;
while(credit[i]!=0 && i<3)
{
a+=credit[i];
b+=GPA[i]*credit[i];
i++;
}
average_GPA = b/a * 4.5/5; //研究生的最高绩点是4.5
};
float get_average_GPA(){ return average_GPA; };
void set_credit(float a,int b){ credit[b] = a; };
void set_GPA(float a,int b){ GPA[b] = a; };
void set_student_lable(string lable){ student_lable = lable; };
string get_student_lable(){ return student_lable; };
graduate_student(){