C++编写高校学生成绩查询系统

  1. 编写一个高校学生成绩查询系统,具备课程、学生信息管理与查询功能,可以修改增加删除某一门课程的成绩,或修改增加删除某一学生的成绩。
  1. 学生类别包括研究生和本科生2类,要求用继承的方法构造两个类,学生信息主要包括姓名,学号,专业,校园卡号等,要求通过输入姓名、学号或校园卡号可以查询到相关学生的简单信息。
  2. 课程类至少包含3门本科课程、3门研究生课程,每门课程的选课人数不少于3人,包括:课程名称、课程编号、所属专业、学分、课程分数、绩点等信息;

要求学生类与课程类之间通过文本文件进行信息交互。该系统具备以下功能:

  1. 输入学生姓名、学号或校园卡号,显示该生所有课程信息、单科分数、单科绩点、平均绩点(要求用虚函数实现);
  2. 输入课程名称或编号,显示该课程所有同学基本信息与成绩。
​
#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(){
  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值